cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
declarations.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-2-Clause
2
3#ifndef pRC_TENSOR_TRAIN_OPERATOR_DECLARATIONS_H
4#define pRC_TENSOR_TRAIN_OPERATOR_DECLARATIONS_H
5
9
10namespace pRC::TensorTrain
11{
12 template<class T, class M, class N,
13 class R = decltype(makeConstantSequence<Size,
16 1,
17 1>())>
18 requires(IsValue<T> || IsComplex<T>) &&
19 (N::Dimension - 1 == R::Dimension) && (M::Dimension - 1 == R::Dimension)
20 class Operator;
21
22 namespace OperatorViews
23 {
24 template<class T, class M, class N, class R, class F>
25 class View;
26
27 template<class T, class M, class N, class R, class F>
28 class Assignable;
29 }
30
31 template<class T>
32 concept IsOperator = !IsReference<T> && requires {
33 {
34 []<class U, class M, class N, class R>(
35 Operator<U, M, N, R> const &&)
36 {
37 }(std::declval<T>())
38 };
39 };
40
41 template<class T>
42 concept IsOperatorView = !IsReference<T> && requires {
43 {
44 []<class U, class M, class N, class R, class F>(
45 OperatorViews::View<U, M, N, R, F> const &&)
46 {
47 }(std::declval<T>())
48 };
49 };
50
51 template<class T>
53}
54#endif // pRC_TENSOR_TRAIN_OPERATOR_DECLARATIONS_H
Definition declarations.hpp:25
Definition declarations.hpp:20
Definition concepts.hpp:19
Definition declarations.hpp:42
Definition declarations.hpp:32
Definition declarations.hpp:52
pRC::Float<> T
Definition externs_nonTT.hpp:1
Definition from_cores.hpp:11
static constexpr auto makeConstantSequence()
Definition sequence.hpp:444
std::size_t Size
Definition basics.hpp:31
std::common_type_t< Ts... > Common
Definition basics.hpp:53
std::integral_constant< T, V > Constant
Definition basics.hpp:38