6 #ifndef MYRAMATH_DENSE_LOWERMATRIX_H     7 #define MYRAMATH_DENSE_LOWERMATRIX_H    14 #include <myramath/MYRAMATH_EXPORT.h>    23 #ifdef MYRAMATH_ENABLE_CPP11    24 #include <initializer_list>    32 template<
int Arity, 
class Number> 
class Expression;
    33 template<
class Number> 
class LowerMatrix;
    34 template<
class Number> 
class Matrix;
    37 template <
class Number> 
class MYRAMATH_EXPORT LowerMatrix
    47     explicit LowerMatrix(
int N);
    50     explicit LowerMatrix(
const Expression<2,Number>& e);
    53     LowerMatrix(
const LowerMatrix& that);
    56     void swap(LowerMatrix<Number>& that);
    58 #ifdef MYRAMATH_ENABLE_CPP11    59     LowerMatrix(LowerMatrix&& that);
    64     LowerMatrix& operator = (LowerMatrix that);
    67     explicit LowerMatrix(
const CLowerMatrixRange<Number>& that);
    70     explicit LowerMatrix(
const CMatrixRange<Number>& that);
    73     explicit LowerMatrix(InputStream& in);
    76     void write(OutputStream& out) 
const;
    79     const LowerMatrix<Number>& add_const() 
const;
    90     uint64_t n_words() 
const;
    93     std::pair<int,int> blocking() 
const;
    98     CLowerMatrixRange<Number> range() 
const;
   100      LowerMatrixRange<Number> range()      ;
   104     operator CLowerMatrixRange<Number> () 
const;
   106     operator  LowerMatrixRange<Number> ()      ;
   110     CMatrixRange<Number> rectangle() 
const;
   112      MatrixRange<Number> rectangle()      ;
   116     const Number& operator () (
int i, 
int j) 
const;
   118           Number& operator () (
int i, 
int j)      ;
   122     const Number& at(
int i, 
int j) 
const;
   124           Number& at(
int i, 
int j)      ;
   130     Matrix<Number> make_Matrix(
char op = 
'N') 
const;
   131     void make_Matrix(
const MatrixRange<Number>& A, 
char op = 
'N') 
const;
   137     CMatrixRange<Number> range11 () 
const;
   139     CMatrixRange<Number> range21 () 
const;
   140     CMatrixRange<Number> range22t() 
const;
   144     MatrixRange<Number> range11 ();
   146     MatrixRange<Number> range21 ();
   147     MatrixRange<Number> range22t();
   154     template<
class Functor> 
void transform(
const Functor& f)
   155       { this->range().transform(f); }
   186     void operator *= (Number alpha);
   189     void operator /= (Number alpha);
   211 #ifdef MYRAMATH_ENABLE_CPP11   223     void initialize(
int in_N);
   232     typedef std::vector<Number> Contents;
   242   { 
public: 
typedef Number type; };
 Number random()
Generate random real/complex Numbers, uniformly distributed over [-1,1]. 
Reflects Number trait for a Container, containers of Numbers (Matrix's, Vector's, etc) should special...
Definition: Number.h:55
Interface class for representing subranges of dense Matrix's. 
Represents a mutable LowerMatrixRange. 
Definition: conjugate.h:28
Range construct for a lower triangular matrix stored in rectangular packed format. 
Represents a const MatrixRange. 
Definition: bothcat.h:22
Various utility functions/classes related to scalar Number types. 
void transform(const Functor &f)
Overwrites every A(i,j) in this LowerMatrix with f(A(i,j)). 
Definition: LowerMatrix.h:154
Expression< 1, NumberC > make_complex(const Expression< 1, NumberS > &A)
Promotes a real Expression into a complex one. 
Definition: functions_complex.cpp:122
Given an index (i,j,etc), returns a value. 
Definition: arithmetic.h:19
Stores a lower triangular matrix in rectangular packed format. 
Definition: conjugate.h:22
Represents a const LowerMatrixRange. 
Definition: conjugate.h:34
float NumberS
Useful typedefs. 
Definition: Number.h:21