42 #ifndef SHARK_LINALG_INITIALIZE_H 43 #define SHARK_LINALG_INITIALIZE_H 45 #include "Impl/Initialize.h" 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> >
83 init(
const vector_range<Source>& source){
84 return detail::ADLVector<vector_range<Source> >(source);
88 template<
class Source>
89 detail::ADLVector<matrix_row<Source> >
90 init(
const matrix_row<Source>& source){
91 return detail::ADLVector<matrix_row<Source> >(source);
97 template<
class Matrix>
99 return detail::MatrixExpression<const Matrix>(matrix());
102 template<
class Matrix>
104 return detail::MatrixExpression<Matrix>(matrix());
112 detail::ParameterizableExpression<const T>
parameters(
const T&
object){
113 return detail::ParameterizableExpression<const T>(object);
120 return detail::ParameterizableExpression<T>(object);
133 detail::InitializerRange<typename T::const_iterator,detail::VectorExpression<const typename T::value_type&> >
135 return detail::InitializerRange<
136 typename T::const_iterator,
137 detail::VectorExpression<const typename T::value_type&>
138 >(range.begin(),range.end());
147 detail::InitializerRange<typename T::iterator,detail::VectorExpression<typename T::value_type&> >
149 return detail::InitializerRange<
150 typename T::iterator,
151 detail::VectorExpression<typename T::value_type&>
152 >(range.begin(),range.end());
162 detail::InitializerRange<typename T::const_iterator,detail::MatrixExpression<const typename T::value_type> >
164 return detail::InitializerRange<
165 typename T::const_iterator,
166 detail::MatrixExpression<const typename T::value_type>
167 >(range.begin(),range.end());
176 detail::InitializerRange<typename T::iterator,detail::MatrixExpression<typename T::value_type> >
178 return detail::InitializerRange<
179 typename T::iterator,
180 detail::MatrixExpression<typename T::value_type>
181 >(range.begin(),range.end());
188 detail::InitializerRange<typename T::const_iterator, detail::ParameterizableExpression<const typename T::value_type> >
190 return detail::InitializerRange<
191 typename T::const_iterator,
192 detail::ParameterizableExpression<const typename T::value_type>
193 >(range.begin(),range.end());
199 detail::InitializerRange<typename T::iterator, detail::ParameterizableExpression<typename T::value_type> >
201 return detail::InitializerRange<
202 typename T::iterator,
203 detail::ParameterizableExpression<typename T::value_type>
204 >(range.begin(),range.end());