with Ada.Numerics.Generic_Complex_Types; use Ada.Numerics;
with Modulo_Discrete_Type;
with System.Multiprocessors; use System.Multiprocessors;
package Specs is
Utilized_Cores : constant CPU_Range := Number_Of_CPUs;
subtype Core_Range is CPU_Range range 1 .. Utilized_Cores;
package Modulo_Core_Range is new Modulo_Discrete_Type (Core_Range);
type Real is digits 15;
subtype Pix_Range_x is Integer range -500 .. 500;
subtype Pix_Range_y is Integer range -500 .. 500;
Min_x : constant Real := -2.0;
Max_x : constant Real := 2.0;
Min_y : constant Real := -2.0;
Resolution : constant Real :=
(Max_x - Min_x) / Real (Pix_Range_x'Last - Pix_Range_x'First + 1);
Divergence_Limit : constant Natural := 1_000;
type Natural_Array is array (Integer range <>) of Natural;
Mandelbrot_Set : array (Pix_Range_x) of Natural_Array (Pix_Range_y);
package Complex_Types is new Generic_Complex_Types (Real);
use Complex_Types;
type Jobs is record
Origin : Complex;
Resolution : Real;
end record;
end Specs;