snapkitty
hardware
ada
sovereign-ada-rtx / src /benchmark.ads
SNAPKITTYWEST's picture
push from SNAPKITTYWEST/sovereign-ada-rtx
52edc5a verified
Raw History Blame Contribute Delete
1.01 kB
with Core_Types; use Core_Types;
package Benchmark is
type Bench_Result is record
Name : Bounded_String := (others => ' ');
Iterations : Word32 := 0;
Cycles : Word32 := 0;
Passed : Boolean := False;
end record;
Max_Benches : constant := 16;
type Bench_Results is array (0 .. Max_Benches - 1) of Bench_Result;
procedure Run_Benchmarks (Results : out Bench_Results; Count : out Natural; Overall : out Boolean);
procedure Report_Benchmarks (Results : Bench_Results; Count : Natural; Overall : Boolean);
function Recursive_GCD (A, B : Word32) return Word32;
function Recursive_Fibonacci (N : Natural) return Word32;
function Recursive_Factorial (N : Natural) return Word32;
function Recursive_Power (Base : Word32; Exp : Natural) return Word32;
function Recursive_Sum (N : Natural) return Word32;
-- Recursive depth limited for safety on constrained stacks
-- Benchmarks report abstract work units (cycles) for portability
end Benchmark;