// test_Csimeq.java needs Complex.java and Csimeq.java compiled public class test_Csimeq { double state = 30000000.0; // arbitrary initial value for undnrt Complex Czero = new Complex(0.0,0.0); test_Csimeq() { int n = 10; Complex B[] = new Complex[n*(n+1)]; Complex A[][] = new Complex[n][n]; Complex X[] = new Complex[n]; Complex Y[] = new Complex[n]; Complex Bc[][] = new Complex[n][n+1]; Complex Ac[] = new Complex[n*n]; Complex Xc[] = new Complex[n]; // for compare Complex Yc[] = new Complex[n]; double err, maxerr=0.0; System.out.println("test_Csimeq.java running, n="+n); for(int i=0; imaxerr) maxerr=err; System.out.println("X["+i+"]="+X[i]+", err="+err); } System.out.println("maxerr="+maxerr); System.out.println(" "); System.out.println("test Csimeq(n, A[], Y, X "); X[0] = Czero; new Csimeq(n, Ac, Yc, X); for(int i=0; imaxerr) maxerr=err; System.out.println("X["+i+"]="+X[i]+", err="+err); } System.out.println("maxerr="+maxerr); System.out.println(" "); System.out.println("test Csimeq(n, B[], X) "); X[0] = Czero; new Csimeq(n, B, X); for(int i=0; imaxerr) maxerr=err; System.out.println("X["+i+"]="+X[i]+", err="+err); } System.out.println("maxerr="+maxerr); System.out.println(" "); System.out.println("test Csimeq(n, B[][], X) "); X[0] = Czero; new Csimeq(n, Bc, X); for(int i=0; imaxerr) maxerr=err; System.out.println("X["+i+"]="+X[i]+", err="+err); } System.out.println("maxerr="+maxerr); System.out.println(" "); } // end test_Csimeq double udrnrt() // uniformly distributed random numbers 0.0 to 1.0 { double modulus = 2147483647.0; // 2**31-1 double multiplier = 16807.0; // prime to prime power // state must be global (static in C) double t; int i; t = state * multiplier; i = (int)(t / modulus); state = t - (i * modulus); if(state < 0.0) state = state + modulus; return state / modulus; } // end udrnrt public static void main(String[] args) { new test_Csimeq(); System.out.println("end test_Csimeq.java main"); } // end main of test_Csimeq.java } // end class test_Csimeq.java