/** * <p> * Checks to see if A and B have the same shape. * </p> * * @param A Matrix * @param B Matrix */ public static void assertShape( ReshapeMatrix64F A , ReshapeMatrix64F B ) { assertTrue( A.numRows == B.numRows , "Number of rows do not match"); assertTrue( A.numCols == B.numCols , "Number of columns do not match"); }
/** * <p> * Checks to see if A and B have the same shape. * </p> * * @param A Matrix * @param B Matrix */ public static void assertShape( ReshapeMatrix64F A , ReshapeMatrix64F B ) { assertTrue( A.numRows == B.numRows , "Number of rows do not match"); assertTrue( A.numCols == B.numCols , "Number of columns do not match"); }
/** * <p> * Checks to see if the matrix has the specified number of rows and columns. * </p> * * @param A Matrix * @param numRows expected number of rows in the matrix * @param numCols expected number of columns in the matrix */ public static void assertShape( ReshapeMatrix64F A , int numRows , int numCols ) { assertTrue( A.numRows == numRows , "Unexpected number of rows."); assertTrue( A.numCols == numCols , "Unexpected number of columns."); }
/** * <p> * Checks to see if the matrix has the specified number of rows and columns. * </p> * * @param A Matrix * @param numRows expected number of rows in the matrix * @param numCols expected number of columns in the matrix */ public static void assertShape( ReshapeMatrix64F A , int numRows , int numCols ) { assertTrue( A.numRows == numRows , "Unexpected number of rows."); assertTrue( A.numCols == numCols , "Unexpected number of columns."); }
public static void assertEquals( Complex64F a , Complex64F b , double tol ) { assertTrue(!Double.isNaN(a.real) && !Double.isNaN(b.real) ,"real a = "+a.real+" b = "+b.real); assertTrue(!Double.isInfinite(a.real) && !Double.isInfinite(b.real) ,"real a = "+a.real+" b = "+b.real); assertTrue(Math.abs( a.real-b.real) <= tol,"real a = "+a.real+" b = "+b.real); assertTrue(!Double.isNaN(a.imaginary) && !Double.isNaN(b.imaginary) ,"imaginary a = "+a.imaginary+" b = "+b.imaginary); assertTrue(!Double.isInfinite(a.imaginary) && !Double.isInfinite(b.imaginary) ,"imaginary a = "+a.imaginary+" b = "+b.imaginary); assertTrue(Math.abs( a.imaginary-b.imaginary) <= tol,"imaginary a = "+a.imaginary+" b = "+b.imaginary); }
/** * <p> * Checks to see if the matrix has the specified number of rows and columns. * </p> * * @param A Matrix * @param numRows expected number of rows in the matrix * @param numCols expected number of columns in the matrix */ public static void assertShape( RealMatrix64F A , int numRows , int numCols ) { assertTrue( A.getNumRows() == numRows , "Unexpected number of rows."); assertTrue( A.getNumCols() == numCols , "Unexpected number of columns."); }
/** * Checks to see if every element in A is countable. A doesn't have any element with * a value of NaN or infinite. * * @param A Matrix */ public static void assertCountable( ReshapeMatrix64F A ) { for( int i = 0; i < A.numRows; i++ ){ for( int j = 0; j < A.numCols; j++ ) { assertTrue( !Double.isNaN(A.get(i,j)) , "NaN found at "+i+" "+j ); assertTrue( !Double.isInfinite(A.get(i,j)) , "Infinite found at "+i+" "+j ); } } }
/** * Checks to see if every element in A is countable. A doesn't have any element with * a value of NaN or infinite. * * @param A Matrix */ public static void assertCountable( ReshapeMatrix64F A ) { for( int i = 0; i < A.numRows; i++ ){ for( int j = 0; j < A.numCols; j++ ) { assertTrue( !Double.isNaN(A.get(i,j)) , "NaN found at "+i+" "+j ); assertTrue( !Double.isInfinite(A.get(i,j)) , "Infinite found at "+i+" "+j ); } } }
public static void assertEquals( RealMatrix32F A , RealMatrix32F B , float tol ) { assertShape(A,B); for( int i = 0; i < A.getNumRows(); i++ ){ for( int j = 0; j < A.getNumCols(); j++ ) { float valA = A.get(i,j); float valB = B.get(i,j); assertTrue(!Float.isNaN(valA) && !Float.isNaN(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(!Float.isInfinite(valA) && !Float.isInfinite(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(Math.abs( valA-valB) <= tol,"At ("+i+","+j+") A = "+valA+" B = "+valB); } } }
public static void assertEquals( ComplexMatrix64F A , ComplexMatrix64F B , double tol ) { assertShape(A,B); Complex64F a = new Complex64F(); Complex64F b = new Complex64F(); for( int i = 0; i < A.getNumRows(); i++ ){ for( int j = 0; j < A.getNumCols(); j++ ) { A.get(i, j, a); B.get(i, j, b); assertTrue(!Double.isNaN(a.real) && !Double.isNaN(b.real) ,"Real At ("+i+","+j+") A = "+a.real+" B = "+b.real); assertTrue(!Double.isInfinite(a.real) && !Double.isInfinite(b.real) ,"Real At ("+i+","+j+") A = "+a.real+" B = "+b.real); assertTrue(Math.abs( a.real-b.real) <= tol,"Real At ("+i+","+j+") A = "+a.real+" B = "+b.real); assertTrue(!Double.isNaN(a.imaginary) && !Double.isNaN(b.imaginary) ,"Img At ("+i+","+j+") A = "+a.imaginary+" B = "+b.imaginary); assertTrue(!Double.isInfinite(a.imaginary) && !Double.isInfinite(b.imaginary) ,"Img At ("+i+","+j+") A = "+a.imaginary+" B = "+b.imaginary); assertTrue(Math.abs( a.imaginary-b.imaginary) <= tol,"Img At ("+i+","+j+") A = "+a.imaginary+" B = "+b.imaginary); } } }
/** * <p> * Checks to see if the transpose of B is equal to A and countable: * </p> * * <p> * |a<sub>ij</sub> - b<sub>ji</sub>| ≤ tol * </p> * * <p> * The test will fail if any element in either matrix is NaN or infinite. * </p> * * @param A Matrix A * @param B Matrix B * @param tol Tolerance */ public static void assertEqualsTrans( ReshapeMatrix64F A , ReshapeMatrix64F B , double tol ) { assertShape(A,B.numCols,B.numRows); for( int i = 0; i < A.numRows; i++ ){ for( int j = 0; j < A.numCols; j++ ) { double valA = A.get(i,j); double valB = B.get(j,i); assertTrue(!Double.isNaN(valA) && !Double.isNaN(valB) ,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); assertTrue(!Double.isInfinite(valA) && !Double.isInfinite(valB) ,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); assertTrue(Math.abs( valA-valB) <= tol,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); } } }
/** * Checks to see if every element in A is countable. A doesn't have any element with * a value of NaN or infinite. * * @param A Matrix */ public static void assertCountable( RealMatrix64F A ) { for( int i = 0; i < A.getNumRows(); i++ ){ for( int j = 0; j < A.getNumCols(); j++ ) { assertTrue( !Double.isNaN(A.get(i,j)) , "NaN found at "+i+" "+j ); assertTrue( !Double.isInfinite(A.get(i,j)) , "Infinite found at "+i+" "+j ); } } }
/** * <p> * Checks to see if each element in the matrices are within tolerance of each other and countable: * </p> * * <p> * The two matrices are identical with in tolerance if:<br> * |a<sub>ij</sub> - b<sub>ij</sub>| ≤ tol * </p> * * <p> * The test will fail if any element in either matrix is NaN or infinite. * </p> * * @param A Matrix A * @param B Matrix B * @param tol Tolerance */ public static void assertEquals( ReshapeMatrix64F A , ReshapeMatrix64F B , double tol ) { assertShape(A,B); for( int i = 0; i < A.numRows; i++ ){ for( int j = 0; j < A.numCols; j++ ) { double valA = A.get(i,j); double valB = B.get(i,j); assertTrue(!Double.isNaN(valA) && !Double.isNaN(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(!Double.isInfinite(valA) && !Double.isInfinite(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(Math.abs( valA-valB) <= tol,"At ("+i+","+j+") A = "+valA+" B = "+valB); } } }
/** * <p> * Checks to see if each element in the matrices are within tolerance of each other and countable: * </p> * * <p> * The two matrices are identical with in tolerance if:<br> * |a<sub>ij</sub> - b<sub>ij</sub>| ≤ tol * </p> * * <p> * The test will fail if any element in either matrix is NaN or infinite. * </p> * * @param A Matrix A * @param B Matrix B * @param tol Tolerance */ public static void assertEquals( ReshapeMatrix64F A , ReshapeMatrix64F B , double tol ) { assertShape(A,B); for( int i = 0; i < A.numRows; i++ ){ for( int j = 0; j < A.numCols; j++ ) { double valA = A.get(i,j); double valB = B.get(i,j); assertTrue(!Double.isNaN(valA) && !Double.isNaN(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(!Double.isInfinite(valA) && !Double.isInfinite(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(Math.abs( valA-valB) <= tol,"At ("+i+","+j+") A = "+valA+" B = "+valB); } } }
/** * <p> * Checks to see if the transpose of B is equal to A and countable: * </p> * * <p> * |a<sub>ij</sub> - b<sub>ji</sub>| ≤ tol * </p> * * <p> * The test will fail if any element in either matrix is NaN or infinite. * </p> * * @param A Matrix A * @param B Matrix B * @param tol Tolerance */ public static void assertEqualsTrans( ReshapeMatrix64F A , ReshapeMatrix64F B , double tol ) { assertShape(A,B.numCols,B.numRows); for( int i = 0; i < A.numRows; i++ ){ for( int j = 0; j < A.numCols; j++ ) { double valA = A.get(i,j); double valB = B.get(j,i); assertTrue(!Double.isNaN(valA) && !Double.isNaN(valB) ,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); assertTrue(!Double.isInfinite(valA) && !Double.isInfinite(valB) ,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); assertTrue(Math.abs( valA-valB) <= tol,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); } } }
assertTrue(Double.isNaN(valB),"At ("+i+","+j+") A = "+valA+" B = "+valB); } else if( Double.isInfinite(valA) ) { assertTrue(Double.isInfinite(valB),"At ("+i+","+j+") A = "+valA+" B = "+valB); } else { double diff = Math.abs( valA-valB); assertTrue(diff <= tol,"At ("+i+","+j+") A = "+valA+" B = "+valB);
/** * <p> * Checks to see if A and B have the same shape. * </p> * * @param A Matrix * @param B Matrix */ public static void assertShape( Matrix A , Matrix B ) { assertTrue( A.getNumRows() == B.getNumRows() , "Number of rows do not match"); assertTrue( A.getNumCols() == B.getNumCols() , "Number of columns do not match"); }
/** * <p> * Checks to see if each element in the matrices are within tolerance of each other and countable: * </p> * * <p> * The two matrices are identical with in tolerance if:<br> * |a<sub>ij</sub> - b<sub>ij</sub>| ≤ tol * </p> * * <p> * The test will fail if any element in either matrix is NaN or infinite. * </p> * * @param A Matrix A * @param B Matrix B * @param tol Tolerance */ public static void assertEquals( RealMatrix64F A , RealMatrix64F B , double tol ) { assertShape(A,B); for( int i = 0; i < A.getNumRows(); i++ ){ for( int j = 0; j < A.getNumCols(); j++ ) { double valA = A.get(i,j); double valB = B.get(i,j); assertTrue(!Double.isNaN(valA) && !Double.isNaN(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(!Double.isInfinite(valA) && !Double.isInfinite(valB) ,"At ("+i+","+j+") A = "+valA+" B = "+valB); assertTrue(Math.abs( valA-valB) <= tol,"At ("+i+","+j+") A = "+valA+" B = "+valB); } } }
assertTrue(Double.isNaN(valB), "At (" + i + "," + j + ") A = " + valA + " B = " + valB); } else if (Double.isInfinite(valA)) { assertTrue(Double.isInfinite(valB), "At (" + i + "," + j + ") A = " + valA + " B = " + valB); } else { double diff = Math.abs(valA - valB); assertTrue(diff <= tol, "At (" + i + "," + j + ") A = " + valA + " B = " + valB);
/** * <p> * Checks to see if the transpose of B is equal to A and countable: * </p> * * <p> * |a<sub>ij</sub> - b<sub>ji</sub>| ≤ tol * </p> * * <p> * The test will fail if any element in either matrix is NaN or infinite. * </p> * * @param A Matrix A * @param B Matrix B * @param tol Tolerance */ public static void assertEqualsTrans( RealMatrix64F A , RealMatrix64F B , double tol ) { assertShape(A,B.getNumCols(),B.getNumRows()); for( int i = 0; i < A.getNumRows(); i++ ){ for( int j = 0; j < A.getNumCols(); j++ ) { double valA = A.get(i,j); double valB = B.get(j,i); assertTrue(!Double.isNaN(valA) && !Double.isNaN(valB) ,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); assertTrue(!Double.isInfinite(valA) && !Double.isInfinite(valB) ,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); assertTrue(Math.abs( valA-valB) <= tol,"A("+i+","+j+") = "+valA+") B("+j+","+i+") = "+valB); } } }