29 #include <tests/myratest.h> 39 myra::out() << typestring<Number>() << std::endl;
46 Precision error = frobenius(C2-C1);
47 myra::out() <<
" |syrk('N')-gemm('N','T')| = " << error << std::endl;
48 REQUIRE(error < tolerance);
54 Precision error = frobenius(C2-C1);
55 myra::out() <<
" |syrk('T')-gemm('T','N')| = " << error << std::endl;
56 REQUIRE(error < tolerance);
62 Precision error = frobenius(C2-C1);
63 myra::out() <<
" |syrk('H')-gemm('H','C')| = " << error << std::endl;
64 REQUIRE(error < tolerance);
70 Precision error = frobenius(C2-C1);
71 myra::out() <<
" |syrk('C')-gemm('C','H')| = " << error << std::endl;
72 REQUIRE(error < tolerance);
78 ADD_TEST(
"ssyrkLower",
"[dense][blas]")
79 { test<NumberS>(57,24,1.0e-4f); }
81 ADD_TEST(
"dsyrkLower",
"[dense][blas]")
82 { test<NumberD>(57,24,1.0e-8); }
84 ADD_TEST(
"csyrkLower",
"[dense][blas]")
85 { test<NumberC>(57,24,1.0e-4f); }
87 ADD_TEST(
"zhsykLower",
"[dense][blas]")
88 { test<NumberZ>(57,24,1.0e-8); }
Returns a conjugated copy of a Matrix or Vector. Or, conjugate one inplace.
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
Range construct for a lower triangular matrix stored in rectangular packed format.
Specialized container for a lower triangular matrix, O(N^2/2) storage. Used by symmetry exploiting ma...
Returns a transposed copy of a Matrix. The inplace version only works on a square operand...
Returns the lower triangle of a dense Matrix.
Returns the upper triangle of a dense Matrix.
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
Returns a hermitian copy of a Matrix. The inplace version only works on a square operand.
Simplistic random number functions.
Stores a lower triangular matrix in rectangular packed format.
Definition: conjugate.h:22
Routines for symmetric rank-k updates, a specialized form of Matrix*Matrix multiplication.
Variety of routines all for dense Matrix*Matrix multiplies. Delegates to the BLAS.
double
|syrk('N')-gemm('N','T')| = 0
|syrk('T')-gemm('T','N')| = 0
|syrk('H')-gemm('H','C')| = 0
|syrk('C')-gemm('C','H')| = 0