![]() |
KIDS
ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
|
Provide linalg APIs by templating. More...
#include <cmath>
#include <complex>
#include "Eigen/Dense"
#include "Eigen/QR"
#include "kids/Types.h"
Go to the source code of this file.
Macros | |
#define | EigMajor Eigen::RowMajor |
Typedefs | |
template<class T > | |
using | EigVX = Eigen::Matrix<T, Eigen::Dynamic, 1, EigMajor> |
template<class T > | |
using | EigMX = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, EigMajor> |
template<class T > | |
using | EigAX = Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic, EigMajor> |
typedef EigVX< kids_real > | EigVXr |
typedef EigVX< kids_complex > | EigVXc |
typedef EigMX< kids_real > | EigMXr |
typedef EigMX< kids_complex > | EigMXc |
typedef EigMX< kids_real > | EigAXr |
typedef EigMX< kids_complex > | EigAXc |
typedef Eigen::Map< EigVXr > | MapVXr |
typedef Eigen::Map< EigVXc > | MapVXc |
typedef Eigen::Map< EigMXr > | MapMXr |
typedef Eigen::Map< EigMXc > | MapMXc |
typedef Eigen::Map< EigAXr > | MapAXr |
typedef Eigen::Map< EigAXc > | MapAXc |
Functions | |
template<class T > | |
bool | ARRAY_ISFINITE (T *A, size_t n) |
template<class T > | |
void | ARRAY_CLEAR (T *A, size_t N) |
template<class TA , class TB , class TC > | |
void | ARRAY_MATMUL (TA *A, TB *B, TC *C, size_t N1, size_t N2, size_t N3) |
template<class TA , class TB , class TC > | |
void | ARRAY_MATMUL_TRANS1 (TA *A, TB *B, TC *C, size_t N1, size_t N2, size_t N3) |
template<class TA , class TB , class TC > | |
void | ARRAY_MATMUL_TRANS2 (TA *A, TB *B, TC *C, size_t N1, size_t N2, size_t N3) |
template<class T > | |
void | ARRAY_OUTER_TRANS2 (T *A, T *B, T *C, size_t N1, size_t N2) |
template<class TA , class T , class TC > | |
void | ARRAY_MATMUL3_TRANS1 (TA *A, T *B, TC *C, T *D, size_t N1, size_t N2, size_t N0, size_t N3) |
template<class TA , class T , class TC > | |
void | ARRAY_MATMUL3_TRANS2 (TA *A, T *B, TC *C, T *D, size_t N1, size_t N2, size_t N0, size_t N3) |
template<class TB , class TC > | |
TB | ARRAY_TRACE2 (TB *B, TC *C, size_t N1, size_t N2) |
template<class TB , class TC > | |
TB | ARRAY_TRACE2_DIAG (TB *B, TC *C, size_t N1, size_t N2) |
template<class TB , class TC > | |
TB | ARRAY_TRACE2_OFFD (TB *B, TC *C, size_t N1, size_t N2) |
template<class TB , class TC > | |
TB | ARRAY_INNER_TRANS1 (TB *B, TC *C, size_t N1) |
template<class TB , class TC , class TD > | |
TB | ARRAY_INNER_VMV_TRANS1 (TB *B, TC *C, TD *D, size_t N1, size_t N2) |
template<class T > | |
void | ARRAY_EYE (T *A, size_t n) |
template<class TA , class TB > | |
void | ARRAY_MAT_DIAG (TA *A, TB *B, size_t N1) |
template<class TA , class TB > | |
void | ARRAY_MAT_OFFD (TA *A, TB *B, size_t N1) |
void | LinearSolve (kids_real *x, kids_real *A, kids_real *b, size_t N) |
void | EigenSolve (kids_real *E, kids_real *T, kids_real *A, size_t N) |
void | EigenSolve (kids_real *E, kids_complex *T, kids_complex *A, size_t N) |
void | EigenSolve (kids_complex *E, kids_complex *T, kids_complex *A, size_t N) |
void | PseudoInverse (kids_real *A, kids_real *invA, size_t N, kids_real e=1E-5) |
Provide linalg APIs by templating.
using Eigen APIs
Copyright (c) 2024 Xin He, Liu-GroupThis software is a product of Xin's PhD research conducted by Professor Liu's Group at the College of Chemistry and Molecular Engineering, Peking University. All rights are reserved by Peking University. You should have received a copy of the GNU Lesser General Public License along with this software. If not, see https://www.gnu.org/licenses/lgpl-3.0.en.html
Date | Description |
---|---|
2024-04-25 | rename to linalg_tpl.h and clean code. please use linalg.h instead! |
Definition in file linalg_tpl.h.
#define EigMajor Eigen::RowMajor |
Definition at line 42 of file linalg_tpl.h.
Definition at line 51 of file linalg_tpl.h.
typedef EigMX<kids_complex> EigAXc |
Definition at line 58 of file linalg_tpl.h.
Definition at line 57 of file linalg_tpl.h.
Definition at line 48 of file linalg_tpl.h.
typedef EigMX<kids_complex> EigMXc |
Definition at line 56 of file linalg_tpl.h.
Definition at line 55 of file linalg_tpl.h.
Definition at line 45 of file linalg_tpl.h.
typedef EigVX<kids_complex> EigVXc |
Definition at line 54 of file linalg_tpl.h.
Definition at line 53 of file linalg_tpl.h.
Definition at line 64 of file linalg_tpl.h.
Definition at line 63 of file linalg_tpl.h.
Definition at line 62 of file linalg_tpl.h.
Definition at line 61 of file linalg_tpl.h.
Definition at line 60 of file linalg_tpl.h.
Definition at line 59 of file linalg_tpl.h.
void ARRAY_CLEAR | ( | T * | A, |
size_t | N ) |
Definition at line 74 of file linalg_tpl.h.
void ARRAY_EYE | ( | T * | A, |
size_t | n ) |
Definition at line 182 of file linalg_tpl.h.
TB ARRAY_INNER_TRANS1 | ( | TB * | B, |
TC * | C, | ||
size_t | N1 ) |
Definition at line 167 of file linalg_tpl.h.
TB ARRAY_INNER_VMV_TRANS1 | ( | TB * | B, |
TC * | C, | ||
TD * | D, | ||
size_t | N1, | ||
size_t | N2 ) |
Definition at line 174 of file linalg_tpl.h.
bool ARRAY_ISFINITE | ( | T * | A, |
size_t | n ) |
Definition at line 67 of file linalg_tpl.h.
void ARRAY_MAT_DIAG | ( | TA * | A, |
TB * | B, | ||
size_t | N1 ) |
Definition at line 188 of file linalg_tpl.h.
References ARRAY_CLEAR.
void ARRAY_MAT_OFFD | ( | TA * | A, |
TB * | B, | ||
size_t | N1 ) |
Definition at line 197 of file linalg_tpl.h.
void ARRAY_MATMUL | ( | TA * | A, |
TB * | B, | ||
TC * | C, | ||
size_t | N1, | ||
size_t | N2, | ||
size_t | N3 ) |
Definition at line 79 of file linalg_tpl.h.
void ARRAY_MATMUL3_TRANS1 | ( | TA * | A, |
T * | B, | ||
TC * | C, | ||
T * | D, | ||
size_t | N1, | ||
size_t | N2, | ||
size_t | N0, | ||
size_t | N3 ) |
Definition at line 108 of file linalg_tpl.h.
void ARRAY_MATMUL3_TRANS2 | ( | TA * | A, |
T * | B, | ||
TC * | C, | ||
T * | D, | ||
size_t | N1, | ||
size_t | N2, | ||
size_t | N0, | ||
size_t | N3 ) |
Definition at line 125 of file linalg_tpl.h.
void ARRAY_MATMUL_TRANS1 | ( | TA * | A, |
TB * | B, | ||
TC * | C, | ||
size_t | N1, | ||
size_t | N2, | ||
size_t | N3 ) |
Definition at line 87 of file linalg_tpl.h.
void ARRAY_MATMUL_TRANS2 | ( | TA * | A, |
TB * | B, | ||
TC * | C, | ||
size_t | N1, | ||
size_t | N2, | ||
size_t | N3 ) |
Definition at line 95 of file linalg_tpl.h.
void ARRAY_OUTER_TRANS2 | ( | T * | A, |
T * | B, | ||
T * | C, | ||
size_t | N1, | ||
size_t | N2 ) |
Definition at line 103 of file linalg_tpl.h.
References ARRAY_MATMUL_TRANS2.
TB ARRAY_TRACE2 | ( | TB * | B, |
TC * | C, | ||
size_t | N1, | ||
size_t | N2 ) |
Definition at line 142 of file linalg_tpl.h.
TB ARRAY_TRACE2_DIAG | ( | TB * | B, |
TC * | C, | ||
size_t | N1, | ||
size_t | N2 ) |
Definition at line 150 of file linalg_tpl.h.
TB ARRAY_TRACE2_OFFD | ( | TB * | B, |
TC * | C, | ||
size_t | N1, | ||
size_t | N2 ) |
Definition at line 158 of file linalg_tpl.h.
|
inline |
Definition at line 233 of file linalg_tpl.h.
|
inline |
Definition at line 224 of file linalg_tpl.h.
Definition at line 215 of file linalg_tpl.h.
Definition at line 208 of file linalg_tpl.h.
Definition at line 242 of file linalg_tpl.h.