From 39cdbba97e39220ba2650958718c7c93cba857b7 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Sat, 17 Jun 2023 00:32:39 +0200 Subject: [PATCH] Fixed Lazy --- docs/gaussian.html | 341 ++++++++++++++++----------- docs/top.html | 161 +++++++++---- gaussian/lib/primitive_shell_pair.ml | 22 +- 3 files changed, 332 insertions(+), 192 deletions(-) diff --git a/docs/gaussian.html b/docs/gaussian.html index 0164554..3f42596 100644 --- a/docs/gaussian.html +++ b/docs/gaussian.html @@ -3,12 +3,12 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + -Gaussian +Gaussian Gaussian - + + @@ -245,24 +307,29 @@ org_html_manager.setup(); // activate after the parameters are set | HOME
-

Top-level

+

Top-level Top-level

Table of Contents

-
-

1 Summary

+
+

1 Summary

+
+ +
+

2 Summary

-

Author: Anthony Scemama

-

Created: 2023-06-16 Fri 18:25

-

Validate

+

Author: scemama

+

Created: 2023-06-17 Sat 00:26

+

Validate

diff --git a/gaussian/lib/primitive_shell_pair.ml b/gaussian/lib/primitive_shell_pair.ml index cc13fe0..d3aa31b 100644 --- a/gaussian/lib/primitive_shell_pair.ml +++ b/gaussian/lib/primitive_shell_pair.ml @@ -39,6 +39,13 @@ let cmp a b = hash a - hash b +let compute_norm_scales p_a p_b = + Array.map (fun v1 -> + Array.map (fun v2 -> v1 *. v2) (Ps.norm_scales p_b) + ) (Ps.norm_scales p_a) + |> Array.to_list + |> Array.concat + let create_make_of p_a p_b = let a_minus_b = @@ -49,13 +56,9 @@ let create_make_of p_a p_b = Co.dot a_minus_b a_minus_b in - let norm_scales = lazy ( - Array.map (fun v1 -> - Array.map (fun v2 -> v1 *. v2) (Ps.norm_scales p_b) - ) (Ps.norm_scales p_a) - |> Array.to_list - |> Array.concat - ) in + let norm_scales = + lazy (compute_norm_scales p_a p_b) + in let ang_mom = Am.( Ps.ang_mom p_a + Ps.ang_mom p_b ) @@ -126,7 +129,10 @@ let make p_a p_b = let norm_scales x = - Lazy.force x.norm_scales + try + Lazy.force x.norm_scales + with Lazy.Undefined -> (Printf.printf "UNDEFINED\n%!" ; compute_norm_scales x.shell_a x.shell_b + ) let exponent_inv x = x.exponent_inv