mirror of
https://gitlab.com/scemama/QCaml.git
synced 2025-01-08 20:33:03 +01:00
Double excitation operators
This commit is contained in:
parent
1c5cca608f
commit
add68968b6
@ -63,8 +63,16 @@ let annihilation h = function
|
||||
let single_excitation_reference h p spindet =
|
||||
creation p @@ annihilation h @@ spindet
|
||||
|
||||
let single_excitation p q =
|
||||
single_excitation_reference p q
|
||||
let single_excitation h p =
|
||||
single_excitation_reference h p
|
||||
|
||||
|
||||
let double_excitation_reference h' p' h p spindet =
|
||||
creation p' @@ creation p @@ annihilation h @@ annihilation h' @@ spindet
|
||||
|
||||
let double_excitation h' p' h p =
|
||||
double_excitation_reference h' p' h p
|
||||
|
||||
|
||||
let of_list l =
|
||||
List.rev l
|
||||
@ -162,8 +170,17 @@ let test_case () =
|
||||
let det = of_list l_a in
|
||||
let l_b = [ 1 ; 7 ; 3 ; 5 ] in
|
||||
let det2 = of_list l_b in
|
||||
Alcotest.(check bool) "single 1" true (single_excitation 2 7 det = det2);
|
||||
Alcotest.(check bool) "single 1" true (single_excitation 4 7 det |> is_none);
|
||||
Alcotest.(check bool) "single 1" true (single_excitation_reference 2 7 det = det2);
|
||||
Alcotest.(check bool) "single 2" true (single_excitation 2 7 det = single_excitation_reference 2 7 det);
|
||||
Alcotest.(check bool) "single 3" true (single_excitation_reference 4 7 det |> is_none);
|
||||
Alcotest.(check bool) "single 4" true (single_excitation 4 7 det |> is_none);
|
||||
|
||||
let l_c = [ 1 ; 7 ; 6 ; 5 ] in
|
||||
let det3 = of_list l_c in
|
||||
Alcotest.(check bool) "double 1" true (double_excitation_reference 2 7 3 6 det = det3);
|
||||
Alcotest.(check bool) "double 2" true (double_excitation 2 7 3 6 det = double_excitation_reference 2 7 3 6 det);
|
||||
Alcotest.(check bool) "double 3" true (double_excitation_reference 4 7 3 6 det |> is_none);
|
||||
Alcotest.(check bool) "double 4" true (double_excitation 4 7 3 6 det |> is_none);
|
||||
in
|
||||
[
|
||||
"Creation", `Quick, test_creation;
|
||||
|
Loading…
Reference in New Issue
Block a user