DataMuseum.dk

Presents historical artifacts from the history of:

RC3500

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

See our Wiki for more about RC3500

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦25331b158⟧ TextFileVerbose

    Length: 2304 (0x900)
    Types: TextFileVerbose
    Names: »tpb1«

Derivation

└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system
    └─⟦6b41451d2⟧ 
        └─⟦this⟧ »tpb1« 

TextFileVerbose

o pbevlist
mode list.yes
(pbev=algol list.yes bossline.yes
if ok.yes
scope user pbev
o c
convert pbevlist
finis)
\f


begin
procedure orb(t,x,p); value t; real t; array x<*1:3,0:7*>,p<*1:8*>;
      <*global real delta,pi2*>
begin integer j;
      real s,y,e,e1,sy,cy,r,q,q1,sv,cv,si,ci,so,co;
      array r1,y1(1:4);
  procedure dif(i); integer i;
  begin
    x(i,7):=q/e;  q:=q/r;
    for j:=1 step 1 until 4 do x(i,j):=q*r1(j)+q1*y1(j);
  end;

  q:=p(1); j:=t/q; e:=q+q*j-q*j; q1:=pi2/q;
  s:=y:=(t-e*j-(q-e)*j-p(8)*j)*q1+p(2)-p(4);
  e:=p(3); e1:=sqrt(1-e**2);
  repeat s:=y+e*sin(s) until abs(s-y-e*sin(s))<=delta;
  sy:=sin(s); cy:=cos(s);
  r:=1-e*cy; r1(2):=q:=e*sy/r; r1(1):=q*q1*t; r1(4):=-q;r1(3):=(e-cy)/r;
  y:=arg(cy-e,e1*sy)+p(4); y1(2):=q:=e1/r**2; y1(1):=q*q1*t; y1(4):=1-q;
  y1(3):=(e1+r/e1)*sy/r**2;
  e:=p(7); e1:=e*r; sy:=sin(y); cy:=cos(y);
  si:=sin(p(5)/2); ci:=cos(p(5)/2); so:=sin(p(6)); co:=cos(p(6));
  s:=e1*(sy*co-cy*so); sv:=s*si; cv:=2*e1*si*(cy*co+sy*so);
  x(1,0):=q:=e1*cy+sv*co*si; q1:=-e1*sy+cv*co*si; dif(1);
  x(1,5):=sv*co*ci; x(1,6):=-(cv*co+sv*so)*si;
  x(2,0):=q:=e1*sy-sv*so*si; q1:=e1*cy-cv*so*si; dif(2);
  x(2,5):=-sv*so*ci; x(2,6):=(cv*so-sv*co)*si;
  x(3,0):=q:=sv*ci; x(3,6):=q1:=cv*ci; dif(3);
  x(3,5):=s*(1-2*si**2);
end;

array p,p1(1:8),x,x1(1:3,0:7);
integer i,j;
real delta,t,e,pi2;

pi2:=2*3.1415926536;
read(in,delta,e,t,p);
orb(t,x,p);
for i:=1 step 1 until 8 do p1(i):=p(i);
for i:=1 step 1 until 7 do begin
  p1(i):=p(i)*(1+e);
  orb(t,x1,p1);
  write(out,<:<10>:>,<<d>,i);
  for j:=1,2,3 do write(out,<< -d.dddd'-dd>,x1(j,0)-x(j,0),x(j,i)*e,x1(j,i)*e);
  p1(i):=p(i);
end;
end
«eof»