Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
q3::lapack Namespace Reference

Functions

void dgels_ (const char *trans, const int *m, const int *n, const int *nrhs, double *a, const int *lda, double *b, const int *ldb, double *work, const int *lwork, int *info)
 
void dgesvd_ (const char *jobu, const char *jobvt, const int *m, const int *n, double *a, const int *lda, double *s, double *u, const int *ldu, double *vt, const int *ldvt, double *work, const int *lwork, int *info)
 
void dsygv_ (const int *itype, const char *jobz, const char *uplo, const int *n, double *a, const int *lda, double *b, const int *ldb, double *w, double *work, const int *lwork, int *info)
 
void dsytrf_ (const char *uplo, const int *n, double *a, const int *lda, int *ipiv, double *work, const int *lwork, int *info)
 
void dsytri_ (const char *uplo, const int *n, double *a, const int *lda, const int *ipiv, double *work, int *info)
 
void zgeqp3_ (const int *m, const int *n, std::complex< double > *a, const int *lda, int *jpvt, std::complex< double > *tau, std::complex< double > *work, const int *lwork, double *rwork, int *info)
 
void zgesvd_ (const char *jobu, const char *jobvt, const int *m, const int *n, std::complex< double > *a, const int *lda, double *s, std::complex< double > *u, const int *ldu, std::complex< double > *vt, const int *ldvt, std::complex< double > *work, const int *lwork, double *rwork, int *info)
 
void zgetrf_ (const int *m, const int *n, std::complex< double > *a, const int *lda, int *ipiv, int *info)
 
void zgetri_ (const int *n, std::complex< double > *a, const int *lda, const int *ipiv, std::complex< double > *work, const int *lwork, int *info)
 
void zheev_ (const char *jobz, const char *uplo, const int *n, std::complex< double > *a, const int *lda, double *w, std::complex< double > *work, const int *lwork, double *rwork, int *info)
 
void zhegv_ (const int *itype, const char *jobz, const char *uplo, const int *n, std::complex< double > *a, const int *lda, std::complex< double > *b, const int *ldb, double *w, std::complex< double > *work, const int *lwork, double *rwork, int *info)
 

Detailed Description

Centralized LAPACK declarations for the Q3 codebase.

All LAPACK extern "C" function declarations are collected here to avoid duplication across translation units. Each routine links against the system LAPACK library (e.g., macOS Accelerate or a linked LAPACK build).

Routines included:

  • zheev_ : complex Hermitian eigensolver (standard)
  • zhegv_ : complex Hermitian eigensolver (generalized)
  • dsygv_ : real symmetric eigensolver (generalized)
  • dgels_ : real least-squares solver
  • dsytrf_ : real symmetric factorization (Bunch-Kaufman)
  • dsytri_ : real symmetric matrix inverse from dsytrf_ factors
  • zgesvd_ : complex singular value decomposition
  • dgesvd_ : real singular value decomposition
  • zgeqp3_ : complex QR factorization with column pivoting
  • zgetrf_ : complex general matrix LU factorization
  • zgetri_ : complex general matrix inverse from zgetrf_ factors

Function Documentation

◆ dgels_()

void q3::lapack::dgels_ ( const char *  trans,
const int *  m,
const int *  n,
const int *  nrhs,
double *  a,
const int *  lda,
double *  b,
const int *  ldb,
double *  work,
const int *  lwork,
int *  info 
)

DGELS: Real least-squares solver. Solves overdetermined or underdetermined real linear systems using QR or LQ factorization of A.

Referenced by q3::AndersonMixer::mix_one_component().

◆ dgesvd_()

void q3::lapack::dgesvd_ ( const char *  jobu,
const char *  jobvt,
const int *  m,
const int *  n,
double *  a,
const int *  lda,
double *  s,
double *  u,
const int *  ldu,
double *  vt,
const int *  ldvt,
double *  work,
const int *  lwork,
int *  info 
)

DGESVD: Real singular value decomposition. Computes the singular value decomposition A = U * Sigma * V**T of a real M-by-N matrix A, optionally computing the left and/or right singular vectors.

◆ dsygv_()

void q3::lapack::dsygv_ ( const int *  itype,
const char *  jobz,
const char *  uplo,
const int *  n,
double *  a,
const int *  lda,
double *  b,
const int *  ldb,
double *  w,
double *  work,
const int *  lwork,
int *  info 
)

DSYGV: Real symmetric eigensolver (generalized eigenproblem). Solves A * v = lambda * B * v for symmetric A and positive-definite B.

Referenced by q3::NormConservingPlanewaveWavefunctionInitializer::rotate_wavefunctions(), and q3::SerialSubspaceDiagonalizer::solve().

◆ dsytrf_()

void q3::lapack::dsytrf_ ( const char *  uplo,
const int *  n,
double *  a,
const int *  lda,
int *  ipiv,
double *  work,
const int *  lwork,
int *  info 
)

DSYTRF: Real symmetric matrix factorization (Bunch-Kaufman). Computes the factorization of a real symmetric matrix using the Bunch-Kaufman diagonal pivoting method.

Referenced by q3::BroydenMixer::mix_in_reciprocal_space().

◆ dsytri_()

void q3::lapack::dsytri_ ( const char *  uplo,
const int *  n,
double *  a,
const int *  lda,
const int *  ipiv,
double *  work,
int *  info 
)

DSYTRI: Real symmetric matrix inverse from DSYTRF factors. Computes the inverse of a real symmetric matrix from the Bunch-Kaufman factorization computed by DSYTRF.

Referenced by q3::BroydenMixer::mix_in_reciprocal_space().

◆ zgeqp3_()

void q3::lapack::zgeqp3_ ( const int *  m,
const int *  n,
std::complex< double > *  a,
const int *  lda,
int *  jpvt,
std::complex< double > *  tau,
std::complex< double > *  work,
const int *  lwork,
double *  rwork,
int *  info 
)

ZGEQP3: Complex QR factorization with column pivoting. Computes a QR factorization with column pivoting of a complex M-by-N matrix A: A * P = Q * R, using Level 3 BLAS.

◆ zgesvd_()

void q3::lapack::zgesvd_ ( const char *  jobu,
const char *  jobvt,
const int *  m,
const int *  n,
std::complex< double > *  a,
const int *  lda,
double *  s,
std::complex< double > *  u,
const int *  ldu,
std::complex< double > *  vt,
const int *  ldvt,
std::complex< double > *  work,
const int *  lwork,
double *  rwork,
int *  info 
)

ZGESVD: Complex singular value decomposition. Computes the singular value decomposition A = U * Sigma * V**H of a complex M-by-N matrix A, optionally computing the left and/or right singular vectors.

Referenced by q3::SingularValueDecomposition::compute().

◆ zgetrf_()

void q3::lapack::zgetrf_ ( const int *  m,
const int *  n,
std::complex< double > *  a,
const int *  lda,
int *  ipiv,
int *  info 
)

ZGETRF: Complex general matrix LU factorization. Computes an LU factorization of a general M-by-N complex matrix A using partial pivoting with row interchanges: A = P * L * U.

◆ zgetri_()

void q3::lapack::zgetri_ ( const int *  n,
std::complex< double > *  a,
const int *  lda,
const int *  ipiv,
std::complex< double > *  work,
const int *  lwork,
int *  info 
)

ZGETRI: Complex general matrix inverse from ZGETRF factors. Computes the inverse of a complex matrix using the LU factorization computed by ZGETRF.

◆ zheev_()

void q3::lapack::zheev_ ( const char *  jobz,
const char *  uplo,
const int *  n,
std::complex< double > *  a,
const int *  lda,
double *  w,
std::complex< double > *  work,
const int *  lwork,
double *  rwork,
int *  info 
)

ZHEEV: Complex Hermitian eigensolver (standard eigenproblem). Computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A: A * v = lambda * v.

Referenced by q3::apply_hubbard_starting_eigenvalue(), q3::compute_lowdin_transform(), and q3::HermitianEigensolver::solve().

◆ zhegv_()

void q3::lapack::zhegv_ ( const int *  itype,
const char *  jobz,
const char *  uplo,
const int *  n,
std::complex< double > *  a,
const int *  lda,
std::complex< double > *  b,
const int *  ldb,
double *  w,
std::complex< double > *  work,
const int *  lwork,
double *  rwork,
int *  info 
)

ZHEGV: Complex Hermitian eigensolver (generalized eigenproblem). Solves A * v = lambda * B * v for Hermitian A and positive-definite B.

Referenced by q3::NormConservingPlanewaveWavefunctionInitializer::rotate_wavefunctions(), and q3::SerialSubspaceDiagonalizer::solve().