function quadF(x, y) { Value = new Object[2]; grad=new double[ 2 ]; expr2 = (x - y) + 1; expr3 = expr2^2; expr5 = x^2; expr9 = pwr - 1.; expr13 = (expr3^expr9) * (pwr * (2 * expr2)); value = ((expr3^pwr) + (expr5^pwr)) + 10.; grad[[0]] = expr13 + ((expr5^expr9) * (pwr * (2 * x))); grad[[1]] = - expr13; Value[[0]] = value; Value[[1]] = grad; return(Value); } { pwr = 2.5; quadE = parse("{GV=quadF(x,y); Value = GV[[0]]; Gradient=GV[[1]];}"); quadM = new ModelObjectiveOmegahat(quadE); quadM.setEvaluator(this); xy = new double[] {.5, .5}; xp = new ModelPointNumeric(); xp.setParameters(xy); xyNames = new String[]{"x", "y"}; quadM.setParameterNames(xyNames); xp.setModel(quadM); opta = new OptimizerAlgorithmBFGS(xp); opt = new OptimizerNotifying(opta); dynamicClassLoader().defineClass("org.omegahat.Numerics.Optimizers.InformationListener", "FL"); xyf = function(ev){show(x); show(y);}; ll = new FL(xyf, this); opt.addListener(ll); //ll = new TestListener(); //TestListener.setLineLength(60); //opt.addListener((IterationListener)ll, OptimizerNotifying.ITERATION); } pl = new PlotListener(xp, opt); pl.setScale(0, 1., 20.); pl.setScale(1, -10., 10.); pl.setScale(2, -1., 10.); sd = new SwingDeviceWindow(pl, "test"); //opt.eval(xp);