VEC_$IREC1R16 Domain/OS VEC_$IREC1R16
NAME
vec_$irec1r16 - function returning first-order linear recurrence of 16-
bit integer vector
SYNOPSIS (C)
#include <apollo/base.h>
#include <apollo/vec.h>
short int vec_$irec1r16(
short int *start_vec,
short int *vec_2,
long int &count,
short int &init_value)
SYNOPSIS (Pascal)
%include '/sys/ins/base.ins.pas';
%include '/sys/ins/vec.ins.pas';
function vec_$irec1r16(
in start_vec: univ vec_$integer16_vector;
in vec_2: univ vec_$integer16_vector;
in count: integer32;
in init_value: integer16):integer16;
SYNOPSIS (FORTRAN)
%include '/sys/ins/base.ins.ftn'
%include '/sys/ins/vec.ins.ftn'
parameter (nvec = 10)
integer*2 start_vec(nvec), vec_2(nvec), init_value, return_value
integer*4 count
return_value = vec_$irec1r16(start_vec, vec_2, count, init_value)
DESCRIPTION
Vec_$irec1r16 calculates a first-order linear recurrence based on
start_vec, with coefficients taken from vec_2. Unlike vec_$rec1, it does
not produce an output vector. Instead, it calculates the value of each
entry in a temporary output vector, then returns the value of the last
entry. It differs from vec_$rec1r in that the vectors being handled con-
tain 16-bit integers.
This routine sets its return value to init_value; it then performs a
recurrence calculation as follows:
For each integer I such that 1 <= I <= count,
return_value = start_vec(I) + (vec_2(I) x return_value)
start_vec
An input vector.
vec_2
An input vector.
count
The number of elements to be operated on.
init_value
The initial value on which the recurrence calculation is based.
NOTES
When vec_$irec1r16 is used to operate on matrixes in C and Pascal,
start_vec and vec_2 are row vectors; in FORTRAN, they are column vec-
tors.
Vec_$irec1r16, like all 16-bit integer routines, performs poorly when
compared to the 32-bit integer routines. Its use should be avoided wher-
ever possible, especially on high-performance workstations.
SEE ALSO
vec_$rec1, vec_$rec1c, vec_$rec1n, vec_$rec1r, vec_$rec1cr, vec_$rec1r_i,
vec_$drec1r, vec_$drec1r_i, vec_$irec1r, vec_$irec1r_i, vec_$irec1r16_i.