Exemplo n.º 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testRecoverOrginal()
        public virtual void testRecoverOrginal()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.math.impl.matrix.MatrixAlgebra algebra = getAlgebra();
            MatrixAlgebra algebra = Algebra;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.math.linearalgebra.DecompositionResult result = getSVD().apply(A);
            DecompositionResult result = SVD.apply(A);

            assertTrue(result is SVDecompositionResult);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final SVDecompositionResult svd_result = (SVDecompositionResult) result;
            SVDecompositionResult svd_result = (SVDecompositionResult)result;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix u = svd_result.getU();
            DoubleMatrix u = svd_result.U;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix w = com.opengamma.strata.collect.array.DoubleMatrix.diagonal(com.opengamma.strata.collect.array.DoubleArray.copyOf(svd_result.getSingularValues()));
            DoubleMatrix w = DoubleMatrix.diagonal(DoubleArray.copyOf(svd_result.SingularValues));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix vt = svd_result.getVT();
            DoubleMatrix vt = svd_result.VT;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix a = (com.opengamma.strata.collect.array.DoubleMatrix) algebra.multiply(algebra.multiply(u, w), vt);
            DoubleMatrix a = (DoubleMatrix)algebra.multiply(algebra.multiply(u, w), vt);

            checkEquals(A, a);
        }
        /// <summary>
        /// Tests A = L L^T.
        /// </summary>
        public virtual void recoverOrginal()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final CholeskyDecompositionResult result = CDOG.apply(A3);
            CholeskyDecompositionResult result = CDOG.apply(A3);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix a = (com.opengamma.strata.collect.array.DoubleMatrix) ALGEBRA.multiply(result.getL(), result.getLT());
            DoubleMatrix a = (DoubleMatrix)ALGEBRA.multiply(result.L, result.LT);

            checkEquals(A3, a);
        }
        public virtual void test_sensitivity_LegalEntityDiscountingProvider()
        {
            CurrencyParameterSensitivities computed = CALC.sensitivity(PARAMETER_SENSITIVITIES, PROVIDER);

            assertEquals(computed.Sensitivities.size(), 4);
            DoubleArray expected11 = (DoubleArray)MATRIX_ALGEBRA.multiply(SENSI_1, DoubleMatrix.copyOf(MATRIX_11));
            DoubleArray expected12 = (DoubleArray)MATRIX_ALGEBRA.multiply(SENSI_1, DoubleMatrix.copyOf(MATRIX_12));
            DoubleArray expected21 = (DoubleArray)MATRIX_ALGEBRA.multiply(SENSI_2, DoubleMatrix.copyOf(MATRIX_21));
            DoubleArray expected22 = (DoubleArray)MATRIX_ALGEBRA.multiply(SENSI_2, DoubleMatrix.copyOf(MATRIX_22));

            assertTrue(computed.getSensitivity(CURVE_NAME_1, USD).Sensitivity.equalWithTolerance(expected11, TOL));
            assertTrue(computed.getSensitivity(CURVE_NAME_1, GBP).Sensitivity.equalWithTolerance(expected21, TOL));
            assertTrue(computed.getSensitivity(CURVE_NAME_2, USD).Sensitivity.equalWithTolerance(expected12, TOL));
            assertTrue(computed.getSensitivity(CURVE_NAME_2, GBP).Sensitivity.equalWithTolerance(expected22, TOL));
        }
Exemplo n.º 4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testInvert()
        public virtual void testInvert()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.math.impl.matrix.MatrixAlgebra algebra = getAlgebra();
            MatrixAlgebra algebra = Algebra;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final SVDecompositionResult result = getSVD().apply(A);
            SVDecompositionResult result = SVD.apply(A);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix ut = result.getUT();
            DoubleMatrix ut = result.UT;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix v = result.getV();
            DoubleMatrix v = result.V;

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final double[] sv = result.getSingularValues();
            double[] sv = result.SingularValues;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int n = sv.length;
            int n = sv.Length;

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final double[] svinv = new double[n];
            double[] svinv = new double[n];
            for (int i = 0; i < n; i++)
            {
                if (sv[i] == 0.0)
                {
                    svinv[i] = 0.0;
                }
                else
                {
                    svinv[i] = 1.0 / sv[i];
                }
            }
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix winv = com.opengamma.strata.collect.array.DoubleMatrix.diagonal(com.opengamma.strata.collect.array.DoubleArray.copyOf(svinv));
            DoubleMatrix winv = DoubleMatrix.diagonal(DoubleArray.copyOf(svinv));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix ainv = (com.opengamma.strata.collect.array.DoubleMatrix) algebra.multiply(algebra.multiply(v, winv), ut);
            DoubleMatrix ainv = (DoubleMatrix)algebra.multiply(algebra.multiply(v, winv), ut);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix identity = (com.opengamma.strata.collect.array.DoubleMatrix) algebra.multiply(A, ainv);
            DoubleMatrix identity = (DoubleMatrix)algebra.multiply(A, ainv);

            checkIdentity(identity);
        }
Exemplo n.º 5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testRecoverOrginal()
        public virtual void testRecoverOrginal()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.math.linearalgebra.DecompositionResult result = LU.apply(A);
            DecompositionResult result = LU.apply(A);

            assertTrue(result is LUDecompositionResult);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final LUDecompositionResult lu = (LUDecompositionResult) result;
            LUDecompositionResult lu = (LUDecompositionResult)result;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix a = (com.opengamma.strata.collect.array.DoubleMatrix) ALGEBRA.multiply(lu.getL(), lu.getU());
            DoubleMatrix a = (DoubleMatrix)ALGEBRA.multiply(lu.L, lu.U);

            checkEquals((DoubleMatrix)ALGEBRA.multiply(lu.P, A), a);
        }
Exemplo n.º 6
0
        public virtual DoubleMatrix getUpdatedMatrix(System.Func <DoubleArray, DoubleMatrix> g, DoubleArray x, DoubleArray deltaX, DoubleArray deltaY, DoubleMatrix matrix)
        {
            ArgChecker.notNull(deltaX, "deltaX");
            ArgChecker.notNull(deltaY, "deltaY");
            ArgChecker.notNull(matrix, "matrix");
            DoubleArray v1     = (DoubleArray)_algebra.multiply(deltaX, matrix);
            double      length = _algebra.getInnerProduct(v1, deltaY);

            if (length == 0)
            {
                return(matrix);
            }
            v1 = (DoubleArray)_algebra.scale(v1, 1.0 / length);
            DoubleArray  v2 = (DoubleArray)_algebra.subtract(deltaX, _algebra.multiply(matrix, deltaY));
            DoubleMatrix m  = _algebra.getOuterProduct(v2, v1);

            return((DoubleMatrix)_algebra.add(matrix, m));
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void test()
        public virtual void test()
        {
            const int n = 97;

            double[] a = new double[n - 1];
            double[] b = new double[n];
            double[] c = new double[n - 1];
            double[] x = new double[n];

            for (int ii = 0; ii < n; ii++)
            {
                b[ii] = RANDOM.nextRandom();
                x[ii] = RANDOM.nextRandom();
                if (ii < n - 1)
                {
                    a[ii] = RANDOM.nextRandom();
                    c[ii] = RANDOM.nextRandom();
                }
            }

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final TridiagonalMatrix m = new TridiagonalMatrix(b, a, c);
            TridiagonalMatrix m = new TridiagonalMatrix(b, a, c);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleArray xVec = com.opengamma.strata.collect.array.DoubleArray.copyOf(x);
            DoubleArray xVec = DoubleArray.copyOf(x);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleArray yVec = (com.opengamma.strata.collect.array.DoubleArray) MA.multiply(m, xVec);
            DoubleArray yVec = (DoubleArray)MA.multiply(m, xVec);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final double[] xSolv = solvTriDag(m, yVec).toArray();
            double[] xSolv = solvTriDag(m, yVec).toArray();

            for (int i = 0; i < n; i++)
            {
                assertEquals(x[i], xSolv[i], 1e-9);
            }

            DoubleArray resi = (DoubleArray)MA.subtract(MA.multiply(m, DoubleArray.copyOf(xSolv)), yVec);
            double      err  = MA.getNorm2(resi);

            assertEquals(0.0, err, 1e-14);
        }
        public virtual void test()
        {
            DoubleMatrix m1       = ESTIMATE.getInitializedMatrix(J, X);
            DoubleMatrix m2       = J.apply(X);
            DoubleMatrix m3       = (DoubleMatrix)(ALGEBRA.multiply(m1, m2));
            DoubleMatrix identity = DoubleMatrix.identity(2);

            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 2; j++)
                {
                    assertEquals(m3.get(i, j), identity.get(i, j), 1e-6);
                }
            }
        }
Exemplo n.º 9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testRecoverOrginal()
        public virtual void testRecoverOrginal()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.math.linearalgebra.DecompositionResult result = CH.apply(A);
            DecompositionResult result = CH.apply(A);

            assertTrue(result is CholeskyDecompositionResult);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final CholeskyDecompositionResult ch = (CholeskyDecompositionResult) result;
            CholeskyDecompositionResult ch = (CholeskyDecompositionResult)result;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix a = (com.opengamma.strata.collect.array.DoubleMatrix) ALGEBRA.multiply(ch.getL(), ch.getLT());
            DoubleMatrix a = (DoubleMatrix)ALGEBRA.multiply(ch.L, ch.LT);

            checkEquals(A, a);
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testRecoverOrginal()
        public virtual void testRecoverOrginal()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.math.linearalgebra.DecompositionResult result = QR.apply(A);
            DecompositionResult result = QR.apply(A);

            assertTrue(result is QRDecompositionResult);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final QRDecompositionResult qr = (QRDecompositionResult) result;
            QRDecompositionResult qr = (QRDecompositionResult)result;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix q = qr.getQ();
            DoubleMatrix q = qr.Q;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix r = qr.getR();
            DoubleMatrix r = qr.R;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleMatrix a = (com.opengamma.strata.collect.array.DoubleMatrix) ALGEBRA.multiply(q, r);
            DoubleMatrix a = (DoubleMatrix)ALGEBRA.multiply(q, r);

            checkEquals(A, a);
        }
 public virtual DoubleArray getDirection(DoubleMatrix estimate, DoubleArray y)
 {
     ArgChecker.notNull(estimate, "estimate");
     ArgChecker.notNull(y, "y");
     return((DoubleArray)_algebra.multiply(estimate, y));
 }
        private void setModelParameterSensitivityToData()
        {
            DoubleMatrix invJac = _transform.inverseJacobian(FitParameters);

            _inverseJacobianModelPararms = (DoubleMatrix)MA.multiply(invJac, FittingParameterSensitivityToData);
        }