CodePlexProject Hosting for Open Source Software

using AutoDiff; class Program { public static void Main(string[] args) { // define variables var x = new Variable(); var y = new Variable(); var z = new Variable(); // define our function var func = (x + y) * TermBuilder.Exp(z + x * y); // prepare arrays needed for evaluation/differentiation Variable[] vars = { x, y, z }; double[] values = {1, 2, -3 }; // evaluate func at (1, 2, -3) double value = func.Evaluate(vars, values); // calculate the gradient at (1, 2, -3) double[] gradient = func.Differentiate(vars, values); // print results Console.WriteLine("The value at (1, 2, -3) is " + value); Console.WriteLine("The gradient at (1, 2, -3) is ({0}, {1}, {2})", gradient[0], gradient[1], gradient[2]); } }

Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows

- Fast! See 0.5 vs 0.3 benchmark and 0.3 benchmark.
- Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.
- Function gradient evaluation at specified points
- Function value evaluation at specified points
- Uses Code Contracts for specifying valid parameters and return values
- Computes gradients using Reverse-Mode AD algorithm in
**linear time**!- Yes, it's faster than numeric approximation for multivariate functions
- You get both high accuracy and speed!

**Andreas Witsch, Hendrik Skubch, Stefan Niemczyk, Kurt Geihs**Using incomplete satisfiability modulo theories to determine robotic tasks*Intelligent Robots and Systems (IROS), 2013 IEEE/RSJ International Conference***Alex Shtof, Alexander Agathos, Yotam Gingold, Ariel Shamir, Daniel Cohen-Or**Geosemantic Snapping for Sketch-Based Modeling*Eurographics 2013 proceedings*(code repository)**Michael Kommenda, Gabriel Kronberger, Stephan Winkler, Michael Affenzeller, Stefan Wagner**Effects of constant optimization by nonlinear least squares minimization in symbolic regression*Proceeding of the fifteenth annual conference companion on Genetic and evolutionary computation conference companion***Hendrik Skubch**, Solving non-linear arithmetic constraints in soft realtime environments*Proceedings of the 27th Annual ACM Symposium on Applied Computing*- AlicaEngine - A cooperative planning engine for robotics. You can see it in action in this video
- HeuristicsLab - a framework for heuristic and evolutionary algorithms that is developed by members of the Heuristic and Evolutionary Algorithms Laboratory (HEAL)

Last edited Jan 8 at 11:51 AM by alexshtf, version 60