14#ifndef __cxz_index_mul_h__
15#define __cxz_index_mul_h__
44 template <
class I1,
typename Meta1,
class I2,
typename Meta2>
79 template <
class I1,
typename Meta1>
87 template <
class I2,
typename Meta2>
95 inline decltype(
auto)
operator*(
const DPack& a,
const DPack&
b);
104 template <
class I1,
class I2>
Sptr< Range > rangeCast(const RangePtr r)
std::index_sequence< Is... > Isq
decltype(auto) iptrMul(const Sptr< I1 > &a, const Sptr< I2 > &b)
std::shared_ptr< T > Sptr
static decltype(auto) evalMX(const Sptr< GMIndex< BlockT, Indices... > > &a, const Sptr< I > &b, Isq< Is... > is)
static decltype(auto) evalXM(const Sptr< I > &a, const Sptr< GMIndex< BlockT, Indices... > > &b, Isq< Js... > js)
static decltype(auto) evalMM(const Sptr< GMIndex< BlockT1, Indices1... > > &a, const Sptr< GMIndex< BlockT2, Indices2... > > &b, Isq< Is... > is, Isq< Js... > js)