sig type t = { re : float; im : float; } val zero : Complex.t val one : Complex.t val i : Complex.t val neg : Complex.t -> Complex.t val conj : Complex.t -> Complex.t val add : Complex.t -> Complex.t -> Complex.t val sub : Complex.t -> Complex.t -> Complex.t val mul : Complex.t -> Complex.t -> Complex.t val inv : Complex.t -> Complex.t val div : Complex.t -> Complex.t -> Complex.t val sqrt : Complex.t -> Complex.t val norm2 : Complex.t -> float val norm : Complex.t -> float val arg : Complex.t -> float val polar : float -> float -> Complex.t val exp : Complex.t -> Complex.t val log : Complex.t -> Complex.t val pow : Complex.t -> Complex.t -> Complex.t end