package symjava.examples; import symjava.bytecode.BytecodeBatchFunc; import symjava.math.SymMath; import symjava.symbolic.Expr; import symjava.symbolic.Symbol; import symjava.symbolic.Symbols; import symjava.symbolic.utils.AddList; import symjava.symbolic.utils.JIT; import symjava.symbolic.utils.MulList; //http://www.sfu.ca/~ssurjano/griewank.html public class BenchmarkGriewank { public static void main(String[] args) { test(); } public static void test() { // TODO Auto-generated method stub int N = 50; long start; Symbol i = new Symbol("i"); Symbols xi = new Symbols("x", i); start = System.currentTimeMillis(); AddList term1 = new AddList(); for (int j = 0; j < N; j++) { term1.add(xi.get(j) * xi.get(j) / 4000.0); } MulList term2 = new MulList(); for (int j = 0; j < N; j++) { term2.add(SymMath.cos(xi.get(j) / Math.sqrt(j + 1))); } Expr griewank = term1.toExpr() - term2.toExpr() + 1.0; //System.out.println(griewank); Expr[] grad = new Expr[N]; for(int j=0;j