public VectorNi add(VectorNi v) { return add(v.vec); }
public float distance(VectorNi v) { return distance(v.vec); }
public VectorNi project(int... v) { final int size = size(); if (size != v.length) { throw new IllegalArgumentException("Vector sizes must be the same"); } int lengthSquared = 0; for (int comp = 0; comp < size; comp++) { lengthSquared += v[comp] * v[comp]; } if (lengthSquared == 0) { throw new ArithmeticException("Cannot project onto the zero vector"); } final float a = (float) dot(v) / lengthSquared; final VectorNi d = new VectorNi(size); for (int comp = 0; comp < size; comp++) { d.vec[comp] = GenericMath.floor(a * v[comp]); } return d; }
@Override public VectorNi clone() { return new VectorNi(this); }
@Override public int compareTo(VectorNi v) { return (int) (lengthSquared() - v.lengthSquared()); }
public VectorNi div(VectorNi v) { return div(v.vec); }
public int distanceSquared(VectorNi v) { return distanceSquared(v.vec); }
public VectorNi min(VectorNi v) { return min(v.vec); }
public VectorNi max(VectorNi v) { return max(v.vec); }
public int dot(VectorNi v) { return dot(v.vec); }
public VectorNi project(int... v) { final int size = size(); if (size != v.length) { throw new IllegalArgumentException("Vector sizes must be the same"); } int lengthSquared = 0; for (int comp = 0; comp < size; comp++) { lengthSquared += v[comp] * v[comp]; } if (lengthSquared == 0) { throw new ArithmeticException("Cannot project onto the zero vector"); } final float a = (float) dot(v) / lengthSquared; final VectorNi d = new VectorNi(size); for (int comp = 0; comp < size; comp++) { d.vec[comp] = GenericMath.floor(a * v[comp]); } return d; }
@Override public VectorNi clone() { return new VectorNi(this); }
@Override public int compareTo(VectorNi v) { return (int) (lengthSquared() - v.lengthSquared()); }
public VectorNi div(VectorNi v) { return div(v.vec); }
public int distanceSquared(VectorNi v) { return distanceSquared(v.vec); }
public VectorNi min(VectorNi v) { return min(v.vec); }