(** A Slater determinant is expressed as a Waller-Hartree double determinant: {% $$ D(\mathbf{R}) = D_\alpha(\mathbf{R_\alpha}) \times D_\beta(\mathbf{R_\beta}) $$ %} The {% $\alpha$ %} and {% $\beta$ %} determinants are of type [Spindeterminant.t]. *) type t (** {1 Accessors} *) val alpha : t -> Spindeterminant.t (** Get the {% $\alpha$ %} spin-determinant. *) val beta : t -> Spindeterminant.t (** Get the {% $\beta$ %} spin-determinant. *) val phase : t -> Phase.t (** Get the phase of the Slater determinant, the product of the phases of the spin-determinants. *) (** {1 Creators} *) val of_spindeterminants : Spindeterminant.t -> Spindeterminant.t -> t (** Creates a Slater determinant from an {% $\alpha$ %} and a {% $\beta$ %} [Spindeterminant.t]. *) val of_lists : int list -> int list -> t (** Creates a Slater determinant from a two lists of orbital indices. *) (** {1 Printers} *) val pp_det : Format.formatter -> t -> unit (** {1 Unit tests} *) val test_case : unit -> (string * [> `Quick ] * (unit -> unit)) list