Пример #1
0
        public static bool isTranspose(DMatrixSparseCSC A, DMatrixSparseCSC B, double tol)
        {
            if (A.numCols != B.numRows || A.numRows != B.numCols)
            {
                return(false);
            }
            if (A.nz_length != B.nz_length)
            {
                return(false);
            }
            if (!A.indicesSorted)
            {
                throw new ArgumentException("A must have sorted indicies");
            }

            DMatrixSparseCSC Btran = new DMatrixSparseCSC(B.numCols, B.numRows, B.nz_length);

            CommonOps_DSCC.transpose(B, Btran, null);
            Btran.sortIndices(null);

            for (int i = 0; i < B.nz_length; i++)
            {
                if (A.nz_rows[i] != Btran.nz_rows[i])
                {
                    return(false);
                }
                if (Math.Abs(A.nz_values[i] - Btran.nz_values[i]) > tol)
                {
                    return(false);
                }
            }
            return(true);
        }
Пример #2
0
        public static DMatrixSparseCSC triangleUpper(int dimen, int hessenberg, int nz_total,
                                                     double min, double max, IMersenneTwister rand)
        {
            DMatrixSparseCSC L = triangleLower(dimen, hessenberg, nz_total, min, max, rand);
            DMatrixSparseCSC U = (DMatrixSparseCSC)L.createLike();

            CommonOps_DSCC.transpose(L, U, null);
            return(U);
        }