10 #include "DataStructures/DataVector.hpp" 11 #include "DataStructures/VectorImpl.hpp" 48 :
public VectorImpl<std::complex<double>, ComplexDataVector> {
59 #if ((BLAZE_MAJOR_VERSION == 3) && (BLAZE_MINOR_VERSION <= 3)) 61 struct UnaryMapTrait<ComplexDataVector, blaze::Real> {
65 struct UnaryMapTrait<ComplexDataVector, blaze::Imag> {
69 struct UnaryMapTrait<DataVector, blaze::Real> {
70 using Type = DataVector;
73 struct UnaryMapTrait<DataVector, blaze::Imag> {
74 using Type = DataVector;
77 struct UnaryMapTrait<ComplexDataVector, blaze::Abs> {
78 using Type = DataVector;
82 struct MapTrait<ComplexDataVector, blaze::Real> {
83 using Type = DataVector;
86 struct MapTrait<ComplexDataVector, blaze::Imag> {
87 using Type = DataVector;
90 struct MapTrait<DataVector, blaze::Real> {
91 using Type = DataVector;
94 struct MapTrait<DataVector, blaze::Imag> {
95 using Type = DataVector;
98 struct MapTrait<ComplexDataVector, blaze::Abs> {
99 using Type = DataVector;
101 #endif // ((BLAZE_MAJOR_VERSION == 3) && (BLAZE_MINOR_VERSION <= 3)) 121 #if ((BLAZE_MAJOR_VERSION == 3) && (BLAZE_MINOR_VERSION <= 3)) 122 template <
typename Operator>
123 struct BinaryMapTrait<DataVector, ComplexDataVector, Operator> {
124 using Type = ComplexDataVector;
126 template <
typename Operator>
127 struct BinaryMapTrait<ComplexDataVector, DataVector, Operator> {
128 using Type = ComplexDataVector;
131 template <
typename Operator>
132 struct MapTrait<DataVector, ComplexDataVector, Operator> {
133 using Type = ComplexDataVector;
135 template <
typename Operator>
136 struct MapTrait<ComplexDataVector, DataVector, Operator> {
137 using Type = ComplexDataVector;
139 #endif // ((BLAZE_MAJOR_VERSION == 3) && (BLAZE_MINOR_VERSION <= 3))
#define BLAZE_TRAIT_SPECIALIZE_COMPATIBLE_BINARY_TRAIT(VECTOR_TYPE, COMPATIBLE, BLAZE_MATH_TRAIT)
Instructs Blaze to provide the appropriate vector result type of an operator between VECTOR_TYPE and ...
Definition: VectorImpl.hpp:426
Base class template for various DataVector and related types.
Definition: VectorImpl.hpp:109
#define DEFINE_STD_ARRAY_INPLACE_BINOP(LTYPE, RTYPE, OP_FUNCTION_NAME, BINARY_OP)
Declares an in-place binary function on an array, intended for operations such as += ...
Definition: StdArrayHelpers.hpp:242
Defines the type alias Requires.
Definition: ComplexDataVector.hpp:56
VectorImpl()=default
Empty VectorImpl.
#define MAKE_WITH_VALUE_IMPL_DEFINITION_FOR(VECTOR_TYPE)
Defines the MakeWithValueImpl apply specialization.
Definition: VectorImpl.hpp:552
Stores a collection of complex function values.
Definition: ComplexDataVector.hpp:47
#define VECTOR_BLAZE_TRAIT_SPECIALIZE_ALL_MAP_TRAITS(VECTOR_TYPE)
Instructs Blaze to provide the appropriate vector result type of Map operations (unary and binary) ac...
Definition: VectorImpl.hpp:486
Define simple functions for constant expressions.
Defines macro to always inline a function.
Stores a collection of function values.
Definition: DataVector.hpp:46
#define DEFINE_STD_ARRAY_BINOP(RESULT_TYPE, LTYPE, RTYPE, OP_FUNCTION_NAME, BINARY_OP)
Declares a binary function on an array, intended for binary operators such as +
Definition: StdArrayHelpers.hpp:213
#define MAKE_STD_ARRAY_VECTOR_BINOPS(VECTOR_TYPE)
Defines the set of binary operations often supported for std::array<VECTOR_TYPE, size>, for arbitrary size.
Definition: VectorImpl.hpp:504
Defines arithmetic operators for std::array and other helpful functions.
#define VECTOR_BLAZE_TRAIT_SPECIALIZE_ARITHMETIC_TRAITS(VECTOR_TYPE)
Instructs Blaze to provide the appropriate vector result type of arithmetic operations for VECTOR_TYP...
Definition: VectorImpl.hpp:450
#define MAKE_MATH_ASSIGN_EXPRESSION_ARITHMETIC(VECTOR_TYPE)
Defines MAKE_MATH_ASSIGN_EXPRESSION_POINTERVECTOR with all assignment arithmetic operations.
Definition: VectorImpl.hpp:535