import java.util.*; import java.lang.*; import java.text.*; public class StringBuf0{ static final String newLine = "\n"; static final char charSpace = ' '; static final String strSpace = " "; static final int windowLen = 78; private int Nmax, Ifield, Lspaces, indLshift, Ishift; private NumFormat nf, ni; private StringBuffer buf; StringBuf0(StringBuffer buf){ this.buf = buf; nf = new NumFormat(); //double type formatter. ni = new NumFormat(); //integer type formatter. //These are reasonable parameters for "12.5" style format. setNmax(5); setFieldLength(12); setIfieldLength(12); setFractionDigits(5); setIntegerDigits(0); setForceExponent(false); setExponentDigits(2); setIshift(9); setFieldLspaces(10); setindLshift(3); setForceRightPadding(false); } //Set maximum number of columns for an output vector or matrix. public void setNmax(int value) { Nmax = value; } //Set double type field length. public void setFieldLength(int value) { Ifield = value; nf.setFieldLength(value); } //Set integer type field length. public void setIfieldLength(int value) { ni.setFieldLength(value); } //Set maximum number of digits after decimal point of double number. public void setFractionDigits(int value) { nf.setFractionDigits(value); } //Set maximum number of '0's to precede integer value. public void setIntegerDigits(int value) { ni.setIntegerDigits(0); } //Set exponential format of double values. public void setForceExponent(boolean force) { nf.setForceExponent(force); } //Set number of digits in exponential representation. public void setExponentDigits(int value) { nf.setExponentDigits(value); } public void setIshift(int value) { Ishift = value; } public void setFieldLspaces(int Lspaces) { this.Lspaces = Lspaces; } public void setindLshift(int indLshift) { this.indLshift = indLshift; } public void setForceRightPadding(boolean force) { nf.setForceRightPadding(force); } //Output a vector identified by index 'ind' to the left of it. public void printVec(double V[], int n, int ind) { //Execute first line shift. print(Ishift, ind); printSpace(1); printVec(V, n, n%Nmax, 0, false); return; } //Output a vector. public void printVec(double V[], int n) { //Execute first line shift. printSpace(Ishift); printSpace(1); printVec(V, n, n%Nmax, 0, false); return; } public void printVec(double V[], int n, int reste, int inf, boolean getout) { int i, j, isup; isup = inf + Nmax; if(getout)return; if(isup >= n){ getout = true; if(isup > n)isup = inf + reste; } //Execute the shift from line 2 on. if(inf != 0){printSpace(Ishift); printSpace(1);} for(i=inf; i= n){ getout = true; if(isup > n)isup = inf + reste; } if(PrintInd){ printSpace(Lspaces-indLshift); for(i=inf; i= n){ getout = true; if(isup > n)isup = inf + reste; } printSpace(Lspaces-indLshift); for(i=inf; i= ncol){ getout = true; if(isup > ncol)isup = inf + reste; } printSpace(Lspaces); for(i=inf; i