#include <matrix.h>
Public Member Functions | |
| CCMatrix (std::string &str, CCIndex *left_index, CCIndex *right_index) | |
| void | add_scalar (double val) |
| void | set_scalar (double val) |
| double | get_scalar () |
| bool | is_out_of_core () |
| bool | is_out_of_core (int h) const |
| std::string & | get_label () |
| std::string & | get_index_label () |
| size_t | get_memory2 () const |
| size_t | get_memorypi2 (int h) const |
| int | get_reference () const |
| bool | is_integral () const |
| bool | is_antisymmetric () const |
| bool | is_chemist () const |
| bool | is_fock () const |
| int | get_symmetry () const |
| CCIndex * | get_left () const |
| CCIndex * | get_right () const |
| size_t | get_left_pairpi (int h) const |
| size_t | get_right_pairpi (int h) const |
| size_t | get_block_sizepi (int h) const |
| double ** | operator[] (int h) const |
| double *** | get_matrix () |
| double | get_two_address_element (short p, short q) |
| void | set_two_address_element (short p, short q, double value) |
| void | add_two_address_element (short p, short q, double value) |
| double | get_four_address_element (short p, short q, short r, short s) |
| void | set_four_address_element (short p, short q, short r, short s, double value) |
| void | add_four_address_element (short p, short q, short r, short s, double value) |
| void | add_six_address_element (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_abc (short i, short j, short k, size_t abc, double value) |
Given a value do
. | |
| void | add_six_address_element_ijk (size_t ijk, short a, short b, short c, double value) |
Given a value do
. | |
| double | get_six_address_element (short i, short j, short k, short a, short b, short c) |
Retrieve . | |
| void | add_six_address_element_Pij (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pij_abc (short i, short j, short k, size_t abc, double value) |
Given a value do
. | |
| void | add_six_address_element_Pik (short i, short j, short k, short a, short b, short c, double value) |
| void | add_six_address_element_Pjk (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pjk_abc (short i, short j, short k, size_t abc, double value) |
Given a value do
. | |
| void | add_six_address_element_Pab (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pab_ijk (size_t ijk, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pbc (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pbc_ijk (size_t ijk, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pij_k (short i, short j, short k, size_t abc, double value) |
Given a value do
. | |
| void | add_six_address_element_Pijk (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pab_c (size_t ijk, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pij_Pab (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pjk_Pbc (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pij_k_Pa_bc (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pi_jk_Pab_c (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | add_six_address_element_Pi_jk_Pa_bc (short i, short j, short k, short a, short b, short c, double value) |
Given a value do
. | |
| void | get_two_indices (short *&pq, int irrep, int i, int j) |
| void | get_two_indices_pitzer (short *&pq, int irrep, int i, int j) |
| void | get_four_indices (short *&pqrs, int irrep, int i, int j) |
| void | get_four_indices_pitzer (short *&pqrs, int irrep, int i, int j) |
| void | add_numerical_factor (double factor) |
| void | add_numerical_factor (double factor, int h) |
| void | zero_matrix () |
| void | zero_matrix_block (int h) |
| void | zero_two_diagonal () |
| void | zero_right_four_diagonal () |
| void | zero_left_four_diagonal () |
| void | zero_non_doubly_occupied () |
| void | zero_non_external () |
| void | element_by_element_product (double factor, CCMatrix *B_Matrix, CCMatrix *C_Matrix, int h) |
| void | element_by_element_division (double factor, CCMatrix *B_Matrix, CCMatrix *C_Matrix, int h) |
| void | element_by_element_addition (double factor, CCMatrix *B_Matrix, int h) |
| void | tensor_product (std::string &reindexing, double factor, CCMatrix *B_Matrix, CCMatrix *C_Matrix) |
| void | print () |
| void | print_dpdmatrix (int n, FILE *out) |
| bool | is_allocated () |
| bool | is_block_allocated (int h) |
| void | allocate_memory () |
| void | allocate_block (int h) |
| void | free_memory () |
| void | free_block (int h) |
| int | get_naccess () |
| void | load () |
| void | load_irrep (int h) |
| void | dump_to_disk () |
| void | dump_to_disk (int first_irrep, int last_irrep) |
| void | dump_block_to_disk (int h) |
| void | write_block_to_disk (int h) |
| void | read_from_disk () |
| void | read_from_disk (int first_irrep, int last_irrep) |
| void | read_block_from_disk (int h) |
| size_t | read_strip_from_disk (int h, int strip, double *buffer) |
Static Public Member Functions | |
| static double | dot_product (CCMatrix *B_Matrix, CCMatrix *C_Matrix, int h) |
Static Public Attributes | |
| static double | fraction_of_memory_for_buffer = 0.05 |
Static Protected Attributes | |
| static int | nirreps = -1 |
| bool psi::psimrcc::CCMatrix::is_out_of_core | ( | ) |
Return true if all the blocks are written to core
| double psi::psimrcc::CCMatrix::get_two_address_element | ( | short | p, | |
| short | q | |||
| ) |
Get the element
where the indices are absolute
| p | ||
| q |
| void psi::psimrcc::CCMatrix::set_two_address_element | ( | short | p, | |
| short | q, | |||
| double | value | |||
| ) |
Set the element
where the indices are absolute
| p | ||
| q |
| void psi::psimrcc::CCMatrix::add_two_address_element | ( | short | p, | |
| short | q, | |||
| double | value | |||
| ) |
Add value to the element
where the indices p and q are absolute
| p | ||
| q | ||
| value |
| bool psi::psimrcc::CCMatrix::is_allocated | ( | ) |
Return true if all the blocks are allocated
| void psi::psimrcc::CCMatrix::free_memory | ( | ) |
Free the memory used to store the matrix elements
| void psi::psimrcc::CCMatrix::load | ( | ) |
A black-box version of read_from_disk() that can be called for any matrix
| void psi::psimrcc::CCMatrix::load_irrep | ( | int | h | ) |
A black-box version of read_from_disk() that can be called for any matrix
| h | irrep to read from disk |
| void psi::psimrcc::CCMatrix::dump_to_disk | ( | ) |
Write the matrix to disk and free the memory.
| void psi::psimrcc::CCMatrix::dump_to_disk | ( | int | first_irrep, | |
| int | last_irrep | |||
| ) |
Write the matrix to disk and free the memory
| void psi::psimrcc::CCMatrix::dump_block_to_disk | ( | int | h | ) |
Write a irrep block to disk and free the memory
| h | irrep to write to disk |
| void psi::psimrcc::CCMatrix::write_block_to_disk | ( | int | h | ) |
Write a irrep block to disk without freeing the memory
| h | irrep to write to disk |
| void psi::psimrcc::CCMatrix::read_from_disk | ( | ) |
Read a matrix from disk.
| void psi::psimrcc::CCMatrix::read_from_disk | ( | int | first_irrep, | |
| int | last_irrep | |||
| ) |
Read irrep blocks from disk
| h | irrep to write to disk |
| void psi::psimrcc::CCMatrix::read_block_from_disk | ( | int | h | ) |
Read an irrep block from disk
| h | irrep to write to disk |
| size_t psi::psimrcc::CCMatrix::read_strip_from_disk | ( | int | h, | |
| int | strip, | |||
| double * | buffer | |||
| ) |
Read an irrep strip from disk and return a boolean that is true if there is strip
| h | irrep to write to disk |
1.5.6