import java.util.Date;
import java.text.DecimalFormat;
import ORG.netlib.math.complexKorl.Complex;
/**
* Class for solve system of linear equation
*/
public class Scp3Int{
public static final int dim = 5;
public static int iters = 1000;
public static double[] b = new double[dim];
/**
*/
public static void main (String[] args) {
for (int it = 1; it <= 5; it++) {
long start = System.currentTimeMillis();
for (int i = 0; i < iters; i++) {
for (int ib = 0; ib < dim; ib++) {
b[ib] = 1.0;
}
test();
}
for (int i = 0; i < dim; i++) {
System.out.println(b[i]);
}
long end = System.currentTimeMillis();
System.out.println("Total time = "+ (end-start)*0.001);
}
}
public static double addKorl(double a1, double a2) {
Complex z1 = new Complex(a1, 0.0);
Complex z2 = new Complex(a2, 0.0);
Complex z = z1.add(z2);
return z.re();
}
public static double subKorl(double a1, double a2) {
Complex z1 = new Complex(a1, 0.0);
Complex z2 = new Complex(a2, 0.0);
Complex z = z1.sub(z2);
return z.re();
}
public static double mulKorl(double a1, double a2) {
Complex z1 = new Complex(a1, 0.0);
Complex z2 = new Complex(a2, 0.0);
Complex z = z1.mul(z2);
return z.re();
}
public static double divKorl(double a1, double a2) {
Complex z1 = new Complex(a1, 0.0);
Complex z2 = new Complex(a2, 0.0);
Complex z = z1.div(z2);
return z.re();
}
public static void test() {
double [][] A = new double[dim][dim];
double [] bb = new double[dim];
for (int ib = 0; ib < dim; ib++) {
bb[ib] = b[ib];
}
for (int i = 0; i < dim; i++) {
for (int j = 0; j < dim; j++) {
A[i][j] = 0.0;
}
}
for (int i = 1; i < dim; i++) {
A[i][i-1] = 1.0;
}
for (int i = 0; i < dim; i++) {
A[0][i] = 1.0;
}
for (int i = 0; i < dim; i++) {
for (int j = 0; j < dim; j++) {
if (j != i) {
double rrr = divKorl(A[j][i], A[i][i]);
for (int k = 0; k < dim; k++) {
A[j][k] = subKorl(A[j][k], mulKorl(A[i][k],rrr));
}
bb[j] = subKorl(bb[j], mulKorl(rrr, bb[i]));
};
}
}
for (int i = 0; i < dim; i++) {
bb[i] = divKorl(bb[i], A[i][i]);
}
for (int ib = 0; ib < dim; ib++) {
b[ib] = bb[ib];
}
}
}