30 #include <tests/myratest.h> 36 template<
class Precision>
void test(
int I,
int J, Precision tolerance)
39 typedef std::complex<Precision> Number;
40 myra::out() << typestring<Number>() << std::endl;
49 Precision error = frobenius(B2-B1);
50 myra::out() <<
" |herk('N')-gemm('N','H')| = " << error << std::endl;
51 REQUIRE(error < tolerance);
58 Precision error = frobenius(C2-C1);
59 myra::out() <<
" |herk('T')-gemm('T','C')| = " << error << std::endl;
60 REQUIRE(error < tolerance);
67 Precision error = frobenius(C2-C1);
68 myra::out() <<
" |herk('H')-gemm('H','N')| = " << error << std::endl;
69 REQUIRE(error < tolerance);
76 Precision error = frobenius(C2-C1);
77 myra::out() <<
" |herk('C')-gemm('C','T')| = " << error << std::endl;
78 REQUIRE(error < tolerance);
85 ADD_TEST(
"cherkLower",
"[dense][blas]")
86 { test<float>(54,37,1.0e-4f); }
88 ADD_TEST(
"zherkLower",
"[dense][blas]")
89 { test<double>(54,37,1.0e-8); }
Returns a conjugated copy of a Matrix or Vector. Or, conjugate one inplace.
Routines for hermitian rank-k updates, a specialized form of Matrix*Matrix multiplication.
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
Replaces small values with explicit zeros.
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.
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
Variety of routines all for dense Matrix*Matrix multiplies. Delegates to the BLAS.
std::complex<float>
|herk('N')-gemm('N','H')| = 0
|herk('T')-gemm('T','C')| = 0
|herk('H')-gemm('H','N')| = 0
|herk('C')-gemm('C','T')| = 0