Fast scalar multiplication for sparse arrays. - Java Collection Framework

Java examples for Collection Framework:Array Algorithm

Description

Fast scalar multiplication for sparse arrays.

Demo Code


//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        double a = 2.45678;
        double[] v = new double[] { 34.45, 35.45, 36.67, 37.78, 37.0000,
                37.1234, 67.2344, 68.34534, 69.87700 };
        System.out.println(java.util.Arrays.toString(scalarMultiplyFast(a,
                v)));//from ww w .jav  a  2s .co  m
    }

    /**
     * Fast scalar multiplication for sparse arrays.
     */
    public static double[] scalarMultiplyFast(double a, double[] v) {
        if (a == 0.0)
            return (new double[v.length]);
        double[] ans = new double[v.length];
        for (int k = 0; k < v.length; k++) {
            if ((a != 0.0) && (v[k] != 0)) {
                ans[k] = v[k] * a;
            } else
                ans[k] = 0.0;
        }
        return (ans);
    }

    /**
     * Fast scalar multiplication for sparse arrays.
     */
    public static double[] scalarMultiplyFast(double a, int[] v) {
        if (a == 0.0)
            return (new double[v.length]);
        double[] ans = new double[v.length];
        for (int k = 0; k < v.length; k++) {
            if ((a != 0) && (v[k] != 0)) {
                ans[k] = v[k] * a;
            } else
                ans[k] = 0.0;
        }
        return (ans);
    }

    /**
     * Returns a comma delimited string representing the value of the array.
     */
    public static String toString(double[] array) {

        StringBuffer buf = new StringBuffer(array.length);
        int i;
        for (i = 0; i < array.length - 1; i++) {
            buf.append(array[i]);
            buf.append(',');
        }
        buf.append(array[i]);
        return buf.toString();
    }

    /**
     * Returns a comma delimited string representing the value of the array.
     */
    public static String toString(double[][] array) {
        StringBuffer buf = new StringBuffer();
        for (int k = 0; k < array.length; k++) {
            buf.append(toString(array[k]));
            buf.append(System.getProperty("line.separator"));
        }
        return buf.toString();
    }

    /**
     * Returns a comma delimited string representing the value of the array.
     */
    public static String toString(int[] array) {
        StringBuffer buf = new StringBuffer(array.length);
        int i;
        for (i = 0; i < array.length - 1; i++) {
            buf.append(array[i]);
            buf.append(',');
        }
        buf.append(array[i]);
        return buf.toString();
    }

    /**
     * Returns a comma delimited string representing the value of the array.
     */
    public static String toString(int[][] array) {
        StringBuffer buf = new StringBuffer();
        for (int k = 0; k < array.length; k++) {
            buf.append(toString(array[k]));
            buf.append(System.getProperty("line.separator"));
        }
        return buf.toString();
    }
}

Related Tutorials