37 #ifndef GMM_INTERFACE_BGEOT_H__
38 #define GMM_INTERFACE_BGEOT_H__
49 template <
typename T>
struct linalg_traits<
bgeot::small_vector<T> > {
51 typedef this_type origin_type;
52 typedef linalg_false is_reference;
53 typedef abstract_vector linalg_type;
56 typedef typename this_type::iterator iterator;
57 typedef typename this_type::const_iterator const_iterator;
58 typedef abstract_dense storage_type;
59 typedef linalg_true index_sorted;
60 static size_type size(
const this_type &v) {
return v.size(); }
61 static iterator begin(this_type &v) {
return v.begin(); }
62 static const_iterator begin(
const this_type &v) {
return v.begin(); }
63 static iterator end(this_type &v) {
return v.end(); }
64 static const_iterator end(
const this_type &v) {
return v.end(); }
65 static origin_type* origin(this_type &v) {
return &v; }
66 static const origin_type* origin(
const this_type &v) {
return &v; }
67 static void clear(origin_type* o,
const iterator &it,
const iterator &ite)
68 { std::fill(it, ite, value_type(0)); }
69 static void do_clear(this_type &v)
70 { std::fill(v.begin(), v.end(), value_type(0)); }
71 static value_type access(
const origin_type *,
const const_iterator &it,
74 static reference access(origin_type *,
const iterator &it,
83 #endif // GMM_INTERFACE_BGEOT_H__