29#include <nda/stdutil/complex.hpp>
54 static_assert(R > 0,
"tensor_real_valued : R must be > 0");
57 static constexpr int rank = R;
84 static_assert(R > 0,
"tensor_valued : R must be > 0");
87 static constexpr int rank = R;
229 template <>
struct _target_from_type_rank<dcomplex, 0> {
230 using type = scalar_valued;
234 template <
int R>
struct _target_from_type_rank<double, R> {
235 using type = tensor_real_valued<R>;
240 using type = matrix_real_valued;
245 using type = scalar_real_valued;
258 template <
typename A,
int nvar>
Backward-compatibility umbrella header pulling in the nda array library.
typename _target_from_type_rank< typename std::decay_t< typename std::decay_t< A >::value_type >, std::decay_t< A >::rank - nvar >::type target_from_array
Deduce the target type of a Green's function from its data array type and arity.
Trait to invert the relation (scalar type, rank) target type.
Target type for a real matrix-valued Green's function.
static constexpr int rank
Rank of the target, i.e. the number of indices of the value stored at each mesh point.
static constexpr bool is_matrix
Whether the target is matrix valued.
matrix_real_valued real_t
Associated real-valued target type.
matrix_valued complex_t
Associated complex-valued target type.
static constexpr int is_real
Whether the target is real valued.
double scalar_t
Type of the scalar value, i.e. the value type of the stored nda array.
Target type for a complex matrix-valued Green's function.
static constexpr int rank
Rank of the target, i.e. the number of indices of the value stored at each mesh point.
dcomplex scalar_t
Type of the scalar value, i.e. the value type of the stored nda array.
static constexpr bool is_matrix
Whether the target is matrix valued.
matrix_real_valued real_t
Associated real-valued target type.
matrix_valued complex_t
Associated complex-valued target type.
static constexpr int is_real
Whether the target is real valued.
Target type for a real scalar-valued Green's function.
static constexpr int rank
Rank of the target, i.e. the number of indices of the value stored at each mesh point.
double scalar_t
Type of the scalar value, i.e. the value type of the stored nda array.
static constexpr bool is_matrix
Whether the target is matrix valued.
scalar_real_valued real_t
Associated real-valued target type.
scalar_valued complex_t
Associated complex-valued target type.
static constexpr int is_real
Whether the target is real valued.
Target type for a complex scalar-valued Green's function.
scalar_real_valued real_t
Associated real-valued target type.
scalar_valued complex_t
Associated complex-valued target type.
static constexpr int rank
Rank of the target, i.e. the number of indices of the value stored at each mesh point.
dcomplex scalar_t
Type of the scalar value, i.e. the value type of the stored nda array.
static constexpr int is_real
Whether the target is real valued.
static constexpr bool is_matrix
Whether the target is matrix valued.
Target type for a real tensor-valued Green's function.
static constexpr int rank
Rank of the target, i.e. the number of indices of the value stored at each mesh point.
tensor_real_valued real_t
Associated real-valued target type.
static constexpr int is_real
Whether the target is real valued.
tensor_valued< R > complex_t
Associated complex-valued target type.
double scalar_t
Type of the scalar value, i.e. the value type of the stored nda array.
static constexpr bool is_matrix
Whether the target is matrix valued.
Target type for a complex tensor-valued Green's function.
static constexpr int rank
Rank of the target, i.e. the number of indices of the value stored at each mesh point.
tensor_valued complex_t
Associated complex-valued target type.
static constexpr int is_real
Whether the target is real valued.
static constexpr bool is_matrix
Whether the target is matrix valued.
dcomplex scalar_t
Type of the scalar value, i.e. the value type of the stored nda array.
tensor_real_valued< R > real_t
Associated real-valued target type.