|
The Vish Visualization Shell 0.3
Vish
|
An n x n matrix (i.e., a vector of length n*n), stored row-wise: that is, A(i,j) = A[ij], where ij = i*n + j. More...
#include <elementary/eagle/QuadraticMatrix.hpp>
Public Types | |
| typedef FixedArray< int, N > | PermutationVector_t |
| Type of the permutation vector that is required for the functions GaussDecompose() and GaussSolve(). | |
Public Types inherited from Eagle::Matrix< N, N, Value > | |
| using | Matrix_t = Matrix |
| Matrix type. | |
| typedef Operator<' *'> | Mult |
| Computational constructor argument for multiplicative operations. | |
| typedef Operator<'~'> | TransposeOperation |
| Computational constructor argument for transpose operations. | |
Public Types inherited from Eagle::Vector< Value, R *C > | |
| enum | |
| The number of elements in this array. | |
Public Types inherited from Eagle::FixedArray< value, N > | |
| typedef FlattenedArray_t::value_type | Element_t |
| The maximally reduced type of elements stored here. | |
| typedef GetFixedArrayType< value >::result_t | ElementAsFixedArray_t |
| Element type as fixed array, if it is convertible to a fixed array. | |
| typedef FixedArray | FixedArray_t |
| Exporting the type definition of this array cass type. | |
| typedef FixedArrayFlattener< FixedArrayOfElements_t > | FixedArrayFlattener_t |
| Internal helper class. | |
| typedef FixedArray< ElementAsFixedArray_t, N > | FixedArrayOfElements_t |
| If the value is derived from a fixed array type itself, then the FixedArrayOfElements_t is an FixedArray<FixedArray<>> type. | |
| typedef FixedArrayFlattener_t::result_t | FlattenedArray_t |
| Reduction of this array type, if it is nested, to an flattened type which contains elementary types. | |
| typedef value | value_type |
| Export the type of the respective element value type. | |
Public Member Functions | |
| bool | GaussDecompose (FixedArray< int, N > &perm, double EPSWEIGHT=1E-3) |
| Perform gauss decomposition of the matrix, which can and should be used instead of computing the inverse of a matrix. | |
| void | GaussSolve (const PermutationVector_t &perm, const Column< N, value > &b, Column< N, value > &x) const |
Instead of inverting a matrix, solve a linear system of equations ![]() | |
| value | maxoffd () const |
| Return maximum off-diagonal element of n by n square matrix A. | |
| Quadratic () | |
| Default constructor. | |
| Quadratic (const LowerTriangular< N, value > &) | |
| Construct a quadratic matrix from a lower triangular matrix. | |
| template<dimension_t C, class ValueA , class ValueB > | |
| Quadratic (const Matrix< N, C, ValueA > &A, const Matrix< C, N, ValueB > &B) | |
| Construct quadratic matrix from multiplication for two fitting non-quadratic matrices. | |
| template<class OtherValue > | |
| Quadratic (const Matrix< N, N, OtherValue > &A) | |
| Construct quadratic matrix from base class. | |
Public Member Functions inherited from Eagle::Matrix< N, N, Value > | |
| constexpr const Matrix_t & | matrix () const |
| yield matrix here, useful for derived classes. | |
| constexpr | Matrix () |
| Default constructor. | |
| constexpr | Matrix (const Matrix &M) |
| Copy constructor. | |
| constexpr | Matrix (const Base_t &V) |
| Construct matrix from linear vector. | |
| constexpr | Matrix (const std::array< T, 16 > &Init) |
| Construct matrix from initializer list. | |
| constexpr | Matrix (const Matrix &A, const Value &V, const Operator<' *'> &M) |
| Computational constructor for multiplying matrix by scalar. | |
| constexpr | Matrix (const Value &V, const Matrix &A, const Operator<' *'> &M) |
| Computational constructor for multiplying scalar by matrix. | |
| constexpr | Matrix (const Matrix &A, const Value &V, const Operator<'/'> &Op) |
| Computational constructor for dividing matrix by scalar. | |
| constexpr | Matrix (const Matrix &A, const Matrix &B, const Operator<'+'> &Op) |
| Computational constructor for matrix addition. | |
| constexpr | Matrix (const Matrix &A, const Matrix &B, const Operator<'-'> &Op) |
| Computational constructor for matrix subtraction. | |
| constexpr | Matrix (const FixedArray< AType, R *C > &l, const FixedArray< BType, R *C > &r, const Operator< CompType > &Op) |
| Generic computational constructor for two arrays of size compatible with the matrix. | |
| constexpr | Matrix (const FixedArray< Type, R *C > &Data) |
| Explicit constructor from arbitrary compatible type. | |
| constexpr | Matrix (const FixedArray< ValueType, R > &l, const Operator< CompType > &Op, const Value &scalar) |
| Generic computational constructor for vector/scalar operations. | |
| constexpr | Matrix (const Operator< CompType > &Op, const Value &scalar, const FixedArray< ValueType, R > &l) |
| Generic computational constructor for scalar/vector operations. | |
| constexpr | Matrix (const Matrix &A, const Operator<'-'> &Op) |
| Computational constructor for unary minus. | |
| constexpr | Matrix (const Matrix< R, M, ValueA > &A, const Matrix< M, C, ValueB > &B, const Operator<' *'> &) |
Matrix multiplication ![]() | |
| constexpr | Matrix (const Matrix< R, M, ValueA > &A, const Matrix< C, M, ValueB > &B, const Operator<' *','~'> &) |
Transposed matrix multiplication ![]() | |
| constexpr | Matrix (const Matrix< R, M, Value > &A, const Matrix< C, M, Value > &B, const Mult &, const TransposeOperation &) |
Matrix multiplication ![]() | |
| constexpr | Matrix (const Matrix< M, R, Value > &A, const Matrix< M, C, Value > &B, const TransposeOperation &, const Mult &) |
Matrix multiplication ![]() | |
| constexpr | Matrix (const Matrix< R, C, Value > &A, const LowerTriangular< C, Value > &B, const Mult &) |
Matrix multiplication ![]() | |
| constexpr | Matrix (const Matrix< C, R, Value > &A, const LowerTriangular< C, Value > &B, const TransposeOperation &, const Mult &) |
Matrix multiplication ![]() | |
| constexpr const Column< R, Value > & | column (int i) const |
| Return the ith column of this matrix. | |
| constexpr Column< R, Value > & | column (int i) |
| Return the ith column of this matrix, writeable. | |
| constexpr Value & | operator() (dimension_t row, dimension_t column) |
| Access element for writing. | |
| constexpr const Value & | operator() (dimension_t row, dimension_t column) const |
| Element access operation for reading. | |
| constexpr Row_t | row (dimension_t rowNr) |
| Return writable reference to the ith row of this matrix. | |
| constexpr const Row_t | row (dimension_t rowNr) const |
| Return read-only reference to the ith row of this matrix. | |
| constexpr const auto | operator[] (dimension_t r) const |
| Allow nested access to matrix elements via bracket operator. | |
| constexpr auto & | operator[] (dimension_t r) |
| Allow nested access to matrix elements via bracket operator. | |
Public Member Functions inherited from Eagle::Vector< Value, R *C > | |
| Base_t & | fixed_array () |
| Provide access to the base class, writable. | |
| const Base_t & | fixed_array () const |
| Provide access to the base class, read-only. | |
| Vector & | operator*= (const Value &value) |
| Self-multiplication. | |
| Vector & | operator+= (const Vector &v) |
| Self-addition. | |
| Vector | operator- () const |
| Unary minus. | |
| Vector & | operator-= (const Vector &v) |
| Self-subtraction. | |
| Vector & | operator/= (const Value &value) |
| Self-division. | |
| Assignment< Vector, 0 > | operator= (const scalar &x) |
| Assign first element with scalar and use consecutive comma expressions for assignment of further elements As such a Vector may be assigned as. | |
| Vector & | operator= (const Vector &src) |
| Assignment operator. | |
| void | set (const V &value) |
| Assign all values to the same scalar. | |
| constexpr | Vector () |
| Default constructor. | |
| Vector (const FixedArray< AType, n > &l, const FixedArray< BType, n > &r, const Operator< CompType > &Op) | |
| Computational constructor for binary operations on two fixed arrays, calls the Operator's ternary() member function for each element. | |
| Vector (const FixedArray< AType, n > &l, const Operator< CompType > &, const ScalarType &scalar) | |
| Computational constructor from vector with scalar, calls the Operator's ternary() member function for each element and the scalar as its 3rd argument. | |
| Vector (const FixedArray< InputType, SIZE > &V) | |
| Type conversion constructor. | |
| Vector (const Indicable &I, const AnyType &) | |
| Construct from indicable object, i.e. | |
| Vector (const Operator< CompType > &, const ScalarType &scalar, const FixedArray< AType, n > &v) | |
| Computational constructor from scalar with vector calls the Operator's ternary() member function for each element and the scalar as its 2nd argument. | |
| constexpr | Vector (const std::initializer_list< InputType > &Init) |
| Construct from a initialization array. | |
| Vector (const Value &a) | |
| Convenience Constructor: initialize the first element. | |
| Vector (const Value &a, const Value &b) | |
| Convenience Constructor: initialize the first two elements. | |
| Vector (const Value &a, const Value &b, const Value &c) | |
| Convenience Constructor: initialize the first three elements. | |
| Vector (const Value &a, const Value &b, const Value &c, const Value &d) | |
| Convenience Constructor: initialize the first four elements. | |
| Vector (const Vector &l, const Vector &r, const Operator< CompType > &) | |
| Computational constructor for binary operations on two vectors calls the Operator's ternary() member function for each element. | |
| Vector (const Vector &NV, const Sub &, const Sub &) | |
| Computational constructor for unary minus. | |
| constexpr | Vector (const Vector &v) |
| Copy constructor. | |
| Vector (const Vector &v, const Operator<'-'> &) | |
| Unitary minus computational constructor Applies the unitary minus to each element. | |
| Vector (const Vector< InputType, SIZE > &V) | |
| Type conversion constructor. | |
Public Member Functions inherited from Eagle::FixedArray< value, N > | |
| void | expandMinMax (FixedArray &MinValues, FixedArray &MaxValues) const |
| Expand a range given by MinValues,MaxValues to include the values of this array, done per component. | |
| constexpr | FixedArray () noexcept |
| Default constructor. | |
| template<class AType , class BType , OperatorID_t CompType> | |
| constexpr | FixedArray (const FixedArray< AType, N > &l, const FixedArray< BType, N > &r, const Operator< CompType > &) |
| Computational constructor for binary operations on two fixed arrays, calls the Operator's ternary() member function for each element. | |
| template<typename T , dimension_t M> | |
| constexpr | FixedArray (const FixedArray< T, M > &F, const T &DefaultValue) |
| Construct array from another array type of variable length. | |
| template<typename T > | |
| constexpr | FixedArray (const FixedArray< T, N > &F) |
| Automatic type conversion function. | |
| template<typename T , typename ConversionFunctor > | |
| constexpr | FixedArray (const FixedArray< T, N > &F, const ConversionFunctor &CF, const FA_CONVERT &) |
| Construct array from another array type of same length. | |
| template<class InitType > | |
| constexpr | FixedArray (const std::initializer_list< InitType > &Init) |
| Construct from a initialization array. | |
| constexpr | FixedArray (const value &a) |
| Convenience Constructor: initialize the first element. | |
| constexpr | FixedArray (const value &a, const value &b) |
| Convenience Constructor: initialize the first two elements. | |
| FixedArray (const value &a, const value &b, const value &c) | |
| Convenience Constructor: initialize the first three elements. | |
| constexpr | FixedArray (const value &a, const value &b, const value &c, const value &d) |
| Convenience Constructor: initialize the first four elements. | |
| constexpr | FixedArray (const value &a, const value &b, const value &c, const value &d, const value &e) |
| Convenience Constructor: initialize the first five elements. | |
| constexpr value & | get (int i) |
| writable element access | |
| constexpr const value & | get (int i) const |
| read-only element access | |
| template<int subsize, int offset> | |
| constexpr const FixedArray< value, subsize > * | get_subarray () const |
| Helper class for retrieve a subset of the current array. | |
| constexpr const FixedArray< value, SIZE-1 > & | get_subdim () const |
| Mainly introduced because of Interpolate::operator[]. | |
| const FixedArray_t & | getFixedArray () const noexcept |
| convenience function for base classes | |
| FixedArray_t & | getFixedArray () noexcept |
| convenience function for base classes | |
| constexpr value | getMax () const |
| Compute the maximum element value of this array. | |
| constexpr value | getMin () const |
| Compute the maximum element value of this array. | |
| template<typename T > | |
| constexpr bool | operator!= (const FixedArray< T, N > &F) const |
| Compare two arrays. | |
| template<typename T > | |
| constexpr bool | operator== (const FixedArray< T, N > &F) const |
| Compare two arrays. | |
| constexpr value & | operator[] (int i) |
| writeable element access operator | |
| constexpr const value & | operator[] (int i) const |
| read-only element access operator | |
| constexpr value * | ptr (int i=0) noexcept |
| Return a pointer to the ith element, no range checking. | |
| template<class Value > | |
| constexpr void | set (const Value &x) |
| Set all array elements to the same value. | |
| void | setFromArray (const value *x, int length=SIZE, int offset=0) |
| Set all array elements to an array's element value. | |
| void | sort (FixedArray< int, N > &I) const |
| Sort the elements of an array into the index array. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Eagle::FixedArray< value, N > | |
| template<typename T , typename ConversionFunctor > | |
| static constexpr FixedArray | convert (const FixedArray< T, N > &F, const ConversionFunctor &CF) |
| Perform a type conversion on a given fixed array into another basis type: | |
| static constexpr dimension_t | size () |
| The number of elements here. | |
Protected Attributes inherited from Eagle::FixedArray< value, N > | |
| value | data [SIZE] |
| The actual data values, intentional no-initialization for data member, which increases performance on vector creation. | |
Related Symbols inherited from Eagle::Matrix< N, N, Value > | |
| void | UnsortedEigenVectors (LowerTriangular< N, value > &A, Quadratic< N, value > &RRmatrix, Row< N, value > &E, double precision=1E-10) |
| Eigenvalues and eigenvectors of a real symmetric matrix. | |
An n x n matrix (i.e., a vector of length n*n), stored row-wise: that is, A(i,j) = A[ij], where ij = i*n + j.
|
inline |
Perform gauss decomposition of the matrix, which can and should be used instead of computing the inverse of a matrix.
The permutation operations during the composition is stored in the perm parameter, which then needs to be provided to the GaussSolve() routine.
| EPSWEIGHT | square root of the absolut precision of the computation |
References Eagle::Matrix< N, N, Value >::matrix(), Eagle::norm(), and Eagle::Matrix< R, C, Value >::row().
|
inline |
Instead of inverting a matrix, solve a linear system of equations 
| perm | A permutation vector as computed by GaussDecompose() |
| b | The right-hand side of the equation |
| x | On return, will contain the solution. |
The result in x then is < 16.809817, -24.730900, 16.013638 >.
References Eagle::Matrix< N, N, Value >::matrix().