MPQC  3.0.0-alpha
sc::sma2::RepackScheme< NC, NA, NB > Class Template Reference

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...
 

Detailed Description

template<int NC, int NA, int NB>
class sc::sma2::RepackScheme< NC, NA, NB >

Determine the cost of repacking arrays for a contraction.

Member Function Documentation

◆ assign_indices()

template<int NC, int NA, int NB>
void sc::sma2::RepackScheme< NC, NA, NB >::assign_indices ( IndexList extA,
IndexList intA,
IndexList intB,
IndexList extB,
IndexList extCA,
IndexList extCB 
)
inline

Assign the contraction indices.

This is not update the cost.


The documentation for this class was generated from the following file:

Generated at Sun Jan 26 2020 23:24:15 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.