public override void reset(int size)
{
// Set to bond redemption values
values_ = new Vector(size, Convert.ToDouble(arguments_.redemption));
conversionProbability_ = new Vector(size, 0.0);
spreadAdjustedRate_ = new Vector(size, 0.0);
DayCounter rfdc = process_.riskFreeRate().link.dayCounter();
// this takes care of the convertibility and conversion probabilities
adjustValues();
Handle <Quote> creditSpread = arguments_.creditSpread;
Date exercise = arguments_.exercise.lastDate();
InterestRate riskFreeRate = process_.riskFreeRate().link
.zeroRate(exercise, rfdc, Compounding.Continuous, Frequency.NoFrequency);
// Claculate blended discount rate to be used on roll back .
for (var j = 0; j < values_.Count; j++)
{
spreadAdjustedRate_[j] = conversionProbability_[j] * riskFreeRate.value() +
(1 - conversionProbability_[j]) *
(riskFreeRate.value() + creditSpread.link.value());
}
}