MPQC
3.0.0-alpha
|
Determine the cost of repacking arrays for a contraction. More...
#include <chemistry/qc/lmp2/contract.h>
Public Member Functions | |
RepackScheme (const Array< NA > *A, const IndexList &extA, const IndexList &intA, const IndexList &fixA, const BlockInfo< NA > *fixvalA, const Array< NB > *B, const IndexList &intB, const IndexList &extB, const IndexList &fixB, const BlockInfo< NB > *fixvalB, const Array< NC > *C, const IndexList &extCA, const IndexList &extCB, const IndexList &fixC, const BlockInfo< NC > *fixvalC, int n_C_repack) | |
Create the RepackScheme for a given contraction. | |
void | driver (int i) |
Set the array that determines the index ordering to C (i==0), A (i==1), or B (i==2) This will update the cost. | |
bool | need_repack_A () const |
Returns true if A needs repacked in the current scheme. | |
bool | transpose_A () const |
Returns true if A needs transposed in the current scheme. | |
bool | need_repack_B () const |
Returns true if B needs repacked in the current scheme. | |
bool | transpose_B () const |
Returns true if B needs transposed in the current scheme. | |
bool | need_repack_C () const |
Returns true if C needs repacked in the current scheme. | |
bool | transpose_C () const |
Returns true if C needs transposed in the current scheme. | |
double | cost () const |
Returns the cost of the current scheme. | |
void | assign_indices (IndexList &extA, IndexList &intA, IndexList &intB, IndexList &extB, IndexList &extCA, IndexList &extCB) |
Assign the contraction indices. More... | |
Determine the cost of repacking arrays for a contraction.
|
inline |
Assign the contraction indices.
This is not update the cost.