|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5120 (0x1400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Towers_Of_Hanoi_Benchmark, seg_02ae27
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Calendar;
with Fact;
with Towers_Of_Hanoi_Frames;
with Towers_Of_Hanoi_Rule_Base;
with Towers_Of_Hanoi_Rules_For_Benchmark;
with Text_Io;
use Calendar;
use Fact;
use Towers_Of_Hanoi_Frames;
procedure Towers_Of_Hanoi_Benchmark is
Tower_Size : constant := 12;
Initial_Priority : constant := 1;
Inference_Count : Natural;
Elapsed_Time : Duration;
Firings_Per_Second : Integer;
Started_At, Stopped_At : Calendar.Time;
function Firable_On_Facts return Fact.Collection
renames Towers_Of_Hanoi_Rule_Base.Rule_Base.Firable_On_Facts;
function Firable_On_Rule return Towers_Of_Hanoi_Rule_Base.Rule_Base.Rule_Id
renames Towers_Of_Hanoi_Rule_Base.Rule_Base.Firable_On_Rule;
package Toh_Rules renames Towers_Of_Hanoi_Rules_For_Benchmark;
package Duration_Io is new Text_Io.Fixed_Io (Duration);
begin
for Size in 5 .. 13 loop
Inference_Count := 0;
Started_At := Calendar.Clock;
Movements.Add ((From_Tower => 1,
To_Tower => 3,
Count => Size,
Priority => Initial_Priority));
loop
declare
Result : constant Fact.Collection := Firable_On_Facts;
begin
exit when Result = Empty_Collection;
Toh_Rules.Do_Action (For_Rule => Firable_On_Rule,
On_Facts => Result);
Inference_Count := Inference_Count + 1;
end;
end loop;
Stopped_At := Calendar.Clock;
Elapsed_Time := Stopped_At - Started_At;
Firings_Per_Second := Integer (Float (Inference_Count) /
Float (Elapsed_Time));
Text_Io.Put (Integer'Image (Size) & " towers : time =>");
Duration_Io.Put (Elapsed_Time, Fore => 3, Aft => 2);
Text_Io.Put (", inferences =>" & Integer'Image (Inference_Count));
Text_Io.Put (", firings per second =>" &
Integer'Image (Firings_Per_Second));
Text_Io.New_Line;
end loop;
end Towers_Of_Hanoi_Benchmark;
nblk1=4
nid=2
hdr6=6
[0x00] rec0=23 rec1=00 rec2=01 rec3=012
[0x01] rec0=17 rec1=00 rec2=04 rec3=07c
[0x02] rec0=07 rec1=00 rec2=03 rec3=000
[0x03] rec0=06 rec1=00 rec2=02 rec3=000
tail 0x215232f0883e583dff7fa 0x42a00088462063c03
Free Block Chain:
0x2: 0000 00 00 00 c5 80 03 29 29 3b 03 00 30 20 20 20 20 ┆ )); 0 ┆