6 #ifndef MYRAMATH_DENSE_DIAGONALMATRIX_H 7 #define MYRAMATH_DENSE_DIAGONALMATRIX_H 14 #include <myramath/utility/detail/LIBPUBLIC.h> 21 #ifdef MYRAMATH_ENABLE_CPP11 22 #include <initializer_list> 30 template<
int Arity,
class Number>
class Expression;
31 template<
class Number>
class DiagonalMatrix;
32 template<
class Number>
class Matrix;
33 template<
class Number>
class MatrixRange;
34 template<
class Number>
class Vector;
35 template<
class Number>
class VectorRange;
38 template<
class Number>
class LIBPUBLIC DiagonalMatrix
62 #ifdef MYRAMATH_ENABLE_CPP11 114 const Number& operator() (
int n)
const;
116 Number& operator() (
int n) ;
120 const Number& at(
int n)
const;
143 template<
class Functor>
void transform(
const Functor& f)
144 { this->range().transform(f); }
163 void operator *= (Number alpha);
166 void operator /= (Number alpha);
188 #ifdef MYRAMATH_ENABLE_CPP11 217 typedef std::vector<Number> Contents;
223 {
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
Represents a const DiagonalMatrixRange.
Definition: conjugate.h:35
Interface class for representing subranges of DiagonalMatrix's.
Tabulates the values of a square NxN diagonal matrix. Allows random access, but only on the diagonal...
Definition: conjugate.h:23
ReflectPrecision< Number >::type Precision
Useful typedefs.
Definition: DiagonalMatrix.h:43
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.
void transform(const Functor &f)
Overwrites every D(n) in this DiagonalMatrix with f(D(n)).
Definition: DiagonalMatrix.h:143
Represents a mutable MatrixRange.
Definition: conjugate.h:26
Tabulates a vector of length N, allows random access.
Definition: conjugate.h:21
Reflects Precision trait for a Number, scalar Number types should specialize it.
Definition: Number.h:33
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
Represents a mutable DiagonalMatrixRange.
Definition: conjugate.h:29
float NumberS
Useful typedefs.
Definition: Number.h:21