NAME

vq_unit - create vector-quantization unit

PROTOTYPE

unitptr vq_unit( int n, int mode, unitptr host)

ARGUMENTS

int n
dimensionality of input vector
int mode
mode parameter (see below)
unitptr host
host unit for newly created instance

RETURN VALUE:

unitptr -.u:
pointer to newly created unit

INTERFACE OF CREATED UNIT:

For mode=0
X_in[n]:
(input field 0) input vector
EPS_in[1]:
(input field 1) adaptation gain eps
CTL_in[1]:
(input field 2) control input c
X_out[1]:
(output field 0) scalar output value
for mode=2 or 3,
Y_out[n]:
(packed output field 1) internal weight vector w[]

DESCRIPTION:

Creates an adaptive linear vq_unit, mapping a n -dimensional input vector into a scalar output value. The newly created unit becomes a subunit of unit host.
The new output value X_out[0] becomes a linear (precisely: a convex) combination of the old value and of the newly computed activity. A decay of the old value is determined by a decay factor (1-c), where c is the value at the control pin CTL_in[0] (default is c=1). The newly computed activity value is multiplicatively scaled by the factor c and superimposed over the decayed old value. This has the effect, that the unit behaves like a leaky integrator with a time constant of 1/c iteration steps. Special cases result for c=1 and c=0. In the former case, the new activity completely replace the old value. This is the default setting after creation of the unit. In the latter case, the output value retains its old value (in fact, in this case, the internal computation is suppressed; therefore, c=0 can be used to disable the unit).

FILE

/homes/jontrup/nst5/man/../o.sol2//../foldersrc/nst_adaptive.c