コード例 #1
0
        /**
         * Converts {@link DMatrix6} into {@link DMatrixRMaj}.
         *
         * @param input Input matrix.
         * @param output Output matrix.  If null a new matrix will be declared.
         * @return Converted matrix.
         */
        public static DMatrixRMaj convert(DMatrix6 input, DMatrixRMaj output)
        {
            if (output == null)
            {
                output = new DMatrixRMaj(6, 1);
            }

            if (output.getNumRows() != 1 && output.getNumCols() != 1)
            {
                throw new ArgumentException("One row or column must have a length of 1 for it to be a vector");
            }
            int length = Math.Max(output.getNumRows(), output.getNumCols());

            if (length != 6)
            {
                throw new ArgumentException("Length of input vector is not 6.  It is " + length);
            }

            output.data[0] = input.a1;
            output.data[1] = input.a2;
            output.data[2] = input.a3;
            output.data[3] = input.a4;
            output.data[4] = input.a5;
            output.data[5] = input.a6;

            return(output);
        }
コード例 #2
0
        /**
         * Converts {@link DMatrixRMaj} into {@link DMatrix6}
         *
         * @param input Input matrix.
         * @param output Output matrix.  If null a new matrix will be declared.
         * @return Converted matrix.
         */
        public static DMatrix6 convert(DMatrixRMaj input, DMatrix6 output)
        {
            if (output == null)
            {
                output = new DMatrix6();
            }

            if (input.getNumRows() != 1 && input.getNumCols() != 1)
            {
                throw new ArgumentException("One row or column must have a length of 1 for it to be a vector");
            }
            int length = Math.Max(input.getNumRows(), input.getNumCols());

            if (length != 6)
            {
                throw new ArgumentException("Length of input vector is not 6.  It is " + length);
            }

            output.a1 = input.data[0];
            output.a2 = input.data[1];
            output.a3 = input.data[2];
            output.a4 = input.data[3];
            output.a5 = input.data[4];
            output.a6 = input.data[5];

            return(output);
        }
コード例 #3
0
 public static bool hasUncountable(DMatrix6 a)
 {
     if (UtilEjml.isUncountable(a.a1))
     {
         return(true);
     }
     if (UtilEjml.isUncountable(a.a2))
     {
         return(true);
     }
     if (UtilEjml.isUncountable(a.a3))
     {
         return(true);
     }
     if (UtilEjml.isUncountable(a.a4))
     {
         return(true);
     }
     if (UtilEjml.isUncountable(a.a5))
     {
         return(true);
     }
     if (UtilEjml.isUncountable(a.a6))
     {
         return(true);
     }
     return(false);
 }
コード例 #4
0
 public static bool isIdentical(DMatrix6 a, DMatrix6 b, double tol)
 {
     if (!MatrixFeatures_DDRM.isIdentical(a.a1, b.a1, tol))
     {
         return(false);
     }
     if (!MatrixFeatures_DDRM.isIdentical(a.a2, b.a2, tol))
     {
         return(false);
     }
     if (!MatrixFeatures_DDRM.isIdentical(a.a3, b.a3, tol))
     {
         return(false);
     }
     if (!MatrixFeatures_DDRM.isIdentical(a.a4, b.a4, tol))
     {
         return(false);
     }
     if (!MatrixFeatures_DDRM.isIdentical(a.a5, b.a5, tol))
     {
         return(false);
     }
     if (!MatrixFeatures_DDRM.isIdentical(a.a6, b.a6, tol))
     {
         return(false);
     }
     return(true);
 }
コード例 #5
0
ファイル: NormOps_DDF6.cs プロジェクト: lulzzz/BraneCloud
        public static double normF(DMatrix6 M)
        {
            double scale = CommonOps_DDF6.elementMaxAbs(M);

            if (scale == 0.0)
            {
                return(0.0);
            }

            double a1  = M.a1 / scale,
                   a2  = M.a2 / scale,
                   a3  = M.a3 / scale,
                   a4  = M.a4 / scale,
                   a5  = M.a5 / scale,
                   a6  = M.a6 / scale;
            double sum = a1 * a1 + a2 * a2 + a3 * a3 + a4 * a4 + a5 * a5 + a6 * a6;

            return(scale * Math.Sqrt(sum));
        }
コード例 #6
0
ファイル: NormOps_DDF6.cs プロジェクト: lulzzz/BraneCloud
        public static double fastNormF(DMatrix6 M)
        {
            double sum = M.a1 * M.a1 + M.a2 * M.a2 + M.a3 * M.a3 + M.a4 * M.a4 + M.a5 * M.a5 + M.a6 * M.a6;

            return(Math.Sqrt(sum));
        }
コード例 #7
0
ファイル: NormOps_DDF6.cs プロジェクト: lulzzz/BraneCloud
        public static void normalizeF(DMatrix6 M)
        {
            double val = normF(M);

            CommonOps_DDF6.divide(M, val);
        }