6 #ifndef MYRAMATH_DENSE_DIAGONALMATRIXRANGE_H 7 #define MYRAMATH_DENSE_DIAGONALMATRIXRANGE_H 15 #include <myramath/utility/detail/LIBPUBLIC.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 LIBPUBLIC 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 LIBPUBLIC 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 LIBPUBLIC std::ostream& operator << (std::ostream& out, const CDiagonalMatrixRange<NumberS>& a);
268 LIBPUBLIC std::ostream& operator << (std::ostream& out, const CDiagonalMatrixRange<NumberD>& a);
269 LIBPUBLIC std::ostream& operator << (std::ostream& out, const CDiagonalMatrixRange<NumberC>& a);
270 LIBPUBLIC 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