Skip to content
Snippets Groups Projects
Select Git revision
  • a2da36b8a1d6c452f60b18048f94021cfeb60514
  • master default protected
2 results

fast-array.h

Blame
  • 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