Source: tests/iterative/diagcat.cpp
27 #include <tests/myratest.h> 39 auto C0 = diagcat(A0,B0);
40 auto A = make_GemmAction(A0);
41 auto B = make_GemmAction(B0);
42 auto C = diagcat(A,B);
43 Precision error = frobenius(C0-C.make_Matrix());
44 myra::out() <<
" |C0-C| = " << error << std::endl;
45 REQUIRE(error < tolerance);
48 #ifdef MYRAMATH_ENABLE_CPP11 57 auto D0 = diagcat({A0,B0,C0});
58 auto A = make_GemmAction(A0);
59 auto B = make_GemmAction(B0);
60 auto C = make_GemmAction(C0);
61 auto D = diagcat({A,B,C});
62 Precision error = frobenius(D0-D.make_Matrix());
63 myra::out() <<
" |D0-D| = " << error << std::endl;
64 REQUIRE(error < tolerance);
71 ADD_TEST(
"diagcat_Action",
"[iterative]")
73 test1<NumberS>(1.0e-5f);
74 test1<NumberD>(1.0e-10);
75 test1<NumberC>(1.0e-5f);
76 test1<NumberZ>(1.0e-10);
79 #ifdef MYRAMATH_ENABLE_CPP11 81 ADD_TEST(
"diagcat_Action_cpp11",
"[iterative]")
83 test2<NumberS>(1.0e-5f);
84 test2<NumberD>(1.0e-10);
85 test2<NumberC>(1.0e-5f);
86 test2<NumberZ>(1.0e-10);
Interface class for representing subranges of dense Matrix's.
Container of values, allows random (i) access.
Applies the "Action" of a linear operator, b := A*x, used in iterative solution algorithms.
Routines for computing Frobenius norms of various algebraic containers.
static Matrix< Number > random(int I, int J)
Generates a random Matrix of specified size.
Definition: Matrix.cpp:353
Various utility functions/classes related to scalar Number types.
General purpose dense matrix container, O(i*j) storage.
Reflects Precision trait for a Number, scalar Number types should specialize it.
Definition: Number.h:33
Routines to concatenate Matrix's in diagonal fashion.
An Action for multiplying by a dense Matrix or SparseMatrix using gemm().
Routines to concatenate Action's in diagonal fashion.
Results: [PASS]
|D0-D| = 0
|D0-D| = 0
|D0-D| = 0
|D0-D| = 0
Go back to Summary of /test
programs.