// JVM Tutorial. // Test of Static Assembler Functions // import java.util.Date; public class TestFunctions { public static void main(String[] args) { System.out.println("TestFunctions"); System.out.println("distSq(3,4) = " + SomeFunctions.distSq(3,4)); System.out.println("millionX(-3) = " + SomeFunctions.millionX(-3)); System.out.println("distSq(3,4,10) = " + SomeFunctions.distSq(3,4,10)); SomeFunctions.show(123456789); System.out.println("dist(3,40) = " + SomeFunctions.dist(3,40)); System.out.println("dist(120,10) = " + SomeFunctions.dist(120,10)); System.out.println("abs(-100) = " + SomeFunctions.abs(-100)); System.out.println("abs(100) = " + SomeFunctions.abs(100)); System.out.println("sgn(20) = " + SomeFunctions.sgn(20)); System.out.println("sgn(-20) = " + SomeFunctions.sgn(-20)); System.out.println("sgn(0) = " + SomeFunctions.sgn(0)); int[] a = { 7, 8, 23, 2000}; System.out.println(" sum of a[] is " + MoreFunctions.add(a)); final int HOWMANY = 2000000; final int VALUE = 3; int[] b; b = MoreFunctions.newArray(HOWMANY,VALUE); long t1, t2, t3; int ans1, ans2; new Date(); // bring class in t1 = (new Date()).getTime(); ans1 = TestFunctions.add(b); t2 = (new Date()).getTime(); ans2 = MoreFunctions.add(b); t3 = (new Date()).getTime(); if (ans1 != HOWMANY*VALUE || ans1 != ans2) System.out.println("I blew it"); System.out.println("Adding an array of " + HOWMANY + " elements = " + VALUE + ". Sum is " + ans2); System.out.println("Java's way -- " + (t2 - t1) + " milliseconds"); System.out.println("My way -- " + (t3 - t2) + " milliseconds"); } // Following are for comparing with assembled .j versions public static int sgn(int x) { int ans; if (x > 0) ans = 1; else if (x == 0) ans = 0; else ans = -1; return ans; } public static int add(int[] a) { int sum = 0; for (int i = 0; i < a.length; i++) sum += a[i]; return sum; } public static int[] newArray(int size, int value) { int[] x = new int[size]; for (int i = 0; i < size; i++) x[i] = value; return x; } public static int abs(int x) { if (x < 0) x = -x; return x; } }