Skip to content

Commit 40499cb

Browse files
committed
slightly optimised the core loop
1 parent f0bd46f commit 40499cb

File tree

7 files changed

+32
-56
lines changed

7 files changed

+32
-56
lines changed

assemble_video.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
from PIL import Image
99

10-
frames_between_keyframes = 30
11-
maximum_keyframe_number = 1040
12-
zoom_scale = 1.4
10+
frames_between_keyframes = 60
11+
maximum_keyframe_number = 135
12+
zoom_scale = 2.0
1313

1414
# log1.1 of 2 is 7.27
1515
# 60 / that is 8.25, so lets take 8 frames per keyframe

default.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
image_width = 2000
2-
image_height = 2000
3-
frames = 1
1+
image_width = 1000
2+
image_height = 1000
3+
frames = 10
44
export = "raw"
55
rotate = 0
66
glitch_tolerance = 0.000001
7-
zoom_scale = 2.0
7+
zoom_scale = 2.0
8+
auto_adjust_iterations = true

locations/11-dimensions.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
real = "-1.7891690186048231066744683411888387638173618368159070155822017397181006156270275749142369245820396054406395755675312183271534128923049471434097690222315419202715383264050159131947029173677395015878767362862533310902938210320999999999999999999999999999999998"
2+
imag = "-0.0000003393685157671825660282302661468127283482188945938569013974696942388736569110136147219176174266842972236468548795141989046122450230790250469659063534132826324119846599278074403635939133245821264547306595273202030703232999999999999999999999999999999998"
3+
zoom = "1.41200697933E219"
4+
iterations = 200000

locations/x.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
real = "-1.479796270901760024425279934770411525645551054432599517909807632824286254403907594526888466099962805022975196472549771681831234491695559852583955204986197762293872769474806903995564259040667568599770094383157857518790853771783314763231302599999999999999999999999998"
22
imag = "-0.001199443952813447746281973233374468444560314114132538362037569205657422216739564521471119107626453330996365067987088146663639996715939831819152248618042255824652268918299630897525386638029428706473919823922522752497780934312003352081931299999999999999999999999998"
33
iterations = 50000
4-
zoom = "4.27799999998E235"
4+
zoom = "4.27799999998E40"

segments.txt

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,3 @@
1-
file 'segment_00000051.mp4'
2-
file 'segment_00000050.mp4'
3-
file 'segment_00000049.mp4'
4-
file 'segment_00000048.mp4'
5-
file 'segment_00000047.mp4'
6-
file 'segment_00000046.mp4'
7-
file 'segment_00000045.mp4'
8-
file 'segment_00000044.mp4'
9-
file 'segment_00000043.mp4'
10-
file 'segment_00000042.mp4'
11-
file 'segment_00000041.mp4'
12-
file 'segment_00000040.mp4'
13-
file 'segment_00000039.mp4'
14-
file 'segment_00000038.mp4'
15-
file 'segment_00000037.mp4'
16-
file 'segment_00000036.mp4'
17-
file 'segment_00000035.mp4'
18-
file 'segment_00000034.mp4'
19-
file 'segment_00000033.mp4'
20-
file 'segment_00000032.mp4'
21-
file 'segment_00000031.mp4'
22-
file 'segment_00000030.mp4'
23-
file 'segment_00000029.mp4'
24-
file 'segment_00000028.mp4'
25-
file 'segment_00000027.mp4'
26-
file 'segment_00000026.mp4'
27-
file 'segment_00000025.mp4'
28-
file 'segment_00000024.mp4'
29-
file 'segment_00000023.mp4'
30-
file 'segment_00000022.mp4'
31-
file 'segment_00000021.mp4'
32-
file 'segment_00000020.mp4'
33-
file 'segment_00000019.mp4'
34-
file 'segment_00000018.mp4'
35-
file 'segment_00000017.mp4'
36-
file 'segment_00000016.mp4'
37-
file 'segment_00000015.mp4'
38-
file 'segment_00000014.mp4'
391
file 'segment_00000013.mp4'
402
file 'segment_00000012.mp4'
413
file 'segment_00000011.mp4'

src/math/perturbation.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ impl Perturbation {
1515
let mut scaled_delta_reference = 1.0f64.ldexp(pixel.delta_reference.exponent - pixel.delta_current.exponent) * pixel.delta_reference.mantissa;
1616

1717
while pixel.iteration < reference.current_iteration {
18-
let delta_current_float = scaled_scale_factor_1 * pixel.delta_current.mantissa;
18+
// 2 multiplications and 2 adds
19+
let z = reference.reference_data[pixel.iteration - reference.start_iteration].z_fixed + scaled_scale_factor_1 * pixel.delta_current.mantissa;
1920

2021
if pixel.delta_current.exponent > -500 {
21-
let z_norm = (reference.reference_data[pixel.iteration - reference.start_iteration].z_fixed + delta_current_float).norm_sqr();
22+
// 2 multiplications and one add
23+
let z_norm = z.norm_sqr();
2224

2325
if z_norm < reference.reference_data[pixel.iteration - reference.start_iteration].z_tolerance {
2426
pixel.glitched = true;
@@ -50,7 +52,9 @@ impl Perturbation {
5052

5153
// pixel.delta_current.mantissa = 2.0 * reference.data[pixel.iteration - reference.start_iteration].z_fixed * pixel.delta_current.mantissa + temp * pixel.delta_current.mantissa + scaled_delta_reference;
5254

53-
pixel.delta_current.mantissa *= 2.0 * reference.reference_data[pixel.iteration - reference.start_iteration].z_fixed + delta_current_float;
55+
// 4 multiplications and 2 additions
56+
pixel.delta_current.mantissa *= z + reference.reference_data[pixel.iteration - reference.start_iteration].z_fixed;
57+
// 2 additions
5458
pixel.delta_current.mantissa += scaled_delta_reference;
5559

5660
scaled_iterations += 1;

src/renderer.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,16 +233,21 @@ impl FractalRenderer {
233233

234234
if self.auto_adjust_iterations {
235235
// test
236-
let mut temp = self.data_export.iterations.clone();
237-
temp.sort();
236+
// let mut temp = self.data_export.iterations.clone();
237+
// temp.sort();
238238

239239
// let new_iteration_value = *(&self.data_export.iterations).into_iter().max().unwrap() as usize;
240240
// Set to value of 0.1%
241-
let value = 0.999 * temp.len() as f64;
242-
let new_iteration_value = temp[value as usize] as usize;
243-
self.center_reference.maximum_iteration = new_iteration_value;
244-
self.center_reference.current_iteration = new_iteration_value;
245-
self.maximum_iteration = new_iteration_value;
241+
// let value = 0.999 * temp.len() as f64;
242+
// let new_iteration_value = temp[value as usize] as usize;
243+
244+
if self.zoom.to_float() < 1e10 {
245+
let new_iteration_value = 10000;
246+
self.center_reference.maximum_iteration = new_iteration_value;
247+
self.center_reference.current_iteration = new_iteration_value;
248+
self.maximum_iteration = new_iteration_value;
249+
}
250+
246251
}
247252

248253
self.remaining_frames -= 1;

0 commit comments

Comments
 (0)