|
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: 3072 (0xc00) Types: TextFile Names: »bandtxt«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦af373cc6d⟧ »rydiv« └─⟦this⟧
;klab3 6 lines.2000 time.300 head 1 lookup banddlist if ok.yes mode list.yes slet ryd.bandd beskyt ryd.bandd.4 if ok.no (bandd=set 4 permanent bandd.13) if list.yes bandd=algol list.yes bandd=algol bandd 30 10 76 external real procedure bandd(ns1,ns2,l1,l2,n,Z); value ns1,ns2,l1,l2,n,Z; integer l1,l2,n,Z; real ns1,ns2; if n>=0 and n<=2 and Z>0 and l2-l1=n and ns1>=l1 and ns2>=l2 then begin integer m1,m2,max,k,j,jmin,jmax; real d1,d2,w1,w2,R,Q1,Q2,sum,g,A,sj,eps; eps:='-4; d1:=ns1-l1; d2:=ns2-l2; w1:=ns1+l1+1; w2:=ns2+l2+1; A:=ns1+ns2+n+2; Q1:=2*ns2/(ns1+ns2); Q2:=2*ns1/(ns1+ns2); m1:=m2:=max:=entier(ns1+ns2+n+eps); if abs (round ns1-ns1)<eps then m1:=ns1; if abs (round ns2-ns2)<eps then m2:=ns2; begin array E1(1:m1),E2(1:m2); E1(1):=E2(1):=1; for j:=2 step 1 until max do begin k:=j-1; if j<=m1 then E1(j):=-E1(k)+(d1-k)*(w1-k)/(Q1*k); if j<=m2 then E2(j):=-E2(k)+(d2-k)*(w2-k)/(Q2*k); end; max:=if max+1 < m1+m2 then max+1 else m1+m2; R:=Q1*ns1*Q2*ns2*(ns1*ns2/(Z*(ns1+ns2)))**n*exp(ln(gamma(A-1))+ .5*(ln(gamma(d1))+ln(gamma(d2))+ln(gamma(w1))+ln(gamma(w2))))/(ns1+ns2); sum:=0; g:=1; for k:=2 step 1 until max do begin jmin:=if k-m2<1 then 1 else k-m2; jmax:=if k-1<=m1 then k-1 else m1; sj:=0; for j:=jmin step 1 until jmax do sj:=sj+E1(j)*E2(k-j); sum:=sum+sj*g; g:=g/(A-k); end; if n<-1 then bandd:=R*sum/sqrt(bandd(ns1,ns1,l1,l1,0,Z))/ sqrt(bandd(ns2,ns2,l2,l2,0,Z)) else bandd:=R*sum; end block for arrays; end calculate else bandd:=0; end testbd=set 150 if ok.yes testbd=algol list.yes testbd begin integer nmax,n,l,n2s,l2s,gi,gf; real r,f,dele,A,cau,t0sec,fak; cau:=137.0372; t0sec:=2.4189*'-11; fak:=1/t0sec/cau**3; nmax:=3; readifp(<:nmax:>,nmax); write(out,<:<12><10>Bates and Damgaard program trans <r>**2 E2-E1 f(abs) A(decay):>); for l:=0 step 1 until nmax-1 do for n:=l+1 step 1 until nmax do for n2s:=l+2 step 1 until nmax do begin r:=if n2s>n then bandd(n,n2s,l,l+1,1,1) else bandd(n2s,n,l+1,l,1,1); dele:=.5*(1/n2s/n2s-1/n/n); if dele>0 then begin gi:=2*l+1; gf:=2*l+3; end else begin gf:=2*l+1; gi:=2*l+3; end; f:=2/3*r*r*(l+1)/gi; A:=4/3*dele**3*r*r*(l+1)/gf*fak; write(out,false add 10,if n=n2s then 2 else 1,<<dd>,n,false add ryalf(l),1, <: :>,n2s,false add ryalf(l+1),1, << -d.dddd>,r*r,dele,f,A); end; end testbd lookup banddlist if ok.yes mode list.no ▶EOF◀