Public Types | Public Member Functions | Protected Types | Protected Attributes

mln::accu::convolve< T1, T2, R > Struct Template Reference
[On values]

Generic convolution accumulator class. More...

#include <convolve.hh>

Inheritance diagram for mln::accu::convolve< T1, T2, R >:
Inheritance graph

List of all members.

Public Types

typedef std::pair< T1, T2 > argument
typedef Accumulator< void > category
typedef convolve< T1, T2, R > exact_t
typedef R q_result
typedef mln::metal::unqualif
< R >::ret 
result

Public Member Functions

 convolve ()
bool is_valid () const
 Check whether this accu is able to return a result.
subj_ ()
void take_as_init (const T &t)
 Take as initialization the value t.
void take_as_init_ (const T &t)
 Default implementation of "take as initialization".
void take_n_times (unsigned n, const T &t)
 Take n times the value t.
void take_n_times_ (unsigned n, const T &t)
 Default implementation of "take n times".
to_result () const
 Get the value of the accumulator.

void init ()
 Manipulators.
void take (const argument &t)
void take (const T1 &t1, const T2 &t2)
void take (const convolve< T1, T2, R > &other)

Protected Types

typedef mln::trait::value_
< typename
mln::trait::op::times< T1, T2 >
::ret >::sum 
S

Protected Attributes

S s_

Detailed Description

template<typename T1, typename T2, typename R = typename mln::trait::value_< typename mln::trait::op::times< T1 , T2 >::ret >::sum>
struct mln::accu::convolve< T1, T2, R >

Generic convolution accumulator class.

Parameters T1 and T2 are the type of values to be convolved. Parameter R is the result type.

Definition at line 54 of file accu/convolve.hh.


Member Typedef Documentation

template<typename T1, typename T2, typename R = typename mln::trait::value_< typename mln::trait::op::times< T1 , T2 >::ret >::sum>
typedef std::pair<T1,T2> mln::accu::convolve< T1, T2, R >::argument

Definition at line 58 of file accu/convolve.hh.

typedef Accumulator<void> mln::Accumulator< convolve< T1, T2, R > >::category [inherited]

Reimplemented from mln::Proxy< convolve< T1, T2, R > >.

Definition at line 80 of file accumulator.hh.

typedef convolve< T1, T2, R > mln::Object< convolve< T1, T2, R > >::exact_t [inherited]

Definition at line 173 of file object.hh.

typedef R mln::accu::internal::base< R, convolve< T1, T2, R > >::q_result [inherited]

Definition at line 58 of file base.hh.

typedef mln::metal::unqualif< R >::ret mln::accu::internal::base< R, convolve< T1, T2, R > >::result [inherited]

Definition at line 59 of file base.hh.

template<typename T1, typename T2, typename R = typename mln::trait::value_< typename mln::trait::op::times< T1 , T2 >::ret >::sum>
typedef mln::trait::value_< typename mln::trait::op::times< T1 , T2 >::ret >::sum mln::accu::convolve< T1, T2, R >::S [protected]

Definition at line 79 of file accu/convolve.hh.


Constructor & Destructor Documentation

template<typename T1 , typename T2 , typename R >
mln::accu::convolve< T1, T2, R >::convolve (  )  [inline]

Definition at line 88 of file accu/convolve.hh.

References mln::accu::convolve< T1, T2, R >::init().


Member Function Documentation

template<typename T1 , typename T2 , typename R >
void mln::accu::convolve< T1, T2, R >::init (  )  [inline]

Manipulators.

Definition at line 96 of file accu/convolve.hh.

References mln::literal::zero.

Referenced by mln::accu::convolve< T1, T2, R >::convolve().

template<typename T1 , typename T2 , typename R >
bool mln::accu::convolve< T1, T2, R >::is_valid (  )  const [inline]

Check whether this accu is able to return a result.

Always true here.

Definition at line 137 of file accu/convolve.hh.

R mln::accu::internal::base< R, convolve< T1, T2, R > >::subj_ (  )  [inherited]
template<typename T1 , typename T2 , typename R >
void mln::accu::convolve< T1, T2, R >::take ( const argument t  )  [inline]

Definition at line 105 of file accu/convolve.hh.

template<typename T1 , typename T2 , typename R >
void mln::accu::convolve< T1, T2, R >::take ( const convolve< T1, T2, R > &  other  )  [inline]

Definition at line 121 of file accu/convolve.hh.

References mln::accu::convolve< T1, T2, R >::s_.

template<typename T1 , typename T2 , typename R >
void mln::accu::convolve< T1, T2, R >::take ( const T1 &  t1,
const T2 &  t2 
) [inline]

Definition at line 113 of file accu/convolve.hh.

void mln::Accumulator< convolve< T1, T2, R > >::take_as_init ( const T &  t  )  [inherited]

Take as initialization the value t.

Dev note: this is a final method; override if needed by take_as_init_ (ending with '_').

void mln::Accumulator< convolve< T1, T2, R > >::take_as_init_ ( const T &  t  )  [inherited]

Default implementation of "take as initialization".

void mln::Accumulator< convolve< T1, T2, R > >::take_n_times ( unsigned  n,
const T &  t 
) [inherited]

Take n times the value t.

Dev note: this is a final method; override if needed by take_as_init_ (ending with '_').

void mln::Accumulator< convolve< T1, T2, R > >::take_n_times_ ( unsigned  n,
const T &  t 
) [inherited]

Default implementation of "take n times".

template<typename T1 , typename T2 , typename R >
R mln::accu::convolve< T1, T2, R >::to_result (  )  const [inline]

Get the value of the accumulator.

Definition at line 129 of file accu/convolve.hh.


Member Data Documentation

template<typename T1, typename T2, typename R = typename mln::trait::value_< typename mln::trait::op::times< T1 , T2 >::ret >::sum>
S mln::accu::convolve< T1, T2, R >::s_ [protected]

Definition at line 80 of file accu/convolve.hh.

Referenced by mln::accu::convolve< T1, T2, R >::take().