<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>AutoDiff</title><link>http://autodiff.codeplex.com/project/feeds/rss</link><description>A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.</description><item><title>Updated Wiki: Home</title><link>https://autodiff.codeplex.com/wikipage?version=52</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="https://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="https://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Used by&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Alex Shtof, Alexander Agathos, Yotam Gingold, Ariel Shamir, Daniel Cohen-Or&lt;/b&gt; &lt;a href="https://diglib.eg.org/EG/DL/CGF/volume32/issue2/v32i2pp245-253.pdf.abstract.pdf;internal&amp;amp;action=action.digitallibrary.ShowPaperAbstract"&gt;Geosemantic Snapping for Sketch-Based Modeling&lt;/a&gt; &lt;i&gt;Eurographics 2013 proceedings&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hendrik Skubch&lt;/b&gt;, &lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt; &lt;i&gt;Proceedings of the 27th Annual ACM Symposium on Applied Computing&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ros.org/wiki/AlicaEngine"&gt;AlicaEngine&lt;/a&gt; - A cooperative planning engine for robotics. You can see it in action in this &lt;a href="http://www.youtube.com/watch?v=HhIrhU19PG4"&gt;video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.heuristiclab.com"&gt;HeuristicsLab&lt;/a&gt; - a framework for heuristic and evolutionary algorithms that is developed by members of the &lt;a href="http://heal.heuristiclab.com/"&gt;Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Sat, 11 May 2013 06:24:00 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130511062400A</guid></item><item><title>Updated Wiki: Home</title><link>http://autodiff.codeplex.com/wikipage?version=51</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Used by&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Alex Shtof, Alexander Agathos, Yotam Gingold, Ariel Shamir, Daniel Cohen-Or&lt;/b&gt; &lt;a href="http://cs.gmu.edu/~ygingold/geosemantic/"&gt;Geosemantic Snapping for Sketch-Based Modeling&lt;/a&gt; &lt;i&gt;Proceedings of Eurographics 2013&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hendrik Skubch&lt;/b&gt;, &lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt; &lt;i&gt;Proceedings of the 27th Annual ACM Symposium on Applied Computing&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ros.org/wiki/AlicaEngine"&gt;AlicaEngine&lt;/a&gt; - A cooperative planning engine for robotics. You can see it in action in this &lt;a href="http://www.youtube.com/watch?v=HhIrhU19PG4"&gt;video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.heuristiclab.com"&gt;HeuristicsLab&lt;/a&gt; - a framework for heuristic and evolutionary algorithms that is developed by members of the &lt;a href="http://heal.heuristiclab.com/"&gt;Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Mon, 04 Feb 2013 09:49:28 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130204094928A</guid></item><item><title>Updated Wiki: Home</title><link>http://autodiff.codeplex.com/wikipage?version=50</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Users&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Alex Shtof, Alexander Agathos, Yotam Gingold, Ariel Shamir, Daniel Cohen-Or&lt;/b&gt; &lt;a href="http://cs.gmu.edu/~ygingold/geosemantic/"&gt;Geosemantic Snapping for Sketch-Based Modeling&lt;/a&gt; &lt;i&gt;Proceedings of Eurographics 2013&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hendrik Skubch&lt;/b&gt;, &lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt; &lt;i&gt;Proceedings of the 27th Annual ACM Symposium on Applied Computing&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ros.org/wiki/AlicaEngine"&gt;AlicaEngine&lt;/a&gt; - A cooperative planning engine for robotics. You can see it in action in this &lt;a href="http://www.youtube.com/watch?v=HhIrhU19PG4"&gt;video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.heuristiclab.com"&gt;HeuristicsLab&lt;/a&gt; - a framework for heuristic and evolutionary algorithms that is developed by members of the &lt;a href="http://heal.heuristiclab.com/"&gt;Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Mon, 04 Feb 2013 09:48:38 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130204094838A</guid></item><item><title>Updated Wiki: Home</title><link>http://autodiff.codeplex.com/wikipage?version=49</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Users&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Hendrik Skubch&lt;/b&gt;, &lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt; &lt;i&gt;Proceedings of the 27th Annual ACM Symposium on Applied Computing&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ros.org/wiki/AlicaEngine"&gt;AlicaEngine&lt;/a&gt; - A cooperative planning engine for robotics. You can see it in action in this &lt;a href="http://www.youtube.com/watch?v=HhIrhU19PG4"&gt;video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dev.heuristiclab.com"&gt;HeuristicsLab&lt;/a&gt; - a framework for heuristic and evolutionary algorithms that is developed by members of the &lt;a href="http://heal.heuristiclab.com/"&gt;Heuristic and Evolutionary Algorithms Laboratory (HEAL)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Mon, 26 Nov 2012 11:11:29 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121126111129A</guid></item><item><title>Updated Wiki: Home</title><link>http://autodiff.codeplex.com/wikipage?version=48</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Users&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Hendrik Skubch&lt;/b&gt;, &lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt; &lt;i&gt;Proceedings of the 27th Annual ACM Symposium on Applied Computing&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ros.org/wiki/AlicaEngine"&gt;AlicaEngine&lt;/a&gt; - A cooperative planning engine for robotics. You can see it in action in this &lt;a href="http://www.youtube.com/watch?v=HhIrhU19PG4"&gt;video&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Fri, 23 Nov 2012 20:08:13 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121123080813P</guid></item><item><title>Updated Wiki: Home</title><link>http://autodiff.codeplex.com/wikipage?version=47</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Users&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt; &lt;i&gt;Proceedings of the 27th Annual ACM Symposium on Applied Computing&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Fri, 23 Nov 2012 10:26:40 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121123102640A</guid></item><item><title>Updated Wiki: Home</title><link>http://autodiff.codeplex.com/wikipage?version=46</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Users&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt; &lt;i&gt;Proceedings of the 27th Annual ACM Symposium on Applied Computing&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Fri, 23 Nov 2012 09:40:50 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121123094050A</guid></item><item><title>Updated Wiki: Home</title><link>http://autodiff.codeplex.com/wikipage?version=45</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A library that provides fast, accurate and automatic differentiation &amp;#40;computes derivative &amp;#47;  gradient&amp;#41; of mathematical functions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting AutoDiff&lt;/b&gt;&lt;br /&gt;Using NuGet:&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;www.nuget.org&amp;#47;List&amp;#47;Packages&amp;#47;AutoDiff"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=autodiff&amp;DownloadId=483788" alt="Install&amp;#32;Autodiff&amp;#32;Image" title="Install&amp;#32;Autodiff&amp;#32;Image" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is it for?&lt;/b&gt;&lt;br /&gt;AutoDiff provides a simple and intuitive API for computing function gradients/derivatives along with a fast state-of-the-art algorithm for performing the computation. Such computations are mainly useful in numeric optimization scenarios.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code example&lt;/b&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; AutoDiff;

&lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
{
    &lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
    {
            &lt;span style="color:Green;"&gt;// define variables&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; x = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; y = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; z = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Variable();

            &lt;span style="color:Green;"&gt;// define our function&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;var&lt;/span&gt; func = (x + y) * TermBuilder.Exp(z + x * y);

            &lt;span style="color:Green;"&gt;// prepare arrays needed for evaluation/differentiation&lt;/span&gt;
            Variable[] vars = { x, y, z };
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] values = {1, 2, -3 };

            &lt;span style="color:Green;"&gt;// evaluate func at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt; value = func.Evaluate(vars, values);

            &lt;span style="color:Green;"&gt;// calculate the gradient at (1, 2, -3)&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] gradient = func.Differentiate(vars, values);

            &lt;span style="color:Green;"&gt;// print results&lt;/span&gt;
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The value at (1, 2, -3) is &amp;quot;&lt;/span&gt; + value);
            Console.WriteLine(&lt;span style="color:#A31515;"&gt;&amp;quot;The gradient at (1, 2, -3) is ({0}, {1}, {2})&amp;quot;&lt;/span&gt;, gradient[0], gradient[1], gradient[2]);
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Users&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Academic research
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dl.acm.org/citation.cfm?id=2245293"&gt;Solving non-linear arithmetic constraints in soft realtime environments&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Documentation&lt;/b&gt;&lt;br /&gt;In the &lt;a href="http://autodiff.codeplex.com/documentation"&gt;Documentation&lt;/a&gt; tab right now we have some basic tutorials, and some others are under construction. We also have an &lt;a href="http://www.codeproject.com/KB/library/Automatic_Differentiation.aspx"&gt;article&lt;/a&gt; on CodeProject. In addition, the binary distribution contains XML comments for all public methods and a help file you can view with your favorite help viewer. And finally, the &lt;a href="http://autodiff.codeplex.com/SourceControl/list/changesets"&gt;source control&lt;/a&gt; contains some code examples in addition to the library&amp;#39;s code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;There are many open and commercial .NET libraries that have numeric optimization as one of their features (for example, &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh145003.aspx"&gt;Microsoft Solver Foundation&lt;/a&gt;,  &lt;a href="http://www.alglib.net"&gt;AlgLib&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/projects/sho/"&gt;Microsoft Research SHO&lt;/a&gt; &lt;a href="http://www.extremeoptimization.com/"&gt;Extreme Optimization&lt;/a&gt;, &lt;a href="http://www.centerspace.net/"&gt;CenterSpace NMath&lt;/a&gt;) . Most of them require the user to be able to evaluate the function and the function&amp;#39;s gradient. This library tries to save the work in manually developing the function&amp;#39;s gradient and coding it.&lt;br /&gt;Once the developer defines his/her function, the AutoDiff library can automatically evaluate and differentiate this function at any point. This allows &lt;u&gt;easy development and prototyping&lt;/u&gt; of applications based on numeric optimization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Fast! See &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.5%20vs%200.3%20benchmark&amp;referringTitle=Home"&gt;0.5 vs 0.3 benchmark&lt;/a&gt; and &lt;a href="http://autodiff.codeplex.com/wikipage?title=0.3%20benchmark&amp;referringTitle=Home"&gt;0.3 benchmark&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Composition of functions using arithmetic operators, Exp, Log, Power and user-defined unary and binary functions.&lt;/li&gt;
&lt;li&gt;Function gradient evaluation at specified points&lt;/li&gt;
&lt;li&gt;Function value evaluation at specified points&lt;/li&gt;
&lt;li&gt;Uses &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contract.aspx"&gt;Code Contracts&lt;/a&gt; for specifying valid parameters and return values&lt;/li&gt;
&lt;li&gt;Computes gradients using Reverse-Mode AD algorithm in &lt;b&gt;linear time&lt;/b&gt;!
&lt;ul&gt;&lt;li&gt;Yes, it&amp;#39;s faster than numeric approximation for multivariate functions&lt;/li&gt;
&lt;li&gt;You get both high accuracy and speed!&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>alexshtf</author><pubDate>Fri, 23 Nov 2012 09:34:49 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121123093449A</guid></item><item><title>New Post: Double integration </title><link>http://autodiff.codeplex.com/discussions/361895</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Well, now this feature is supported, I know it is quite late, but it might help :)&lt;/p&gt;
&lt;/div&gt;</description><author>alexshtf</author><pubDate>Tue, 13 Nov 2012 16:22:44 GMT</pubDate><guid isPermaLink="false">New Post: Double integration  20121113042244P</guid></item><item><title>Source code checked in, #1dc444607846</title><link>http://autodiff.codeplex.com/SourceControl/changeset/changes/1dc444607846</link><description>Added AutoDiff.NMath extension&amp;#10;</description><author>alexshtf</author><pubDate>Mon, 08 Oct 2012 18:09:57 GMT</pubDate><guid isPermaLink="false">Source code checked in, #1dc444607846 20121008060957P</guid></item><item><title>Source code checked in, #3b65828053ce</title><link>http://autodiff.codeplex.com/SourceControl/changeset/changes/3b65828053ce</link><description>Removed &amp;#34;perftest&amp;#34; project. It does not represent performance testing well. We will write a new one based on NUnit&amp;#10;</description><author>alexshtf</author><pubDate>Mon, 08 Oct 2012 12:50:56 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3b65828053ce 20121008125056P</guid></item><item><title>Source code checked in, #9ca3d816b0df</title><link>http://autodiff.codeplex.com/SourceControl/changeset/changes/9ca3d816b0df</link><description>Folder structure changes - moved the core library to the &amp;#34;core&amp;#34; folder&amp;#10;</description><author>alexshtf</author><pubDate>Mon, 08 Oct 2012 12:49:03 GMT</pubDate><guid isPermaLink="false">Source code checked in, #9ca3d816b0df 20121008124903P</guid></item><item><title>Source code checked in, #f5043e53d780</title><link>http://autodiff.codeplex.com/SourceControl/changeset/changes/f5043e53d780</link><description>Created a solution folder&amp;#10;</description><author>alexshtf</author><pubDate>Mon, 08 Oct 2012 12:39:55 GMT</pubDate><guid isPermaLink="false">Source code checked in, #f5043e53d780 20121008123955P</guid></item><item><title>Commented Feature: Try to accelerate computation using IL generation [1574]</title><link>http://autodiff.codeplex.com/workitem/1574</link><description>Use Reflection.Emit API to construct a specific set of instructions for a given function such that future differentiations will be faster than with current Visitor based implementations&lt;br /&gt;Comments: Hm, interesting, and a bit surprising. I&amp;#39;ve worked quite a bit on dynamically generating code lately, if you want I could have a look at this as well, maybe you could send me the code of your experiment&amp;#63;</description><author>davidacoder</author><pubDate>Wed, 26 Sep 2012 18:42:55 GMT</pubDate><guid isPermaLink="false">Commented Feature: Try to accelerate computation using IL generation [1574] 20120926064255P</guid></item><item><title>Closed Feature: Try to accelerate computation using IL generation [1574]</title><link>http://autodiff.codeplex.com/workitem/1574</link><description>Use Reflection.Emit API to construct a specific set of instructions for a given function such that future differentiations will be faster than with current Visitor based implementations&lt;br /&gt;Comments: Closed because manually generating IL does not accelerate computation.</description><author>alexshtf</author><pubDate>Wed, 26 Sep 2012 14:34:40 GMT</pubDate><guid isPermaLink="false">Closed Feature: Try to accelerate computation using IL generation [1574] 20120926023440P</guid></item><item><title>Commented Feature: Try to accelerate computation using IL generation [1574]</title><link>http://autodiff.codeplex.com/workitem/1574</link><description>Use Reflection.Emit API to construct a specific set of instructions for a given function such that future differentiations will be faster than with current Visitor based implementations&lt;br /&gt;Comments: An experiment shows that custom IL generation actually works SLOWER both when using DynamicMethod or Expression.Compile. &amp;#10;&amp;#10;Unless proven otherwise, it seems that manually generating IL does not accelerate the gradient computation but slows it down.</description><author>alexshtf</author><pubDate>Wed, 26 Sep 2012 14:34:15 GMT</pubDate><guid isPermaLink="false">Commented Feature: Try to accelerate computation using IL generation [1574] 20120926023415P</guid></item><item><title>Created Feature: Try to accelerate computation using IL generation [1574]</title><link>http://autodiff.codeplex.com/workitem/1574</link><description>Use Reflection.Emit API to construct a specific set of instructions for a given function such that future differentiations will be faster than with current Visitor based implementations&lt;br /&gt;</description><author>alexshtf</author><pubDate>Wed, 26 Sep 2012 14:33:08 GMT</pubDate><guid isPermaLink="false">Created Feature: Try to accelerate computation using IL generation [1574] 20120926023308P</guid></item><item><title>Source code checked in, #f7101e4e460e</title><link>http://autodiff.codeplex.com/SourceControl/changeset/changes/f7101e4e460e</link><description>Code cleanup&amp;#10;&amp;#10;- Remove redundant class &amp;#40;existed before performance optimizations prior to v1.0&amp;#41;&amp;#10;- Fix contract classes to be abstract&amp;#10;- Make a field private&amp;#10;</description><author>Alex Shtof</author><pubDate>Fri, 14 Sep 2012 00:27:52 GMT</pubDate><guid isPermaLink="false">Source code checked in, #f7101e4e460e 20120914122752A</guid></item><item><title>Source code checked in, #5d581d91062d</title><link>http://autodiff.codeplex.com/SourceControl/changeset/changes/5d581d91062d</link><description>Removed redundant solution files&amp;#10;</description><author>Alex Shtof</author><pubDate>Fri, 14 Sep 2012 00:05:09 GMT</pubDate><guid isPermaLink="false">Source code checked in, #5d581d91062d 20120914120509A</guid></item><item><title>Source code checked in, #116cf0ea528a</title><link>http://autodiff.codeplex.com/SourceControl/changeset/changes/116cf0ea528a</link><description>Fixed solution configurations&amp;#10;</description><author>Alex Shtof</author><pubDate>Fri, 14 Sep 2012 00:01:28 GMT</pubDate><guid isPermaLink="false">Source code checked in, #116cf0ea528a 20120914120128A</guid></item></channel></rss>