package Jampack;

/**
   Print prints numbers, matrices, and arrays.  All floating-point
   numbers are printed in e format with field width w and d figures
   to the left of the right of the decimal point.  For the defaults
   see  Parameters .

   @version Pre-alpha
   @author G. W. Stewart
*/

public class Print{

   private static java.text.DecimalFormat fmt = new java.text.DecimalFormat();

/**
   Prints an int in default format.
*/
   public static void o(int k){
      o(k, Parameters.OutputFieldWidth);
   }

/**
   Prints and int in a field of width w.
*/
   public static void o(int k, int w){
      System.out.print("\n");
      String num = Integer.toString(k);
      while (num.length() < w)
         num = " " + num;
      System.out.print(num);
      System.out.print("\n");
   }

/**
   Prints an integer array in default format.
*/

   public static void o(int ia[]){
      o(ia, Parameters.OutputFieldWidth);
   }

/**
   Prints an integer array in fields of width w.
*/

   public static void o(int ia[], int w){

      int n = ia.length;
      int ncp = Parameters.PageWidth/w;

      int jl = 0;
      while (jl < n){
         int ju = Math.min(n, jl+ncp);

         System.out.print("\n");

         for (int j=jl; jZ in default e format.
*/

   public static void o(Z[][] A){
      o(A, Parameters.OutputFieldWidth, Parameters.OutputFracPlaces);
   }

/**
   Prints a 2-dimensional array of Z in w.d e format.
*/

  public static void o(Z[][] A, int w, int d){

      int nr = A.length;
      int nc = A[0].length;

      String temp = Integer.toString(nr-1);
      int rfw = temp.length()+1;

      int ww = w+d+10;
      int ncp = (Parameters.PageWidth-rfw)/ww;

      int jl = 0;
      while (jl < nc){
         int ju = Math.min(nc, jl+ncp);

         System.out.print("\n");

         String head = "";
         while(head.length() < rfw)
            head = head + " ";
         System.out.print(head);

         for (int j=jl; jZmat in default e format.
*/
   public static void o(Zmat A){
      o(A, Parameters.OutputFieldWidth, Parameters.OutputFracPlaces);
   }

/**
   Prints a Zmat in w.d e format.  This method checks to
   see if the Zmat is real, in which case it prints only the real part.
*/

   public static void o(Zmat A, int w, int d){

      int nr = A.nrow;
      int nc = A.ncol;
      A.getProperties();


/*    Check to see if the matrix is real. */

      boolean real = true;
      real: for (int i=A.bx; i<=A.rx; i++){
         for (int j=A.bx; j<=A.cx; j++){
            if (A.im[i-A.bx][j-A.bx] != 0.){
               real = false;
               break real;
            }
         }
      }    

      if (!real){

         String temp = Integer.toString(nr+A.bx-1);
         int rfw = temp.length()+1;

         int ww = w+d+10;
         int ncp = (Parameters.PageWidth-rfw)/ww;

         int jl = 0;
         while (jl < nc){
            int ju = Math.min(nc, jl+ncp);

            System.out.print("\n");

            String head = "";
            while(head.length() < rfw)
               head = head + " ";
            System.out.print(head);

            for (int j=jl; j 10. - Math.pow(10., -d)){
            frac = frac/10;
            exp = exp + 1;
         }

         fmt.setMaximumFractionDigits(d);
         fmt.setMinimumFractionDigits(d);
         fmt.setGroupingUsed(false);
         String sfrac = fmt.format(frac);

         if (exp < 0){
            minuse = true;
            exp = -exp;
         }

         String sexp = Integer.toString(exp);

         snum = sexp;
         if (snum.length() < 2)
            snum = "0" + snum;
         if (minuse)
            snum = "e-" + snum;
         else
            snum = "e+" + snum;
         snum = sfrac + snum;
         if (minusf)
            snum = "-" + snum;
      }
      while (snum.length() < w)
        snum = " " + snum;
      return snum;
   }

/**
   Converts a Z to w.d e format.
*/

   public static String ZtoEstring(Z num, int w, int d){

      String snum = DoubletoEstring(num.re, w, d);
      if (num.im < 0)
         snum = snum + " - " +  
           DoubletoEstring(-num.im, d+6, d) + "i";
      else
         snum = snum + " + " +  
           DoubletoEstring(num.im, d+6, d) + "i";
      return snum;
   }
}



 

Ads help maintain this website.