Here you can find the source of calculateDistance(float[] vec1, float[] vec2)
Parameter | Description |
---|---|
vec1 | a parameter |
vec2 | a parameter |
public static float calculateDistance(float[] vec1, float[] vec2)
//package com.java2s; /*/*from ww w. j ava2 s . c om*/ * Copyright (c) 2008-2013 Maksim Khadkevich and Fondazione Bruno Kessler. * * This file is part of MART. * MART is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2, as published * by the Free Software Foundation. * * MART is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with MART; if not, write to the Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ public class Main { /** * Calculates distance between 2 vectors * * @param vec1 * @param vec2 * @return */ public static float calculateDistance(float[] vec1, float[] vec2) { float distance = 0; float abs1 = 0; float abs2 = 0; for (int i = 0; i < vec1.length; i++) { distance += vec1[i] * vec2[i]; abs1 += vec1[i] * vec1[i]; abs2 += vec2[i] * vec2[i]; } //secure division by zero if (abs1 != 0 && abs2 != 0) { distance /= (Math.sqrt(abs1) * Math.sqrt(abs2)); } return distance; } }