33 #ifndef __H__LIB_ALGEBRA__OPERATOR__INTERFACE__PPREPROCESS__
34 #define __H__LIB_ALGEBRA__OPERATOR__INTERFACE__PPREPROCESS__
57 template <
typename TVector>
76 template <
typename TVector>
88 for (
size_t i = 0; i <
m_pp_chain.size (); i++)
91 if (op.
valid ()) op->apply (v);
Definition: smart_pointer.h:108
bool valid() const
returns true if the pointer is valid, false if not.
Definition: smart_pointer.h:206
interface for pre- and postprocess functions
Definition: pprocess.h:59
virtual ~IPProcessVector()
virtual destructor
Definition: pprocess.h:67
virtual void apply(vector_type &v)=0
user-defined pre- or post-process function
TVector vector_type
the vector type
Definition: pprocess.h:61
a chain of pre- or postprocess operations
Definition: pprocess.h:78
TVector vector_type
the vector type
Definition: pprocess.h:81
SmartPtr< p_process_type > operator[](size_t i)
returns the operation #i
Definition: pprocess.h:105
void add(SmartPtr< p_process_type > p)
adds an operation at the end of the chain
Definition: pprocess.h:96
size_t size()
returns the number of the operations
Definition: pprocess.h:102
void apply(vector_type &v)
performs all the operations
Definition: pprocess.h:86
IPProcessVector< TVector > p_process_type
Definition: pprocess.h:80
std::vector< SmartPtr< p_process_type > > m_pp_chain
Definition: pprocess.h:122
void remove(SmartPtr< p_process_type > p)
removes an operation from the chain
Definition: pprocess.h:108
SM_edge_weight_map< typename T::value_type, ug::BidirectionalMatrix< T > > get(edge_weight_t, ug::BidirectionalMatrix< T > const &g)
Definition: bidirectional_boost.h:157