From 16658180f37190e4fa72bac517b629b29b74d4b2 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 9 Jul 2020 23:06:24 +0200 Subject: [PATCH] factorization in multipoles --- Basis/Multipole.ml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Basis/Multipole.ml b/Basis/Multipole.ml index 630e211..2491902 100644 --- a/Basis/Multipole.ml +++ b/Basis/Multipole.ml @@ -133,25 +133,25 @@ let contracted_class shell_a shell_b : float Zmap.t array = let x2 = h0 +. xa *. (2. *. x -. xa *. f0) in let y2 = h1 +. ya *. (2. *. y -. ya *. f1) in let z2 = h2 +. za *. (2. *. z -. za *. f2) in - let x3 = j0 +. xa *. f0 *. (3. *. x2 -. 3. *. x *. xa +. xa *. xa) in - let y3 = j1 +. ya *. f1 *. (3. *. y2 -. 3. *. y *. ya +. ya *. ya) in - let z3 = j2 +. za *. f2 *. (3. *. z2 -. 3. *. z *. za +. za *. za) in - let x4 = l0 +. xa *. f0 *. ( 4. *. x3 -. 6. *. x2 *. xa +. 4. *. x *. xa *. xa -. xa *. xa *. xa) in - let y4 = l1 +. ya *. f1 *. ( 4. *. y3 -. 6. *. y2 *. ya +. 4. *. y *. ya *. ya -. ya *. ya *. ya) in - let z4 = l2 +. za *. f2 *. ( 4. *. z3 -. 6. *. z2 *. za +. 4. *. z *. za *. za -. za *. za *. za) in + let x3 = j0 +. xa *. f0 *. (3. *. x2 +. xa *. ( -. 3. *. x +. xa)) in + let y3 = j1 +. ya *. f1 *. (3. *. y2 +. ya *. ( -. 3. *. y +. ya)) in + let z3 = j2 +. za *. f2 *. (3. *. z2 +. za *. ( -. 3. *. z +. za)) in + let x4 = l0 +. xa *. f0 *. (4. *. x3 +. xa *. ( -. 6. *. x2 +. xa *. (4. *. x -. xa))) in + let y4 = l1 +. ya *. f1 *. (4. *. y3 +. ya *. ( -. 6. *. y2 +. ya *. (4. *. y -. ya))) in + let z4 = l2 +. za *. f2 *. (4. *. z3 +. za *. ( -. 6. *. z2 +. za *. (4. *. z -. za))) in let c = contracted_class in let d = coef_prod *. norm in - c.(0).(i) <- c.(0).(i) +. d *. x *. f1 *. f2; - c.(1).(i) <- c.(1).(i) +. d *. f0 *. y *. f2; - c.(2).(i) <- c.(2).(i) +. d *. f0 *. f1 *. z; - c.(3).(i) <- c.(3).(i) +. d *. x2 *. f1 *. f2; - c.(4).(i) <- c.(4).(i) +. d *. f0 *. y2 *. f2; - c.(5).(i) <- c.(5).(i) +. d *. f0 *. f1 *. z2; - c.(6).(i) <- c.(6).(i) +. d *. x *. y *. f2; - c.(7).(i) <- c.(7).(i) +. d *. f0 *. y *. z; - c.(8).(i) <- c.(8).(i) +. d *. x *. f1 *. z; - c.(9).(i) <- c.(9).(i) +. d *. x3 *. f1 *. f2; + c.( 0).(i) <- c.( 0).(i) +. d *. x *. f1 *. f2; + c.( 1).(i) <- c.( 1).(i) +. d *. f0 *. y *. f2; + c.( 2).(i) <- c.( 2).(i) +. d *. f0 *. f1 *. z; + c.( 3).(i) <- c.( 3).(i) +. d *. x2 *. f1 *. f2; + c.( 4).(i) <- c.( 4).(i) +. d *. f0 *. y2 *. f2; + c.( 5).(i) <- c.( 5).(i) +. d *. f0 *. f1 *. z2; + c.( 6).(i) <- c.( 6).(i) +. d *. x *. y *. f2; + c.( 7).(i) <- c.( 7).(i) +. d *. f0 *. y *. z; + c.( 8).(i) <- c.( 8).(i) +. d *. x *. f1 *. z; + c.( 9).(i) <- c.( 9).(i) +. d *. x3 *. f1 *. f2; c.(10).(i) <- c.(10).(i) +. d *. f0 *. y3 *. f2; c.(11).(i) <- c.(11).(i) +. d *. f0 *. f1 *. z3; c.(12).(i) <- c.(12).(i) +. d *. x4 *. f1 *. f2;