#pragma once

#include <AH/Settings/NamespaceSettings.hpp>

#include <AH/Math/FixArduinoMacros.hpp>

#ifdef __AVR__
#include <AH/Arduino-Wrapper.h>

#include "Fallback/complex"
#else
#include <complex>
#endif

#include <AH/PrintStream/PrintStream.hpp>

template <typename Tp>
Print &operator<<(Print &os, const std::complex<Tp> &x) {
    USING_AH_NAMESPACE;
    return os << '(' << x.real() << ',' << x.imag() << ')';
}