3#ifndef pRC_TENSOR_TRAIN_OPERATOR_FUNCTIONS_MUL_H
4#define pRC_TENSOR_TRAIN_OPERATOR_FUNCTIONS_MUL_H
11 template<
class XA,
class XB,
14 requires IsSame<typename RA::N, typename RB::N>
15 static inline constexpr auto operator*(XA &&a, XB &&b)
18 []<
class XLA,
class XLB>(XLA &&a, XLB &&b)
23 return reshape<CA::size(0) * CB::size(0), CA::size(1),
27 forward<XA>(a), forward<XB>(b));
30 template<
class XA,
class XB,
33 requires IsSame<typename RA::N, typename RB::M>
34 static inline constexpr auto operator*(XA &&a, XB &&b)
37 []<
class XLA,
class XLB>(XLA &&a, XLB &&b)
42 return reshape<CA::size(0) * CB::size(0), CB::size(2),
46 forward<XA>(a), forward<XB>(b));
49 template<
class XA,
class XB,
52 requires IsSame<typename RA::N, typename RB::M>
53 static inline constexpr auto operator*(XA &&a, XB &&b)
56 []<
class XLA,
class XLB>(XLA &&a, XLB &&b)
61 return reshape<CA::size(0) * CB::size(0), CA::size(1),
62 CB::size(2), CA::size(3) * CB::size(3)>(
66 forward<XA>(a), forward<XB>(b));
Definition cholesky.hpp:10
static constexpr auto contract(X &&a)
Definition contract.hpp:20
std::remove_reference_t< T > RemoveReference
Definition basics.hpp:41
static constexpr auto reshape(X &&a)
Definition reshape.hpp:14
static constexpr auto operator*(JacobiRotation< TA > const &a, JacobiRotation< TB > const &b)
Definition jacobi_rotation.hpp:298
static constexpr auto loop(F &&f, Xs &&...args)
Definition loop.hpp:20
static constexpr auto permute(Sequence< T, Is... > const)
Definition sequence.hpp:487
static constexpr decltype(auto) eval(X &&a)
Definition eval.hpp:12