atlas  0.6
matreduc.h
Go to the documentation of this file.
1 /*
2  matreduc.h
3 
4  Copyright (C) 2009 Marc van Leeuwen
5  part of the Atlas of Lie Groups and Representations
6 
7  For license information see the LICENSE file
8 */
9 
10 #ifndef MATREDUC_H
11 # define MATREDUC_H
12 
13 #include <vector>
14 #include "matrix_fwd.h"
15 #include "bitmap_fwd.h"
16 
17 #include <stdexcept>
18 
19 namespace atlas {
20 
21 namespace matreduc {
22 
23 template<typename C>
24  bitmap::BitMap column_echelon(matrix::PID_Matrix<C>& vectors);
25 
26 template<typename C> // find |row,col| making |row*M*col| (returned) diagonal
27  std::vector<C> diagonalise(matrix::PID_Matrix<C> M, // by value
28  matrix::PID_Matrix<C>& row,
29  matrix::PID_Matrix<C>& col);
30 template<typename C>
31  matrix::PID_Matrix<C> adapted_basis(matrix::PID_Matrix<C> M, // by value
32  std::vector<C>& diagonal);
33 template<typename C>
34  matrix::PID_Matrix<C> Smith_basis(const matrix::PID_Matrix<C>& M,
35  std::vector<C>& diagonal);
36 
37 template<typename C> // find a solution |x| for |A*x==b|
38  matrix::Vector<C> find_solution(const matrix::PID_Matrix<C>& A,
39  matrix::Vector<C> b); // by value
40 
41 } // |namespace matreduc|
42 } // |namespace atlas|
43 
44 #endif
Definition: lists.cpp:13
std::vector< C > diagonalise(matrix::PID_Matrix< C > M, matrix::PID_Matrix< C > &row, matrix::PID_Matrix< C > &col)
Definition: matreduc.cpp:183
bitmap::BitMap column_echelon(matrix::PID_Matrix< C > &M)
Definition: matreduc.cpp:142
matrix::Vector< C > find_solution(const matrix::PID_Matrix< C > &A, matrix::Vector< C > b)
Definition: matreduc.cpp:415
matrix::PID_Matrix< C > adapted_basis(matrix::PID_Matrix< C > M, std::vector< C > &diagonal)
Definition: matreduc.cpp:298
Definition: Atlas.h:38
matrix::PID_Matrix< C > Smith_basis(const matrix::PID_Matrix< C > &M, std::vector< C > &diagonal)
Definition: matreduc.cpp:386