|
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: 1536 (0x600) Types: TextFile Names: »tspln3«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦09b4e9619⟧ »thcømat« └─⟦this⟧
message spln3 spln3=algol message.no cubic spline initialization external procedure spln3(type,X,Y,M,n); value n; integer n; array X,Y,M,type; begin if abs(n)<2 then alarm(<:<10>***spln3 n<60>2:>); if n>1 then begin spln3int(.0,X,Y,M,0); spln3inv(.0,.0,X,Y,M,0) end else n:=-n; begin integer k; real dx,dx1,s,s1,p,q; array Q(1:n); for k:=2 step 1 until n do begin if X(k)<=X(k-1) then alarm(<:<10>***spln3 illegal X(i):>) end; dx:=X(2)-X(1); s:=(Y(2)-Y(1))/dx; case round type(0)+1 of begin begin Q(1):=q:=type(2); M(1):=type(1); M(n):=type(4); Q(n):=type(3) end; Q(1):=Q(n):=M(1):=M(n):=q:=0.0; begin Q(1):=q:=Q(n):=.5; M(1):=3/dx*(s-type(1)); M(n):=3/(X(n)-X(n-1))* (type(4)-(Y(n)-Y(n-1))/(X(n)-X(n-1))) end; begin M(1):=M(n):=0; Q(1):=q:=Q(n):=-3/4 end; end; for k:=2 step 1 until n-1 do begin dx1:=dx; dx:=X(k+1)-X(k); s1:=s; s:=(Y(k+1)-Y(k))/dx; p:=2*(dx+dx1)-dx1*q; M(k):=(6*(s-s1)-dx1*M(k-1))/p; Q(k):=q:=dx/p end k; M(n):=(M(n)-Q(n)*M(n-1))/(1-Q(n)*Q(n-1)); for k:=n-1 step -1 until 1 do M(k):=M(k)-Q(k)*M(k+1); end end spln3 ; end ▶EOF◀