code: public static ImmutableVector copy(Vector source) {
  		if (source instanceof ImmutableVector) return (ImmutableVector)source;
  		switch (source.getRowCount()) {
  			case 2:
  				return copy((Vector2)source);
  			case 3:
  				return copy((Vector3)source);
  			case 4:
  				return copy((Vector4)source);
  			default:
  				return new ImmutableVector(source);
  		}
  	}
docs: Returns an immutable vector with the same values as the argument.
  
  @param source the vector containing the data for the new immutable vector
  @return an immutable vector containing the same elements as {@code source}
  @throws NullPointerException if {@code source} is {@code null}