// reverse //JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected void assertReverseRoundTrip(final ParameterLimitsTransform transform, final double fitParam) protected internal virtual void assertReverseRoundTrip(ParameterLimitsTransform transform, double fitParam) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double mp = transform.inverseTransform(fitParam); double mp = transform.inverseTransform(fitParam); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double fp = transform.transform(mp); double fp = transform.transform(mp); assertEquals(fitParam, fp, 1e-8); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected void assertGradientRoundTrip(final ParameterLimitsTransform transform, final double modelParam) protected internal virtual void assertGradientRoundTrip(ParameterLimitsTransform transform, double modelParam) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double g = transform.transformGradient(modelParam); double g = transform.transformGradient(modelParam); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double fp = transform.transform(modelParam); double fp = transform.transform(modelParam); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double gInv = transform.inverseTransformGradient(fp); double gInv = transform.inverseTransformGradient(fp); assertEquals(g, 1.0 / gInv, 1e-8); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected void assertGradient(final ParameterLimitsTransform transform, final double modelParam) protected internal virtual void assertGradient(ParameterLimitsTransform transform, double modelParam) { const double eps = 1e-5; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double g = transform.transformGradient(modelParam); double g = transform.transformGradient(modelParam); double fdg; try { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double down = transform.transform(modelParam - eps); double down = transform.transform(modelParam - eps); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double up = transform.transform(modelParam + eps); double up = transform.transform(modelParam + eps); fdg = (up - down) / 2 / eps; } //JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#: //ORIGINAL LINE: catch (final IllegalArgumentException e) catch (legalArgumentException) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double fp = transform.transform(modelParam); double fp = transform.transform(modelParam); try { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double up = transform.transform(modelParam + eps); double up = transform.transform(modelParam + eps); fdg = (up - fp) / eps; } //JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#: //ORIGINAL LINE: catch (final IllegalArgumentException e2) catch (legalArgumentException) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double down = transform.transform(modelParam - eps); double down = transform.transform(modelParam - eps); fdg = (fp - down) / eps; } } assertEquals(g, fdg, 1e-6); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected void assertInverseGradient(final ParameterLimitsTransform transform, final double fitParam) protected internal virtual void assertInverseGradient(ParameterLimitsTransform transform, double fitParam) { const double eps = 1e-5; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double g = transform.inverseTransformGradient(fitParam); double g = transform.inverseTransformGradient(fitParam); double fdg; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double down = transform.inverseTransform(fitParam - eps); double down = transform.inverseTransform(fitParam - eps); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final double up = transform.inverseTransform(fitParam + eps); double up = transform.inverseTransform(fitParam + eps); fdg = (up - down) / 2 / eps; assertEquals(g, fdg, 1e-6); }
public virtual void test_createFullTransform() { SabrIborCapletFloorletVolatilityCalibrationDefinition fixedBeta = SabrIborCapletFloorletVolatilityCalibrationDefinition.ofFixedBeta(NAME, USD_LIBOR_3M, ACT_365F, BETA_RHO, ALPHA_KNOTS, BETA_RHO_KNOTS, NU_KNOTS, DOUBLE_QUADRATIC, FLAT, LINEAR, HAGAN); SabrIborCapletFloorletVolatilityCalibrationDefinition fixedRho = SabrIborCapletFloorletVolatilityCalibrationDefinition.ofFixedRho(NAME, USD_LIBOR_3M, ACT_365F, BETA_RHO, ALPHA_KNOTS, BETA_RHO_KNOTS, NU_KNOTS, DOUBLE_QUADRATIC, FLAT, LINEAR, HAGAN); ParameterLimitsTransform[] transf = new ParameterLimitsTransform[] { new SingleRangeLimitTransform(0.0, ParameterLimitsTransform_LimitType.GREATER_THAN), new DoubleRangeLimitTransform(0.0, 1.0), new DoubleRangeLimitTransform(-0.99, 0.99), new DoubleRangeLimitTransform(0.001d, 2.50d) }; ParameterLimitsTransform[] computedFixedBeta = fixedBeta.createFullTransform(transf); ParameterLimitsTransform[] computedFixedRho = fixedRho.createFullTransform(transf); ParameterLimitsTransform[] expectedFixedBeta = new ParameterLimitsTransform[] { transf[0], transf[0], transf[0], transf[0], transf[0], transf[0], transf[2], transf[2], transf[2], transf[3], transf[3], transf[3], transf[3], transf[3], transf[3] }; ParameterLimitsTransform[] expectedFixedRho = new ParameterLimitsTransform[] { transf[0], transf[0], transf[0], transf[0], transf[0], transf[0], transf[1], transf[1], transf[1], transf[3], transf[3], transf[3], transf[3], transf[3], transf[3] }; assertEquals(computedFixedBeta, expectedFixedBeta); assertEquals(computedFixedRho, expectedFixedRho); }