26 #include <tests/myratest.h>    38   int K = I < J ? I : J;
    39   myra::out() << typestring<Number>() << std::endl;
    44   auto tau = geqrf_inplace(A);
    47   ormqr_inplace(A,tau,B1,
'L',
'N');
    50   auto VtVb = A.split_top(K);
    52   auto Vb = VtVb.second;
    55   auto Bb = BtBb.second;
    58   trmm_inplace(
'L',
'L',
'H',Vt,W,
'U');
    59   gemm_inplace(W,Vb,
'H',Bb,
'N',one,one);
    61   trmm_inplace(
'L',
'U',
'N',Vt,W,
'N',one);
    63   gemm_inplace(Bb,Vb,
'N',W,
'N',-one,one);
    64   trmm_inplace(
'L',
'L',
'N',Vt,W,
'U');
    67   Precision error = frobenius(B1-B2) / frobenius(B1);
    68   myra::out() << 
"|Q*B1(ormqr) - Q*B2(qrt)| = " << error << std::endl;
    69   REQUIRE(error < tolerance);
    74 ADD_TEST(
"sqrt",
"[dense][lapack]")
    75   { test<NumberS>(178,159,1.0e-4f); }
    77 ADD_TEST(
"dqrt",
"[dense][lapack]")
    78   { test<NumberD>(178,159,1.0e-10); }
    80 ADD_TEST(
"cqrt",
"[dense][lapack]")
    81   { test<NumberC>(178,159,1.0e-4f); }
    83 ADD_TEST(
"zqrt",
"[dense][lapack]")
    84   { test<NumberZ>(178,159,1.0e-10); }
 Interface class for representing subranges of dense Matrix's. 
Tabulates an IxJ matrix. Allows random access, has column major layout to be compatible with BLAS/LAP...
Definition: bdsqr.h:20
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
CPair split_top(int i) const
Splits by rows, returns [this->top(i), this->cut_top(i)]. 
Definition: Matrix.cpp:219
Routines to compute a Householder QR decomposition. 
Routines for multiplying by a triangular Matrix or LowerMatrix. 
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 apply a Householder Q, as previously factored via geqrf_inplace() 
Returns a hermitian copy of a Matrix. The inplace version only works on a square operand. 
Given the scalar reflectors [V,tau] from geqrf(), forms the T of the equivalent block reflector I-V*T...
Variety of routines all for dense Matrix*Matrix multiplies. Delegates to the BLAS.