include complex.e
--constant complex i = complex_new(0,1) -- nb not provided as standard
--constant complex i = {0,1} -- (equivalent, if you prefer)
complex a = complex_new(5,3),
b = complex_new(4,-3),
x = complex_add(a,b),
y = complex_mul(a,b),
z = complex_div(y,b)
string sa = complex_sprint(a),
sb = complex_sprint(b),
sx = complex_sprint(x),
sy = complex_sprint(y),
sz = complex_sprint(z)
printf(1,"(%s) + (%s) = %s\n",{sa,sb,sx}) -- (5+3i) + (4-3i) = 9
printf(1,"(%s) * (%s) = %s\n",{sa,sb,sy}) -- (5+3i) * (4-3i) = 29-3i
printf(1,"(%s) / (%s) = %s\n",{sy,sb,sz}) -- (29-3i) / (4-3i) = 5+3i