// private constructor private SabrIborCapletFloorletVolatilityBootstrapper(VolatilityIborCapFloorLegPricer pricer, SabrIborCapletFloorletPeriodPricer sabrPeriodPricer, NonLinearLeastSquare solver, ReferenceData referenceData) : base(pricer, referenceData) { this.sabrPeriodPricer = ArgChecker.notNull(sabrPeriodPricer, "sabrPeriodPricer"); this.solver = ArgChecker.notNull(solver, "solver"); }
//------------------------------------------------------------------------- /// <summary> /// Creates an instance. /// <para> /// The epsilon is the parameter used in <seealso cref="NonLinearLeastSquare"/>, where the iteration stops when certain /// quantities are smaller than this parameter. /// /// </para> /// </summary> /// <param name="pricer"> the cap/floor pricer to convert quoted volatilities to prices </param> /// <param name="sabrPeriodPricer"> the SABR pricer </param> /// <param name="epsilon"> the epsilon parameter </param> /// <param name="referenceData"> the reference data </param> /// <returns> the instance </returns> public static SabrIborCapletFloorletVolatilityBootstrapper of(VolatilityIborCapFloorLegPricer pricer, SabrIborCapletFloorletPeriodPricer sabrPeriodPricer, double epsilon, ReferenceData referenceData) { NonLinearLeastSquare solver = new NonLinearLeastSquare(SV_COMMONS, OG_ALGEBRA, epsilon); return(new SabrIborCapletFloorletVolatilityBootstrapper(pricer, sabrPeriodPricer, solver, referenceData)); }