# Computing an Impedance with Complex Numbers : complex number « Data Types « C++ Tutorial

#include <complex>
#include <iomanip>
#include <iostream>
#include <cmath>

using namespace std;

complex<double> parallel_RLC_impedance( double frequency, double resistance, double inductance, double capacitance );

int main( )
{
const double R = 1000.0;
const double L = 0.2;
const double C = 10.0e-9;
double frequency;

frequency = 1.0 / sqrt( L * C );

complex<double> impedance = parallel_RLC_impedance( frequency, R, L, C );

cout << impedance << "   Magnitude = " << abs( impedance ) << "   Phase = " << arg( impedance ) << endl;

impedance = parallel_RLC_impedance( frequency / 10, R, L, C );

cout << impedance << "   Magnitude = " << abs( impedance ) << "   Phase = " << arg( impedance ) << endl;

impedance = parallel_RLC_impedance( frequency * 10, R, L, C );

cout << impedance << "   Magnitude = " << abs( impedance ) << "   Phase = " << arg( impedance ) << endl;
}

inline
complex<double> parallel_RLC_impedance( double frequency,double resistance, double inductance, double capacitance )
{
complex<double> impedance_inverse( 1.0 / resistance,frequency * capacitance - 1.0 / ( frequency * inductance ) );

return 1.0 / impedance_inverse;
}
 2.26.complex number 2.26.1. Create complex numbers based on double value 2.26.2. Plus two complex numbers together 2.26.3. Complex + integer 2.26.4. Use polar to create complex number 2.26.5. Complex number: magnitude, squared magnitude and phase angle 2.26.6. Complex conjugates 2.26.7. Complex number + float number 2.26.8. print sum of two complex numbers 2.26.9. Computing an Impedance with Complex Numbers 2.26.10. The << and >> operators are overloaded relative to complex numbers. 2.26.11. Add square root of two complex numbers and print the result