示例#1
0
  /**
   * shift
   *
   * <p>store the s and y vectors.
   */
  private void shift() {
    double[] nextS = null;
    double[] nextY = null;

    int listSize = sList.size();

    if (listSize < m) {
      nextS = new double[dim + 1];
      nextY = new double[dim + 1];
    }

    if (nextS == null) {
      nextS = sList.firstElement();
      sList.remove(0);

      nextY = yList.firstElement();
      yList.remove(0);
      roList.remove(0);
    }

    addMultInto(nextS, newW, w, -1);
    addMultInto(nextY, newGrad, grad, -1);

    double ro = ArrayUtils.dot(nextS, nextY);

    sList.add(nextS);
    yList.add(nextY);
    roList.add(ro);

    ArrayUtils.copy(newW, w);
    ArrayUtils.copy(newGrad, grad);
    iter++;
  }
 public void actionPerformed(final ActionEvent e) {
   @SuppressWarnings("unchecked")
   final Pair<String, Component> p = (Pair<String, Component>) cboDisplayType.getSelectedItem();
   AbstractChart chart = null;
   Dimension chartSize = null;
   Stack<Rectangle2D> stack = null;
   String saveTitle = null;
   List<? extends FileFilter> filters = null;
   if (p.getSecond() == scpLineChart) {
     stack = stkLineChartZoom;
     chart = pnlLineChart;
     chartSize = new Dimension(1200, 400);
     saveTitle = "Save Landscape Line Chart";
     filters = FileSaver.fltGraphics;
   } else if (p.getSecond() == scpHistogram) {
     stack = stkHistogramZoom;
     chart = pnlHistogram;
     chartSize = new Dimension(1000, 1000);
     saveTitle = "Save Landscape Histogram";
     filters = FileSaver.fltGraphics;
   } else {
     saveTitle = "Save Landscape Raw Text";
     filters = FileSaver.fltText;
   }
   if ((e.getSource() == cmdUnzoom) && (stack != null) && (chart != null)) {
     final Rectangle2D viewport = stack.pop();
     chart.setViewport(viewport);
     checkEnabled(isEnabled());
   } else if ((e.getSource() == cmdResetView) && (stack != null) && (chart != null)) {
     chart.setViewport(stack.firstElement());
     stack.clear();
     checkEnabled(isEnabled());
   } else if (e.getSource() == cmdSave) {
     try {
       final Pair<File, FileFilter> ff =
           FileSaver.getSaveFile(getTopLevelAncestor(), saveTitle, filters);
       if (ff == null) {
         return;
       }
       if ((chart == null) || (chartSize == null)) {
         FileSaver.saveText(txaRaw.getText(), ff.getFirst());
       } else if (ff.getSecond() == FileSaver.epsFilter) {
         final Writer w = new FileWriter(ff.getFirst());
         w.write(chart.getEpsText(chartSize.width, chartSize.height));
         w.flush();
         w.close();
       } else if (ff.getSecond() == FileSaver.pngFilter) {
         ImageIO.write(chart.getImage(chartSize.width, chartSize.height), "png", ff.getFirst());
       } else if (ff.getSecond() == FileSaver.jpgFilter) {
         ImageIO.write(chart.getImage(chartSize.width, chartSize.height), "jpeg", ff.getFirst());
       }
     } catch (final IOException ex) {
       Utility.logException(ex);
       JOptionPane.showMessageDialog(
           getTopLevelAncestor(), ex.getMessage(), "I/O Error", JOptionPane.ERROR_MESSAGE);
     }
   } else {
     throw new IllegalArgumentException(e.getActionCommand());
   }
 }
示例#3
0
  /**
   * get value
   *
   * @return
   */
  private double getValue() {

    double retVal = Double.MAX_VALUE;

    if (prevVals.size() > m / 2) {

      double prevVal = prevVals.firstElement();
      if (prevVals.size() == m) {
        prevVals.remove(0);
      }

      double averageImprovement = (prevVal - this.value) / prevVals.size();
      double relAvgImpr = averageImprovement / Math.abs(this.value);

      retVal = relAvgImpr;
    } else {
      if (DEBUG || verbose) {
        stderr.println("  (wait for five iters) ");
      }
    }

    prevVals.add(this.value);
    return retVal;
  }