8 complex_t::operator=(
static_cast<const complex_t&
>(k));
12scalar_t::operator double()
const {
13 if (std::abs(this->
imag() / this->
real()) > 1e-10) {
14 LOG_WARN(
"Casting complex values to double discards imaginary part: (", this->
real(),
",", this->
imag(),
")");
#define LOG_WARN(...)
Macro for logging warning messages.
std::complex< double > complex_t
Convenience alias for std::complex<double>.
scalar_t operator-() const
scalar_t & operator=(const scalar_t &k)
constexpr scalar_t(double re=0.0, double im=0.0)
friend scalar_t operator/(double lhs, const scalar_t &rhs)
double imag(const scalar_t &z)
scalar_t operator-(scalar_t lhs, const scalar_t &rhs)
scalar_t operator+(double lhs, const scalar_t &rhs)
scalar_t operator/(scalar_t lhs, const scalar_t &rhs)
scalar_t operator*(scalar_t lhs, const scalar_t &rhs)
scalar_t pow(const scalar_t &base, const scalar_t &exp)
double real(const scalar_t &z)