MyraMath
inverse.h
Go to the documentation of this file.
1 // ========================================================================= //
2 // This file is part of MyraMath, copyright (c) 2014-2019 by Ryan A Chilton //
3 // and distributed by MyraCore, LLC. See LICENSE.txt for license terms. //
4 // ========================================================================= //
5 
6 #ifndef MYRAMATH_DENSE_INVERSE_H
7 #define MYRAMATH_DENSE_INVERSE_H
8 
15 
16 namespace myra {
17 
18 // Forward declarations.
19 template<class Number> class Matrix;
20 template<class Number> class CMatrixRange;
21 template<class Number> class MatrixRange;
22 template<class Number> class LowerMatrix;
23 template<class Number> class LowerMatrixRange;
24 template<class Number> class DiagonalMatrix;
25 
27 LIBPUBLIC void invert_inplace(const MatrixRange<NumberS>& A);
29 LIBPUBLIC void invert_inplace(const MatrixRange<NumberD>& A);
30 LIBPUBLIC void invert_inplace(const MatrixRange<NumberC>& A);
31 LIBPUBLIC void invert_inplace(const MatrixRange<NumberZ>& A);
33 
35 LIBPUBLIC Matrix<NumberS> inverse(const CMatrixRange<NumberS>& A);
37 LIBPUBLIC Matrix<NumberD> inverse(const CMatrixRange<NumberD>& A);
38 LIBPUBLIC Matrix<NumberC> inverse(const CMatrixRange<NumberC>& A);
39 LIBPUBLIC Matrix<NumberZ> inverse(const CMatrixRange<NumberZ>& A);
41 
43 LIBPUBLIC void invert_inplace(DiagonalMatrix<NumberS>& A);
45 LIBPUBLIC void invert_inplace(DiagonalMatrix<NumberD>& A);
46 LIBPUBLIC void invert_inplace(DiagonalMatrix<NumberC>& A);
47 LIBPUBLIC void invert_inplace(DiagonalMatrix<NumberZ>& A);
49 
51 LIBPUBLIC DiagonalMatrix<NumberS> inverse(const DiagonalMatrix<NumberS>& A);
53 LIBPUBLIC DiagonalMatrix<NumberD> inverse(const DiagonalMatrix<NumberD>& A);
54 LIBPUBLIC DiagonalMatrix<NumberC> inverse(const DiagonalMatrix<NumberC>& A);
55 LIBPUBLIC DiagonalMatrix<NumberZ> inverse(const DiagonalMatrix<NumberZ>& A);
57 
59 LIBPUBLIC void invert_inplace(const LowerMatrixRange<NumberS>& A);
61 LIBPUBLIC void invert_inplace(const LowerMatrixRange<NumberD>& A);
62 LIBPUBLIC void invert_inplace(const LowerMatrixRange<NumberC>& A);
63 LIBPUBLIC void invert_inplace(const LowerMatrixRange<NumberZ>& A);
65 
67 LIBPUBLIC LowerMatrix<NumberS> inverse(const LowerMatrix<NumberS>& A);
69 LIBPUBLIC LowerMatrix<NumberD> inverse(const LowerMatrix<NumberD>& A);
70 LIBPUBLIC LowerMatrix<NumberC> inverse(const LowerMatrix<NumberC>& A);
71 LIBPUBLIC LowerMatrix<NumberZ> inverse(const LowerMatrix<NumberZ>& A);
73 
74 } // namespace
75 
76 #endif
Definition: syntax.dox:1
Various utility functions/classes related to scalar Number types.