Initialize.h File Reference
#include <shark/Core/Exception.h>
#include <shark/Core/IParameterizable.h>
#include <shark/LinAlg/BLAS/ublas.h>
#include <iterator>
#include <boost/type_traits/remove_reference.hpp>
+ Include dependency graph for Initialize.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  shark::detail::ADLVector< T >
 Wrapper to enable argument dependent lookup for ublas vectors in shark namespace. More...
 
class  shark::detail::Scalar< T >
 Wrapper representing a single arithmetic value. More...
 
struct  shark::detail::InitializerBase< Self >
 Expression template as base class for all initializer expressions. More...
 
class  shark::detail::VectorExpression< Expression >
 Wrapper for all kinds of vectorexpression which saves the (sparse) vector in the target vector. More...
 
class  shark::detail::MatrixExpression< Matrix >
 Wrapper for all kinds of matrix expressions which saves the (sparse) matrix row by row in the target vector. More...
 
class  shark::detail::ParameterizableExpression< T >
 Wrapps a parametrizable Object so that it can be used to initialize or split a vector. More...
 
class  shark::detail::ParameterizableExpression< T * >
 Wrapps a pointer to a parametrizable Object so that it can be used to initialize or split a vector. More...
 
class  shark::detail::ParameterizableExpression< T *const >
 
class  shark::detail::InitializerRange< Iterator, Wrapper >
 Wrapper representing a range of vectors or matrices like std::vector<RealVector> or std::list<SparseRealMatrix>. More...
 
struct  shark::detail::InitializerEnd
 Marks the end of the initializer list template. More...
 
class  shark::detail::InitializerNode< Parent, Expression >
 The InitializerNode can initialize a vector on the basis of multiple vector or scalar expressions. More...
 
class  shark::detail::VectorInitializer< VectorExpression, InitExpression >
 VectorInitializer takes a Vector and an initialization expression to initialize the vector during destruction. More...
 
class  shark::detail::VectorSplitter< VectorExpression, SplittingExpression >
 VectorSplitter takes a Vector and a mutable initialization expression to split the vector during destruction. More...
 

Namespaces

namespace  shark
 AbstractSingleObjectiveOptimizer.
 
namespace  shark::detail
 

Macros

#define SHARK_INIT_INIT(Type, Argument)
 
#define SHARK_INIT_COMMA(Type, Argument)
 
#define SHARK_SPLIT_INIT(Type, Argument)
 
#define SHARK_SPLIT_PROXY_INIT(Argument)
 
#define SHARK_SPLIT_PROXY_COMMA(Argument)
 

Functions

template<class Sink >
VectorInitializer< Sink,
InitializerNode
< InitializerEnd, Scalar
< const typename
Sink::value_type > > > 
shark::detail::operator<< (const ADLVector< Sink > &sink, const typename Sink::value_type &value)
 Begins the initialization argument with a vector as first right hand side argument. More...
 
template<class Sink >
VectorInitializer< Sink
&, InitializerNode
< InitializerEnd, Scalar
< const typename
Sink::value_type > > > 
shark::detail::operator<< (const ADLVector< Sink & > &sink, const typename Sink::value_type &value)
 
template<class Sink , class Init >
VectorInitializer< Sink,
InitializerNode< Init, Scalar
< const typename
Sink::value_type > > > 
shark::detail::operator, (const VectorInitializer< Sink, Init > &init, const typename Sink::value_type &value)
 Appends a single vector expression c to the expression vec<<a,b -> vec<<a,b,c. More...
 
template<class Sink , class Init >
VectorInitializer< Sink
&, InitializerNode< Init,
Scalar< const typename
Sink::value_type > > > 
shark::detail::operator, (const VectorInitializer< Sink &, Init > &init, const typename Sink::value_type &value)
 
template<class Sink >
VectorSplitter< Sink,
InitializerNode
< InitializerEnd, Scalar
< typename Sink::value_type > > > 
shark::detail::operator>> (const ADLVector< Sink > &sink, typename Sink::value_type &value)
 Appends a single mutable vector expression. More...
 
template<class Sink >
VectorSplitter< Sink
&, InitializerNode
< InitializerEnd, Scalar
< typename Sink::value_type > > > 
shark::detail::operator>> (const ADLVector< Sink & > &sink, typename Sink::value_type &value)
 
template<class Source , class Init , class Sink >
VectorSplitter< Source,
InitializerNode< Init,
VectorExpression< Sink & > > > 
shark::detail::operator, (const VectorSplitter< Source, Init > &source, shark::blas::vector_expression< Sink > &vec)
 Appends a single mutable vector expression. More...
 
template<class Source , class Init , class Sink >
VectorSplitter< Source,
InitializerNode< Init, Sink > > 
shark::detail::operator, (const VectorSplitter< Source, Init > &source, const InitializerBase< Sink > &vec)
 Appends a initialization expression. More...
 
template<class Source , class Init >
VectorSplitter< Source,
InitializerNode< Init, Scalar
< typename Source::value_type > > > 
shark::detail::operator, (const VectorSplitter< Source, Init > &source, typename Source::value_type &value)
 Operator comma adds another value for splitting. More...
 
template<class Source , class Init >
VectorSplitter< Source
&, InitializerNode< Init,
Scalar< typename
Source::value_type > > > 
shark::detail::operator, (const VectorSplitter< Source &, Init > &source, typename Source::value_type &value)
 

Macro Definition Documentation

#define SHARK_INIT_COMMA (   Type,
  Argument 
)
Value:
template<class Sink,class Init,class Source>\
VectorInitializer<Sink,InitializerNode<Init,Type > > operator,(const VectorInitializer<Sink,Init >& init,const Argument& vec){\
init.disable();\
typedef InitializerNode<Init,Type > newExpression;\
return VectorInitializer<Sink, newExpression>(init.m_vector,newExpression(init.expression(),vec()));\
}

Definition at line 411 of file Initialize.h.

#define SHARK_INIT_INIT (   Type,
  Argument 
)
Value:
template<class Sink,class Source>\
VectorInitializer<Sink,InitializerNode<InitializerEnd, Type> > operator<<(const ADLVector<Sink>& sink,const Argument& source){\
typedef InitializerNode<InitializerEnd,Type > Init;\
return VectorInitializer<Sink, Init>(sink.vector,Init(InitializerEnd(),source()));\
}

Definition at line 383 of file Initialize.h.

#define SHARK_SPLIT_INIT (   Type,
  Argument 
)
Value:
template<class Source,class Sink>\
VectorSplitter<Source,InitializerNode<InitializerEnd, Type> >\
operator>>(const ADLVector<Source>& source,Argument& sink){\
typedef InitializerNode<InitializerEnd,Type > Init;\
return VectorSplitter<Source, Init>(source.vector,Init(InitializerEnd(),sink()));\
}

Definition at line 481 of file Initialize.h.

#define SHARK_SPLIT_PROXY_COMMA (   Argument)
Value:
template<class Source,class Init,class Sink>\
VectorSplitter<Source,InitializerNode<Init,VectorExpression<Argument> > >\
operator,(const VectorSplitter<Source,Init >& source, Argument vec){\
source.disable();\
typedef InitializerNode<Init,VectorExpression<Argument> > newExpression;\
return VectorSplitter<Source, newExpression>(source.m_vector,newExpression(source.expression(),vec));\
}

Definition at line 557 of file Initialize.h.

#define SHARK_SPLIT_PROXY_INIT (   Argument)
Value:
template<class Source,class Sink>\
VectorSplitter<Source,InitializerNode<InitializerEnd, VectorExpression<Argument> > >\
operator>>(const ADLVector<Source>& source,Argument sink){\
typedef InitializerNode<InitializerEnd,VectorExpression<Argument> > Init;\
return VectorSplitter<Source, Init>(source.vector,Init(InitializerEnd(),sink));\
}

Definition at line 508 of file Initialize.h.