cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Static Public Member Functions | List of all members
vctDynamicVectorLoopEngines Class Reference

Container class for the vector loop based engines. More...

#include <vctDynamicVectorLoopEngines.h>

Classes

class  MinAndMax
 
class  SelectByIndex
 
class  SoVi
 Implement operation of the form $s_o = op_{incr}(op(v_i))$ for dynamic vectors. More...
 
class  SoViSi
 Implement operation of the form $s_o = op_{incr}(op(v_i, s_i))$ for dynamic vectors. More...
 
class  SoViVi
 Implement operation of the form $s_o = op_{incr}(op(v_{i1}, v_{i2}))$ for dynamic vectors. More...
 
class  Vio
 Implement operation of the form $v_{io} = op(v_{io})$ for dynamic vectors. More...
 
class  VioSi
 Implement operation of the form $ v_{io} = op(v_{io}, s_i)$ for dynamic vectors. More...
 
class  VioSiVi
 Implement operation of the form $v_{io} = op_{io}(v_{io}, op_{sv}(s, v_i))$ for dynamic vectors. More...
 
class  VioVi
 Implement operation of the form $v_{io} = op(v_{io}, v_i)$ for dynamic vectors. More...
 
class  VioVio
 Implement operation of the form $(v_{1}, v_{2}) = op(v_{1}, v_{2})$ for dynamic vectors. More...
 
class  VioViVi
 Implement operation of the form $v_{io} = op_{io}(v_{io}, op_{v}(v_{i1}, v_{i2}))$ for dynamic vectors. More...
 
class  VoSiVi
 Implement operation of the form $vo = op(si, vi)$ for dynamic vectors. More...
 
class  VoVi
 Implement operation of the form $v_o = op(v_i)$ for dynamic vectors. More...
 
class  VoViSi
 Implement operation of the form $vo = op(vi, si)$ for dynamic vectors. More...
 
class  VoViVi
 Implement operation of the form $v_o = op(v_{i1}, v_{i2})$ for dynamic vectors. More...
 

Static Public Member Functions

static void ThrowException (void) throw (std::runtime_error)
 

Detailed Description

Container class for the vector loop based engines.

Loop engines can be used for dynamic vectors (see vctDynamicVector) to apply similar operations (see vctBinaryOperations, vctUnaryOperations, vctStoreBackBinaryOperations, vctStoreBackUnaryOperations). Each engine corresponds to an operation signature.

Loop engines are named according to the type of the parameters and their role (i.e. input/output). The order reflects the mathematical expression. For exemple, VoViVi stands for one output vector with two input vectors used in $v_o = v_i op v_i$ and VioSi stands for one input/output vector and one scalar input used in $v_{io} = v_{io} op s_i$.

The implementation is based on loops. The inner class are templated by the operation type and allows to plug any operation with a given signature.

All vector types must support the index operator ([]) to access their elements. The input vector types must have it as const method. The output vector type must have it as non-const method.

The method size() is also required. For the operations based on two or more vectors, this method is used to check that the operands have the same size. If the sizes don't match, an exception of type std::runtime_error is thrown.

See Also
vctFixedSizeVectorRecursiveEngines VoViVi VioVi VoViSi VoSiVi VioSi VoVi Vio SoVi SoViVi SoVoSi

Member Function Documentation

static void vctDynamicVectorLoopEngines::ThrowException ( void  )
throw (std::runtime_error
)
inlinestatic

Helper function to throw an exception whenever sizes mismatch. This enforces that a standard message is sent.


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