Computes the L2 norm of an array (Euclidean norm or "length"). - Java Collection Framework

Java examples for Collection Framework:Array Length

Description

Computes the L2 norm of an array (Euclidean norm or "length").

Demo Code


//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        double[] data = new double[] { 34.45, 35.45, 36.67, 37.78, 37.0000,
                37.1234, 67.2344, 68.34534, 69.87700 };
        System.out.println(norm(data));
    }/*from   w  w  w .j  a  v a2s.c  o m*/

    /**
     * Computes the L2 norm of an array (Euclidean norm or "length").
     */
    public static double norm(double[] data) {
        return (Math.sqrt(sumSquares(data)));
    }

    /**
     * Computes the L2 norm of an array (Euclidean norm or "length").
     */
    public static double norm(int[] data) {
        return (Math.sqrt(sumSquares(data)));
    }

    /**
     * Sums the squares of all components;
     * also called the energy of the array.
     */
    public static double sumSquares(double[] data) {
        double ans = 0.0;
        for (int k = 0; k < data.length; k++) {
            ans += data[k] * data[k];
        }
        return (ans);
    }

    /**
     * Sums the squares of all components;
     * also called the energy of the array.
     */
    public static double sumSquares(double[][] data) {
        double ans = 0.0;
        for (int k = 0; k < data.length; k++) {
            for (int l = 0; l < data[k].length; l++) {
                ans += data[k][l] * data[k][l];
            }
        }
        return (ans);
    }

    /**
     * Sums the squares of all components;
     * also called the energy of the array.
     */
    public static int sumSquares(int[] data) {
        int ans = 0;
        for (int k = 0; k < data.length; k++) {
            ans += data[k] * data[k];
        }
        return (ans);
    }

    /**
     * Sums the squares of all components;
     * also called the energy of the array.
     */
    public static int sumSquares(int[][] data) {
        int ans = 0;
        for (int k = 0; k < data.length; k++) {
            for (int l = 0; l < data[k].length; l++) {
                ans += data[k][l] * data[k][l];
            }
        }
        return (ans);
    }
}

Related Tutorials