cMHN 1.1
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
transform.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-2-Clause
2
3#ifndef pRC_TENSOR_TRAIN_OPERATOR_FUNCTIONS_TRANSFORM_H
4#define pRC_TENSOR_TRAIN_OPERATOR_FUNCTIONS_TRANSFORM_H
5
9
10namespace pRC
11{
14 static inline constexpr decltype(auto) transform(X &&a)
15 {
16 if constexpr(OT == Operator::Transform::Transpose)
17 {
18 return transpose(forward<X>(a));
19 }
20 else if constexpr(OT == Operator::Transform::Adjoint)
21 {
22 return adjoint(forward<X>(a));
23 }
24 else if constexpr(OT == Operator::Transform::None)
25 {
26 if constexpr(TensorTrain::IsOperator<R>() &&
28 {
29 return eval(forward<X>(a));
30 }
31 else
32 {
33 return view(forward<X>(a));
34 }
35 }
36 else
37 {
38 static_assert(OT != OT, "Unsupported operator transformation.");
39 }
40 }
41}
42#endif // pRC_TENSOR_TRAIN_OPERATOR_FUNCTIONS_TRANSFORM_H
Transform
Definition transform.hpp:11
Definition cholesky.hpp:18
static constexpr X eval(X &&a)
Definition eval.hpp:11
static constexpr auto makeConstantSequence()
Definition sequence.hpp:402
static constexpr X view(X &&a)
Definition view.hpp:12
static constexpr auto transpose(JacobiRotation< T > const &a)
Definition jacobi_rotation.hpp:319
static constexpr auto adjoint(JacobiRotation< T > const &a)
Definition jacobi_rotation.hpp:325
static constexpr decltype(auto) transform(X &&a)
Definition transform.hpp:14
Definition type_traits.hpp:21