Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

VEC_$IREC3                        Domain/OS                         VEC_$IREC3


NAME
     vec_$irec3 - calculate third-order linear recurrence of 32-bit integer
     vector

SYNOPSIS (C)
     #include <apollo/base.h>
     #include <apollo/vec.h>

     void vec_$irec3(
          long int *start_vec,
          long int *vec_2,
          long int *vec_3,
          long int *vec_4,
          long int &count,
          long int *result_vec)

SYNOPSIS (Pascal)
     %include '/sys/ins/base.ins.pas';
     %include '/sys/ins/vec.ins.pas';

     procedure vec_$irec3(
          in start_vec: univ vec_$integer32_vector;
          in vec_2: univ vec_$integer32_vector;
          in vec_3: univ vec_$integer32_vector;
          in vec_4: univ vec_$integer32_vector;
          in count: integer32;
          var result_vec: univ vec_$integer32_vector);

SYNOPSIS (FORTRAN)
     %include '/sys/ins/base.ins.ftn'
     %include '/sys/ins/vec.ins.ftn'

           parameter (nvec = 10)

           integer*4 start_vec(nvec), result_vec(nvec), vec_2(nvec), vec_3(nvec), vec_4(nvec)
           integer*4 count

           call vec_$irec3(start_vec, vec_2, vec_3, vec_4, count, result_vec)

DESCRIPTION
     Vec_$irec3 calculates a third-order linear recurrence based on start_vec,
     vec_2, vec_3, and vec_4.  It differs from vec_$rec3 in that the vectors
     being handled contain 32-bit integers.

     This routine reads the first three entries in the array result_vec; it
     then writes count entries into result_vec based on the following formula:

     For each integer I such that 1 <= I <= count,
     result_vec(I+3) = start_vec(I) + (vec_2(I) x result_vec(I+2))
                        + (vec_3(I) x result_vec(I+1))
                        + (vec_4(I) x result_vec(I))

     Notice that result_vec is used both for input and output, and that it
     must be large enough to hold count + 4 entries.

     start_vec
          An input vector.

     vec_2
          An input vector.

     vec_3
          An input vector.

     vec_4
          An input vector.

     count
          The number of elements to be operated on.

     result_vec
          The vector containing three input variables and the output from the
          recurrence calculations.

NOTES
     When vec_$irec3 is used to operate on matrixes in C and Pascal,
     start_vec, vec_2, vec_3, and result_vec are row vectors; in FORTRAN, they
     are column vectors.

     As in all the vec_$ calls,  the result array must not overlap any of the
     input arrays; the result array may be identical to an input, but must not
     contain any subset of an input.   Because of pipelining, using overlap-
     ping input and output arrays may cause incorrect results.


SEE ALSO
     vec_$rec3, vec_$rec3c, vec_$rec3_i, vec_$drec3, vec_$drec3_i,
     vec_$irec3_i, vec_$irec316, vec_$irec316_i.

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