Multiplies an array of doubles and an array of integers element-wise. - Java Collection Framework

Java examples for Collection Framework:Array Algorithm

Description

Multiplies an array of doubles and an array of integers element-wise.

Demo Code


//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        double[] a = new double[] { 34.45, 35.45, 36.67, 37.78, 37.0000,
                37.1234, 67.2344, 68.34534, 69.87700 };
        int[] b = new int[] { 34, 35, 36, 37, 37, 37, 67, 68, 69 };
        System.out.println(java.util.Arrays.toString(multiplyElementwise(a,
                b)));//  www. jav  a  2 s  .  co  m
    }

    /**
     * Multiplies an array of doubles and an array of integers element-wise.
     *
     * @param a   Array of doubles.
     * @param b   Array of integers.
     * @return   Element-wise product of the arrays.
     * @throws ArithmeticException   Throws an exception when the two vectors are
     * not of the same size.
     */
    public static double[] multiplyElementwise(double[] a, int[] b)
            throws ArithmeticException {

        if (a.length != b.length) {
            throw new ArithmeticException();
        } else {
            double[] result = new double[a.length];
            for (int i = 0; i < a.length; i++) {
                result[i] = a[i] * b[i];
            }
            return result;
        }

    }

    /**
     * Multiplies two arrays of doubles element-wise.
     *
     * @param a   Array of doubles.
     * @param b   Array of doubles.
     * @return   Element-wise product of the two arrays.
     * @throws ArithmeticException   Throws an exception when the two vectors are
     * not of the same size.
     */
    public static double[] multiplyElementwise(double[] a, double[] b)
            throws ArithmeticException {

        if (a.length != b.length) {
            throw new ArithmeticException();
        } else {
            double[] result = new double[a.length];
            for (int i = 0; i < a.length; i++) {
                result[i] = a[i] * b[i];
            }
            return result;
        }

    }

    /**
     * Multiplies two arrays of integers element-wise.
     *
     * @param a   Array of integers.
     * @param b   Array of integers.
     * @return   Element-wise product of the two arrays.
     * @throws ArithmeticException   Throws an exception when the two vectors are
     * not of the same size.
     */
    public static int[] multiplyElementwise(int[] a, int[] b)
            throws ArithmeticException {

        if (a.length != b.length) {
            throw new ArithmeticException();
        } else {
            int[] result = new int[a.length];
            for (int i = 0; i < a.length; i++) {
                result[i] = a[i] * b[i];
            }
            return result;
        }

    }

    /**
     * Multiplies two arrays of floats element-wise.
     *
     * @param a   Array of floats.
     * @param b   Array of floats.
     * @return   Element-wise product of the two arrays.
     * @throws ArithmeticException   Throws an exception when the two vectors are
     * not of the same size.
     */
    public static float[] multiplyElementwise(float[] a, float[] b)
            throws ArithmeticException {

        if (a.length != b.length) {
            throw new ArithmeticException();
        } else {
            float[] result = new float[a.length];
            for (int i = 0; i < a.length; i++) {
                result[i] = a[i] * b[i];
            }
            return result;
        }

    }

    /**
     * Multiplies two arrays of longs element-wise.
     *
     * @param a   Array of longs.
     * @param b   Array of longs.
     * @return   Element-wise product of the two arrays.
     * @throws ArithmeticException   Throws an exception when the two vectors are
     * not of the same size.
     */
    public static long[] multiplyElementwise(long[] a, long[] b)
            throws ArithmeticException {

        if (a.length != b.length) {
            throw new ArithmeticException();
        } else {
            long[] result = new long[a.length];
            for (int i = 0; i < a.length; i++) {
                result[i] = a[i] * b[i];
            }
            return result;
        }

    }

    /**
     * Multiplies two arrays of bytes element-wise.
     *
     * @param a   Array of bytes.
     * @param b   Array of bytes.
     * @return   Element-wise product of the two arrays.
     * @throws ArithmeticException   Throws an exception when the two vectors are
     * not of the same size.
     */
    public static byte[] multiplyElementwise(byte[] a, byte[] b)
            throws ArithmeticException {

        if (a.length != b.length) {
            throw new ArithmeticException();
        } else {
            byte[] result = new byte[a.length];
            for (int i = 0; i < a.length; i++) {
                result[i] = (byte) (a[i] * b[i]);
            }
            return result;
        }

    }

    /**
     * Multiplies two matrices of doubles element-wise.
     *
     * @param a   Matrix of doubles.
     * @param b   Matrix of doubles.
     * @return   Element-wise product of the two matrices.
     * @throws ArithmeticException   Throws an exception when the two matrices are
     * not of the same size.
     */
    public static double[][] multiplyElementwise(double[][] a, double[][] b)
            throws ArithmeticException {

        if (a.length != b.length || a[0].length != b[0].length) {
            throw new ArithmeticException();
        } else {
            double[][] result = new double[a.length][a[0].length];
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[0].length; j++) {
                    result[i][j] = a[i][j] * b[i][j];
                }
            }
            return result;
        }

    }

    /**
     * Multiplies two matrices of integers element-wise.
     *
     * @param a   Matrix of integers.
     * @param b   Matrix of integers.
     * @return   Element-wise product of the two matrices.
     * @throws ArithmeticException   Throws an exception when the two matrices are
     * not of the same size.
     */
    public static int[][] multiplyElementwise(int[][] a, int[][] b)
            throws ArithmeticException {

        if (a.length != b.length || a[0].length != b[0].length) {
            throw new ArithmeticException();
        } else {
            int[][] result = new int[a.length][a[0].length];
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[0].length; j++) {
                    result[i][j] = a[i][j] * b[i][j];
                }
            }
            return result;
        }

    }

    /**
     * Multiplies two matrices of floats element-wise.
     *
     * @param a   Matrix of floats.
     * @param b   Matrix of floats.
     * @return   Element-wise product of the two matrices.
     * @throws ArithmeticException   Throws an exception when the two matrices are
     * not of the same size.
     */
    public static float[][] multiplyElementwise(float[][] a, float[][] b)
            throws ArithmeticException {

        if (a.length != b.length || a[0].length != b[0].length) {
            throw new ArithmeticException();
        } else {
            float[][] result = new float[a.length][a[0].length];
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[0].length; j++) {
                    result[i][j] = a[i][j] * b[i][j];
                }
            }
            return result;
        }

    }

    /**
     * Multiplies two matrices of longs element-wise.
     *
     * @param a   Matrix of longs.
     * @param b   Matrix of longs.
     * @return   Element-wise product of the two matrices.
     * @throws ArithmeticException   Throws an exception when the two matrices are
     * not of the same size.
     */
    public static long[][] multiplyElementwise(long[][] a, long[][] b)
            throws ArithmeticException {

        if (a.length != b.length || a[0].length != b[0].length) {
            throw new ArithmeticException();
        } else {
            long[][] result = new long[a.length][a[0].length];
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[0].length; j++) {
                    result[i][j] = a[i][j] * b[i][j];
                }
            }
            return result;
        }

    }

    /**
     * Multiplies two matrices of bytes element-wise.
     *
     * @param a   Matrix of bytes.
     * @param b   Matrix of bytes.
     * @return   Element-wise product of the two matrices.
     * @throws ArithmeticException   Throws an exception when the two matrices are
     * not of the same size.
     */
    public static int[][] multiplyElementwise(byte[][] a, byte[][] b)
            throws ArithmeticException {

        if (a.length != b.length || a[0].length != b[0].length) {
            throw new ArithmeticException();
        } else {
            int[][] result = new int[a.length][a[0].length];
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[0].length; j++) {
                    result[i][j] = a[i][j] * b[i][j];
                }
            }
            return result;
        }

    }
}

Related Tutorials