Cyclops Tensor Framework parallel arithmetic on multidimensional arrays
Ao_mo_transf

Transformation between atomic and molecular orbitals. More...

Collaboration diagram for Ao_mo_transf:

## Functions

template<typename dtype >
Tensor< dtype > ao_mo_transf_naive (Tensor< dtype > &U, Matrix< dtype > &C)
naive implementation of AO-MO orbital transformation LIMITATIONS: (1) does not exploit output (syrk-like) symmetry in 3rd and 4th products. that may increase flop cost by 1.5X (2) multiple buffers and no auxiliary blocking to minimize memory usage More...

template<typename dtype >
Tensor< dtype > ao_mo_transf_slice (Tensor< dtype > &U, Matrix< dtype > &C)
AO-MO orbital transformation applied to a slice. More...

void test_ao_mo_transf (int n, int m, int k, MPI_Comm cm=MPI_COMM_WORLD, bool flt_test=true, bool ns_test=true)

template<typename dtype >
void bench_ao_mo_transf (int n, int m, int k)

char * getCmdOption (char **begin, char **end, const std::string &option)

int main (int argc, char **argv)

## Detailed Description

Transformation between atomic and molecular orbitals.

## Function Documentation

template<typename dtype >
 Tensor ao_mo_transf_naive ( Tensor< dtype > & U, Matrix< dtype > & C )

naive implementation of AO-MO orbital transformation LIMITATIONS: (1) does not exploit output (syrk-like) symmetry in 3rd and 4th products. that may increase flop cost by 1.5X (2) multiple buffers and no auxiliary blocking to minimize memory usage

Parameters
 [in] U n-by-n-by-n-by-n AO tensor which is partially antisymmetric {AS, NS, AS, NS}: U^{ij}_{kl}=-U^{ji}_{kl}=U^{ji}_{lk}=-U^{ij}_{lk} [in] C n-by-m matrix for the AO->MO index transform

Definition at line 21 of file ao_mo_transf.cxx.

Referenced by bench_ao_mo_transf(), and test_ao_mo_transf().

template<typename dtype >
 Tensor ao_mo_transf_slice ( Tensor< dtype > & U, Matrix< dtype > & C )

AO-MO orbital transformation applied to a slice.

Parameters
 [in] U n-by-n-by-n-by-k AO tensor which is partially antisymmetric {AS, NS, NS, NS}: U^{ij}_{kl}=-U^{ji}_{kl} [in] C n-by-m matrix for the AO->MO index transform

Definition at line 70 of file ao_mo_transf.cxx.

Referenced by bench_ao_mo_transf().

template<typename dtype >
 void bench_ao_mo_transf ( int n, int m, int k )

Definition at line 175 of file ao_mo_transf.cxx.

 char* getCmdOption ( char ** begin, char ** end, const std::string & option )

Definition at line 207 of file ao_mo_transf.cxx.

Referenced by main().

 int main ( int argc, char ** argv )

Definition at line 217 of file ao_mo_transf.cxx.

References getCmdOption(), and test_ao_mo_transf().

 void test_ao_mo_transf ( int n, int m, int k, MPI_Comm cm = `MPI_COMM_WORLD`, bool flt_test = `true`, bool ns_test = `true` )

Definition at line 122 of file ao_mo_transf.cxx.

Referenced by main().