Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vec_drec3(A) — Apollo Domain/OS SR10.3.5

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

vec_$rec3

vec_$rec3c

vec_$rec3_i

vec_$drec3_i

vec_$irec3

vec_$irec3_i

vec_$irec316

vec_$irec316_i

VEC_$DREC3                        Domain/OS                         VEC_$DREC3


NAME
     vec_$drec3 - calculate third-order linear recurrence of double-precision
     vector

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

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

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

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

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

           parameter (nvec = 10)

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

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

DESCRIPTION
     Vec_$drec3 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 are double-precision floating point.

     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_$drec3 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_i, vec_$irec3,
     vec_$irec3_i, vec_$irec316, vec_$irec316_i.

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