#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