RTOpPack: Extra C/C++ Code for Vector Reduction/Transformation Operators
Version of the Day
|
#include <RTOp.h>
Struct for a mutable sub-vector.
The corresponding entries in the global vector x(j)
(one based) are as follows:
x( vec.global_offset + k ) = vec.values[ vec.value_stride * (k-1) ] for k = 1...vec.sub_dim
The stride member vec.value_stride
may be positive (>0), negative (<0) but not zero (0). A negative stride vec.value_stride < 0
allows a reverse traversal of the elements in a vector. A zero stride vec.value_stride == 0
would allow a vector with all the elements the same and therefore is not a target of a transformation operation.
To avoid making mistakes in setting the members of this struct use one of the helper functions RTOp_mutable_sub_vector()
or RTOp_mutable_sub_vector_null()
.