Op< T1, op_type > Class Template Reference
[Op]

Class for storing data required for delayed unary operations, such as the operand (e.g. the matrix to which the operation is to be applied) and the unary operator (e.g. inverse). The operand is stored as a reference (which can be optimised away), while the operator is "stored" through the template definition (op_type). The operands can be 'Mat', 'Row', 'Col', 'Op', and 'Glue'. Note that as 'Glue' can be one of the operands, more than one matrix can be stored. More...

#include <Op_proto.hpp>

Inheritance diagram for Op< T1, op_type >:

Base< T1::elem_type, Op< T1, op_type > >

List of all members.

Public Types

typedef T1::elem_type elem_type
typedef get_pod_type
< elem_type >::pod_type 
pod_type

Public Member Functions

 Op (const T1 &in_m)
 Op (const T1 &in_m, const elem_type in_aux)
 Op (const T1 &in_m, const u32 in_aux_u32_a, const u32 in_aux_u32_b)
 Op (const u32 in_aux_u32_a, const u32 in_aux_u32_b, const char junk)
 ~Op ()

Public Attributes

const T1 & m
 storage of reference to the operand (e.g. a matrix)
const elem_type aux
 storage of auxilliary data, user defined format
const u32 aux_u32_a
 storage of auxilliary data, u32 format
const u32 aux_u32_b
 storage of auxilliary data, u32 format


Detailed Description

template<typename T1, typename op_type>
class Op< T1, op_type >

Class for storing data required for delayed unary operations, such as the operand (e.g. the matrix to which the operation is to be applied) and the unary operator (e.g. inverse). The operand is stored as a reference (which can be optimised away), while the operator is "stored" through the template definition (op_type). The operands can be 'Mat', 'Row', 'Col', 'Op', and 'Glue'. Note that as 'Glue' can be one of the operands, more than one matrix can be stored.

For example, we could have: Op< Glue< Mat, Mat, glue_times >, op_trans >

Definition at line 31 of file Op_proto.hpp.


Member Typedef Documentation

template<typename T1 , typename op_type >
typedef T1::elem_type Op< T1, op_type >::elem_type

Definition at line 35 of file Op_proto.hpp.

template<typename T1 , typename op_type >
typedef get_pod_type<elem_type>::pod_type Op< T1, op_type >::pod_type

Definition at line 36 of file Op_proto.hpp.


Member Data Documentation

template<typename T1 , typename op_type >
const T1& Op< T1, op_type >::m

template<typename T1 , typename op_type >
const elem_type Op< T1, op_type >::aux

template<typename T1 , typename op_type >
const u32 Op< T1, op_type >::aux_u32_a

storage of auxilliary data, u32 format

Definition at line 48 of file Op_proto.hpp.

Referenced by op_sum::apply(), op_sort::apply(), op_pow_s32::apply(), op_min::apply(), op_median::apply(), op_mean::apply(), op_max::apply(), operator*(), and operator/().

template<typename T1 , typename op_type >
const u32 Op< T1, op_type >::aux_u32_b

storage of auxilliary data, u32 format

Definition at line 49 of file Op_proto.hpp.

Referenced by op_sort::apply(), op_pow_s32::apply(), operator*(), and operator/().