6 #ifndef MYRAMATH_DENSE_DIAGONALMATRIXRANGE_H     7 #define MYRAMATH_DENSE_DIAGONALMATRIXRANGE_H    15 #include <myramath/MYRAMATH_EXPORT.h>    22 template<
int Arity, 
class Number> 
class Expression;
    23 template<
class Number> 
class  Matrix;
    24 template<
class Number> 
class  MatrixRange;
    25 template<
class Number> 
class CMatrixRange;
    26 template<
class Number> 
class  Vector;
    27 template<
class Number> 
class  VectorRange;
    28 template<
class Number> 
class CVectorRange;
    29 template<
class Number> 
class  DiagonalMatrixRange;
    30 template<
class Number> 
class CDiagonalMatrixRange;
    34 template<
class Number> 
class MYRAMATH_EXPORT DiagonalMatrixRange
    81     Number& operator() (
int n) 
const;
    84     Number& at(
int n) 
const;
   107     const Pair split_first(
int n) 
const;
   116     const Pair split_last(
int n) 
const;
   122     template<
class Functor> 
void transform(
const Functor& f)
 const   124       for (
int n = 0; n < N; ++n)
   125         *pointer(n) = f( *pointer(n) );
   147     void operator *= (Number alpha) 
const;
   150     void operator /= (Number alpha) 
const;
   158     Number* pointer(
int n) 
const;
   164     void check_size(
int S) 
const;
   169 template<
class Number> 
class MYRAMATH_EXPORT CDiagonalMatrixRange
   185     CDiagonalMatrixRange();
   188     CDiagonalMatrixRange(
const Number* in_begin, 
int in_N);
   213     const Number& operator() (
int n) 
const;
   216     const Number& at(
int n) 
const;
   239     const Pair split_first(
int n) 
const;
   248     const Pair split_last(
int n) 
const;
   253     const Number* pointer(
int n) 
const;
   259   { 
public: 
typedef Number type; };
   263   { 
public: 
typedef Number type; };
   266 MYRAMATH_EXPORT std::ostream& operator << (std::ostream& out, const CDiagonalMatrixRange<NumberS>& a);
   268 MYRAMATH_EXPORT std::ostream& operator << (std::ostream& out, const CDiagonalMatrixRange<NumberD>& a);
   269 MYRAMATH_EXPORT std::ostream& operator << (std::ostream& out, const CDiagonalMatrixRange<NumberC>& a);
   270 MYRAMATH_EXPORT std::ostream& operator << (std::ostream& out, const CDiagonalMatrixRange<NumberZ>& a);
 Reflects Number trait for a Container, containers of Numbers (Matrix's, Vector's, etc) should special...
Definition: Number.h:55
Represents a const DiagonalMatrixRange. 
Definition: conjugate.h:35
int N
---------— Data members, all public ----------------— 
Definition: DiagonalMatrixRange.h:41
int N
---------— Data members, all public ----------------— 
Definition: DiagonalMatrixRange.h:176
Tabulates an IxJ matrix. Allows random access, has column major layout to be compatible with BLAS/LAP...
Definition: bdsqr.h:20
Represents a mutable VectorRange. 
Definition: axpy.h:21
Abstraction layer, serializable objects write themselves to these. 
Definition: Streams.h:39
Various utility functions/classes related to scalar Number types. 
Represents a mutable MatrixRange. 
Definition: conjugate.h:26
void transform(const Functor &f) const
Overwrites every D(n) in this DiagonalMatrixRange with f(D(n)). 
Definition: DiagonalMatrixRange.h:122
Tabulates a vector of length N, allows random access. 
Definition: conjugate.h:21
Represents a const VectorRange. 
Definition: axpy.h:20
Given an index (i,j,etc), returns a value. 
Definition: arithmetic.h:19
Represents a mutable DiagonalMatrixRange. 
Definition: conjugate.h:29