SYSCALLS/VEC - vector arithmetic routines 83/03/17
Include files:
FORTRAN: /sys/ins/vec.ins.ftn
Pascal: /sys/ins/vec.ins.pas
C: /sys/ins/vec.ins.c
Most calls come in single and double precision versions. A 'd' in square
brackets in the routine name below means that a double precision version
is supported. In single-precision versions, all floating-point parameters
are single precision; in double-precision versions, all floating-point
parameters are double precision.
Procedures and Functions:
vec_$[d]add_constant (start_vec, length, constant, result_vec)
Adds a constant to a vector.
vec_$[d]add_constant_i (start_vec, inc1, length, constant, result_vec,
inc2)
Same as preceding, but steps through the vector by increments
other than 1.
vec_$[d]add_vector (start_vec, add_vec, length, result_vec)
Adds two vectors.
vec_$[d]add_vector_i (start_vec, inc1, add_vec, inc2, length,
result_vec, inc3)
Same as preceding, but steps through the vectors by increments
other than 1.
vec_$[d]copy (start_vec, result_vec, length)
Copies elements from one vector to another.
vec_$[d]copy_i (start_vec, inc1, result_vec, inc2, length)
Same as preceding, but steps through the vectors by increments
other than 1.
dot_prod := vec_$[d]dot (vec1, vec2, length)
Calculates the dot product of two vectors.
dot_prod := vec_$[d]dot_i (vec1, inc1, vec2, inc2, length)
Same as preceding, but steps through the vectors by increments
other than 1.
vec_$dp_sp (vec1, vec2, length)
Copies a double precision vector to a single precision vector.
vec_$dp_sp_i (vec1, inc1, vec2, inc2, length)
Same as preceding, but steps through the vectors by increments
other than 1.
vec_$[d]init (vector, length, constant)
Initializes a vector with a constant.
vec_$[d]mat_mult (matrix1, matrix2, out_matrix)
Multiplies two 4x4 matrices and returns the result in a 4x4 matrix.
vec_$[d]max (start_vec, length, result, result_loc)
Finds the element with the greatest absolute value, and returns its
value and location.
vec_$[d]max_i (start_vec, inc1, length, result, result_loc)
Same as preceding, but steps through the vector by increments other
than 1.
vec_$[d]mult_add (add_vec, mult_vec, length, constant, result_vec)
Multiplies a vector by a constant and adds the result to a second
vector.
vec_$[d]mult_add_i (add_vec, inc1, mult_vec, inc2, length, constant,
result_vec, inc3)
Same as preceding, but steps through the vectors by increments
other than 1.
vec_$[d]mult_constant (start_vec, length, constant, result_vec)
Multiplies a vector by a scalar constant and returns the result in
a second vector.
vec_$[d]mult_constant_i (start_vec, inc1, length, constant,
result_vec, inc2)
Same as preceding, but steps through the vectors by increments
other than 1.
vec_$[d]postmult (matrix, col_vec, result_vec)
Postmultiplies a 4x4 matrix by a 4x1 vector and returns the result
in a second vector.
vec_$[d]premult (row_vec, matrix, result_vec)
Premultiplies a 4x4 matrix by a 1x4 vector and returns the result
in a second vector.
vec_$sp_dp (vec1, vec2, length)
Copies a single precision vector to a double precision vector.
vec_$sp_dp_i (vec1, inc1, vec2, inc2, length)
Same as preceding, but steps through the vectors by increments
other than 1.
vec_$[d]sub (start_vec, sub_vec, length, result_vec)
Subtracts one vector from another.
vec_$[d]sub_i (start_vec, inc1, sub_vec, inc2, length, result_vec, inc3)
Same as preceding, but steps through the vectors by increments
other than 1.
sum := vec_$[d]sum (vec, length)
Sums the elements of a vector.
sum := vec_$[d]sum_i (vec, inc, length)
Same as preceding, but steps through the vector by increments
other than 1.
vec_$[d]swap (vec1, vec2, length)
Swaps the elements of two vectors.
vec_$[d]swap_i (vec1, inc1, vec2, inc2, length)
Same as preceding, but steps through the vectors by increments
other than 1.
vec_$[d]zero (vec, length)
Zeroes a vector.
vec_$[d]zero_i (vec, inc, length)
Same as preceding, but steps through the vectors by increments
other than 1.