Select Git revision
-
Lukáš Ondráček authoredLukáš Ondráček authored
fast-array.h 692 B
#ifndef __FAST_ARRAY_H__
#define __FAST_ARRAY_H__
template < typename Ring, size_t maxSize = 0 >
struct Mapping {
typedef typename Ring::T T;
std::vector<T> data;
Mapping() {}
template < typename X >
Mapping(X x) : data(x.data) {}
Mapping(size_t size = 0, T val = 0) : data(size, val) {}
inline size_t size() const { return data.size(); }
inline T operator[] (size_t i) const { return data[i]; }
inline void assign(size_t i, T val) { data[i] = val; }
Mapping& combine(T beta, const Mapping& b) {
size_t _size = size();
for (size_t i = 0; i < _size; i++)
data[i] = Ring::plus(data[i], Ring::multiply(beta, b.data[i]));
return *this;
}
};
#endif