6#ifndef THEORETICA_COMPLEX_TYPES_H
7#define THEORETICA_COMPLEX_TYPES_H
10#include "../core/core_traits.h"
11#include "../core/constants.h"
19 template<
typename Type = real>
37 template<
typename Structure>
44 template<
typename Structure,
typename T =
bool>
Complex number in algebraic form .
Definition complex.h:26
Main namespace of the library which contains all functions and objects.
Definition algebra.h:27
is_complex_type< vector_element_t< Structure > > has_complex_elements
Type trait to check whether a container has complex elements.
Definition complex_types.h:38
complex< complex< Type > > bicomplex
A bi-complex number.
Definition complex_types.h:20
std::remove_reference_t< decltype(std::declval< Structure >()[0])> vector_element_t
Extract the type of a vector (or any indexable container) from its operator[].
Definition core_traits.h:134
std::enable_if_t< is_complex_type< Structure >::value, T > enable_complex
Enable a function overload if the template typename is considerable a complex number.
Definition complex_types.h:45
Type trait to check whether the given type is a specialization of the complex number class or not,...
Definition complex_types.h:27