package edu.rice.linpack.LNumber; import edu.rice.linpack.util.*; public class LFloat extends LNumber { private float data = 0; public LFloat() { data = 0; } public LFloat(LFloat S){ data = S.data; } public LFloat(float d) { data = d; } public static LNumber[] makeArray(float[] f) { int l = f.length; LNumber[] N = new LNumber[l]; for(int i=0;i 0) { int q = f[0].length; LNumber[][] N = new LNumber[l][q]; for(int i=0;i 0) { int q = N[0].length; float[][] f = new float[l][q]; for(int i=0;i 0) { int q = N[0].length; for(int i=0;i ((LFloat)N).data; } public boolean greaterThan(int f) { return data > f; } public boolean lessThan(LNumber N) { return data < ((LFloat)N).data; } public boolean lessThan(int f) { return data < f; } public boolean equals(LNumber N) { return data == ((LFloat)N).data; } public boolean equals(int f) { return data == f; } public boolean greaterOrEqual(LNumber N) { return data >= ((LFloat)N).data; } public boolean greaterOrEqual(int f) { return data >= f; } public boolean lessOrEqual(LNumber N) { return data <= ((LFloat)N).data; } public boolean lessOrEqual(int f) { return data <= f; } public LNumber sqrt() { return new LFloat((float)Math.sqrt(data)); } public LNumber square() { return new LFloat(data * data); } public LNumber inv() { return new LFloat(1/data); } public LNumber invTo() { data = 1/data; return this; } public void ssq(LNumber SQ, LNumber Scale) { if(data != 0) { LFloat temp = new LFloat(Math.abs(data)); if(Scale.lessThan(temp)) { SQ.set(SQ.mult(((Scale.div(temp)).square())).pplus()); Scale.set(temp); } else SQ.addTo((temp.div(Scale)).square()); } } public LNumber realPt() { return new LFloat(data); } public LNumber conj() { return new LFloat(data); } }