#include "Vector.h"

void Vector::copy(const Vector& other) {
  if(this == &other) return;
  if(dims != other.dims) {
    delete data;
    data = new double [dims=other.dims];
  }
  for(int i=0; i<dims; i++) 
    data[i] = other.data[i];
}

int Vector::dimensions(int d) {
  if(dims != d) {
    double* old = data; int _dims = dims;
    data = new double [dims=d];
    for(int i=0; i<d && i<_dims; i++)
	data[i] = old[i];
    delete old;
  }
  return dims;
}

Vector operator* (const double& s, const Vector &v) {
  Vector ret(v.dims); 
  for(int i=0;i<v.dims;i++) 
      ret[i] = v.data[i]*s; 
  return Vector(ret);
}



ostream& operator<< (ostream& os, const Vector& v) {
  os << "(" << v.data[0];
  for(int i=1; i<v.dims; i++)
    os << ", " << v.data[i];
  os << ")";
  return os;
}





