1#ifndef MATRIX_INTERFACE_CYCLOPS_IMPL_H_ 
    2#define MATRIX_INTERFACE_CYCLOPS_IMPL_H_ 
   12template <
typename Scalar_>
 
   18template <
typename Scalar_>
 
   24template <
typename Scalar_>
 
   30template <
typename Scalar_>
 
   39    template <
typename Scalar>
 
   40    using MType = CTF::Matrix<Scalar>;
 
   41    template <
typename Scalar>
 
   42    using cMType = 
const CTF::Matrix<Scalar>;
 
   44    template <
typename Scalar>
 
   46    template <
typename Scalar>
 
   52    template <
typename Scalar>
 
   55    template <
typename Scalar>
 
   58    template <
typename Scalar>
 
   62    template <
typename Scalar>
 
   65    template <
typename Scalar>
 
   68    template <
typename Scalar>
 
   71    template <
typename Scalar>
 
   74    template <
typename Scalar>
 
   77    template <
typename Scalar>
 
   81    template <
typename Scalar>
 
   84    template <
typename Scalar>
 
   88    template <
typename MT>
 
   91    template <
typename MT>
 
   94    template <
typename MT>
 
   97    template <
typename Scalar>
 
  100    template <
typename MT1, 
typename MT2>
 
  103    template <
typename MT1, 
typename MT2>
 
  106    template <
typename Scalar, 
typename MatrixExpr1, 
typename MatrixExpr2, 
typename MatrixExpr3, 
typename MatrixExprRes>
 
  107    static void optimal_prod(
const Scalar& 
scale, MatrixExpr1&& M1, MatrixExpr2&& M2, MatrixExpr3&& M3, MatrixExprRes& Mres);
 
  109    template <
typename Scalar, 
typename MatrixExpr1, 
typename MatrixExpr2, 
typename MatrixExpr3, 
typename MatrixExprRes>
 
  110    static void optimal_prod_add(
const Scalar& 
scale, MatrixExpr1&& M1, MatrixExpr2&& M2, MatrixExpr3&& M3, MatrixExprRes& Mres);
 
  112    template <
typename MT>
 
  115    template <
typename MT>
 
  118    template <
typename MT1, 
typename MT2>
 
  121    template <
typename MT1, 
typename MT2>
 
  124    template <
typename Scalar>
 
  127    template <
typename Scalar, 
typename MT>
 
  130    template <
typename Scalar, 
typename MT>
 
  133    template <
typename Scalar, 
typename MTL, 
typename MTR>
 
  136    template <
typename Scalar, 
typename MTL, 
typename MTR>
 
  139    template <
typename MT>
 
  150    template <
typename Scalar>
 
  154    template <
typename MT>
 
  157    template <
typename MT>
 
  160    template <
typename Scalar>
 
  168    template <
typename MT>
 
  169    static void print(MT&& M);
 
  174#ifndef XPED_COMPILED_LIB 
Definition: Tensor.hpp:40
Definition: MatrixInterface_Cyclops_impl.hpp:37
CTF::Matrix< Scalar > MapMType
Definition: MatrixInterface_Cyclops_impl.hpp:45
static MType< Scalar > binaryFunc(MTL &&M_left, MTR &&M_right, const std::function< Scalar(Scalar, Scalar)> &func)
static MType< Scalar > block(const MType< Scalar > &M, const MIndextype &row_off, const MIndextype &col_off, const MIndextype &rows, const MIndextype &cols)
Definition: MatrixInterface_Cyclops_impl.cpp:287
static void setZero(MType< Scalar > &M)
Definition: MatrixInterface_Cyclops_impl.cpp:47
static MType< typename ctf_traits< MT >::Scalar > mexp(MT &&M)
static void setConstant(MType< Scalar > &M, const Scalar &val)
Definition: MatrixInterface_Cyclops_impl.cpp:65
static MType< typename ctf_traits< MT >::Scalar > msqrt(MT &&M)
static MType< Scalar > diagUnaryFunc(MT &&M, const std::function< Scalar(Scalar)> &func)
Definition: MatrixInterface_Cyclops_impl.cpp:243
static MType< Scalar > Identity(const MIndextype &rows, const MIndextype &cols, CTF::World &world)
Definition: MatrixInterface_Cyclops_impl.cpp:71
static MType< Scalar > construct_with_zero(const MIndextype &rows, const MIndextype &cols, CTF::World &world)
Definition: MatrixInterface_Cyclops_impl.cpp:32
static void print(MT &&M)
Definition: MatrixInterface_Cyclops_impl.cpp:343
static void resize(MType< Scalar > &M, const MIndextype &new_rows, const MIndextype &new_cols)
Definition: MatrixInterface_Cyclops_impl.cpp:40
static ctf_traits< MT >::Scalar maxNorm(MT &&M)
Definition: MatrixInterface_Cyclops_impl.cpp:104
static Scalar getVal(const MType< Scalar > &M, const MIndextype &row, const MIndextype &col)
Definition: MatrixInterface_Cyclops_impl.cpp:136
static void setRandom(MType< Scalar > &M)
Definition: MatrixInterface_Cyclops_impl.cpp:53
static MIndextype cols(const MType< Scalar > &M)
Definition: MatrixInterface_Cyclops_impl.cpp:90
static MType< typename ctf_traits< MT1 >::Scalar > difference(MT1 &&M1, MT2 &&M2)
Definition: MatrixInterface_Cyclops_impl.cpp:219
static MIndextype rows(const MType< Scalar > &M)
Definition: MatrixInterface_Cyclops_impl.cpp:84
static void optimal_prod(const Scalar &scale, MatrixExpr1 &&M1, MatrixExpr2 &&M2, MatrixExpr3 &&M3, MatrixExprRes &Mres)
Definition: MatrixInterface_Cyclops_impl.cpp:176
static MType< Scalar > unaryFunc(MT &&M, const std::function< Scalar(Scalar)> &func)
Definition: MatrixInterface_Cyclops_impl.cpp:234
static MType< Scalar > construct(const MIndextype &rows, const MIndextype &cols, CTF::World &world)
Definition: MatrixInterface_Cyclops_impl.cpp:26
static std::pair< MType< typename ctf_traits< MT >::Scalar >, MType< typename ctf_traits< MT >::Scalar > > qr(MT &&M)
Definition: MatrixInterface_Cyclops_impl.cpp:316
const CTF::Matrix< Scalar > cMapMType
Definition: MatrixInterface_Cyclops_impl.hpp:47
static void optimal_prod_add(const Scalar &scale, MatrixExpr1 &&M1, MatrixExpr2 &&M2, MatrixExpr3 &&M3, MatrixExprRes &Mres)
Definition: MatrixInterface_Cyclops_impl.cpp:193
static MType< typename ctf_traits< MT1 >::Scalar > prod(MT1 &&M1, MT2 &&M2)
Definition: MatrixInterface_Cyclops_impl.cpp:167
static MType< typename ctf_traits< MT1 >::Scalar > kronecker_prod(MT1 &&M1, MT2 &&M2)
Definition: MatrixInterface_Cyclops_impl.cpp:149
static void add_to_block(MType< Scalar > &M1, const MIndextype &row_off, const MIndextype &col_off, const MIndextype &rows, const MIndextype &cols, const MType< Scalar > &M2)
Definition: MatrixInterface_Cyclops_impl.cpp:324
static void setIdentity(MType< Scalar > &M)
Definition: MatrixInterface_Cyclops_impl.cpp:59
const CTF::Matrix< Scalar > cMType
Definition: MatrixInterface_Cyclops_impl.hpp:42
int MIndextype
Definition: MatrixInterface_Cyclops_impl.hpp:49
static MType< Scalar > diagBinaryFunc(MTL &&M_left, MTR &&M_right, const std::function< Scalar(Scalar, Scalar)> &func)
static std::pair< MType< typename ctf_traits< MT >::Scalar >, MType< typename ctf_traits< MT >::Scalar > > eigh(MT &&M)
Definition: MatrixInterface_Cyclops_impl.cpp:308
static ctf_traits< MT >::Scalar trace(MT &&M)
Definition: MatrixInterface_Cyclops_impl.cpp:97
static MType< typename ctf_traits< MT1 >::Scalar > add(MT1 &&M1, MT2 &&M2)
Definition: MatrixInterface_Cyclops_impl.cpp:210
static void setVal(MType< Scalar > &M, const MIndextype row, const MIndextype col, const Scalar &val)
static void scale(MType< Scalar > &M, const Scalar &val)
Definition: MatrixInterface_Cyclops_impl.cpp:228
static MType< typename ctf_traits< MT >::Scalar > adjoint(MT &&M)
Definition: MatrixInterface_Cyclops_impl.cpp:270
CTF::Matrix< Scalar > MType
Definition: MatrixInterface_Cyclops_impl.hpp:40
static ctf_traits< MT >::Scalar maxCoeff(MT &&M, MIndextype &maxrow, MIndextype &maxcol)
Definition: MatrixInterface_Cyclops_impl.cpp:111
Scalar_ Scalar
Definition: MatrixInterface_Cyclops_impl.hpp:21
Scalar_ Scalar
Definition: MatrixInterface_Cyclops_impl.hpp:33
Scalar_ Scalar
Definition: MatrixInterface_Cyclops_impl.hpp:15
Scalar_ Scalar
Definition: MatrixInterface_Cyclops_impl.hpp:27
Definition: MatrixInterface_Cyclops_impl.hpp:10