From add68968b679244ab4f346785ac7b0130221c779 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Sat, 16 Feb 2019 11:05:38 +0100 Subject: [PATCH] Double excitation operators --- CI/Spindeterminant.ml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/CI/Spindeterminant.ml b/CI/Spindeterminant.ml index c12d774..fc53974 100644 --- a/CI/Spindeterminant.ml +++ b/CI/Spindeterminant.ml @@ -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;