/// <summary> /// Obtains an instance specifying the measures to use. /// </summary> /// <param name="rootFinder"> the root finder to use </param> /// <param name="measures"> the calibration measures, used to compute the function for which the root is found </param> /// <param name="pvMeasures"> the present value measures, used to compute the present value sensitivity to market quotes /// stored in the metadata </param> /// <returns> the curve calibrator </returns> public static RatesCurveCalibrator of(NewtonVectorRootFinder rootFinder, CalibrationMeasures measures, CalibrationMeasures pvMeasures) { return(new RatesCurveCalibrator(rootFinder, measures, pvMeasures)); }
//------------------------------------------------------------------------- // restricted constructor private RatesCurveCalibrator(NewtonVectorRootFinder rootFinder, CalibrationMeasures measures, CalibrationMeasures pvMeasures) { this.rootFinder = ArgChecker.notNull(rootFinder, "rootFinder"); this.measures = ArgChecker.notNull(measures, "measures"); this.pvMeasures = ArgChecker.notNull(pvMeasures, "pvMeasures"); }
/// <summary> /// Obtains an instance specifying tolerances and measures to use. /// <para> /// This uses a Broyden root finder. /// /// </para> /// </summary> /// <param name="toleranceAbs"> the absolute tolerance </param> /// <param name="toleranceRel"> the relative tolerance </param> /// <param name="stepMaximum"> the maximum steps </param> /// <param name="measures"> the calibration measures, used to compute the function for which the root is found </param> /// <param name="pvMeasures"> the present value measures, used to compute the present value sensitivity to market quotes /// stored in the metadata </param> /// <returns> the curve calibrator </returns> public static RatesCurveCalibrator of(double toleranceAbs, double toleranceRel, int stepMaximum, CalibrationMeasures measures, CalibrationMeasures pvMeasures) { NewtonVectorRootFinder rootFinder = NewtonVectorRootFinder.broyden(toleranceAbs, toleranceRel, stepMaximum); return(new RatesCurveCalibrator(rootFinder, measures, pvMeasures)); }