package body Sub_Ranges is
function Range_First (Range_No : Positive) return Full_Range is
begin
if Range_No = 1 then
return Full_Range'First;
else
return Full_Range ((Natural (Range_No) - 1) * Natural (Full_Range'Last - Full_Range'First) / Natural (No_Of_Sub_Ranges)
+ Integer (Full_Range'First) + 1);
end if;
end Range_First;
function Range_Last (Range_No : Positive) return Full_Range is
begin
if Range_No = No_Of_Sub_Ranges then
return Full_Range'Last;
else
return Full_Range (Natural (Range_No) * Natural (Full_Range'Last - Full_Range'First) / Natural (No_Of_Sub_Ranges)
+ Integer (Full_Range'First));
end if;
end Range_Last;
end Sub_Ranges;