[Swift-commit] r4023 - usertools/plotter/src

noreply at svn.ci.uchicago.edu noreply at svn.ci.uchicago.edu
Fri Jan 21 11:40:42 CST 2011


Author: wozniak
Date: 2011-01-21 11:40:42 -0600 (Fri, 21 Jan 2011)
New Revision: 4023

Removed:
   usertools/plotter/src/Bits.java
   usertools/plotter/src/LineReader.java
   usertools/plotter/src/Lines.java
   usertools/plotter/src/Util.java
Log:
Moving src files


Deleted: usertools/plotter/src/Bits.java
===================================================================
--- usertools/plotter/src/Bits.java	2011-01-21 17:39:55 UTC (rev 4022)
+++ usertools/plotter/src/Bits.java	2011-01-21 17:40:42 UTC (rev 4023)
@@ -1,149 +0,0 @@
-
-import java.math.BigInteger;
-import java.util.*;
-
-/**
- * Provides random bits, statically.
- * Kills VM exit code 2 on misuse.
- * */
-
-public class Bits
-{
-  public static Random rng = null;
-  static boolean locked = false;
-  static boolean ready  = false;
-
-  /**
-     If not locked, seed the generator with the clock.
-  */
-  public static void init()
-  {
-    init(System.currentTimeMillis());
-  }
-
-  /**
-     If not locked, seed the generator with the clock mod 1000.
-     Useful for debugging.
-     @param print If true, print the seed.
-  */
-  public static long init(boolean print)
-  {
-    long seed = System.currentTimeMillis() % 1000;
-    init(seed);
-
-    if (print)
-      System.out.println("Bits.seed: " + seed);
-
-    return seed;
-  }
-
-  /**
-     If not locked, seed the generator
-     @param seed The seed.
-  */
-  public static void init(long seed)
-  {
-    assert (!locked) : "Bits locked!";
-    // System.out.println("Seeding RNG...");
-    rng = new Random(seed);
-    ready = true;
-  }
-
-  /**
-     Lock the generator to prevent seeding
-   */
-  public static void lock()
-  {
-    locked = true;
-  }
-
-  /**
-     Unlock the generator
-   */
-  public static void unlock()
-  {
-    locked = false;
-  }
-
-  public static double nextDouble()
-  {
-    if (! ready)
-    {
-      System.err.println("Bits not ready!");
-      System.exit(2);
-    }
-    return rng.nextDouble();
-  }
-
-  public static double nextDouble(double d)
-  {
-    return rng.nextDouble() * d;
-  }
-
-  public static int nextInt()
-  {
-    if (! ready)
-    {
-      System.err.println("Bits not ready!");
-      System.exit(2);
-    }
-    return rng.nextInt();
-  }
-
-  /**
-     Return a integer in [0..t).
-   */
-  public static int nextInt(int t)
-  {
-    double d = nextDouble();
-    int i = (new Double(d * t)).intValue();
-    return i;
-  }
-
-  public static boolean nextBoolean()
-  {
-    if (! ready)
-    {
-      System.err.println("Bits not ready!");
-      System.exit(2);
-    }
-    return rng.nextBoolean();
-  }
-
-  public static long nextLong()
-  {
-    if (! ready)
-    {
-      System.err.println("Bits not ready!");
-      System.exit(2);
-    }
-    return rng.nextLong();
-  }
-
-  public static long nextLong(long t)
-  {
-    double d = nextDouble();
-    long i = (new Double(d * t)).longValue();
-    return i;
-  }
-
-  public static BigInteger nextBigInteger(BigInteger i)
-  {
-    if (i.equals(BigInteger.ZERO))
-      return BigInteger.ZERO;
-
-    int b = i.bitLength()+1;
-    BigInteger result;
-    do
-    {
-      result = BigInteger.valueOf(b);
-    } while (result.compareTo(i) >= 0);
-
-    return result;
-  }
-
-  public static void nextBytes(byte[] bytes)
-  {
-    rng.nextBytes(bytes);
-  }
-}

Deleted: usertools/plotter/src/LineReader.java
===================================================================
--- usertools/plotter/src/LineReader.java	2011-01-21 17:39:55 UTC (rev 4022)
+++ usertools/plotter/src/LineReader.java	2011-01-21 17:40:42 UTC (rev 4023)
@@ -1,156 +0,0 @@
-
-import java.util.*;
-
-/**
- * Utility to read a file into a List of String lines.
- *
- * Omits comments with #
- * Wraps lines that end on backslash
- * */
-public class LineReader
-{
-  LineReader()
-  {}
-
-  public static List<String> read(java.io.File file)
-    throws java.io.FileNotFoundException
-  {
-    java.io.BufferedReader reader =
-      new java.io.BufferedReader(new java.io.FileReader(file));
-    return read(reader);
-  }
-
-  public static List<String> read(String s)
-  {
-    java.io.BufferedReader reader =
-      new java.io.BufferedReader(new java.io.StringReader(s));
-    return read(reader);
-  }
-
-  public static List<String> read(java.io.BufferedReader reader)
-  {
-    List<String> result = new ArrayList<String>();
-    try
-    {
-      String prevline = "";
-      String line = "";
-      while ((line = reader.readLine()) != null)
-      {
-        int hash = line.indexOf("#");
-        if (hash >= 0)
-          line = line.substring(0,hash);
-        line = spaces(line);
-        line = (prevline + " " + line).trim();
-        if (line.endsWith("\\"))
-        {
-          line = line.substring(0, line.length()-2);
-          prevline = line;
-          continue;
-        }
-        else
-        {
-          prevline = "";
-          line = line.trim();
-          if (line.length() > 0)
-            result.add(line);
-        }
-      }
-      reader.close();
-    }
-    catch (java.io.IOException e)
-    {
-      System.out.println("LineReader: I/O problem.");
-      return null;
-    }
-    return result;
-  }
-
-  public static List<String[]> tokens(List<String> lines)
-  {
-    List<String[]> result = new ArrayList<String[]>(lines.size());
-    for (String line : lines)
-    {
-      String[] tokens = tokenize(line);
-      result.add(tokens);
-    }
-    return result;
-  }
-
-  public static int maxTokens(List<String[]> tokens)
-  {
-    int result = 0;
-    for (String[] t : tokens)
-      if (t.length > result)
-        result = t.length;
-    return result;
-  }
-
-  /**
-     Take line-oriented data and produce an array of doubles.
-  */
-  public static double[][] array(List<String> lines)
-  {
-    List<String[]> tokens = tokens(lines);
-    int columns = maxTokens(tokens);
-    int rows = lines.size();
-    double[][] result = new double[rows][columns];
-    for (int i = 0; i < rows; i++)
-      for (int j = 0; j < columns; j++)
-      {
-        try
-        {
-          String v = tokens.get(i)[j];
-          double d = Double.parseDouble(v);
-          result[i][j] = d;
-        }
-        catch (NumberFormatException e)
-        {
-          throw new RuntimeException("Problem in row: " + i);
-        }
-      }
-    return result;
-  }
-
-  public static String spaces(String line)
-  {
-    String result = "";
-    for (int i = 0; i < line.length(); i++)
-    {
-      if (line.charAt(i)   == '=' &&
-          line.charAt(i+1) != '=' &&
-          line.charAt(i-1) != '=')
-      {
-        result += " = ";
-      }
-      else
-        result += line.substring(i,i+1);
-    }
-    return result;
-  }
-
-  public static String[] tokenize(String line)
-  {
-    if (line == null)
-      return null;
-    List<String> words = new ArrayList<String>();
-    String[] ws = line.split("\\s");
-    for (int i = 0; i < ws.length; i++)
-      if (ws[i].length() > 0)
-        words.add(ws[i]);
-    String[] result = new String[words.size()];
-    for (int i = 0; i < words.size(); i++)
-      result[i] = words.get(i);
-    return result;
-  }
-
-  /*
-  public static List<String> list(String line)
-  {
-    List<String> result = new ArrayList<String>();
-    String[] tokens = tokenize(line);
-    for (int i = 0; i < tokens.length; i++)
-      result.add(tokens[i]);
-    return result;
-  }
-  */
-}

Deleted: usertools/plotter/src/Lines.java
===================================================================
--- usertools/plotter/src/Lines.java	2011-01-21 17:39:55 UTC (rev 4022)
+++ usertools/plotter/src/Lines.java	2011-01-21 17:40:42 UTC (rev 4023)
@@ -1,344 +0,0 @@
-
-import java.awt.Color;
-import java.awt.geom.Rectangle2D;
-
-import java.io.*;
-import java.util.*;
-
-import gnu.getopt.Getopt;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.xmlgraphics.java2d.ps.EPSDocumentGraphics2D;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
-import org.jfree.data.Range;
-import org.jfree.data.general.Series;
-import org.jfree.data.xy.XYSeriesCollection;
-
-/**
- * See main() for command-line arguments
- * */
-public class Lines
-{
-  static Properties properties;
-
-  public static boolean bw = false;
-
-  static int w = 400;
-  static int h = 400;
-
-  // null indicates the value was not set by the user
-  static Double xmin = null;
-  static Double xmax = null;
-  static Double ymin = null;
-  static Double ymax = null;
-
-  /**
-     Generate simple plot.
-     @param collection The x,y data.
-     @param title Plot title.
-     @param xlabel X label text.
-     @param ylabel Y label text.
-     @param output EPS filename.
-  */
-  public static boolean plot(XYSeriesCollection collection,
-                             String title, String xlabel,
-                             String ylabel, String output)
-  {
-    EPSDocumentGraphics2D g2d = null;
-    Rectangle2D.Double rectangle = null;
-    OutputStream out = null;
-
-    try
-    {
-      out = new FileOutputStream(output);
-      out = new BufferedOutputStream(out);
-
-      g2d = new EPSDocumentGraphics2D(false);
-      g2d.setGraphicContext
-        (new org.apache.xmlgraphics.java2d.GraphicContext());
-
-      rectangle = new Rectangle2D.Double(0, 0, w, h);
-
-      g2d.setGraphicContext
-        (new org.apache.xmlgraphics.java2d.GraphicContext());
-      g2d.setupDocument(out, w, h);
-    }
-    catch (IOException e)
-    {
-      System.out.println("Problem with file: " + output);
-      return false;
-    }
-
-    final boolean withLegend = true;
-
-    JFreeChart chart =
-      ChartFactory.createXYLineChart
-      (title, xlabel, ylabel, collection,
-       PlotOrientation.VERTICAL, withLegend, false, false);
-
-    setupPlot(chart, collection);
-    chart.draw(g2d, rectangle);
-
-    try
-    {
-      g2d.finish();
-    }
-    catch (Exception e)
-    {
-      System.out.println("Err!");
-    }
-
-    IOUtils.closeQuietly(out);
-    System.out.println("PLOTTED: " + output);
-
-    return true;
-  }
-
-  private static void setupPlot(JFreeChart chart,
-                                XYSeriesCollection collection)
-  {
-    XYPlot plot = chart.getXYPlot();
-    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
-    if (bw)
-      for (int i = 0; i < plot.getSeriesCount(); i++)
-        renderer.setSeriesPaint(i, Color.BLACK);
-    for (int i = 0; i < plot.getSeriesCount(); i++)
-    {
-      Series series = collection.getSeries(i);
-      if (! showShape(series.getDescription()))
-      {
-        // System.out.println("invis");
-        renderer.setSeriesShapesVisible(i, false);
-      }
-    }
-
-    setAxes(plot);
-    plot.setRenderer(renderer);
-    plot.setBackgroundPaint(Color.WHITE);
-  }
-
-  static void setAxes(XYPlot plot)
-  {
-    // Actual values: modify if necessary
-    double axmin, axmax, aymin, aymax;
-
-    if (xmin != null || xmax != null)
-    {
-      NumberAxis axis = (NumberAxis) plot.getDomainAxis();
-      Range range = axis.getRange();
-      axmin = range.getLowerBound();
-      axmax = range.getUpperBound();
-      if (xmin != null) axmin = xmin;
-      if (xmax != null) axmax = xmax;
-      axis.setRange(axmin, axmax);
-    }
-
-    if (ymin != null || ymax != null)
-    {
-      NumberAxis axis = (NumberAxis) plot.getRangeAxis();
-      Range range = axis.getRange();
-      aymin = range.getLowerBound();
-      aymax = range.getUpperBound();
-      if (ymin != null) aymin = ymin;
-      if (ymax != null) aymax = ymax;
-      axis.setRange(aymin, aymax);
-    }
-  }
-
-  /**
-     Args: Lines <properties> <output file> <data file>*
-     Reads settings from properties: see scanProperties()
-     Produces EPS output file
-     Data files are two-columns of numbers each -
-        see LineReader.read() and LineReader.array()
-  */
-  public static void main(String[] args)
-  {
-    // Settings:
-    boolean verbose = false;
-
-    Getopt g = new Getopt("testprog", args, "v");
-    int c = -1;
-    while ((c = g.getopt()) != -1)
-    {
-      switch (c)
-      {
-      case 'v':
-        verbose = true;
-      }
-    }
-
-    if (args.length < 3)
-    {
-      System.out.println
-      ("usage: [<options>] <properties> <output> <data>*");
-      System.exit(2);
-    }
-
-    Bits.init();
-    Util.verbose(verbose);
-
-    String propFile = args[0];
-    String output = args[1];
-    List<String> names = new ArrayList<String>();
-    for (int i = 2; i < args.length; i++)
-      names.add(args[i]);
-
-    String title = null;
-    String xlabel = null;
-    String ylabel = null;
-    List<double[][]> data = new ArrayList<double[][]>();
-    List<String> labels = new ArrayList<String>();
-
-    properties = new Properties();
-    load(propFile);
-    title = properties.getProperty("title");
-    xlabel = properties.getProperty("xlabel");
-    ylabel = properties.getProperty("ylabel");
-
-    scanProperties();
-
-    for (String name : names)
-    {
-      File file = new File(name);
-      Util.verbose("open: " + file);
-      List<String> lines = null;
-      try
-      {
-        lines = LineReader.read(file);
-      }
-      catch (FileNotFoundException e)
-      {
-        System.out.println("not found: " + file);
-        System.exit(1);
-      }
-      double[][] array = LineReader.array(lines);
-      data.add(array);
-      addLabel(name, labels);
-      Util.verbose("array:\n" + toString(array));
-    }
-
-    XYSeriesCollection collection = Util.collection(data, labels,
-                                                    names);
-
-    plot(collection, title, xlabel, ylabel, output);
-  }
-
-  static void load(String propFile)
-  {
-    try
-    {
-      if (propFile.equals("-"))
-        properties.load(System.in);
-      else
-        properties.load(new FileInputStream(propFile));
-    }
-    catch (FileNotFoundException e)
-    {
-      System.out.println(e);
-      System.exit(1);
-    }
-    catch (IOException e)
-    {
-      e.printStackTrace();
-      System.exit(1);
-    }
-  }
-
-  /**
-     Various plot properties.  All are currently optional
-
-     Example.
-     Assume you want to plot a two-column table in file.data.
-     The first column is the x values and the second column
-     is the y values.  See LineReader for details.
-
-     Your properties may include:
-     title = Plot
-     xlabel = size
-     ylabel = speed
-     label.file.data = legend text
-     width (output image width)
-     height (output image height)
-     xmin, xmax, ymin, ymax (auto-selected if not given)
-  */
-  static void scanProperties()
-  {
-    String tmp;
-    tmp = properties.getProperty("width");
-    if (tmp != null)
-      w = Integer.parseInt(tmp.trim());
-    tmp = properties.getProperty("height");
-    if (tmp != null)
-      h = Integer.parseInt(tmp.trim());
-    tmp = properties.getProperty("xmin");
-    if (tmp != null)
-      xmin = Double.parseDouble(tmp);
-    tmp = properties.getProperty("xmax");
-    if (tmp != null)
-      xmax = Double.parseDouble(tmp);
-    tmp = properties.getProperty("ymin");
-    if (tmp != null)
-      ymin = Double.parseDouble(tmp);
-    tmp = properties.getProperty("ymax");
-    if (tmp != null)
-      ymax = Double.parseDouble(tmp);
-  }
-
-  /**
-     Arrays.copyOfRange is a Java 1.6 feature.
-     This has the same signature.
-  */
-  /*
-  static String[] select(String[] s, int p, int q)
-  {
-    String[] result = new String[q-p];
-    int j = 0;
-    for (int i = p; i < q; i++)
-      result[j++] = s[i];
-    return result;
-  }
-  */
-
-  static void addLabel(String name,
-                       List<String> labels)
-  {
-    String label = properties.getProperty("label."+name);
-    if (label == null)
-      label = "";
-    labels.add(label);
-  }
-
-  static boolean showShape(String name)
-  {
-    // System.out.println(name);
-    String mode = properties.getProperty("shape."+name);
-    // System.out.println(mode);
-    if ("none".equals(mode))
-      return false;
-    return true;
-  }
-
-  static String toString(double[][] array)
-  {
-    StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < array.length; i++)
-    {
-      double[] row = array[i];
-      for (int j = 0; j < row.length; j++)
-      {
-        sb.append(array[i][j]);
-        if (j < row.length-1)
-          sb.append(" ");
-      }
-      sb.append("\n");
-    }
-    return sb.toString();
-  }
-}

Deleted: usertools/plotter/src/Util.java
===================================================================
--- usertools/plotter/src/Util.java	2011-01-21 17:39:55 UTC (rev 4022)
+++ usertools/plotter/src/Util.java	2011-01-21 17:40:42 UTC (rev 4023)
@@ -1,57 +0,0 @@
-
-/**
- * Plot data helpers.
- * */
-
-import java.util.List;
-
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-
-public class Util
-{
-  static boolean v = false;
-
-  /**
-     Stores the label as the Series key.
-     Stores the filename as the Series description.
-  */
-  static XYSeriesCollection collection(List<double[][]> data,
-                                       List<String> labels,
-                                       List<String> names)
-  {
-    final XYSeriesCollection collection = new XYSeriesCollection();
-
-    int count = 0;
-    for (double[][] d : data)
-    {
-      String label = "data: " + count;
-      try
-      {
-        label = labels.get(count);
-      }
-      catch (IndexOutOfBoundsException e)
-      {}
-
-      XYSeries series = new XYSeries(label);
-      for (int i = 0; i < d.length; i++)
-        series.add(d[i][0], d[i][1]);
-
-      series.setDescription(names.get(count));
-      collection.addSeries(series);
-      count++;
-    }
-    return collection;
-  }
-
-  public static void verbose(String s)
-  {
-    if (v)
-      System.out.println(s);
-  }
-
-  public static void verbose(boolean status)
-  {
-    v = status;
-  }
-}




More information about the Swift-commit mailing list