occ
Loading...
Searching...
No Matches
occ::qm::cc::detail Namespace Reference

Functions

void permute (const double *in, const Eigen::Index *dims, int rank, const int *perm, double *out)
 out = in with out.dim(k) = in.dim(perm[k]); column-major, rank <= 6
 
void einsum_shape (std::string_view spec, const Eigen::Index *da, int ra, const Eigen::Index *db, int rb, Eigen::Index *dc, int rc)
 the result's dimensions for spec on operands of the given shapes
 
void einsum_contract (std::string_view spec, const double *a, const Eigen::Index *da, int ra, const double *b, const Eigen::Index *db, int rb, double *out, int rc)
 the contraction itself, into out (sized from einsum_shape)
 
template<typename E >
constexpr int rank_of ()
 
template<typename E >
decltype(auto) evaluated (const E &e)
 
template<int R>
std::array< Eigen::Index, R > dims_of (const Eigen::Tensor< double, R > &t)
 

Function Documentation

◆ dims_of()

template<int R>
std::array< Eigen::Index, R > occ::qm::cc::detail::dims_of ( const Eigen::Tensor< double, R > &  t)

◆ einsum_contract()

void occ::qm::cc::detail::einsum_contract ( std::string_view  spec,
const double *  a,
const Eigen::Index *  da,
int  ra,
const double *  b,
const Eigen::Index *  db,
int  rb,
double *  out,
int  rc 
)

the contraction itself, into out (sized from einsum_shape)

◆ einsum_shape()

void occ::qm::cc::detail::einsum_shape ( std::string_view  spec,
const Eigen::Index *  da,
int  ra,
const Eigen::Index *  db,
int  rb,
Eigen::Index *  dc,
int  rc 
)

the result's dimensions for spec on operands of the given shapes

◆ evaluated()

template<typename E >
decltype(auto) occ::qm::cc::detail::evaluated ( const E &  e)

◆ permute()

void occ::qm::cc::detail::permute ( const double *  in,
const Eigen::Index *  dims,
int  rank,
const int *  perm,
double *  out 
)

out = in with out.dim(k) = in.dim(perm[k]); column-major, rank <= 6

◆ rank_of()

template<typename E >
constexpr int occ::qm::cc::detail::rank_of ( )
constexpr