cisst-saw
Loading...
Searching...
No Matches
SoVi< _incrementalOperationType, _elementOperationType > Class Template Reference

Implement operation of the form \(s_o = op_{incr}(op(v_i))\) for fixed size vectors. More...

#include <vctFixedSizeVectorRecursiveEngines.h>

Public Types

typedef vctFixedSizeVectorRecursiveEngines< _size-1 >::template SoVi< _incrementalOperationType, _elementOperationType > RecursiveStep
typedef _incrementalOperationType::OutputType OutputType

Static Public Member Functions

template<class _inputVectorType>
static OutputType Unfold (_inputVectorType &inputVector)

Detailed Description

template<class _incrementalOperationType, class _elementOperationType>
class SoVi< _incrementalOperationType, _elementOperationType >

Implement operation of the form \(s_o = op_{incr}(op(v_i))\) for fixed size vectors.

This class uses template specialization to perform incremental unary vector operations of the form

\[s_o = \mathrm{op_{incr}(\mathrm{op}(v_i))} \]

where \(v_i\) is the input vector and \(s_o\) is the scalar output. The vector has a fixed size, determined at compilation time, op stands for the unary operation performed elementwise on \(v_i\) and whose result are used incrementally as input for \(op_{incr}\). For a vector of size 3, the result is \(s_o = op_{incr}(op_{incr}(op(v[1]), op(v[0])), op(v[2])) \).

Parameters
_incrementalOperationTypeThe type of the incremental operation.
_elementOperationTypeThe type of the unary operation.
See also
vctFixedSizeVectorRecursiveEngines

Member Typedef Documentation

◆ OutputType

template<class _incrementalOperationType, class _elementOperationType>
typedef _incrementalOperationType::OutputType SoVi< _incrementalOperationType, _elementOperationType >::OutputType

◆ RecursiveStep

template<class _incrementalOperationType, class _elementOperationType>
typedef vctFixedSizeVectorRecursiveEngines<_size-1>::template SoVi<_incrementalOperationType, _elementOperationType> SoVi< _incrementalOperationType, _elementOperationType >::RecursiveStep

Member Function Documentation

◆ Unfold()

template<class _incrementalOperationType, class _elementOperationType>
template<class _inputVectorType>
OutputType SoVi< _incrementalOperationType, _elementOperationType >::Unfold ( _inputVectorType & inputVector)
inlinestatic

Unfold the recursion. Performs the operation _elementOperationType elementwise on the last elements of the input vector and call Unfold for the _size - 1 elements left (i.e. unfold the recursive calls). The incremental operation is applied to the result of the recursive Unfold call and the result of _elementOperationType(inputVector[_size]).

Parameters
inputVectorThe input vector.

The documentation for this class was generated from the following file: