sig
type t = Complex.t = { re : float; im : float; }
val zero : t
val one : t
val i : t
val neg : t -> t
val conj : t -> t
val add : t -> t -> t
val sub : t -> t -> t
val mul : t -> t -> t
val inv : t -> t
val div : t -> t -> t
val sqrt : t -> t
val norm2 : t -> float
val norm : t -> float
val arg : t -> float
val polar : float -> float -> t
val exp : t -> t
val log : t -> t
val pow : t -> t -> t
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
val operations : Complex.t BatNumber.numeric
val inv : Complex.t -> Complex.t
val succ : Complex.t -> Complex.t
val pred : Complex.t -> Complex.t
val abs : Complex.t -> Complex.t
val modulo : Complex.t -> Complex.t -> Complex.t
val pow : Complex.t -> Complex.t -> Complex.t
val compare : Complex.t -> Complex.t -> int
val of_int : int -> Complex.t
val to_int : Complex.t -> int
val of_string : string -> Complex.t
val to_string : Complex.t -> string
val ( + ) : Complex.t -> Complex.t -> Complex.t
val ( - ) : Complex.t -> Complex.t -> Complex.t
val ( * ) : Complex.t -> Complex.t -> Complex.t
val ( / ) : Complex.t -> Complex.t -> Complex.t
val ( ** ) : Complex.t -> Complex.t -> Complex.t
val ( <> ) : Complex.t -> Complex.t -> bool
val ( >= ) : Complex.t -> Complex.t -> bool
val ( <= ) : Complex.t -> Complex.t -> bool
val ( > ) : Complex.t -> Complex.t -> bool
val ( < ) : Complex.t -> Complex.t -> bool
val ( = ) : Complex.t -> Complex.t -> bool
val print : 'a BatInnerIO.output -> Complex.t -> unit
end