Psi4
linear_algebra.cc File Reference

linear algebra functions which call lapack and blas are in global namespace and preceded with opt More...

`#include "linear_algebra.h"`
`#include <cstdlib>`
`#include "mem.h"`
`#include "print.h"`
`#include "globals.h"`
`#include <cmath>`

opt

## Macros

#define EXTERN

#define F_DGEMM   dgemm_

#define F_DSYEV   dsyev_

#define F_DGEEV   dgeev_

## Functions

void F_DGEMM (char *transa, char *transb, int *m, int *n, int *k, double *alpha, double *A, int *lda, double *B, int *ldb, double *beta, double *C, int *ldc)

int F_DSYEV (char *, char *, int *, double *, int *, double *, double *, int *, int *)

int F_DGEEV (char *, char *, int *N1, double *A, int *N2, double *w1, double *w2, double *vl, int *N3, double *vr, int *N4, double *work, int *lwork, int *info)

void opt_matrix_mult (double **A, bool tA, double **B, bool tB, double **C, bool tC, int nr, int nl, int nc, bool add)

bool opt_symm_matrix_eig (double **A, int dim, double *evals)

bool opt_asymm_matrix_eig (double **A, int dim, double *evals)

double ** opt::symm_matrix_inv (double **A, int dim, bool redundant)

double ** opt::matrix_return_copy (double **A, int nr, int nc)

bool ** opt::matrix_return_copy (bool **A, int nr, int nc)

void opt::array_copy (double *v_from, double *v_to, int n)

void opt::matrix_copy (double **from, double **to, int nr, int nc)

double opt::array_dot (double *v1, double *v2, int n)

void opt::array_normalize (double *v1, int n)

double opt::array_norm (double *v1, int n)

void opt::array_scm (double *v1, double a, int n)

double opt::array_abs_max (double *v1, int n)

double opt::array_max (double *v1, int n)

double opt::array_rms (double *v1, int n)

void opt::matrix_root (double **A, int dim, bool inverse)

## Detailed Description

linear algebra functions which call lapack and blas are in global namespace and preceded with opt

## Macro Definition Documentation

 #define EXTERN
 #define F_DGEEV   dgeev_
 #define F_DGEMM   dgemm_
 #define F_DSYEV   dsyev_

## Function Documentation

 int F_DGEEV ( char * , char * , int * N1, double * A, int * N2, double * w1, double * w2, double * vl, int * N3, double * vr, int * N4, double * work, int * lwork, int * info )
 void F_DGEMM ( char * transa, char * transb, int * m, int * n, int * k, double * alpha, double * A, int * lda, double * B, int * ldb, double * beta, double * C, int * ldc )
 int F_DSYEV ( char * , char * , int * , double * , int * , double * , double * , int * , int * )
 bool opt_asymm_matrix_eig ( double ** A, int dim, double * evals )
 void opt_matrix_mult ( double ** A, bool tA, double ** B, bool tB, double ** C, bool tC, int nr, int nl, int nc, bool add )
 bool opt_symm_matrix_eig ( double ** A, int dim, double * evals )