|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 4381 (0x111d)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
with Instrument;
use Instrument;
-- WITH CORE_FUNCTIONS; USE CORE_FUNCTIONS;
-- WITH TRIG_FUNCTIONS; USE TRIG_FUNCTIONS;
procedure Wheta3 is
pragma Suppress (Access_Check);
pragma Suppress (Discriminant_Check);
pragma Suppress (Index_Check);
pragma Suppress (Length_Check);
pragma Suppress (Range_Check);
pragma Suppress (Division_Check);
pragma Suppress (Overflow_Check);
pragma Suppress (Elaboration_Check);
pragma Suppress (Storage_Check);
X1, X2, X3, X4, X, Y, Z : Float;
-- INITIALIZE CONSTANTS
T : constant Float := 0.499975;
T1 : constant Float := 0.50025; -- THAT IS WHAT IT SAYS
T2 : constant Float := 2.0;
type E_Type is array (1 .. 4) of Float;
E1 : E_Type;
I, J, K, L, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11 : Integer;
procedure Pa (E : in out E_Type) is
begin
while J in 1 .. 5 loop
E (1) := (E (1) + E (2) + E (3) - E (4)) * T;
E (2) := (E (1) + E (2) - E (3) + E (4)) * T;
E (3) := (E (1) - E (2) + E (3) + E (4)) * T;
E (4) := (-E (1) + E (2) + E (3) + E (4)) / T2;
end loop;
end Pa;
procedure P0 is
begin
E1 (J) := E1 (K);
E1 (K) := E1 (L);
E1 (L) := E1 (J);
end P0;
procedure P3 (X, Y : in out Float; Z : out Float) is
begin
X := T * (X + Y);
Y := T * (X + Y);
Z := (X + Y) / T2;
end P3;
begin
Start ("WHETA3", "WHETSTONE INSTRUCTIONS WITH FLOATS");
-- READ VALUE OF I, CONTROLLING TOTAL WEIGHT
--IF I=10, THE TOTAL WEIGHT IS ONE MILLION WHETSTONE INSTRUCTIONS
-- PUT(" WHETSTONE WANTS AN INTEGER - 10 MAKES A MILLION WHETSTONES ->")
I := 100;
N1 := 0;
N2 := 12 * I;
N3 := 14 * I;
N4 := 345 * I;
N5 := 0;
N6 := 210 * I;
N7 := 32 * I;
N8 := 899 * I;
N9 := 616 * I;
N10 := 0;
N11 := 93 * I;
-- MODULE 1: SIMPLE IDENTIFIERS;
X1 := 1.0;
X2 := -1.0;
X3 := -1.0;
X4 := -1.0;
for I in 1 .. N1 loop
X1 := (X1 + X2 + X3 - X4) * T;
X2 := (X1 + X2 - X3 + X4) * T;
X3 := (X1 - X2 + X3 + X4) * T;
X4 := (-X1 + X2 + X3 + X4) * T;
end loop;
-- MODULE 2: ARRAY ELEMENTS;
E1 (1) := 1.0;
E1 (2) := -1.0;
E1 (3) := -1.0;
E1 (4) := -1.0;
for I in 1 .. N2 loop
E1 (1) := (E1 (1) + E1 (2) + E1 (3) - E1 (4)) * T;
E1 (2) := (E1 (1) + E1 (2) - E1 (3) + E1 (4)) * T;
E1 (3) := (E1 (1) - E1 (2) + E1 (3) + E1 (4)) * T;
E1 (4) := (-E1 (1) + E1 (2) + E1 (3) + E1 (4)) * T;
end loop;
-- MODULE 3: ARRAY AS PARAMETER;
for I in 1 .. N3 loop
Pa (E1);
end loop;
-- MODULE 4: CONDITIONAL JUMPS;
J := 1;
for I in 1 .. N4 loop
if J = 1 then
J := 2;
else
J := 3;
end if;
if J > 2 then
J := 0;
else
J := 1;
end if;
if J < 1 then
J := 1;
else
J := 0;
end if;
end loop;
-- MODULE 5: OMITTED;
-- MODULE 6: INTEGER ARITHMETIC;
J := 1;
K := 2;
L := 3;
for I in 1 .. N6 loop
J := J * (K - J) * (L - K);
K := L * K - (L - J) * K;
L := (L - K) * (K + J);
E1 (L - 1) := Float (J + K + L);
E1 (K - 1) := Float (J * K * L);
end loop;
-- MODULE 7: TRIG FUNCTIONS;
-- X := 0.5;
-- Y := 0.5;
-- FOR I IN 1..N7 LOOP
-- X:=T*ATAN(T2*SIN(X)*COS(X)/(COS(X+Y)+COS(X-Y)-1.0));
-- Y:=T*ATAN(T2*SIN(Y)*COS(Y)/(COS(X+Y)+COS(X-Y)-1.0));
-- END LOOP;
-- MODULE 8:
X := 1.0;
Y := 1.0;
Z := 1.0;
for I in 1 .. N8 loop
P3 (X, Y, Z);
end loop;
-- MODULE 9: ARRAY REFERENCES;
J := 1;
K := 2;
L := 3;
E1 (1) := 1.0;
E1 (2) := 2.0;
E1 (3) := 3.0;
for I in 1 .. N9 loop
P0;
end loop;
-- MODULE 10: INTEGER ARITHMETIC
J := 2;
K := 3;
for I in 1 .. N10 loop
J := J + K;
K := J + K;
J := K - J;
K := K - J - J;
end loop;
-- MODULE 11: STANDARD FUNCTIONS;
-- X:= 0.75;
-- FOR I IN 1..N11 LOOP
-- X:=SQRT(EXP(LOG(X)/T1));
-- END LOOP;
Stop;
end Wheta3;