Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vec — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought




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.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026