mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-07-11 22:03:37 +02:00
26 lines
795 B
OCaml
26 lines
795 B
OCaml
(** Storage for four-index data (integrals, density matrices, ...).
|
|
|
|
There are two kinds of ordering of indices:
|
|
|
|
- Physicist's : { \[ \langle i j | k l \rangle \] }
|
|
- Chemist's : { \[ ( i j | k l ) \] }
|
|
|
|
*)
|
|
|
|
type t
|
|
|
|
val create : size:int -> [< `Dense | `Sparse ] -> t
|
|
(** If [`Dense] is chosen, internally the data is stored as a 4-dimensional
|
|
[Bigarray]. Else, it is stored as a hash table.
|
|
*)
|
|
|
|
(** {2 Accessors} *)
|
|
val get_chem : t -> int -> int -> int -> int -> float
|
|
val get_phys : t -> int -> int -> int -> int -> float
|
|
val set_chem : t -> int -> int -> int -> int -> float -> unit
|
|
val set_phys : t -> int -> int -> int -> int -> float -> unit
|
|
|
|
(** {2 I/O} *)
|
|
val to_file : ?cutoff:float -> filename:string -> t -> unit
|
|
(** Write the data to file, using the physicist's ordering. *)
|