ADOL-C: Automatic Differentiation in C/C++ 2.7.3
Loading...
Searching...
No Matches
absnormalformconcept.h
Go to the documentation of this file.
1
2
3#ifndef ADOLC_ABSNORMALFORM_CONCEPT_H
4#define ADOLC_ABSNORMALFORM_CONCEPT_H
5#include <concepts>
6#include <type_traits>
7
8namespace ADOLC {
10struct ANFShape {};
11
12template <typename U>
14 std::derived_from<std::remove_cvref_t<U>, ANFShape>;
15
47template <typename T>
48concept AbsNormalFormType = requires(T &t) {
49 t.Y;
50 t.J;
51 t.Z;
52 t.L;
53 t.y;
54 t.z;
55 t.cy;
56 t.cz;
57 { t.empty() } -> std::convertible_to<bool>;
58 { t.clear() } -> std::same_as<void>;
59 { t.dims() } -> DerivedFromANFShape;
60 { t.resize(t.dims()) } -> std::same_as<void>;
61 { t.updateCy() } -> std::same_as<void>;
62 { t.updateCz() } -> std::same_as<void>;
63};
64} // namespace ADOLC
65#endif // ADOLC_ABSNORMALFORM_CONCEPT_H
Structural concept for abs-normal form objects.
Definition absnormalformconcept.h:48
Definition absnormalformconcept.h:13
Definition adtl_indo.h:46
Base tag for abs-normal form shapes.
Definition absnormalformconcept.h:10