//
import java.awt.*;

public class Vec
{
//----- VECTOR MATH -----

   public static void normalize(double[] v) {
      double s = norm(v);
      for (int i = 0 ; i < v.length ; i++)
         v[i] /= s;
   }

   public static double norm(double[] v) {
      return Math.sqrt(dot(v,v));
   }

   public static double dot(double[] a, double[] b) {
      double sum = 0;
      for (int i = 0 ; i < b.length ; i++)
         sum += a[i] * b[i];
      return sum;
   }

   public static void cross(double[] a, double[] b, double[] dst) {
      dst[0] = b[1] * a[2] - b[2] * a[1];
      dst[1] = b[2] * a[0] - b[0] * a[2];
      dst[2] = b[0] * a[1] - b[1] * a[0];
   }

   public static void copy(double[] src, double[] dst) {
      for (int i = 0 ; i < src.length ; i++)
         dst[i] = src[i];
   }

   public static void set(double[] dst, double x, double y, double z) {
      dst[0] = x;
      dst[1] = y;
      dst[2] = z;
   }
}