/** * 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()); } }
/** * 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; }