package edu.rice.linpack.Matrix.DMatrix; import edu.rice.linpack.util.*; public abstract class DUtil { public static double asum(int n, double[] V, int incx) { double dasum = 0; if(incx != 1) { int ix = 0; for(int i=0;i= 6) { for(int i=m;i 0 && Da != 1) { if(incx != 1) { int ix = 0; for(int i=0;i= 5) { for(int i=m;i= 10) { Det[0] /= 10; Det[1]++; } } public static void copy(int n, double[] A, int incx, int rx, double[] B, int incy, int ry) { if(n <= 0) return; if(incx != 1 || incy != 1) { int ix = 0; int iy = 0; if(incx < 0) ix = (-n+1)*incx; if(incy < 0) iy = (-n+1)*incy; for(int i=0;i= 7) { for(int i=m;i 0){ if(incy != 1 || incx != 1) { int ix = 0; int iy = 0; if(incx < 0) ix = (-n+1)*incx; if(incy < 0) iy = (-n+1)*incy; for(int i=0; i= 5) { for(int i=m;i Math.abs(Roe)) Roe = Q.getA(); double scale = Math.abs(Q.getA()) + Math.abs(Q.getB()); if(scale == 0) { Q.setCos(1); Q.setSin(0); R = 0; } else { R = scale*Math.sqrt(Math.pow(Q.getA()/scale,2)+ Math.pow(Q.getB()/scale,2)); R = DUtil.signOf(1,Roe)*R; Q.setCos(Q.getA()/R); Q.setSin(Q.getB()/R); } double Z = 1; if(Math.abs(Q.getA()) > Math.abs(Q.getB())) Z = Q.getSin(); else if(Q.getCos() != 0) Z = 1/Q.getCos(); Q.setA(R); Q.setB(Z); } public static void Print(double[] S) { int n = S.length; System.out.print("Vector: "); for(int i=0;i