#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct {
	double real, imag;
} dcomplex;

void complex_ex(void);
void comp_mult(dcomplex *c, dcomplex a, dcomplex b);

int main(void)
{
	complex_ex();

	return 0;
}

void complex_ex(void)
{
	dcomplex c1, c2, c1c2;

	c1.real = 1.0, c1.imag = 2.0;
	c2.real = -2.0, c2.imag = -3.0;
	comp_mult(&c1c2, c1, c2);

	fprintf(stderr, "c1+c2: %6.3lf + %6.3lfI\n", c1.real + c2.real, c1.imag + c2.imag);
	fprintf(stderr, "c1-c2: %6.3lf + %6.3lfI\n", c1.real - c2.real, c2.imag - c2.imag);
	fprintf(stderr, "c1*c2: %6.3lf + %6.3lfI\n", c1c2.real, c1c2.imag);
}

void comp_mult(dcomplex *c, dcomplex a, dcomplex b)
{
	c->real = a.real * b.real - a.imag * b.imag;
	c->imag = a.real * b.imag + a.imag * b.real;
}
