Here you can find the source of vectorCos(int[] d1, int[] d2)
public static double vectorCos(int[] d1, int[] d2) throws IllegalArgumentException
//package com.java2s; public class Main { public static double vectorCos(int[] d1, int[] d2) throws IllegalArgumentException { if (d1.length != d2.length) throw new IllegalArgumentException("length not equal"); double l1 = 0.0, l2 = 0.0; long accumunate = 0; for (int i = 0; i < d1.length; i++) { l1 += d1[i] * d1[i];/*from w w w .j a v a 2 s . c om*/ l2 += d2[i] * d2[i]; accumunate += d1[i] * d2[i]; } l1 = Math.sqrt(l1); l2 = Math.sqrt(l2); return (double) accumunate / (l1 * l2); } }