`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`