#include #include #include "pnorms.h" using namespace std; template T pNorm(const complex& z) { return pow(pow(abs(z.real()), p) + pow(abs(z.imag()), p), static_cast(1) / p); } template&)> complex_norm::complex_norm(T real_, T imag_): complex(real_, imag_) {} template&)> T complex_norm::norm() const { return _norm(*this); } template T pnorm_bound(complex z) { complex_pnorm z1{z.real(), z.imag()}; complex_pnorm z2{z.real(), z.imag()}; return z1.norm() / z2.norm(); } template double pNorm(const complex&); template double pNorm(const complex&); template class complex_norm>; template class complex_norm>; template double pnorm_bound(complex);