let lle =
let pred_range = Array.length light_cones.(0).(perturbation_range) |> pred in
fun cell ->
let result = ref 0. in
let config = configurations.(0) in
let light_cone = light_cones.(cell) in
let perturbed_cells = light_cone.(perturbation_range) in
let rec iter i =
let perturbed_cell = perturbed_cells.(i) in
Array.iter
(fun state ->
let original_state = config.(perturbed_cell) in
config.(perturbed_cell) <- state;
if i < pred_range
then iter (succ i)
else (
for j = 1 to depth do
perturbed_next_step j light_cone.(j + perturbation_range)
done;
result := !result +. treat_differences light_cone;
restore_configurations light_cone);
config.(perturbed_cell) <- original_state;)
Auto.states; in
iter 0;
!result /. normalizer