F121: Vector Algebra

Author(s): M. Aderholz, P.M. Nicholson Library: KERNLIB
Submitter: M. Aderholz Submitted: 01.06.1973
Language: Fortran or Assembler Revised: 16.09.1991

Performs various vector manipulations, such as addition of two vectors, multiplication of a vector by a scalar, scalar product, pre- and post-multiplication of a vector by a matrix.

Structure:

SUBROUTINE, and FUNCTION subprograms
User Entry Names:
VADD, VSUB, VMUL, VBIAS, VSCALE, VLINCO, VUNIT, VMATR,
VMATL, VCOPYN, VFIX, VFLOAT, VFILL, VZERO, VBLANK, VEXCUM,
VDIST, VDIST2, VDOT, VDOTN, VDOTN2, VMOD, VASUM, VSUM,
VMAXA, VMAX, VMINA, VMIN, LVMAXA, LVMAX, LVMINA, LVMIN,
LVSMI, LVSMX, LVSDMI, LVSDMX, LVSIMI, LVSIMX

Notes:

VLINE is the original and obsolete name for the linear combination routine VLINCO; it was changed because it clashed with an entry point in some system library.

Usage:

The arguments in the calling sequences below are defined as follows:

A,B,X
(REAL) One-dimensional arrays of length N.
DA
(DOUBLE PRECISION) One-dimensional array of length N.
IA,IX
(INTEGER) One-dimensional arrays of length N.
C,V
(REAL) One-dimensional arrays of length M.
EX
(REAL) One-dimensional array of length 3.
G
(REAL) Two-dimensional array of dimension (M,N).
ALPHA
(REAL) Variable.
F1,F2
(REAL) Variables.
Y
(REAL) Variable.
N,M
(INTEGER) Variables.
Matrix G is assumed to be stored row-wise, contrary to the Fortran convention, i.e. element tex2html_wrap_inline235 is found in word G(J,I) of the memory allocated with DIMENSION G(M,N).

Any summation tex2html_wrap_inline237 is taken over the index I from 1 to N or over the index J from 1 to M.

Subroutines
CALL VADD(A,B,X,N) tex2html_wrap_inline239 tex2html_wrap_inline241
CALL VSUB(A,B,X,N) tex2html_wrap_inline243 tex2html_wrap_inline245
CALL VMUL(A,B,X,N) tex2html_wrap_inline247 tex2html_wrap_inline249
CALL VBIAS(A,ALPHA,X,N) tex2html_wrap_inline251 tex2html_wrap_inline253
CALL VSCALE(A,ALPHA,X,N) tex2html_wrap_inline255 tex2html_wrap_inline257
CALL VLINCO(A,F1,B,F2,X,N) tex2html_wrap_inline259 tex2html_wrap_inline261
CALL VUNIT(A,X,N) x = a / |a|
tex2html_wrap_inline265 tex2html_wrap_inline267
CALL VMATR(A,G,V,N,M) v = aG
tex2html_wrap_inline271 tex2html_wrap_inline273
CALL VMATL(G,C,X,N,M) x = Gc
tex2html_wrap_inline277 tex2html_wrap_inline279
CALL VCOPYN(A,X,N) tex2html_wrap_inline281 tex2html_wrap_inline283
CALL VFIX(A,IX,N) tex2html_wrap_inline285 tex2html_wrap_inline287
CALL VFLOAT(IA,X,N) tex2html_wrap_inline289 tex2html_wrap_inline291
CALL VFILL(X,N,ALPHA) tex2html_wrap_inline293 tex2html_wrap_inline295
CALL VZERO(IX,N) tex2html_wrap_inline297 tex2html_wrap_inline299
CALL VBLANK(IX,N) tex2html_wrap_inline301 tex2html_wrap_inline303
CALL VEXCUM(A,EX,N) tex2html_wrap_inline305
tex2html_wrap_inline307
tex2html_wrap_inline309

REAL functions
VDIST2(A,B,N) tex2html_wrap_inline311
VDIST(A,B,N) tex2html_wrap_inline313
VDOT(A,B,N) tex2html_wrap_inline315
VDOTN2(A,B,N) tex2html_wrap_inline317
VDOTN(A,B,N) ab / |a| |b|
VMOD (A,N) tex2html_wrap_inline321
VASUM(A,N) tex2html_wrap_inline323
VSUM (A,N) tex2html_wrap_inline325
VMAXA(A,N) tex2html_wrap_inline327
VMAX (A,N) tex2html_wrap_inline329
VMINA(A,N) tex2html_wrap_inline331
VMIN (A,N) tex2html_wrap_inline333

INTEGER functions
LVMAXA(A,N) Location of tex2html_wrap_inline335
LVMAX (A,N) Location of tex2html_wrap_inline337
LVMINA(A,N) Location of tex2html_wrap_inline339
LVMIN (A,N) Location of tex2html_wrap_inline341
LVSMI(A,N,INC) Location of tex2html_wrap_inline343
LVSMX(A,N,INC) Location of tex2html_wrap_inline345
LVSDMI(DA,N,INC) Location of tex2html_wrap_inline347
LVSDMX(DA,N,INC) Location of tex2html_wrap_inline349
LVSIMI(IA,N,INC) Location of tex2html_wrap_inline351
LVSIMX(IA,N,INC) Location of tex2html_wrap_inline353

where tex2html_wrap_inline355
tex2html_wrap_inline357


Michel Goossens Wed Jun 5 05:17:58 METDST 1996