| Cyclops Tensor Framework
    parallel arithmetic on multidimensional arrays | 
Transformation between atomic and molecular orbitals. More...
|   | 
| 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) | 
Transformation between atomic and molecular orbitals.
| 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
| [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.
References AS, CTF_int::tensor::free_self(), CTF::Matrix< dtype >::ncol, CTF::Matrix< dtype >::nrow, NS, and CTF_int::tensor::wrld.
Referenced by bench_ao_mo_transf(), and test_ao_mo_transf().
| Tensor<dtype> ao_mo_transf_slice | ( | Tensor< dtype > & | U, | 
| Matrix< dtype > & | C | ||
| ) | 
AO-MO orbital transformation applied to a slice.
| [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.
References AS, CTF_int::tensor::free_self(), CTF_int::tensor::lens, CTF::Matrix< dtype >::ncol, CTF::Matrix< dtype >::nrow, NS, and CTF_int::tensor::wrld.
Referenced by bench_ao_mo_transf().
| void bench_ao_mo_transf | ( | int | n, | 
| int | m, | ||
| int | k | ||
| ) | 
Definition at line 175 of file ao_mo_transf.cxx.
References ao_mo_transf_naive(), ao_mo_transf_slice(), AS, ctf.core::dtype, CTF::Tensor< dtype >::fill_random(), NS, and CTF::World::rank.
| 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.
References ctf.core::a, ao_mo_transf_naive(), AS, CTF::Tensor< dtype >::fill_random(), CTF::Tensor< dtype >::norm2(), NS, and CTF::World::rank.
Referenced by main().