36 #ifndef MADNESS_LINALG_TENSOR_LAPACK_H__INCLUDED
37 #define MADNESS_LINALG_TENSOR_LAPACK_H__INCLUDED
55 void svd(
const Tensor<T>&
a, Tensor<T>& U,
56 Tensor<
typename Tensor<T>::scalar_type >& s, Tensor<T>& VT);
61 Tensor<
typename Tensor<T>::scalar_type >& s, Tensor<T>& VT, Tensor<T>& work);
67 void gesv(
const Tensor<T>&
a,
const Tensor<T>&
b, Tensor<T>& x);
73 void gelss(
const Tensor<T>&
a,
const Tensor<T>&
b,
double rcond,
74 Tensor<T>& x, Tensor<
typename Tensor<T>::scalar_type >& s,
75 long &rank, Tensor<
typename Tensor<T>::scalar_type>& sumsq);
81 void syev(
const Tensor<T>& A,
82 Tensor<T>&
V, Tensor<
typename Tensor<T>::scalar_type >& e);
88 void gesv(
const Tensor<T>&
a,
const Tensor<T>&
b, Tensor<T>& x);
95 void sygv(
const Tensor<T>& A,
const Tensor<T>&
B,
int itype,
96 Tensor<T>&
V, Tensor<
typename Tensor<T>::scalar_type >& e);
98 #ifdef MADNESS_HAS_ELEMENTAL
103 template <
typename T>
104 void sygvp(World& world,
const Tensor<T>& A,
const Tensor<T>&
B,
int itype,
105 Tensor<T>&
V, Tensor<
typename Tensor<T>::scalar_type >& e);
110 template <
typename T>
111 void gesvp(World& world,
const Tensor<T>&
a,
const Tensor<T>&
b, Tensor<T>& x);
118 template <
typename T>
123 void qr(Tensor<T>& A, Tensor<T>& R);
127 void lq(Tensor<T>& A, Tensor<T>& L);
129 template <
typename T>
130 void geqp3(Tensor<T>& A, Tensor<T>& tau, Tensor<integer>& jpvt);
138 template <
typename T>
139 void orgqr(Tensor<T>& A,
const Tensor<T>& tau);
159 #endif // MADNESS_LINALG_TENSOR_LAPACK_H__INCLUDED
Corresponding C and Fortran types.
Tensor< double > B
Definition: tdse1d.cc:167
void gesv(const Tensor< T > &a, const Tensor< T > &b, Tensor< T > &x)
Solve Ax = b for general A using the LAPACK *gesv routines.
Definition: lapack.cc:339
void qr(Tensor< T > &A, Tensor< T > &R)
compute the QR decomposition of the matrix A
Definition: lapack.cc:608
void gelss(const Tensor< T > &a, const Tensor< T > &b, double rcond, Tensor< T > &x, Tensor< typename Tensor< T >::scalar_type > &s, long &rank, Tensor< typename Tensor< T >::scalar_type > &sumsq)
Solve Ax = b for general A using the LAPACK *gelss routines.
Definition: lapack.cc:393
void lq(Tensor< T > &A, Tensor< T > &R)
compute the LQ decomposition of the matrix A = L Q
Definition: lapack.cc:630
double V(const Vector< double, 3 > &r)
Definition: apps/ii/hatom_energy.cc:46
void syev(const Tensor< T > &A, Tensor< T > &V, Tensor< typename Tensor< T >::scalar_type > &e)
Real-symmetric or complex-Hermitian eigenproblem.
Definition: lapack.cc:478
Defines and implements most of Tensor.
void sygvp(World &world, const Tensor< T > &a, const Tensor< T > &B, int itype, Tensor< T > &V, Tensor< typename Tensor< T >::scalar_type > &e)
Definition: elem.h:508
FLOAT a(int j, FLOAT z)
Definition: y1.cc:86
bool test_tensor_lapack()
Test the Tensor-LAPACK interface ... currently always returns true!
Definition: lapack.cc:908
void svd(const Tensor< T > &a, Tensor< T > &U, Tensor< typename Tensor< T >::scalar_type > &s, Tensor< T > &VT)
Compute the singluar value decomposition of an n-by-m matrix using *gesvd.
Definition: lapack.cc:273
void gesvp(World &world, const Tensor< T > &a, const Tensor< T > &b, Tensor< T > &x)
Definition: elem.h:516
void init_tensor_lapack()
World/MRA initialization calls this before going multithreaded due to static data in dlamch...
Definition: lapack.cc:893
void orgqr(Tensor< T > &A, const Tensor< T > &tau)
reconstruct the orthogonal matrix Q (e.g. from QR factorization)
Definition: lapack.cc:706
void cholesky(Tensor< T > &A)
Compute the Cholesky factorization.
Definition: lapack.cc:551
void svd_result(Tensor< T > &a, Tensor< T > &U, Tensor< typename Tensor< T >::scalar_type > &s, Tensor< T > &VT, Tensor< T > &work)
same as svd, but it optimizes away the tensor construction: a = U * diag(s) * VT
Definition: lapack.cc:308
void sygv(const Tensor< T > &A, const Tensor< T > &B, int itype, Tensor< T > &V, Tensor< typename Tensor< T >::scalar_type > &e)
Generalized real-symmetric or complex-Hermitian eigenproblem.
Definition: lapack.cc:519
void geqp3(Tensor< T > &A, Tensor< T > &tau, Tensor< integer > &jpvt)
Compute the QR factorization.
Definition: lapack.cc:570
Holds machinery to set up Functions/FuncImpls using various Factories and Interfaces.
Definition: chem/atomutil.cc:45
FLOAT b(int j, FLOAT z)
Definition: y1.cc:79