23 #include <tests/myratest.h>    37   auto C = diagcat(A,B);
    38   Precision error_A = frobenius( C.window(0,20,0,20) - A);
    39   Precision error_B = frobenius( C.window(20,30,20,30) - B);  
    40   myra::out() << 
"  |C.window - A| = " << error_A << std::endl;
    41   myra::out() << 
"  |C.window - B| = " << error_B << std::endl;  
    42   REQUIRE(error_A < tolerance);
    43   REQUIRE(error_B < tolerance);  
    46 #ifdef MYRAMATH_ENABLE_CPP11    55   auto D = diagcat({A,B,C});
    56   Precision error_A = frobenius( D.
window(0,20,0,30) - A);
    57   Precision error_B = frobenius( D.
window(20,30,30,50) - B);
    58   Precision error_C = frobenius( D.
window(30,45,50,75) - C);
    59   myra::out() << 
"  |D.window - A| = " << error_A << std::endl;
    60   myra::out() << 
"  |D.window - B| = " << error_B << std::endl;
    61   myra::out() << 
"  |D.window - C| = " << error_C << std::endl;
    62   REQUIRE(error_A < tolerance);
    63   REQUIRE(error_B < tolerance);
    64   REQUIRE(error_C < tolerance);
    76   auto C = diagcat(A,B);
    77   bool equal_A = (C.window(0,20,0,20) == A);
    78   bool equal_B = (C.window(20,30,20,30) == B);  
    79   myra::out() << 
"  C.window == A : " << (equal_A?
"true":
"false") << std::endl;
    80   myra::out() << 
"  C.window == B : " << (equal_B?
"true":
"false") << std::endl;
    85 #ifdef MYRAMATH_ENABLE_CPP11    93   auto D = diagcat({A,B,C});
    94   bool equal_A = (D.
window(0,20,0,30) == A);
    95   bool equal_B = (D.
window(20,30,30,50) == B);
    96   bool equal_C = (D.
window(30,45,50,75) == C);
    97   myra::out() << 
"  D.window == A : " << (equal_A?
"true":
"false") << std::endl;
    98   myra::out() << 
"  D.window == B : " << (equal_B?
"true":
"false") << std::endl;
    99   myra::out() << 
"  D.window == C : " << (equal_C?
"true":
"false") << std::endl;  
   109 ADD_TEST(
"diagcat_SparseMatrix",
"[sparse]")
   111   test1<NumberS>(1.0e-5f);
   112   test1<NumberD>(1.0e-10);
   113   test1<NumberC>(1.0e-5f);  
   114   test1<NumberZ>(1.0e-10);
   117 #ifdef MYRAMATH_ENABLE_CPP11   119 ADD_TEST(
"diagcat_SparseMatrix_cpp11",
"[sparse]")
   121   test2<NumberS>(1.0e-5f);
   122   test2<NumberD>(1.0e-10);
   123   test2<NumberC>(1.0e-5f);  
   124   test2<NumberZ>(1.0e-10);
   129 ADD_TEST(
"diagcat_Pattern",
"[sparse]")
   132 #ifdef MYRAMATH_ENABLE_CPP11   134 ADD_TEST(
"diagcat_Pattern_cpp11",
"[sparse]")
 Container of values, allows random (i) access. 
static SparseMatrix< Number > random(int I, int J, int N)
Generates a random SparseMatrix with size IxJ and (approximately) N nonzeros. 
Definition: SparseMatrix.cpp:493
General purpose compressed-sparse-column (CSC) container. 
CMatrixRange< Number > window(int i0, int i1, int j0, int j1) const
Returns a MatrixRange over this(i0:i1,j0:j1) 
Definition: Matrix.cpp:142
static Pattern random(int I, int J, int N)
Generates a random Pattern with size IxJ and (approximately) N nonzeros. 
Definition: Pattern.cpp:300
Range/Iterator types associated with Pattern. 
Reflects Precision trait for a Number, scalar Number types should specialize it. 
Definition: Number.h:33
Container class for a sparse nonzero pattern, used in reordering/symbolic analysis. 
Returns frobenius norm of a SparseMatrix. 
Routines to concatenate SparseMatrix's in diagonal fashion. 
Range/Iterator types associated with SparseMatrix.