=== added file 'pmt/src/lib/simplevector.hpp' --- pmt/src/lib/simplevector.hpp 1970-01-01 00:00:00 +0000 +++ pmt/src/lib/simplevector.hpp 2009-01-28 18:37:52 +0000 @@ -0,0 +1,68 @@ +#ifndef __SIMPLE_VECTOR__ +#define __SIMPLE_VECTOR__ + +#include +#include + +template +class simplevector +{ +public: + simplevector() : start(0), end(0) {}; + simplevector(const size_t& size) { start = new T[size]; end=start+size; } + simplevector(const size_t& size, const T& fill); + ~simplevector() { delete[] start; } + + size_t size() const { return end-start; } + T& at(const size_t& k) const; + T& operator[](const size_t& k) const { return *(start+k); } + +protected: + T* start; + T* end; +}; + +template <> +inline simplevector >::simplevector(const size_t& size, const std::complex& fill) +{ + start = new std::complex[size]; + end=start+size; + for(size_t i = 0; i < size; ++i) start[i] = fill; +} + +template <> +inline simplevector >::simplevector(const size_t& size, const std::complex& fill) +{ + start = new std::complex[size]; + end=start+size; + for(size_t i = 0; i < size; ++i) start[i] = fill; +} + +template <> +inline simplevector::simplevector(const size_t& size, const char& fill) +{ + start = new char[size]; + end=start+size; + memset(start, fill, size*sizeof(char)); +} + +template +simplevector::simplevector(const size_t& size, const T& fill) +{ + start = new T[size]; + end=start+size; + if(fill == 0) { memset(start, 0, size*sizeof(T));} + else { + for(size_t i = 0; i < size; ++i) start[i] = fill; + } +} + +template +T& +simplevector::at(const size_t& k) const +{ + assert(start+k < end); + return *(start+k); +} + +#endif // __SIMPLE_VECTOR__ === modified file 'pmt/src/lib/unv_template.cc.t' --- pmt/src/lib/unv_template.cc.t 2008-06-26 17:17:15 +0000 +++ pmt/src/lib/unv_template.cc.t 2009-01-28 18:37:52 +0000 @@ -9,12 +9,13 @@ } address@hidden@vector::address@hidden@vector(size_t k) + : d_v(k) +{ } + address@hidden@vector::address@hidden@vector(size_t k, @TYPE@ fill) - : d_v(k) -{ - for (size_t i = 0; i < k; i++) - d_v[i] = fill; -} + : d_v(k, fill) +{ } address@hidden@vector::address@hidden@vector(size_t k, const @TYPE@ *data) : d_v(k) === modified file 'pmt/src/lib/unv_template.h.t' --- pmt/src/lib/unv_template.h.t 2008-06-26 17:17:15 +0000 +++ pmt/src/lib/unv_template.h.t 2009-01-28 18:37:52 +0000 @@ -5,9 +5,11 @@ class address@hidden@vector : public pmt_uniform_vector { - std::vector< @TYPE@ > d_v; + // std::vector< @TYPE@ > d_v; + simplevector< @TYPE@ > d_v; public: + address@hidden@vector(size_t k); address@hidden@vector(size_t k, @TYPE@ fill); address@hidden@vector(size_t k, const @TYPE@ *data); // address@hidden@vector();