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