35#define KIDS_LINALG_BIND_EIGEN_NOT_USE_TEMPLATE
37#ifndef KIDS_LINALG_BIND_EIGEN_NOT_USE_TEMPLATE
264 size_t N1,
size_t N2,
size_t N0,
size_t N3);
279 size_t N1,
size_t N2,
size_t N0,
size_t N3);
294 size_t N1,
size_t N2,
size_t N0,
size_t N3);
309 size_t N1,
size_t N2,
size_t N0,
size_t N3);
324 size_t N1,
size_t N2,
size_t N0,
size_t N3);
339 size_t N1,
size_t N2,
size_t N0,
size_t N3);
354 size_t N1,
size_t N2,
size_t N0,
size_t N3);
369 size_t N1,
size_t N2,
size_t N0,
size_t N3);
definition of types in the project and some utiles for types
#define ARRAY_MATMUL_TRANS2(_A, _B, _C, _n1, _n2, _n3)
#define ARRAY_MATMUL3_TRANS1(_A, _B, _C, _D, _n1, _n2, _n0, _n3)
#define ARRAY_MATMUL3_TRANS2(_A, _B, _C, _D, _n1, _n2, _n0, _n3)
#define ARRAY_MATMUL(_A, _B, _C, _n1, _n2, _n3)
#define ARRAY_EYE(_A, _n)
#define ARRAY_MATMUL_TRANS1(_A, _B, _C, _n1, _n2, _n3)
#define ARRAY_TRACE2(_B, _C, _n1, _n2)
#define ARRAY_CLEAR(_A, _n)
Provide linalg APIs by templating.
< http://warp.povusers.org/FunctionParser/fparser.html
bool ARRAY_ISFINITE(kids_real *A, size_t n)
Check if all elements of a real array are finite.
void PseudoInverse(kids_real *A, kids_real *invA, size_t N, kids_real e=1E-5)
Compute the pseudo-inverse of a matrix for real numbers.
void ARRAY_CORRECT_U(kids_complex *U, size_t N)
void ARRAY_MAT_DIAG(kids_real *A, kids_real *B, size_t N1)
Copy the diagonal elements from matrix B to matrix A for real matrices.
kids_real ARRAY_INNER_TRANS1(kids_real *B, kids_real *C, size_t N1)
Compute the inner product of the transpose of B with C for real matrices.
void ARRAY_INV_MAT(kids_complex *invA, kids_complex *A, size_t N)
Compute the inverse of a matrix for complex numbers.
void ARRAY_TRANSPOSE(kids_real *A, size_t N1, size_t N2)
void ARRAY_MAT_OFFD(kids_real *A, kids_real *B, size_t N1)
Copy the off-diagonal elements from matrix B to matrix A for real matrices.
double kids_real
Alias for real number type.
std::complex< double > kids_complex
Alias for complex number type.
void ARRAY_OUTER_TRANS2(kids_real *A, kids_real *B, kids_real *C, size_t N1, size_t N2)
Perform outer product with transpose where A = B^T * C for real matrices.
kids_real ARRAY_INNER_VMV_TRANS1(kids_real *B, kids_real *C, kids_real *D, size_t N1, size_t N2)
Compute the inner product of the transpose of the real vector B with the matrix C,...
void EigenSolve(kids_real *E, kids_real *T, kids_real *A, size_t N)
Solve the eigenvalue problem for real matrices.
kids_real ARRAY_TRACE2_DIAG(kids_real *B, kids_real *C, size_t N1, size_t N2)
Compute the trace of the diagonal elements of the matrix product B * C for real matrices.
void ARRAY_EXP_MAT_GENERAL(kids_complex *expkA, kids_complex *A, kids_complex k, size_t N)
void MatrixInverse(kids_real *invA, kids_real *A, size_t N)
Compute the inverse of a matrix for real numbers.
void LinearSolve(kids_real *x, kids_real *A, kids_real *b, size_t N)
Solve a linear system Ax = b for real matrices.
kids_real ARRAY_TRACE2_OFFD(kids_real *B, kids_real *C, size_t N1, size_t N2)
Compute the trace of the off-diagonal elements of the matrix product B * C for real matrices.
int kids_int
Alias for integer type.