|
|
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: »hlmutrtx«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦787c125fb⟧ »adjprocfile«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦787c125fb⟧ »adjprocfile«
└─⟦this⟧
; hlm univ tr * page 1 26 10 78, 11.22;
; hlm_u_tr
; ********
if listing.yes
char nl ff nl
hlm_u_tr = set 1
hlm_u_tr = algol
external long procedure hlm_u_tr
________________________________
_ (x, i, tr_param, X, w);
real x;
integer i, w;
array tr_param;
long X;
comment
hlm_u_tr (call and return, logn procedure)
the value of the first coordinate in an n-dimensional
helmert transformation, X = X0 + '6*A*x. Note that
there is an implicit scale factor of '6, because the
input coordinates are assumed reals with meters as
the unit and the output coordinates are longs with
'-6 m as the unit.
x (call, real)
the input coordinates in units of m. the individual
coordinates are addressed with JENSENs device, eg.
as array elements x(i) or as cae i of (x, y, ..
with i as the indicating variable.
i (call, integer)
the addressing variable of the input coordinates used
with JENSENs device (see x).
tr_param (call, array)
the parameters of the transformation
tr_param(1), first two bytes = dimension of the coordinates
tr_param(1), last two bytes = not used
_ for invar/outvar.
tr_param(2), long fielded = first coordinate of X0
.......
tr_param(2+dim-1), lng f = last coordinate of X0
tr_param(2+dim) = first elem of matrix A = A11
....... matrix A row-wize
tr_param(2+dim+dim**2-1) = last elem of matrix A =Adimdim
note the implicit scale factor of '6.
X (return, long)
the output coordinates, addressed as X(w) etc with
JENSENs device. note that case w of (N, E, ... cannot
be used as X may no be an expression.
w (call, integer)
the addressing index of the output coordinate;
\f
comment hlm univ tr * page 2 26 10 78, 11.22
0 1 2 3 4 5 6 7 8 9 ;
comment
the call may e.g. be
hlm_u_tr(case i of (x, y, z), i, trparam, NE(w+11), w)
ext. proc
sqrt
Prog.: Knud Poder, OCT 1978
GI lib. no. :
;
begin
long wrk;
real r_wrk;
integer i0, dim, dim_1;
integer field dim_f;
long field X_f;
dim_f := 2;
dim := tr_param.dim_f;
dim_1 := dim + 1;
X_f := 8 - 4*dim_1;
i0 := 2 - dim_1;
for w := 1 step 1 until dim do
begin
i0 := i0 + dim_1;
r_wrk := 0.0;
X_f := dim_1 shift 2 + X_f;
for i := 1 step 1 until dim do
r_wrk := r_wrk + x*tr_param(i0+i);
wrk := '6*r_wrk;
X := tr_param.X_f + wrk;
end;
w := 1;
hlm_u_tr := X;
end hlm_u_tr;
end;
if ok.no
mode warning.yes
if warning.yes
(mode 0.yes
message hlm_u_tr not ok
lookup hlm_u_tr)
end
finis
▶EOF◀