00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_ENTRY1D_INCLUDE
00013 #define MTL_ENTRY1D_INCLUDE
00014
00015 #include <boost/numeric/mtl/concept/collection.hpp>
00016 #include <boost/numeric/mtl/matrix/multi_vector.hpp>
00017
00018 namespace mtl {
00019
00020 namespace vector {
00021
00022 template <typename Vector>
00023 inline typename Collection<Vector>::value_type const&
00024 entry1D(const Vector& v, typename Collection<Vector>::size_type i)
00025 {
00026 return v[i];
00027 }
00028
00029 template <typename Vector>
00030 inline typename Collection<Vector>::value_type&
00031 entry1D(Vector& v, typename Collection<Vector>::size_type i)
00032 {
00033 return v[i];
00034 }
00035 }
00036
00037 namespace matrix {
00038
00039 template <typename Vector>
00040 inline Vector& entry1D(multi_vector<Vector>& A, typename Collection<Vector>::size_type i)
00041 {
00042 return A.vector(i);
00043 }
00044
00045 template <typename Vector>
00046 inline Vector const& entry1D(const multi_vector<Vector>& A, typename Collection<Vector>::size_type i)
00047 {
00048 return A.vector(i);
00049 }
00050 }
00051
00052 }
00053
00054 #endif // MTL_ENTRY1D_INCLUDE