|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3840 (0xf00)
Types: TextFile
Names: »epmx«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »epmx«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦this⟧ »epmx«
clear user epm
epm=set 1 disc5
scope user epm
epm=algol list.no
RAMAN2 program: epm (multiplicationsprogram)
external procedure epm;
begin
integer i,j,k,t,tmin,u,q,umax,b,tm,ver,l;
real max,npf,gsnit,sum,a,c,T,p,bmin,A,B,n;
array spname(1:2), spr(1:2);
integer array sptail(1:10), tail(1:10);
zone r, sp(128,1,stderror);
T:=1;
for i:=1 step 1 until 10 do sptail(i):=tail(i):=0;
umax:=-100000;
T:=1;
write(out,false add 10,1,<: NAME=:>);
setposition(out,0,0); readstring(in,spname,1);
write(out,<:mNAME=:>); setposition(out,0,0); readstring(in,spr,1);
write(out,<:NORM VER= :>); setposition(out,0,0); read(in,l,ver);
T:=1;
case ver of begin
begin write(out,<:T=:>); setposition(out,0,0); read(in,T);
end 1;
begin write(out,<:T=:>); setposition(out,0,0); read(in,T);
end 2;
begin write(out,<:T=:>); setposition(out,0,0); read(in,T);
end 3;
begin
end 4;
begin
end 5;
begin write(out,<:T=:>); setposition(out,0,0); read(in,T);
end 6;
begin write(out,<:T=:>); setposition(out,0,0); read(in,T);
end 7;
begin
end 8;
begin
end 9;
begin
end 10;
begin
end 11;
begin write(out,<:EXPONENT=:>); setposition(out,0,0); read(in,n);
end 12;
end case;
c:=1.4387987/T;
open(sp,4,string inc(spname),0);
if monitor(42,sp,0,sptail) <> 0 then
begin
write(out,<:***:>,string inc(spname),<: unknown:>);
goto slut;
end;
tail(1):=400;
open(r,4,string inc(spr),0);
if monitor(42,r,0,tail)=0 then monitor(48,r,0,tail);
monitor(40,r,0,tail); monitor(50,r,15,tail);
inrec(sp,128); tail(1):=1; outrec(r,128);
sptail(1):=sp(1); t:=sp(2); bmin:=sp(11); b:=sp(30);
p:=sp(40); if p<0 then p:=10;
for j:=1 step 1 until 128 do r(j):=sp(j);
if b=-1 then begin
write(out,<:
***baggrundskorrektion mangler
benyt proc b for konstant baggrund
benyt proc c for variabel baggrund
:>); goto slut;
end;
setposition(sp,0,2);
tail(1):=2; outrec(r,128); tail(1):=3;
max:=0;
for k:=0 step 1 until sptail(1)-3 do
begin
inrec(sp,128); outrec(r,128);
for j:=1 step 1 until 128 do
begin
u:=k*128+j;
if u<t then
begin
if ver=1 then r(j):=sp(j)*(bmin+u/p)*(1-exp(-c*(bmin+u/p)));
if ver=2 then r(j):=sp(j)/(bmin+u/p)/(1-exp(-c*(bmin+u/p)));
if ver=3 then r(j):=sp(j)*(1-exp(-c*(bmin+u/p)));
if ver=4 then r(j):=sp(j)*(bmin+u/p)**2;
if ver=5 then r(j):=sp(j)*(bmin+u/p)**(-2);
if ver=6 then r(j):=sp(j)*(1/2)*(1+exp(-c*(bmin+u/p)));
if ver=7 then r(j):=sp(j)*2/(1+exp(-c*(bmin+u/p)));
if ver=8 then r(j):=sp(j);
if ver=9 then r(j):=ln(
if sp(j)<0.00000001 and sp(j)>-0.00000001 then 0.000001 else abs(sp(j)));
if ver=10 then r(j):=exp(sp(j));
if ver=11 then r(j):=sp(j)-B*exp(A*(u/p+bmin));
if ver=12 then r(j):=sp(j)*(bmin+u/p)**n;
if r(j)>max then begin max:=r(j); umax:=u; end;
end;
end j;
tail(1):=tail(1)+1;
end k;
close(sp,true);
monitor(44,r,15,tail);
setposition(r,0,2);
for k:=0 step 1 until sptail(1)-3 do
begin
swoprec(r,128);
for j:=1 step 1 until 128 do
begin
u:=k*128+j;
if u<t then r(j):=r(j)*100/(if l=1 then max else 100);
end j;
end k;
setposition(r,0,0); swoprec(r,128);
r(6):=if l=1 then 100 else max; r(7):=umax;
if ver=1 then r(50):=1;
close(r,true);
write(out,<:MAX=:>,<< ddd ddd ddd.dd>,max,
false add 10,1,<:MAX FREQ= :>,<< dddd.dd>,bmin+umax/p,<: CM-1:>);
slut: end; end
▶EOF◀