/// <summary> /// Discount factor /// </summary> /// <param name="date"></param> /// <returns></returns> public double GetDiscountFactors(DateTime date) { // Convert dates to contineous time in untis of years var t = Utilities.ConvertToDayCountFraction(SettleDate, date); var interpolation = new BulirschStoerRationalInterpolation(T.ToArray(), DiscountFactor.ToArray()); return(interpolation.Interpolate(t)); }
/// <summary> /// Discount factors /// </summary> /// <param name="dates"></param> /// <returns></returns> public Vector <double> GetDiscountFactors(DateTime[] dates) { // Convert dates to contineous time in untis of years var t = Vector <double> .Build.DenseOfArray(Utilities.ConvertToDayCountFraction(SettleDate, dates)); var interpolation = new BulirschStoerRationalInterpolation(T.ToArray(), DiscountFactor.ToArray()); var result = Vector <double> .Build.Dense(t.Count); t.Map(p => interpolation.Interpolate(p), result); return(result); }