ergo
matrix_typedefs.h
Go to the documentation of this file.
1 /* Ergo, version 3.3, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2013 Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Primary academic reference:
19  * Kohn−Sham Density Functional Theory Electronic Structure Calculations
20  * with Linearly Scaling Computational Time and Memory Usage,
21  * Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek,
22  * J. Chem. Theory Comput. 7, 340 (2011),
23  * <http://dx.doi.org/10.1021/ct100611z>
24  *
25  * For further information about Ergo, see <http://www.ergoscf.org>.
26  */
27 
34 #ifndef MATRIX_TYPEDEFS_HEADER
35 #define MATRIX_TYPEDEFS_HEADER
36 
37 
38 #include "realtype.h"
39 
40 #include "Matrix.h"
41 #include "Vector.h"
42 #include "MatrixSymmetric.h"
43 #include "MatrixTriangular.h"
44 #include "MatrixGeneral.h"
45 #include "VectorGeneral.h"
46 #include "gblas.h"
47 
48 
49 // Matrix typedefs for different levels
55 
56 // Vector typedefs for different levels
62 
63 // perm and matri are the types actually used.
64 // This is the point where we choose how many levels to use.
65 #define MATLEVEL 5
66 typedef Mat_5 Matri;
67 typedef Vec_5 Vectorrr;
68 
69 // The typedefs for symmMatrix, triangMatrix, normalMatrix
70 // are the same regardless of how many levels are used.
75 
77 
78 #endif
mat::Vector< ergo_real, Vec_3 > Vec_4
Definition: matrix_typedefs.h:60
General vector class.
mat::MatrixTriangular< ergo_real, Matri > triangMatrix
Definition: matrix_typedefs.h:72
mat::Interval< ergo_real > intervalType
Definition: matrix_typedefs.h:76
Vector class.
Definition: Matrix.h:76
mat::VectorGeneral< ergo_real, Vectorrr > generalVector
Definition: matrix_typedefs.h:74
mat::Matrix< ergo_real, Mat_1 > Mat_2
Definition: matrix_typedefs.h:51
mat::Vector< ergo_real, ergo_real > Vec_1
Definition: matrix_typedefs.h:57
C++ interface to a subset of BLAS and LAPACK.
Triangular matrix class.
mat::Matrix< ergo_real, Mat_3 > Mat_4
Definition: matrix_typedefs.h:53
mat::Matrix< ergo_real, ergo_real > Mat_1
Definition: matrix_typedefs.h:50
mat::Vector< ergo_real, Vec_1 > Vec_2
Definition: matrix_typedefs.h:58
Symmetric matrix class.
Matrix class and heart of the matrix library.
Definition: Matrix.h:113
mat::MatrixSymmetric< ergo_real, Matri > symmMatrix
Definition: matrix_typedefs.h:71
The heart of the matrix library.
General matrix class.
Vec_5 Vectorrr
Definition: matrix_typedefs.h:67
mat::Matrix< ergo_real, Mat_4 > Mat_5
Definition: matrix_typedefs.h:54
Copyright(c) Emanuel Rubensson 2006.
Mat_5 Matri
Definition: matrix_typedefs.h:66
mat::Vector< ergo_real, Vec_2 > Vec_3
Definition: matrix_typedefs.h:59
mat::Vector< ergo_real, Vec_4 > Vec_5
Definition: matrix_typedefs.h:61
mat::MatrixGeneral< ergo_real, Matri > normalMatrix
Definition: matrix_typedefs.h:73
mat::Matrix< ergo_real, Mat_2 > Mat_3
Definition: matrix_typedefs.h:52