DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦595ed5a2b⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Towers_Of_Hanoi_Benchmark, seg_02cc9d, seg_02cef2

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Towers_Of_Hanoi_Frames;
with Towers_Of_Hanoi_Kbs;
with Towers_Of_Hanoi_Rules_For_Benchmark;
with Text_Io;
with Output_Stream;

use Towers_Of_Hanoi_Frames;
use Towers_Of_Hanoi_Kbs;
use Output_Stream;

procedure Towers_Of_Hanoi_Benchmark is

    Tower_Size       : constant := 12;
    Initial_Priority : constant := 1;

    package Toh_Rules renames Towers_Of_Hanoi_Rules_For_Benchmark;

    procedure Infere_On_Towers_Of_Hanoi is
       new Kbs.Rule_Base.Infere (Do_Action => Toh_Rules.Do_Action);
    package Duration_Io is new Text_Io.Fixed_Io (Duration);

begin  
    for I in 1 .. Kbs.Rule_Base.Count loop
        Kbs.Rule_Base.Put (I, Standard_Output);
    end loop;
    for Size in 5 .. 13 loop

        Movements.Add ((From_Tower => 1,
                        To_Tower   => 3,
                        Count      => Size,
                        Priority   => Initial_Priority));

        Infere_On_Towers_Of_Hanoi;

        Text_Io.Put (Integer'Image (Size) & " towers : time =>");
        Duration_Io.Put (Kbs.Rule_Base.Elapsed_Time, Fore => 3, Aft => 2);  
        Text_Io.Put (", inferences =>" & Integer'Image
                                            (Kbs.Rule_Base.Inference_Count));
        Text_Io.Put (", firings per second =>" &
                     Integer'Image (Kbs.Rule_Base.Firings_Per_Second));
        Text_Io.New_Line;
    end loop;
end Towers_Of_Hanoi_Benchmark;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=24 rec1=00 rec2=01 rec3=026
        [0x01] rec0=09 rec1=00 rec2=02 rec3=001
    tail 0x2152523088408539f1392 0x42a00088462063c03