42 #ifndef SHARK_LINALG_INITIALIZE_H 43 #define SHARK_LINALG_INITIALIZE_H 45 #include "Impl/Initialize.h" 46 namespace shark{
namespace blas{
58 template<
class Source>
60 return detail::ADLVector<Source&>(source());
66 template<
class Source>
68 return detail::ADLVector<const Source&>(source());
81 template<
class Source>
82 detail::ADLVector<vector_range<Source> >
84 return detail::ADLVector<vector_range<Source> >(source);
88 template<
class Source>
89 detail::ADLVector<matrix_row<Source> >
91 return detail::ADLVector<matrix_row<Source> >(source);
94 template<
class Source>
95 detail::ADLVector<matrix_column<Source> >
97 return detail::ADLVector<matrix_column<Source> >(source);
103 template<
class Matrix>
105 return detail::MatrixExpression<const Matrix>(matrix());
108 template<
class Matrix>
110 return detail::MatrixExpression<Matrix>(matrix());
118 detail::ParameterizableExpression<const T>
parameters(
const T&
object){
119 return detail::ParameterizableExpression<const T>(object);
126 return detail::ParameterizableExpression<T>(object);
139 detail::InitializerRange<typename T::const_iterator,detail::VectorExpression<const typename T::value_type&> >
141 return detail::InitializerRange<
142 typename T::const_iterator,
143 detail::VectorExpression<const typename T::value_type&>
144 >(range.begin(),range.end());
153 detail::InitializerRange<typename T::iterator,detail::VectorExpression<typename T::value_type&> >
155 return detail::InitializerRange<
156 typename T::iterator,
157 detail::VectorExpression<typename T::value_type&>
158 >(range.begin(),range.end());
168 detail::InitializerRange<typename T::const_iterator,detail::MatrixExpression<const typename T::value_type> >
170 return detail::InitializerRange<
171 typename T::const_iterator,
172 detail::MatrixExpression<const typename T::value_type>
173 >(range.begin(),range.end());
182 detail::InitializerRange<typename T::iterator,detail::MatrixExpression<typename T::value_type> >
184 return detail::InitializerRange<
185 typename T::iterator,
186 detail::MatrixExpression<typename T::value_type>
187 >(range.begin(),range.end());
194 detail::InitializerRange<typename T::const_iterator, detail::ParameterizableExpression<const typename T::value_type> >
196 return detail::InitializerRange<
197 typename T::const_iterator,
198 detail::ParameterizableExpression<const typename T::value_type>
199 >(range.begin(),range.end());
205 detail::InitializerRange<typename T::iterator, detail::ParameterizableExpression<typename T::value_type> >
207 return detail::InitializerRange<
208 typename T::iterator,
209 detail::ParameterizableExpression<typename T::value_type>
210 >(range.begin(),range.end());