VEC_$REC3 Domain/OS VEC_$REC3
NAME
vec_$rec3 - calculate third-order linear recurrence of single-precision
vector
SYNOPSIS (C)
#include <apollo/base.h>
#include <apollo/vec.h>
void vec_$rec3(
float *start_vec,
float *vec_2,
float *vec_3,
float *vec_4,
long int &count,
float *result_vec)
SYNOPSIS (Pascal)
%include '/sys/ins/base.ins.pas';
%include '/sys/ins/vec.ins.pas';
procedure vec_$rec3(
in start_vec: univ vec_$real_vector;
in vec_2: univ vec_$real_vector;
in vec_3: univ vec_$real_vector;
in vec_4: univ vec_$real_vector;
in count: integer32;
var result_vec: univ vec_$real_vector);
SYNOPSIS (FORTRAN)
%include '/sys/ins/base.ins.ftn'
%include '/sys/ins/vec.ins.ftn'
parameter (nvec = 10)
real start_vec(nvec), result_vec(nvec), vec_2(nvec), vec_3(nvec), vec_4(nvec)
integer*4 count
call vec_$rec3(start_vec, vec_2, vec_3, vec_4, count, result_vec)
DESCRIPTION
Vec_$rec3 calculates a third-order linear recurrence based on start_vec,
vec_2, vec_3, and vec_4.
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_$rec3 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_$rec3c, vec_$rec3_i, vec_$drec3, vec_$drec3_i, vec_$irec3,
vec_$irec3_i, vec_$irec316, vec_$irec316_i.