#ifndef COMPLEX_H
#define COMPLEX_H

typedef struct
{
    double a, b;
} complex;

// create a new complex
complex complex_create(double , double);
// return the zero complex number
complex complex_zero(void);
// add two complex numbers
complex complex_add(complex , complex );
// subtract two complex numbers
complex complex_sub(complex , complex );
// multiply two complex numbers
complex complex_mult(complex , complex );
// return the real part of complex a
double re(complex );
// return the imaginary part of complex a
double im(complex );
// print complex number as real+img i
// if img = 0 print without imaginary part
void print(complex );

#endif