mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-22 04:13:33 +01:00
Cleaning
This commit is contained in:
parent
fde8ef7d8c
commit
0e694adf84
@ -63,7 +63,7 @@ let create ~indice ~expo ~coef ~center ~totAngMom =
|
||||
assert (Array.length expo > 0);
|
||||
let tmp =
|
||||
{ indice ; expo ; coef ; center ; totAngMom ; size=Array.length expo ; norm_coef = [||];
|
||||
powers = Angular_momentum.zkey_array (Angular_momentum.Kind_1 totAngMom) }
|
||||
powers = Angular_momentum.zkey_array (Angular_momentum.Singlet totAngMom) }
|
||||
in
|
||||
{ tmp with norm_coef = compute_norm_coef tmp }
|
||||
|
||||
|
@ -185,7 +185,7 @@ let contracted_class ~zero_m shell_a shell_b shell_c shell_d : float Zmap.t =
|
||||
(* Pre-computation of integral class indices *)
|
||||
let class_indices =
|
||||
Angular_momentum.zkey_array
|
||||
(Angular_momentum.Kind_4
|
||||
(Angular_momentum.Quartet
|
||||
Contracted_shell.(totAngMom shell_a, totAngMom shell_b,
|
||||
totAngMom shell_c, totAngMom shell_d))
|
||||
in
|
||||
|
@ -53,9 +53,10 @@ let of_int = function
|
||||
|
||||
|
||||
type kind =
|
||||
| Kind_1 of t
|
||||
| Kind_2 of (t*t)
|
||||
| Kind_4 of (t*t*t*t)
|
||||
| Singlet of t
|
||||
| Doublet of (t*t)
|
||||
| Triplet of (t*t*t)
|
||||
| Quartet of (t*t*t*t)
|
||||
|
||||
|
||||
let n_functions a =
|
||||
@ -92,7 +93,7 @@ let zkey_array a =
|
||||
|
||||
begin
|
||||
match a with
|
||||
| Kind_1 l1 ->
|
||||
| Singlet l1 ->
|
||||
|
||||
let a = Array.init 3 (fun _ -> 0) in
|
||||
List.map (fun (cx,cy,cz) ->
|
||||
@ -100,7 +101,7 @@ let zkey_array a =
|
||||
Zkey.(of_int_array Kind_3 a)
|
||||
) (keys_1d @@ to_int l1)
|
||||
|
||||
| Kind_2 (l1, l2) ->
|
||||
| Doublet (l1, l2) ->
|
||||
|
||||
let a = Array.init 6 (fun _ -> 0) in
|
||||
List.map (fun (cx,cy,cz) ->
|
||||
@ -110,9 +111,25 @@ let zkey_array a =
|
||||
Zkey.(of_int_array Kind_6 a)
|
||||
) (keys_1d @@ to_int l1)
|
||||
) (keys_1d @@ to_int l2)
|
||||
|> List.concat
|
||||
|> List.concat
|
||||
|
||||
| Kind_4 (l1, l2, l3, l4) ->
|
||||
| Triplet (l1, l2, l3) ->
|
||||
|
||||
let a = Array.init 9 (fun _ -> 0) in
|
||||
List.map (fun (ax,ay,az) ->
|
||||
a.(0) <- ax ; a.(1) <- ay ; a.(2) <- az ;
|
||||
List.map (fun (bx,by,bz) ->
|
||||
a.(3) <- bx ; a.(4) <- by ; a.(5) <- bz ;
|
||||
List.map (fun (cx,cy,cz) ->
|
||||
a.(6) <- cx ; a.(7) <- cy ; a.(8) <- cz ;
|
||||
Zkey.(of_int_array Kind_9 a)
|
||||
) (keys_1d @@ to_int l3)
|
||||
) (keys_1d @@ to_int l2)
|
||||
|> List.concat
|
||||
) (keys_1d @@ to_int l1)
|
||||
|> List.concat
|
||||
|
||||
| Quartet (l1, l2, l3, l4) ->
|
||||
|
||||
let a = Array.init 12 (fun _ -> 0) in
|
||||
List.map (fun (ax,ay,az) ->
|
||||
|
@ -5,6 +5,11 @@ val to_string : t -> string
|
||||
val to_char : t -> char
|
||||
val to_int : t -> int
|
||||
val of_int : int -> t
|
||||
type kind = Kind_1 of t | Kind_2 of (t * t) | Kind_4 of (t * t * t * t)
|
||||
type kind =
|
||||
| Singlet of t
|
||||
| Doublet of (t*t)
|
||||
| Triplet of (t*t*t)
|
||||
| Quartet of (t*t*t*t)
|
||||
|
||||
val n_functions : t -> int
|
||||
val zkey_array : kind -> Z.t array
|
||||
|
@ -6,6 +6,7 @@ type kind =
|
||||
| Kind_3
|
||||
| Kind_6
|
||||
| Kind_12
|
||||
| Kind_9
|
||||
| Kind_4
|
||||
| Kind_2
|
||||
| Kind_1
|
||||
@ -34,6 +35,14 @@ let of_int_array ~kind a =
|
||||
(Int64.of_int a.(6)) << a.(7) << a.(8) << a.(9) << a.(10) << a.(11)
|
||||
|> Z.of_int64
|
||||
in a <| b
|
||||
| Kind_9 ->
|
||||
let a =
|
||||
(Int64.of_int a.(0)) << a.(1) << a.(2) << a.(3) << a.(4) << a.(5)
|
||||
|> Z.of_int64
|
||||
and b =
|
||||
(Int64.of_int a.(6)) << a.(7) << a.(8)
|
||||
|> Z.of_int64
|
||||
in a <| b
|
||||
| Kind_4 -> (Int64.of_int a.(0)) <+ a.(1) <+ a.(2) <+ a.(3) |> Z.of_int64
|
||||
| Kind_2 -> (Int64.of_int a.(0)) <+ a.(1) |> Z.of_int64
|
||||
| Kind_1 -> Z.of_int a.(0)
|
||||
@ -63,6 +72,15 @@ let to_int_array ~kind a =
|
||||
Z.to_int @@ Z.extract a 20 10 ;
|
||||
Z.to_int @@ Z.extract a 10 10 ;
|
||||
Z.to_int @@ Z.extract a 0 10 |]
|
||||
| Kind_9 -> [| Z.to_int @@ Z.extract a 84 10 ;
|
||||
Z.to_int @@ Z.extract a 74 10 ;
|
||||
Z.to_int @@ Z.extract a 64 10 ;
|
||||
Z.to_int @@ Z.extract a 50 10 ;
|
||||
Z.to_int @@ Z.extract a 40 10 ;
|
||||
Z.to_int @@ Z.extract a 30 10 ;
|
||||
Z.to_int @@ Z.extract a 20 10 ;
|
||||
Z.to_int @@ Z.extract a 10 10 ;
|
||||
Z.to_int @@ Z.extract a 0 10 |]
|
||||
| Kind_4 -> [| Z.to_int @@ Z.extract a 48 16 ;
|
||||
Z.to_int @@ Z.extract a 32 16 ;
|
||||
Z.to_int @@ Z.extract a 16 16 ;
|
||||
|
Loading…
Reference in New Issue
Block a user