diff options
author | Patrick Simianer <p@simianer.de> | 2011-10-13 19:20:20 +0200 |
---|---|---|
committer | Patrick Simianer <p@simianer.de> | 2011-10-13 19:20:20 +0200 |
commit | c7735ab60e22bfec7245dc7af7f14b74459dada8 (patch) | |
tree | 52e08c54b0709ac98100265b2eab223f79686cd9 /utils | |
parent | 3e8f5cd6191b700df08867e3eb0b8c03d2324fe3 (diff) |
svm impl, faster
Diffstat (limited to 'utils')
-rw-r--r-- | utils/fast_sparse_vector.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/utils/fast_sparse_vector.h b/utils/fast_sparse_vector.h index 1301581a..8daaac85 100644 --- a/utils/fast_sparse_vector.h +++ b/utils/fast_sparse_vector.h @@ -214,6 +214,14 @@ class FastSparseVector { } return *this; } + template <typename O> + inline FastSparseVector<O>& plus_eq_v_times_s(const FastSparseVector<O>& other, const O scalar) { + const typename FastSparseVector<O>::const_iterator end = other.end(); + for (typename FastSparseVector<O>::const_iterator it = other.begin(); it != end; ++it) { + get_or_create_bin(it->first) += it->second * scalar; + } + return *this; + } inline FastSparseVector& operator-=(const FastSparseVector& other) { const typename FastSparseVector::const_iterator end = other.end(); for (typename FastSparseVector::const_iterator it = other.begin(); it != end; ++it) { |