<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.9.2 (http://www.squarespace.com/) on Thu, 11 Mar 2010 13:51:50 GMT--><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rss="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:cc="http://web.resource.org/cc/"><rss:channel rdf:about="http://christoph.ruegg.name/blog/"><rss:title>Christoph Rüegg</rss:title><rss:link>http://christoph.ruegg.name/blog/</rss:link><rss:description>Christoph Rüegg on Math.NET, distributed computing and engineering.</rss:description><dc:language>en-US</dc:language><dc:date>2010-03-11T13:51:50Z</dc:date><admin:generatorAgent rdf:resource="http://www.squarespace.com/">Squarespace Site Server v5.9.2 (http://www.squarespace.com/)</admin:generatorAgent><rss:items><rdf:Seq><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2009/12/23/connect-from-azure-to-an-sql-server-named-instance.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2009/12/15/azure-cloud-service-models.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2009/8/3/dnanalytics-iridium-mathnet-numerics.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2009/4/17/online-api-reference.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2009/1/8/source-repository-mirror-at-google-code.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2009/1/7/iridium-statistics-accumulator-better-numerical-stability.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2008/11/4/complete-iridium-feature-list.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2008/8/14/iridium-2008-august-release-2008816470.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2008/5/10/revised-interpolation-toolkit-in-iridium.html"/><rdf:li rdf:resource="http://christoph.ruegg.name/blog/2008/4/6/iridium-2008-april-release-v2008414425.html"/></rdf:Seq></rss:items></rss:channel><rss:item rdf:about="http://christoph.ruegg.name/blog/2009/12/23/connect-from-azure-to-an-sql-server-named-instance.html"><rss:title>Connect from Azure to an SQL Server Named Instance</rss:title><rss:link>http://christoph.ruegg.name/blog/2009/12/23/connect-from-azure-to-an-sql-server-named-instance.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2009-12-23T16:52:46Z</dc:date><dc:subject>Azure Cloud Computing Database Networking</dc:subject><content:encoded><![CDATA[<p>In some situations you can&#8217;t or don&#8217;t want to move all your data completely to the cloud. Be it to connect to your existing infrastructure, a company policy, to remain multi-tenant or simply when migrating slowly step by step. Common to these cases is often the requirement to synchronize with or connect from Azure to some local or offsite SQL Server database. For synchronization you may want to try the <a href="http://msdn.microsoft.com/en-us/sync/default.aspx">Microsoft Sync Framework</a>. This post is about the other option: connecting to an external named SQL Server instance.</p>
<h3>Connecting to Named SQL Server Instances</h3>
<p>In addition to its own storage options like SQL Azure and Azure Table Storage, Azure also allows you to connect to <strong>external SQL Servers</strong> over TCP/IP. However, there&#8217;s a pitfall right now when using named SQL Server instances:</p>
<blockquote>
<p>System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - <strong>Error Locating Server/Instance Specified</strong>) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at &#8230; <em>(<a href="http://stackoverflow.com/questions/1952904/connecting-to-remote-sql-server-2008-from-windows-azure">source</a>)</em></p>
</blockquote>
<p>Provided your connection string is correct, this is likely to be an issue with how SQL server finds your named instance.</p>
<h3>Instance Resolution using SQL Server Browser</h3>
<p>Since SQL Server 2005, the <a href="http://msdn.microsoft.com/en-us/library/ms181087.aspx">SQL Server Browser service</a> is responsible for enumerating available instances on a machine, and to resolve instance names to the actual named pipe or TCP port (for SQL Server 2000 it was the SQL Server Resolution Protocol).</p>
<p>In order to resolve the TCP port of a named instance, the client sends an UDP datagram to port 1434, to which the server browser replies with another datagram listing the instance endpoint to which the client then connects to. Thanks to this mechanism it is no longer required to have the server listen on the standard SQL server TCP port 1433, so it can fully support multiple (named) instances. In fact, the default for named instances is to use a dynamic random TCP port.</p>
<h3>Azure vs. SQL Server Browser</h3>
<p>When connecting from Azure this resolution mechanism fails, simply because the UDP datagrams never reach their target (this may change in the future). So there&#8217;s no way the client can find the actual probably random TCP port to connect to, and will throw the SqlException cited above.</p>
<h3>Solution</h3>
<p>To work around this issue, you can <strong><a href="http://msdn.microsoft.com/en-us/library/ms177440.aspx">configure your named instance to listen on a static TCP port</a></strong> instead of randomly selecting a new dynamic one on every restart (<a href="http://support.microsoft.com/kb/823938">related kb</a>). You can then specify this static port directly in the connection string in your Azure worker role:</p>
<blockquote>Data Source={domain/ip}<strong>,{port}</strong>;Network Library=DBMSSOCN;<br />Initial Catalog={dbname};User ID={user};Password={pw}</blockquote>
<p>Note that in this case there&#8217;s no need to specify the name of the instance in the connection string. The network library parameter tells the client to use TCP/IP instead of e.g. Named Pipes.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2009/12/15/azure-cloud-service-models.html"><rss:title>Azure: Cloud Service Models</rss:title><rss:link>http://christoph.ruegg.name/blog/2009/12/15/azure-cloud-service-models.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2009-12-15T12:26:19Z</dc:date><dc:subject>Azure Cloud Computing CloudService Lokad Lokad.Cloud</dc:subject><content:encoded><![CDATA[<p>Since I joined <a href="http://www.lokad.com/">Lokad</a> this September I finally had the chance to dive into cloud computing. We chose <a href="http://www.microsoft.com/windowsazure/">Windows Azure</a> as platform for our very computation intensive business, and built a neutral opensource framework on top of it: <a href="http://code.google.com/p/lokad-cloud/">Lokad.Cloud</a>.</p>
<h2>Cloud Services</h2>
<p>Lokad.Cloud is described as a .net object-to-cloud persistence mapper, but it&#8217;s actually much more. This post shall concentrate on one aspect only: Its notion of <a href="http://code.google.com/p/lokad-cloud/wiki/ScalableCloudServices">Cloud Services</a> as horizontally scalable workers.</p>
<p>In essence, cloud services are managed and executed as follows:</p>
<ol>
<li>The Lokad.Cloud management infrastructure (for now essentially a web role) allows you to upload one or more assemblies containing a set of cloud services and optionally some configuration file.</li>
<li>Every Azure worker role instance loads all these services in an isolated AppDomain.</li>
<li>Each Azure worker then executes these services one at a time according to some scheduling algorithm and execution policy.</li>
</ol>
<p>We provide specialized base classes to simplify implementing services processing items from a shared queue or for services which are to be called in regular intervals.</p>
<p>We treat all azure workers as equal and therefore execute every cloud service on each Azure worker from time to time. In other words, we map all cloud services to all Azure workers, forming a complete bipartite graph between cloud services and Azure workers as shown in the following figure.</p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><img src="http://christoph.ruegg.name/storage/img/CloudServicesToAzureWorkers.png?__SQUARESPACE_CACHEVERSION=1260889942728" alt="" /></span></span></p>
<p style="text-align: left;">This is a fundamental concept that yields a very simple design with a potential for ideal horizontal scaling, and is even resilient to failing azure workers as long as at least one worker remains intact.</p>
<h2 style="text-align: left;">Cloud Service Models and Deployments</h2>
<p>The only object that is aware of this mapping is the service scheduler. Yet, from the management and diagnostics perspective it would be interesting to represent the cloud services as first class objects. I&#8217;m therefore introducing the notion of Cloud Service Models for Lokad.Cloud (not part of the current release, open whether it ever will be).</p>
<p style="padding-left: 30px;">In Azure, web and worker roles are explicitly defined and configured in two xml files. Since the latest update of the Azure tools for Microsoft VisualStudio, they are referred to as <em>Azure Service Model</em>. Using the Azure management website one can upload an assembly plus the two xml files to create a unique <em>Azure deployment</em>. A deployment can be stopped or running, either in production or in staging mode.</p>
<p>The same concepts can also be applied to Cloud Services, on a slightly higher level of abstraction and orthogonal to the Azure terms.</p>
<p>A <strong>Cloud Service Model</strong> is a unique entity, associated with a set of assemblies, the cloud services defined in them and their configuration (if applicable). Using the Lokad.Cloud management tools an administrator can upload such a model and create a unique <strong>Cloud Service Deployment</strong>. A deployment can be stopped or running, and of course be removed when no longer needed. A failing or malfunctioning deployment can be diagnosed and dealt with directly in the management UI.</p>
<p>Note that the currently implemented option to upload a zip file containing assemblies and optional configuration is already very close to such a models, but is missing identity and other metadata.</p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><img src="http://christoph.ruegg.name/storage/img/CloudServicesDeployments.png?__SQUARESPACE_CACHEVERSION=1260901484536" alt="" /></span></span></p>
<p>In each Azure worker, our scheduler will load the current service model, load the services and schedule them accordingly. From time to time the scheduler will check whether the deployed service model has changed, and update if necessary.</p>
<p>Technically this design would also allow to run multiple different deployments in parallel, e.g. by breaking the complete bipartite graph between Cloud Services and Azure workers into a non-complete bipartite one where Azure workers are assigned to a single Cloud Service Deployment:</p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><img src="http://christoph.ruegg.name/storage/img/CloudServicesDeployments2.png?__SQUARESPACE_CACHEVERSION=1260901271542" alt="" /></span></span></p>
<p>Or by sharing the Azure workers by Cloud Service Deployments in a way or another (e.g. in parallel, or round robin):</p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><img src="http://christoph.ruegg.name/storage/img/CloudServicesDeployments3.png?__SQUARESPACE_CACHEVERSION=1260901464525" alt="" /></span></span></p>
<p style="text-align: left;">Remember however that some of these scenarios violate the fundamental concept mentioned above. Hence, as usual, there&#8217;s a tradeoff between flexibility and robustness.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2009/8/3/dnanalytics-iridium-mathnet-numerics.html"><rss:title>dnAnalytics + Iridium = Math.NET Numerics</rss:title><rss:link>http://christoph.ruegg.name/blog/2009/8/3/dnanalytics-iridium-mathnet-numerics.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2009-08-03T08:44:00Z</dc:date><dc:subject>Math.NET: Numerics</dc:subject><content:encoded><![CDATA[<p>You may have wondered why the Math.NET Iridium development has stopped abruptly almost two months ago. Luckily this is not entirely true, in the last few weeks the .Net numerics library has progressed well - but at a different place:</p>
<p><a style="font-weight: bold;" href="http://www.mathdotnet.com/Iridium.aspx">Math.NET Iridium</a><span style="font-weight: bold;"> is being merged with </span><a style="font-weight: bold;" href="http://dnanalytics.codeplex.com/">dnAnalytics</a>, resulting in a new project named "<a href="http://numerics.mathdotnet.com"><span style="font-weight: bold;">Math.NET Numerics</span></a>".</p>
<p>What does that mean for existing Math.NET Iridium users?</p>
<ul>
<li><span style="font-weight: bold;">Higher development momentum</span> and larger user community (as a direct result of merging two projects). </li>
<li><span style="font-weight: bold;">Better algorithm and code quality</span> by picking the best of each project and simply by having new highly skilled developers on board. </li>
<li>New opensource license model: <span style="font-weight: bold;">MIT/X11</span>. This is a very open license similar to the so called New BSD License. This model is much less restricting than the previous LGPL and is (to my knowledge) source-compatible to a wide range of licenses including all GPL-based licenses and the Microsoft opensource licenses, too. </li>
<li>Some <span style="font-weight: bold;">API changes</span>. This is unavoidable since we try to integrate the best of both dnAnalytics and Iridium. At the same time this is a good chance to throw out some old designs that have shown to be improvable and replace them with better approaches. However, we try hard to keep migration as smooth as possible.</li>
<li>In addition to the completely self-contained managed implementation, we'll profit from the dnAnalytics experience with parallelized and native optimizations (MKL, ACMS, CUDA etc) and will therefore provide <span style="font-weight: bold;">optional wrappers around native libraries</span> <span id="ctl00_ctl00_MasterContent_Content_wikiSourceLabel">which provide <span style="font-weight: bold;">significantly better performance</span> when working with large data sets.</span></li>
<li>Again thanks to the dnAnalytics experience, you can expect better <span style="font-weight: bold;">F#</span> support, even though the library is still written in C#.</li>
<li>Although Iridium did support sparse linear algebra for a very short time, we had to remove it due to several issue. You can expect Math.NET Numerics to finally <span style="font-weight: bold;">support sparse linear algebra</span> in a clean way.</li>
</ul>
<p>You'll find the new Math.NET Numerics discussion board and tracker at <a href="http://mathnetnumerics.codeplex.com/">CodePlex</a> and the current sources at <a href="http://github.com/mathnet/mathnet-numerics/">Github</a> (subversion mirror at <a href="http://code.google.com/p/mathnet-numerics/source/checkout">google</a>). The full portal website and wikis etc. will be available in a few weeks. Feel free to post your ideas, feedback or even fork the repository at github to contribute code to the project (note that we will completely reorganize the project structure until mid August).<br /><br />We'll let you know here and on <a href="http://twitter.com/MathNetNumerics">Twitter</a> as soon as we reach a first milestone and have an api preview ready.</p>]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2009/4/17/online-api-reference.html"><rss:title>Online API Reference</rss:title><rss:link>http://christoph.ruegg.name/blog/2009/4/17/online-api-reference.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2009-04-17T16:08:00Z</dc:date><dc:subject>Math.NET: Numerics</dc:subject><content:encoded><![CDATA[<p>We now finally provide an online api reference in an rdoc-like style, generated by <a href="http://docu.jagregory.com/">docu</a> (actually by my github <a href="http://github.com/cdrnet/docu/network">fork</a> of it). Note that docu is new and still under heavy development, so the quality is likely to improve over the next months (e.g. right now the class summaries are missing).</p>
<p><a href="http://numerics.mathdotnet.com/api/">http://numerics.mathdotnet.com/api/</a></p>
<p>It is simple, but (other than the older NDoc &amp; Sandcastle generated sites) loads very fast.</p>]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2009/1/8/source-repository-mirror-at-google-code.html"><rss:title>Source Repository Mirror at Google Code</rss:title><rss:link>http://christoph.ruegg.name/blog/2009/1/8/source-repository-mirror-at-google-code.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2009-01-08T11:01:00Z</dc:date><dc:subject>Math.NET: Numerics Version Control</dc:subject><content:encoded><![CDATA[<p>In addition to the official subversion repository we now also maintain a read-only repository mirror on<a href="http://code.google.com/p/mathnet-mirror/"> google code</a>, mainly as a fail-over backup solution if something happens to the primary server, but also because it provides additional ways to access the source: Subversion over the HTTP protocol (useful if you&#8217;re behind a restrictive firewall), and <a href="http://code.google.com/p/mathnet-mirror/source/browse/#svn/trunk">source code browsing</a> directly in the web browser.</p>
<p>Official Subversion Repository:<br />svn://svn.opensourcedotnet.info/mathnet/trunk&nbsp;</p>
<p>New Subversion Repository Mirror:<br /><strong>http://mathnet-mirror.googlecode.com/svn/trunk/</strong></p>
<p>Of course the official/primary repository remains accessible anonymously as well.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2009/1/7/iridium-statistics-accumulator-better-numerical-stability.html"><rss:title>Iridium Statistics Accumulator: Better numerical stability</rss:title><rss:link>http://christoph.ruegg.name/blog/2009/1/7/iridium-statistics-accumulator-better-numerical-stability.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2009-01-07T20:12:00Z</dc:date><dc:subject>Floating Point Math.NET: Numerics Precision</dc:subject><content:encoded><![CDATA[<p>The algorithm on how the Mean, Variance and Sigma are incrementally computed in the statisics accumulator (MathNet.Numerics.Statistics.Accumulator) has been improved last week in Iridium revision 503 to provide better numeric stability when dealing with samples with a very large mean but only a small variance.</p>
<p>For example, the variance of normally distributed samples with mean 10^9 but a variance of only 1 can now be accurately estimated. The previous implementation has been very unstable in that case.</p>
<p>The new algorithm continues to support removing samples from the accumulator (and updates the estimates accordingly).</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2008/11/4/complete-iridium-feature-list.html"><rss:title>Complete Iridium Feature List</rss:title><rss:link>http://christoph.ruegg.name/blog/2008/11/4/complete-iridium-feature-list.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2008-11-04T21:08:00Z</dc:date><dc:subject>Math.NET: Numerics</dc:subject><content:encoded><![CDATA[<p>I have much more time for Math.NET from now on than in the past. As a first step I've finally collected and summarized all Math.NET Iridium features in a list:</p>
<p><a href="http://numerics.mathdotnet.com/doc/Features.ashx">http://numerics.mathdotnet.com/doc/Features.ashx</a></p>
<p>Beside of the continuous Iridium work I also plan to finally bring Math.NET Classic (traditional symbolic computer algebra) back to live.</p>]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2008/8/14/iridium-2008-august-release-2008816470.html"><rss:title>Iridium 2008 August Release (2008.8.16.470)</rss:title><rss:link>http://christoph.ruegg.name/blog/2008/8/14/iridium-2008-august-release-2008816470.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2008-08-14T12:14:00Z</dc:date><dc:subject>Math.NET: Numerics Release</dc:subject><content:encoded><![CDATA[<p>Iteration 16 of Math.NET Iridium (Numerics) is now available, as 2008 August Release with Version 2008.8.16.470. <strong>Grab it <a href="http://www.mathdotnet.com/downloads/Iridium-2008-8-16-470.ashx">here</a></strong>.</p>
<p>Please continue reporting issues and bugs you find, it&#8217;s very useful and helps making the whole project better. We&#8217;ve also setup a <a href="http://mathnet.uservoice.com/">UserVoice</a> page for you to suggest or vote for new features or enhancement.</p>
<p><span style="font-weight: bold;">Team:</span> Christoph R&uuml;egg, Joann&egrave;s Vermorel, Matthew Kitchin</p>
<p><span style="font-weight: bold;">Summary:</span></p>
<ul>
<li>Bugs: 4 bugs have been fixed.</li>
<li>Completely revised and extended interpolation toolkit.</li>
<li>New complex matrix and vector type (Complex Linear Algebra will follow in the next iteration).</li>
<li>Slightly enhanced real matrix and vector types .</li>
<li>QR decompositions are now unique (positive real R diagonal).</li>
<li>Complex type now has a public constructor, more intuitive.</li>
<li>New Digamma (Psi) special function.</li>
<li>Various other small changes.</li>
</ul>
<p>For more details have a look at the <a href="http://www.mathdotnet.com/downloads/Iridium-2008-8-16-470.ashx">download page</a> or at the <a href="http://tracker.opensourcedotnet.info/Default.aspx?IRID=ChangeLog">Iridium tracker change log</a>.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2008/5/10/revised-interpolation-toolkit-in-iridium.html"><rss:title>Revised Interpolation Toolkit in Iridium</rss:title><rss:link>http://christoph.ruegg.name/blog/2008/5/10/revised-interpolation-toolkit-in-iridium.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2008-05-10T15:31:00Z</dc:date><dc:subject>Interpolation Math.NET: Numerics</dc:subject><content:encoded><![CDATA[<p>The next release of Math.NT Iridium, Iteration 16, comes with a revised interpolation architecture and implementation.</p>
<p>Up to now, the interpolation classes have been a bit akward to use, partially because of the SampleList collection class you had to use, and because of the design in general. It also provided only two interpolation algorithms, which are both somewhat outdated these days.</p>
<p>The new implementation provides some newer more stable algorithms (like Floater and Hormann&#8217;s algorithm for pole-free rational interpolation) together with a cleaner&nbsp; design. Additionally, some of the algoriths can also provide the first and second derivative and in the case of splines even a definite integration. There is also a new facade/portal class that reduces building an interpolation to one simple method call. Usually you would just use this facade class to build/precompute an interpolation, but all the algorithms are also publicly available in the Algorithms-namespace, so if you know what you&#8217;re doing you can use them directly.</p>
<p>Sample code, which uses a pole-free rational barycentric interpolation (the default algorithm) with 5 given sample pairs (t, x(t)):</p>
<div style="font-family: courier;">
<p>double[] t = new double[] { -2, -1, 0, 1, 2};<br />double[] x = new double[] { 1, 2, -1, 0, 1};<br /><br />IInterpolationMethod method =<br />&nbsp;&nbsp;&nbsp;&nbsp; Interpolation.Create(t, x);<br /><br />double res = method.Interpolate(0.5);</p>
</div>
<p>Simple, isn&#8217;t it?</p>
<p>Unfortunately it was not possible to fit the new design into the old classes, so the new classes and interfaces replace the old classes completely. These old classes are still there for now and continue to work, but they&#8217;re marked as obsolete and we recommend strongly to upgrade your code base to the new architecture.</p>
<p>The new architecture has already been checked in to the <a href="http://www.mathdotnet.com/Repository.aspx">source repository</a>. If you&#8217;re interested, please have a look at it and provide feedback - it&#8217;s not released yet so we can still change it completely :).</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://christoph.ruegg.name/blog/2008/4/6/iridium-2008-april-release-v2008414425.html"><rss:title>Iridium 2008 April Release (v2008.4.14.425)</rss:title><rss:link>http://christoph.ruegg.name/blog/2008/4/6/iridium-2008-april-release-v2008414425.html</rss:link><dc:creator>Christoph Rüegg</dc:creator><dc:date>2008-04-06T11:50:00Z</dc:date><dc:subject>Math.NET: Numerics Release</dc:subject><content:encoded><![CDATA[<p>Iteration 14 of Math.NET Iridium (Numerics) is now available, as 2008 April Release with Version 2008.4.14.425. <strong>Grab it <a href="http://www.mathdotnet.com/downloads/Iridium-2008-4-14-425.ashx">here</a></strong>.</p>
<p>Sorry for the very short release cycle (just one week after iteration 12). The reason is that I won&#8217;t be able to work on Math.NET for the next three weeks and that some of the fixes and changes are important enough to not let you wait three weeks for no reason.</p>
<p>Please continue reporting issues and bugs you find, it&#8217;s very useful and helps making the whole project better. There&#8217;s also a big chance that the issue will actually be fixed: in the last few releases we always managed to fix all bugs we were aware of at that point. Thanks!</p>
<p><span style="font-weight: bold;">Team:</span> Christoph R&uuml;egg, Joann&egrave;s Vermorel, Matthew Kitchin</p>
<p><span style="font-weight: bold;">Summary:</span></p>
<ul>
<li>Bugs: All known 3 bugs have been fixed.</li>
<li>Better special function precision (Gamma, Beta, Erf, Distributions etc): now up to 12 - 14 digits. </li>
<li>New direct/real gamma function, new harmonic number function.</li>
<li>Interpolation: usability enhancements (better double-array support, less user code) </li>
</ul>
<p><span style="font-weight: bold;">New Features:</span></p>
<ul>
<li>IRID-122: Core - New direct Gamma function (additional to GammaLn) with negative value support</li>
<li>IRID-123: Core - New Special Function: Harmonic Numbers</li>
</ul>
<p style="font-weight: bold;">Enhancements:</p>
<ul>
<li>IRID-121: Core - Better numerical precision for Gamma function</li>
<li>IRID-125: Interpolation - Additional interpolation and sample list constructors for double arrays.</li>
<li>IRID-126: Interpolation - Better interpolation order access and defaults</li>
</ul>
<p style="font-weight: bold;">Fixed Bugs:</p>
<ul>
<li>IRID-119: Interpolation - Polynomial Extrapolation in positive direction throws IndexOutOfRangeException</li>
<li>IRID-120: Linear Algebra - Infinite recursion</li>
<li>IRID-124: Linear Algebra - Matrix.CopyToArray - wrong indexer in inner loop condition.</li>
</ul>
<p>For more details have a look at the <a href="http://tracker.opensourcedotnet.info/Default.aspx?IRID=ChangeLog">Iridium tracker change log</a>.</p>
]]></content:encoded></rss:item></rdf:RDF>