MPQC  3.0.0-alpha
sc::sma2::ContractPart< N > Class Template Reference

Represents an array and symbolic indices in a contraction. More...

#include <chemistry/qc/lmp2/sma.h>

Public Member Functions

 ContractPart (Array< N > &array)
 
 ContractPart (Array< N > &array, const Index &i1)
 
 ContractPart (Array< N > &array, const Index &i1, const Index &i2)
 
 ContractPart (Array< N > &array, const Index &i1, const Index &i2, const Index &i3)
 
 ContractPart (Array< N > &array, const Index &i1, const Index &i2, const Index &i3, const Index &i4)
 
 ContractPart (Array< N > &array, const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5)
 
 ContractPart (Array< N > &array, const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, const Index &i6)
 
void apply_factor (double f)
 
double factor () const
 
Array< N > & array () const
 
const Indexindex (int i) const
 
bool clear_after_use () const
 
void operator= (const ContractPart &o) const
 
template<int N2>
void operator= (const ContractPart< N2 > &o) const
 
void operator+= (const ContractPart< N > &o) const
 
template<int N2>
void operator+= (const ContractPart< N2 > &o) const
 
void operator/= (const ContractPart< N > &o) const
 
template<int N2>
void operator/= (const ContractPart< N2 > &o) const
 
void operator-= (const ContractPart< N > &o) const
 
template<int Nl, int Nr>
void operator= (const ContractProd< Nl, Nr > &o) const
 
template<int Nl, int Nr>
void operator+= (const ContractProd< Nl, Nr > &o) const
 
template<int Nl, int Nr>
void operator-= (const ContractProd< Nl, Nr > &o) const
 
template<int N2>
void operator|= (const ContractPart< N2 > &o) const
 Add blocks to this corresponding the blocks already allocated in o.
 
template<int Nl, int Nr>
void operator|= (const ContractProd< Nl, Nr > &o) const
 
ContractPart< N > operator~ () const
 Instruct the contract routine to clear this array immediately after use. More...
 
ContractPart< N > skip_bounds_update () const
 Causes the bounds to not be computed for the LHS operand for certain operations.
 
double value ()
 Extract a value from the array. More...
 

Detailed Description

template<int N>
class sc::sma2::ContractPart< N >

Represents an array and symbolic indices in a contraction.

A ContractPart represents the array, a multiplicative factor, and indices that occur in symbolic contractions and summations.

Member Function Documentation

◆ operator~()

template<int N>
ContractPart< N > sc::sma2::ContractPart< N >::operator~ ( ) const

Instruct the contract routine to clear this array immediately after use.

This permits some optimizations to be performed.

◆ value()

template<int N>
double sc::sma2::ContractPart< N >::value ( )

Extract a value from the array.

All of the indices must be fixed.


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

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