/** * 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); }
/** * 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); }
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); }
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); }
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)); }
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)); }
public static void normalizeF(DMatrix6 M) { double val = normF(M); CommonOps_DDF6.divide(M, val); }