package com.onionnetworks.util; public class SimUtil { /** * Prints a command to be redirected to a file, and run as a shell script * for invoking the GNU plotutils "graph" command. */ public static final void printGraphCommand(String title, String x, String y, int[][] plots, String[] graphNames) { System.out.println("#!/bin/sh"); System.out.println("# By default (no args) it will display it in X, "+ "use $1=gif,png,for images"); System.out.println("if [ -n \"$1\" ]"); System.out.println("then type=$1"); System.out.println("else type=\"X\""); System.out.println("fi"); System.out.print("echo \""); for (int i=0;i<plots.length;i++) { for (int j=0;j<plots[i].length;j++) { System.out.print(plots[i][j] + " "); } System.out.println("\n"); //blank line } System.out.print("\" | graph -W .003 -C -T $type -L \""+title+ "\" -X \""+x+"\" -Y \""+y+"\""); } /** * Yes, this could be one line, but this really needs to be readable * as an error in this method could really screw things up. */ public static final int getMedian(int[] data) { // do a stupid bubble sort then pick middle. // FIX, this sort doesn't have to suck. for (int i=0;i<data.length-1;i++) { for (int j=i+1;j<data.length;j++) { if (data[i] > data[j]) { swap(data,i,j); } } } for (int i=0;i<data.length;i++) { System.err.print(data[i]+" "); } System.err.println(); return data[data.length / 2]; } public static final void swap(int[] data, int posA, int posB) { int tmp = data[posA]; data[posA] = data[posB]; data[posB] = tmp; } }