 		public:
 			__device__ __host__ MatrixRow(const Matrix &m, const unsigned int &x) : m_(m), x_(x) {}
 			__device__ __host__ float& operator[](const unsigned int &y) const {
-				return m_.data[x_ * m_.width + y];
+				return m_. data_[x_ * m_.width_ + y];
 			}
 	};
 	

	}
};

struct Vector {
	unsigned int size;
	float *data;
	
	__device__ __host__ float& operator[](const unsigned int &x) const {
		return data[x];
	}
	
	void print() {
		std::cout << "[";
		for (unsigned int j(0) ; j != size ; j++) {
			std::cout << " " << (*this)[j];
		}
		std::cout << " ]" << std::endl;

	Serial implementation of Matrix-Vector product
	for CPU
	
	TODO check: m.getWidth() = v.getSize()
*/
Vector productMatrixVectorCPU(const Matrix &m, const Vector &v) {
	Vector r(m.getHeight(), CPU);
	
	for (unsigned int i(0) ; i != m.getHeight() ; i++) {
		r[i] = 0;
		for (unsigned int j(0) ; j != m.getWidth() ; j++) {
			r[i] += m[i][j] * v[j];
		}
	}
