|
| 1 | +#include "config.hpp" |
1 | 2 | #include "equations.hpp" |
| 3 | +#include "units.hpp" |
2 | 4 |
|
3 | 5 | namespace fractal { |
4 | 6 | std::array<iteration_count, 8> compute_iterations( |
5 | | - const std::array<std::complex<complex_underlying>, 8>& z_0, |
6 | | - const std::array<std::complex<complex_underlying>, 8>& constant, |
7 | | - iteration_count max_iters |
| 7 | + const avx512_complex& z_0, const avx512_complex& constant, iteration_count max_iters |
8 | 8 | ) |
9 | 9 | { |
10 | 10 | static const auto SQUARED_DIVERGENCE = |
11 | 11 | MANDELBROT_DIVERGENCE_NORM * MANDELBROT_DIVERGENCE_NORM; |
12 | 12 |
|
13 | | - alignas(64) std::array<double, 8> reals = {z_0[0].real(), z_0[1].real(), |
14 | | - z_0[2].real(), z_0[3].real(), |
15 | | - z_0[4].real(), z_0[5].real(), |
16 | | - z_0[6].real(), z_0[7].real()}; |
17 | | - alignas(64) std::array<double, 8> imags = {z_0[0].imag(), z_0[1].imag(), |
18 | | - z_0[2].imag(), z_0[3].imag(), |
19 | | - z_0[4].imag(), z_0[5].imag(), |
20 | | - z_0[6].imag(), z_0[7].imag()}; |
21 | | - alignas(64) std::array<double, 8> const_reals = { |
22 | | - constant[0].real(), constant[1].real(), constant[2].real(), constant[3].real(), |
23 | | - constant[4].real(), constant[5].real(), constant[6].real(), constant[7].real() |
24 | | - }; |
25 | | - alignas(64) std::array<double, 8> const_imags = { |
26 | | - constant[0].imag(), constant[1].imag(), constant[2].imag(), constant[3].imag(), |
27 | | - constant[4].imag(), constant[5].imag(), constant[6].imag(), constant[7].imag() |
28 | | - }; |
| 13 | + alignas(64) std::array<double, 8> reals = z_0.real; |
| 14 | + alignas(64) std::array<double, 8> imags = z_0.imaginary; |
| 15 | + alignas(64) std::array<double, 8> const_reals = constant.real; |
| 16 | + alignas(64) std::array<double, 8> const_imags = constant.imaginary; |
29 | 17 |
|
30 | 18 | std::array<iteration_count, 8> solved_its = {0}; |
31 | 19 |
|
|
0 commit comments