private CurveMetadata childMetadata( CurveMetadata metadata, CurveDefinition curveDefn, Map<CurveName, JacobianCalibrationMatrix> jacobians, Map<CurveName, DoubleArray> sensitivitiesMarketQuote) { JacobianCalibrationMatrix jacobian = jacobians.get(curveDefn.getName()); CurveMetadata metadataResult = metadata; if (jacobian != null) { metadataResult = metadata.withInfo(CurveInfoType.JACOBIAN, jacobian); } DoubleArray sensitivity = sensitivitiesMarketQuote.get(curveDefn.getName()); if (sensitivity != null) { metadataResult = metadataResult.withInfo(CurveInfoType.PV_SENSITIVITY_TO_MARKET_QUOTE, sensitivity); } return metadataResult; }
refData); NodalCurve underlyingCurve = ((IsdaCreditDiscountFactors) creditCurve.getSurvivalProbabilities()).getCurve(); CurveMetadata metadata = underlyingCurve.getMetadata().withInfo(CurveInfoType.CDS_INDEX_FACTOR, indexFactor); if (curveDefinition.isStoreNodeTrade()) { int nNodes = curveDefinition.getCurveNodes().size();
JacobianCalibrationMatrix jacobian = JacobianCalibrationMatrix.of( ImmutableList.of(CurveParameterSize.of(name, nNodes)), MATRIX_ALGEBRA.getInverse(sensi)); nodalCurve = nodalCurve.withMetadata(nodalCurve.getMetadata().withInfo(CurveInfoType.JACOBIAN, jacobian));
ImmutableList.of(CurveParameterSize.of(curveDefinition.getName(), nNodes)), MATRIX_ALGEBRA.getInverse(sensi)); NodalCurve curveWithParamMetadata = curve.withMetadata( curve.getMetadata().withInfo(CurveInfoType.JACOBIAN, jacobian).withParameterMetadata(parameterMetadata)); return IsdaCreditDiscountFactors.of(currency, curveValuationDate, curveWithParamMetadata);
JacobianCalibrationMatrix jacobian = JacobianCalibrationMatrix.of( ImmutableList.of(CurveParameterSize.of(curve.getName(), nNode)), jacobianMatrix); return curve.withValues(time, rate).withMetadata(metadata.withInfo(CurveInfoType.JACOBIAN, jacobian)); JacobianCalibrationMatrix jacobian = JacobianCalibrationMatrix.of( ImmutableList.of(CurveParameterSize.of(curve.getName(), nNode)), jacobianMatrix); return ConstantNodalCurve.of(curve.getMetadata().withInfo(CurveInfoType.JACOBIAN, jacobian), time, rate); JacobianCalibrationMatrix jacobian = JacobianCalibrationMatrix.of( ImmutableList.of(CurveParameterSize.of(curve.getName(), nNode)), jacobianMatrix); return curve.withValues(time, rate).withMetadata(metadata.withInfo(CurveInfoType.JACOBIAN, jacobian));