<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Support Archives - CenterSpace</title>
	<atom:link href="https://www.centerspace.net/category/support/feed" rel="self" type="application/rss+xml" />
	<link>https://www.centerspace.net/category/support</link>
	<description>.NET numerical class libraries</description>
	<lastBuildDate>Tue, 01 Mar 2016 22:06:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>
<site xmlns="com-wordpress:feed-additions:1">104092929</site>	<item>
		<title>Building ASP.NET web applications with NMath</title>
		<link>https://www.centerspace.net/building-asp-net-web-applications-with-nmath</link>
					<comments>https://www.centerspace.net/building-asp-net-web-applications-with-nmath#respond</comments>
		
		<dc:creator><![CDATA[Trevor Misfeldt]]></dc:creator>
		<pubDate>Thu, 21 Feb 2013 16:04:14 +0000</pubDate>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[NMath]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[NMath configuration]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">http://www.centerspace.net/blog/?p=4219</guid>

					<description><![CDATA[<p>NMath can be used to create ASP.NET web applications, just like any other .NET application. However, there are a few additional considerations for building and deploying ASP.NET applications. Referencing NMath To use NMath types in your application, add a reference to NMath.dll, just as you would with other types of .NET applications. If you are [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/building-asp-net-web-applications-with-nmath">Building ASP.NET web applications with NMath</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>NMath can be used to create ASP.NET web applications, just like any other .NET application. However, there are a few additional considerations for building and deploying ASP.NET applications.</p>
<h3>Referencing NMath</h3>
<p>To use NMath types in your application, add a reference to NMath.dll, just as you would with other types of .NET applications. If you are using web projects in Visual Studio, you can simply right-click the References folder and select the Add Reference… command. If you specify Copy Local = true in the reference’s properties, then the assembly will be copied to the /bin directory of the web application, facilitating deployment to a web server.</p>
<p>If you are not using web projects in Visual Studio (e.g. using the “Open Web Site” command in Visual Studio, or using other development tools), then you can alternatively specify the reference in the web.config file, like this:</p>
<p><span style="font-family: Consolas;">&lt;configuration&gt;<br />
&lt;system.web&gt;<br />
&lt;compilation&gt;<br />
&lt;assemblies&gt;<br />
&lt;add assembly=&#8221;NMath, Version=&lt;Version&gt;, Culture=neutral, PublicKeyToken=&lt;Token&gt;&#8221;/&gt;<br />
&lt;/assemblies&gt;<br />
&lt;/compilation&gt;<br />
&lt;/system.web&gt;<br />
&lt;/configuration&gt;</span></p>
<p>We recommend that you do not add references to the kernel assemblies, as the appropriate kernel assembly for your platform is loaded at runtime and the appropriate native DLL is linked to the kernel.  Instead, place the kernel assemblies in the same location as the native DLLs, as described below.</p>
<p><strong>Note</strong>: when the web server launches an ASP.NET application for the first time, the assemblies in the /bin directory are loaded into memory. If the /bin directory contains a mixture of 32-bit and 64-bit assemblies (for example, both NMathKernelx86.dll and NMathKernelx64.dll), then depending on the configuration of the web server, the application may fail to start and instead throw an exception like this: “An attempt was made to load a program with an incorrect format.”</p>
<h3>Kernel Assemblies and Native DLLs</h3>
<p>For ASP.NET applications, Microsoft recommends that the /bin directory contain only .NET assemblies, not native DLLs.</p>
<p>If the deployment web server may not have NMath installed directly, then we recommend that the appropriate kernel assembly (NMathKernelx86.dll or NMathKernelx64.dll) and the appropriate native DLLs (e.g. nmath_native_x86.dll or nmath_native_x64.dll) be placed in a folder within the web application root directory, such as /NativeBin. This folder should then be copied to the deployment web server along with the rest of your application.</p>
<h3>NMath Configuration</h3>
<p>NMath settings can be configured as described in Chapter 1.5 of the <em>NMath User’s Guide.</em> However, when deploying web applications &#8212; especially to a shared hosting environment &#8212; it&#8217;s quite common not to know the details about the physical structure of the file system, and to have restricted access to the system’s environment variables. The references to resources within web apps are typically relative to the root of the virtual directory for the website, regardless of where they might physically reside on disk.</p>
<p>For this reason, starting in NMath 5.3, the ASP.NET ~ operator can be used to specify the location of the NMath native libraries and the log file, relative to the web application root. That is, these can be specified in the web.config file like this:</p>
<p><span style="font-family: Consolas;"> &lt;add key=&#8221;NMathNativeLocation&#8221; value=&#8221;~/NativeBin&#8221; /&gt;<br />
</span><span style="font-family: Consolas;"> &lt;add key=&#8221;NMathLogLocation&#8221; value=&#8221;~/Logs&#8221; /&gt;</span></p>
<p>It is not sufficient to use relative paths (e.g. &#8220;bin/&#8221;), since the executing assembly is usually the ASP.NET worker process, and depending on the web server configuration, the working directory will usually be a subdirectory of the Windows system directory (e.g. c:\windows\system32).</p>
<p>The ~ operator can only be used in ASP.NET applications; specifying this in a Windows application will cause the path to be resolved incorrectly.</p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/building-asp-net-web-applications-with-nmath">Building ASP.NET web applications with NMath</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.centerspace.net/building-asp-net-web-applications-with-nmath/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4219</post-id>	</item>
		<item>
		<title>Using Excel with NMath</title>
		<link>https://www.centerspace.net/using-excel-with-nmath</link>
					<comments>https://www.centerspace.net/using-excel-with-nmath#respond</comments>
		
		<dc:creator><![CDATA[Paul Shirkey]]></dc:creator>
		<pubDate>Mon, 15 Feb 2010 12:24:15 +0000</pubDate>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[calling C# from VBA]]></category>
		<category><![CDATA[calling excel from .NET assembly]]></category>
		<category><![CDATA[COM .NET interop]]></category>
		<category><![CDATA[Excel functions]]></category>
		<category><![CDATA[Excel math functions]]></category>
		<category><![CDATA[Excel port c#]]></category>
		<guid isPermaLink="false">http://www.centerspace.net/blog/?p=1043</guid>

					<description><![CDATA[<p><img src="http://s84547.gridserver.com/blog/./blog/wp-content/uploads/2010/02/233px-Microsoft_Excel_Icon.svg_.png" alt="" title="Excel Icon"  class="excerpt" /><br />
We've had several customers ask about porting their Excel model to a .NET language in order to leverage the performance and functionality of NMath or NMath Stats. NMath does have good crossover functionality with Excel making this porting job easier. It is also possible to accelerate your Excel models by calling the NMath .NET assemblies directly from a VBA macro in Excel. This post provides some guidance for porting all or just a portion of your Excel model to C# and NMath.</p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/using-excel-with-nmath">Using Excel with NMath</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We&#8217;ve had several customers ask about porting their Excel model to a .NET language in order to leverage the performance and functionality of NMath or NMath Stats. NMath does have good crossover functionality with Excel making this porting job easier. It is also possible to accelerate your Excel models by calling the NMath .NET assemblies directly from a VBA macro in Excel . This post provides some guidance for porting all or just a portion of your Excel model to C# and NMath.</p>
<p>Excel is designed to interoperate with external assemblies from VBA using COM.  Type libraries built in .NET are not directly COM compatible, however all .NET class libraries including NMath and NMath Stats can be made to present a COM interface making Excel interop possible. This interop is acheived by building the <em>COM type library</em> directly from the assembly &#8211; no recompiling needed &#8211; using a tool shipped with the .NET framework, and then adding this type library as a reference to an Excel sheets&#8217; VBA macro.  Because of the many differences between the C# language and VBA, only a small portion of NMath will be accessable from Excel using this procedure, however a simple remedy will be outlined below that can expand the available functionality to all of NMath.</p>
<ol>
<li>To build the type library interface to the NMath.dll use the <code>regasm.exe</code> utility shipped with the .NET framework <quote>
<pre lang="c"> >regasm.exe NMath.dll /tlb:NMathCom.tlb </pre>
<p> </quote>  The COM compatible type library now resides in the <code> NMathCom.tlb</code> file.  You will see some warning messages regarding incompatibilities between COM and NMath.</p>
<li>Open a spreadsheet, right click on a sheet tab and choose <b>View Code</b>  to open the VBA development environment.
<li>In the <b>Tools</b> menu select <b>References&#8230;</b> and browse to the location of the new NMath type library.
</ol>
<p>Now the COM compatible portions of NMath are now available for use from VBA.  At this point we can code up simple example for generating random numbers in VBA to test out the NMath interoperability</p>
<pre lang="vbnet">
Private Sub TestNMath()
  Dim rand As New NMath.RandGenLogNormal
  rand.Mean = 50
  rand.Variance = 10

  Dim i As Integer
  For i = 1 To 10
    Cells(i, 1) = rand.Next()
  Next
End Sub
</pre>
<p>This simple VBA script populates cells A1:A10 with LogNormal distributed random numbers with a mean of 50 and a variance of 10.  This is not so easily achieved within Excel natively.<br />
<span id="more-1043"></span><br />
Because NMath was not designed from the ground up to interoperate with the aging COM standard, many types will not be useable from VBA.  All types lacking an empty (default) constructor, generic classes, static methods, and all static classes are not directly usable from VBA.  However, any of these incompatible classes or methods can be wrapped in VB and then made available to Excel via COM.  We understand many Excel users are not C#/.NET experts and so we are happy to help wrapping any <a href="/nmath/">NMath classes</a> or <a href="/nmath-stats/">NMath Stats classes</a> you may need for enhancing and accelerating your Excel models.    </p>
<h2> Porting Excel Models to C# using NMath </h2>
<p>As models grow in Excel, they commonly devolve into a  bizantine workbook that becomes slow, opaque, and difficult to version, debug and manage.  Usually, it is at this point that users start looking at porting the complex portions to another compatible platform, typically VB.  These workbooks tend to be business critical applications so the port must be done carefully and in a piecewise fashion.   This conservative strategy can be acheived using the following steps.</p>
<ol>
<li> Identify the computationally demanding and complex portion of the spreadsheet carefully selecting a separation point where the interface is thin between the workbook and the new VB class.
<li> Identify all of the input and output cells of this computation.
<li> Create build a VB wrapper class in a (class library) VB project that wraps the functionality necessary for the port.  This class should include methods for loading and returning results in types compatible with VBA.
<li> Build the library and generate the COM type library and add this new type library to the workbook&#8217;s VBA.
<li> Test the new model in parallel with the existing model.
<li> Remove the duplicated Excel computation and enjoy the new faster model.
</ol>
<p>Porting functionality from an Excel model to a VB type library can be facilitated by NMath due to the large crossover in functionality between Excel and NMath Stats.  Also, due to NMath&#8217;s high performance, once ports are complete, considerable performance gains can be expected.  Below is a table of Excel functions and their supporting classes in either NMath Stats or native .NET.   </p>
<p>Happy Computing,</p>
<p>-Paul</p>
<p><em> Resources </em></p>
<ul>
<li>Microsoft ported the Excel financial functions to F#, making them accessible to any VB or C# project.  Follow this <a href="http://code.msdn.microsoft.com/FinancialFunctions">link</a> to download this library and read the libraries&#8217; documentation and limitations.
<li>Microsoft&#8217;s landing page on the <a href="https://msdn.microsoft.com/en-us/library/tzat5yw6(VS.80).aspx">assembly registration tool</a> <code>regasm.exe</code> for building the COM type libraries.
<li>A little dated but clear and complete <a href="https://richnewman.wordpress.com/2007/04/15/a-beginner%E2%80%99s-guide-to-calling-a-net-library-from-excel/">article</a> on accessing .NET assemblies from Excel.
</ul>
<h2> Excel Functions Supported in NMath and .NET </h2>
<p>Between the NMath and NMath Stats numeric libraries and the .NET framework many of the Excel functions are covered for a port to C#.  If you have a math function that you need which is not covered or is not in this list, let us know and we can probably add it to NMath or NMath Stats.  Note resources above if financial functions are needed.</p>
<table border="1" cellpadding=5 align="center" width="500">
<tr>
<th> Excel Function </th>
<th> Framework/NameSpace </th>
<th> Class/Method</th>
<tr>
<td>ABS </p>
<td> NMath.Core </p>
<td> NMathFunctions.Abs()</p>
<tr>
<td>ACOS </p>
<td> NMath.Core</p>
<td> NMathFunctions.ACos()</p>
<tr>
<td>AND </p>
<td> NMath.Core</p>
<td> NMathFunctions.And()</p>
<tr>
<td>ASIN </p>
<td> NMath.Core</p>
<td> NMathFunctions.ASin()</p>
<tr>
<td>AREAS </p>
<td>No</p>
<td>
<tr>
<td>ASIN </p>
<td> NMath.Core</p>
<td>NMathFunctions.Asin()</p>
<tr>
<td>ASINH </p>
<td>No</p>
<td>
<tr>
<td>ATAN </p>
<td>NMath.Core</p>
<td>NMathFunctions.Atan()</p>
<tr>
<td>ATAN2 </p>
<td>NMath.Core</p>
<td>NMathFunctions.Atan2()</p>
<tr>
<td>ATANH </p>
<td>No</p>
<td>
<tr>
<td>AVEDEV </p>
<td>NMath.Stats</p>
<td>StatsFunctions.MeanDeviation()</p>
<tr>
<td>AVERAGE </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Mean()</p>
<tr>
<td>AVERAGEA </p>
<td>No</p>
<td>
<tr>
<td>BETADIST </p>
<td>NMath.Stats</p>
<td>BetaDistribution class</p>
<tr>
<td>BETAINV </p>
<td>NMath.Stats</p>
<td>InverseCDF method in BetaDistribution class</p>
<tr>
<td>BINOMDIST </p>
<td>NMath.Stats</p>
<td>BinomialDistribution class</p>
<tr>
<td>CALL </p>
<td>.NET</p>
<td>
<tr>
<td>CEILING </p>
<td>NMath.Core</p>
<td>NMathFunctions.Ceil()</p>
<tr>
<td>CELL </p>
<td>No</p>
<td>
<tr>
<td>CHAR </p>
<td>No</p>
<td>
<tr>
<td>CHIDIST </p>
<td>NMath.Stats</p>
<td>ChiSquareDistribution class</p>
<tr>
<td>CHIINV </p>
<td>NMath.Stats</p>
<td>InverseCDF method in ChiSquareDistribution class</p>
<tr>
<td>CHITEST </p>
<td>No</p>
<td>
<tr>
<td>CHOOSE </p>
<td>No</p>
<td>
<tr>
<td>CLEAN </p>
<td>No</p>
<td>
<tr>
<td>CODE </p>
<td>No</p>
<td>
<tr>
<td>COLUMN </p>
<td>No</p>
<td>
<tr>
<td>COLUMNS </p>
<td>NMath.Core</p>
<td>DataFrame class using Cols property </p>
<tr>
<td>COMBIN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Binomial()</p>
<tr>
<td>CONCATENATE </p>
<td>.NET</p>
<td>
<tr>
<td>CONFIDENCE </p>
<td>NMath.Stats</p>
<td>OneSampleZTest class using LowerConfidenceBound or UpperConfidenceBound properties </p>
<tr>
<td>CORREL </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Correlation()</p>
<tr>
<td>COS </p>
<td>NMath.Core</p>
<td>NMathFunctions.Cos()</p>
<tr>
<td>COSH </p>
<td>NMath.Core</p>
<td>NMathFunctions.Cosh()</p>
<tr>
<td>COUNT </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Count()</p>
<tr>
<td>COUNTBLANK </p>
<td>NMath.Stats</p>
<td>If blanks are represented by NaNs then use StatsFunctions.NaNCount()</p>
<tr>
<td>COUNTIF </p>
<td>NMath.Stats</p>
<td>StatsFunctions.CountIf()</p>
<tr>
<td>COVAR </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Covariance()</p>
<tr>
<td>CRITBINOM </p>
<td>NMath.Stats</p>
<td>BinomialDistribution class</p>
<tr>
<td>DATE </p>
<td>.NET</p>
<td>
<tr>
<td>DATEVALUE </p>
<td>.NET</p>
<td>
<tr>
<td>DAVERAGE </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to get Subset then StatsFunctions.Mean()</p>
<tr>
<td>DAY </p>
<td>.NET</p>
<td>
<tr>
<td>DAYS360 </p>
<td>.NET</p>
<td>
<tr>
<td>DB </p>
<td>No</p>
<td>
<tr>
<td>DCOUNT </p>
<td>NMath.Stats</p>
<td>StatsFunctions.CountIf()</p>
<tr>
<td>DCOUNTA </p>
<td>NMath.Stats</p>
<td>If blanks are represented by NaNs then use StatsFunctions.NaNCountIf()</p>
<tr>
<td>DDB </p>
<td>No</p>
<td>
<tr>
<td>DEGREES </p>
<td>No</p>
<td>
<tr>
<td>DEVSQ </p>
<td>NMath.Stats</p>
<td>StatsFunctions.SumOfSquares()</p>
<tr>
<td>DGET </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() and then index property on resulting DataFrame</p>
<tr>
<td>DMAX </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to create Subset then StatsFunctions.Max()</p>
<tr>
<td>DMIN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to create Subset then StatsFunctions.Min()</p>
<tr>
<td>DOLLAR </p>
<td>.NET</p>
<td>
<tr>
<td>DPRODUCT </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to create Subset then to DoubleVector() then NMathFunctions.Product()</p>
<tr>
<td>DSTDEV </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to create Subset then StatsFunctions.StandardDeviation(BiasType.Unbiased)</p>
<tr>
<td>DSTDEVP </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to create Subset then StatsFunctions.StandardDeviation()</p>
<tr>
<td>DSUM </p>
<td>NMath.Stats</p>
<td>StatsFunctions.SumIf()</p>
<tr>
<td>DVAR </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to create Subset then toDoubleVector() then NMathFunctions.Variance(BiasType.Unbiased)</p>
<tr>
<td>DVARP </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If() to create Subset then toDoubleVector() then NMathFunctions.Variance()</p>
<tr>
<td>ERROR.TYPE</p>
<td>No</p>
<td>
<tr>
<td>EVEN </p>
<td>.NET</p>
<td>
<tr>
<td>EXACT </p>
<td>.NET</p>
<td>
<tr>
<td>EXP </p>
<td>NMath.Core</p>
<td>NMathFunctions.Exp()</p>
<tr>
<td>EXPONDIST </p>
<td>NMath.Stats</p>
<td>ExponentialDistribution class</p>
<tr>
<td>FACT </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Factorial()</p>
<tr>
<td>FALSE </p>
<td>.NET</p>
<td>
<tr>
<td>FDIST </p>
<td>NMath.Stats</p>
<td>FDistribution class</p>
<tr>
<td>FIND </p>
<td>.NET</p>
<td>
<tr>
<td>FINV </p>
<td>NMath.Stats</p>
<td>InverseCDF method in FDistribution class</p>
<tr>
<td>FISHER </p>
<td>No</p>
<td>
<tr>
<td>FISHERINV </p>
<td>No</p>
<td>
<tr>
<td>FIXED </p>
<td>.NET</p>
<td>
<tr>
<td>FLOOR </p>
<td>NMath.Core</p>
<td>NMathFunctions.Floor()</p>
<tr>
<td>FORECAST </p>
<td>NMath.Stats</p>
<td>LinearRegression class in Stats</p>
<tr>
<td>FREQUENCY </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Mode() for frequency, use StatsFunctions.If() to find the indices.</p>
<tr>
<td>FTEST </p>
<td>NMath.Stats</p>
<td>TwoSampleFTest class in Stats</p>
<tr>
<td>FV </p>
<td>No</p>
<td>
<tr>
<td>GAMMADIST </p>
<td>NMath.Stats</p>
<td>GammaDistribution class</p>
<tr>
<td>GAMMAINV </p>
<td>NMath.Stats</p>
<td>InverseCDF method in GammaDistribution class</p>
<tr>
<td>GAMMALN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.GammaLn()</p>
<tr>
<td>GEOMEAN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.GeometricMean()</p>
<tr>
<td>GETPIVOTDATA </p>
<td>No</p>
<td>
<tr>
<td>GROWTH </p>
<td>NMath.Stats</p>
<td>LinearRegression class in Stats</p>
<tr>
<td>HARMEAN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.HarmonicMean()</p>
<tr>
<td>HLOOKUP </p>
<td>No</p>
<td>
<tr>
<td>HOUR </p>
<td>.NET</p>
<td>
<tr>
<td>HYPERLINK </p>
<td>.NET</p>
<td>
<tr>
<td>HYPGEOMDIST </p>
<td>No</p>
<td>
<tr>
<td>IF </p>
<td>NMath.Stats</p>
<td>StatsFunctions.If()</p>
<tr>
<td>INDEX </p>
<td>NMath.Core</p>
<td>Index properties in vector, matrices, columns and frames</p>
<tr>
<td>INDIRECT </p>
<td>No</p>
<td>
<tr>
<td>INFO </p>
<td>.NET</p>
<td>
<tr>
<td>INT </p>
<td>.NET</p>
<td>
<tr>
<td>INTERCEPT </p>
<td>NMath.Stats</p>
<td>LinearRegression class in Stats</p>
<tr>
<td>IPMT </p>
<td>No</p>
<td>
<tr>
<td>IRR </p>
<td>No</p>
<td>
<tr>
<td>ISBLANK </p>
<td>NMath.Core</p>
<td>Can use NaN to indicate missing value. Then use Double.IsNaN(cell) to verify.</p>
<tr>
<td>ISERROR </p>
<td>No</p>
<td>
<tr>
<td>ISLOGICAL </p>
<td>No</p>
<td>
<tr>
<td>ISNA </p>
<td>No</p>
<td>
<tr>
<td>ISNONTEXT </p>
<td>No</p>
<td>
<tr>
<td>ISNUMBER </p>
<td>No</p>
<td>
<tr>
<td>ISPMT </p>
<td>No</p>
<td>
<tr>
<td>ISREF </p>
<td>No</p>
<td>
<tr>
<td>ISTEXT </p>
<td>No</p>
<td>
<tr>
<td>KURT </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Kurtosis()</p>
<tr>
<td>LARGE </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Sort() with StatsFunctions.Percentile()</p>
<tr>
<td>LEFT </p>
<td>.NET</p>
<td>
<tr>
<td>LEN </p>
<td>.NET</p>
<td>
<tr>
<td>LINEST </p>
<td>NMath.Stats</p>
<td>LeastSquares class</p>
<tr>
<td>LN </p>
<td>NMath.Core</p>
<td>NMathFunctions.Log()</p>
<tr>
<td>LOG </p>
<td>No</p>
<td>
<tr>
<td>LOG10 </p>
<td>NMath.Core</p>
<td>NMathFunctions.Log10()</p>
<tr>
<td>LOGEST </p>
<td>NMath.Stats</p>
<td>LinearRegression class in Stats</p>
<tr>
<td>LOGINV </p>
<td>NMath.Stats</p>
<td>InverseCDF method in LognormalDistribution class</p>
<tr>
<td>LOGNORMDIST </p>
<td>NMath.Stats</p>
<td>LognormalDistribution class</p>
<tr>
<td>LOOKUP </p>
<td>NMath.Stats</p>
<td>IndexOf(), IndicesOf() methods in DataFrame class</p>
<tr>
<td>LOWER </p>
<td>.NET</p>
<td>
<tr>
<td>MATCH </p>
<td>No</p>
<td>
<tr>
<td>MAX </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Max()</p>
<tr>
<td>MAXA </p>
<td>No</p>
<td>
<tr>
<td>MDETERM </p>
<td>NMath.Stats</p>
<td>Use LUFact class to factorize then call Determinant() method to compute.</p>
<tr>
<td>MEDIAN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Median()</p>
<tr>
<td>MID </p>
<td>.NET</p>
<td>
<tr>
<td>MIN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Min()</p>
<tr>
<td>MINA </p>
<td>No</p>
<td>
<tr>
<td>MINUTE </p>
<td>.NET</p>
<td>
<tr>
<td>MINVERSE </p>
<td>NMath.Stats</p>
<td>Use LUFact class to factorize then call Inverse() method to compute.</p>
<tr>
<td>MIRR </p>
<td>No</p>
<td>
<tr>
<td>MMULT </p>
<td>NMath.Core</p>
<td>Call Multiply() on a matrix class</p>
<tr>
<td>MOD </p>
<td>.NET</p>
<td>
<tr>
<td>MODE </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Mode()</p>
<tr>
<td>MONTH </p>
<td>.NET</p>
<td>
<tr>
<td>N </p>
<td>No</p>
<td>
<tr>
<td>NA </p>
<td>.NET</p>
<td>
<tr>
<td>NEGBINOMDIST </p>
<td>NMath.Stats</p>
<td>NegativeBinomialDistribution class</p>
<tr>
<td>NORMDIST </p>
<td>NMath.Stats</p>
<td>NormalDistribution class</p>
<tr>
<td>NORMINV </p>
<td>NMath.Stats</p>
<td>InverseCDF() in NormalDistribution class</p>
<tr>
<td>NORMSDIST </p>
<td>NMath.Stats</p>
<td>NormalDistribution class </p>
<tr>
<td>NORMSINV </p>
<td>NMath.Stats</p>
<td>InverseCDF() in NormalDistribution class</p>
<tr>
<td>NOT </p>
<td>.NET</p>
<td>
<tr>
<td>NOW </p>
<td>.NET</p>
<td>
<tr>
<td>NPER </p>
<td>No</p>
<td>
<tr>
<td>NPV </p>
<td>No</p>
<td>
<tr>
<td>ODD </p>
<td>.NET</p>
<td>
<tr>
<td>OFFSET </p>
<td>No</p>
<td>
<tr>
<td>OR </p>
<td>.NET</p>
<td>
<tr>
<td>PEARSON </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Correlation()</p>
<tr>
<td>PERCENTILE </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Percentile()</p>
<tr>
<td>PERCENTRANK </p>
<td>NMath.Stats</p>
<td>StatsFunctions.PercentileRank()</p>
<tr>
<td>PERMUT </p>
<td>NMath.Stats</p>
<td>Factorial() in StatsFunctions</p>
<tr>
<td>PI </p>
<td>.NET System.Math.PI</p>
<td>
<tr>
<td>PMT </p>
<td>No</p>
<td>
<tr>
<td>POISSON </p>
<td>NMath.Stats</p>
<td>PoissonDistribution class</p>
<tr>
<td>POWER </p>
<td>NMath.Stats</p>
<td>NMathFunctions.Pow</p>
<tr>
<td>PPMT </p>
<td>No</p>
<td>
<tr>
<td>PROB </p>
<td>NMath.Stats</p>
<td>PDF methods in all of the distribution classes</p>
<tr>
<td>PRODUCT </p>
<td>NMath.Stats</p>
<td>NMathFunctions.Product()</p>
<tr>
<td>PROPER </p>
<td>.NET</p>
<td>
<tr>
<td>PV </p>
<td>No</p>
<td>
<tr>
<td>QUARTILE </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Quartile()</p>
<tr>
<td>RADIANS </p>
<td>.NET</p>
<td>
<tr>
<td>RAND </p>
<td>NMath.Stats</p>
<td>Many RandomNumberGenerator classes in NMath Core</p>
<tr>
<td>RANK </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Rank()</p>
<tr>
<td>RATE </p>
<td>No</p>
<td>
<tr>
<td>REGISTER.ID</p>
<td>No</p>
<td>
<tr>
<td>REPLACE </p>
<td>.NET</p>
<td>
<tr>
<td>REPT </p>
<td>.NET</p>
<td>
<tr>
<td>RIGHT </p>
<td>.NET</p>
<td>
<tr>
<td>ROMAN </p>
<td>No</p>
<td>
<tr>
<td>ROUND </p>
<td>NMath.Core</p>
<td>NMathFunctions.Round()</p>
<tr>
<td>ROUNDDOWN </p>
<td>NMath.Core</p>
<td>NMathFunctions.Round()</p>
<tr>
<td>ROUNDUP </p>
<td>NMath.Core</p>
<td>NMathFunctions.Round()</p>
<tr>
<td>ROW </p>
<td>NMath.Stats</p>
<td>Row property on DataFrame</p>
<tr>
<td>ROWS </p>
<td>NMath.Stats</p>
<td>Rows property on DataFrame</p>
<tr>
<td>RSQ </p>
<td>No</p>
<td>
<tr>
<td>SEARCH </p>
<td>.NET</p>
<td>
<tr>
<td>SECOND </p>
<td>.NET</p>
<td>
<tr>
<td>SIGN </p>
<td>.NET</p>
<td>
<tr>
<td>SIN </p>
<td>NMath.Core</p>
<td>NMathFunctions.Sin()</p>
<tr>
<td>SINH </p>
<td>NMath.Core</p>
<td>NMathFunctions.Sinh()</p>
<tr>
<td>SKEW </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Skewness() for samples or Skewness properties on Distribution classes.</p>
<tr>
<td>SLN </p>
<td>No</p>
<td>
<tr>
<td>SLOPE </p>
<td>NMath.Stats</p>
<td>LinearRegression class in Stats</p>
<tr>
<td>SMALL </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Sort() and then index or find percentage of count and use StatsFunctions.Percentile()</p>
<tr>
<td>SQRT </p>
<td>NMath.Core</p>
<td>NMathFunctions.Sqrt()</p>
<tr>
<td>STANDARDIZE </p>
<td>NMath.Stats</p>
<td>NormalDistribuion class</p>
<tr>
<td>STDEV </p>
<td>NMath.Stats</p>
<td>StatsFunctions.StandardDeviation(BiasType.Unbiased)</p>
<tr>
<td>STDEVA </p>
<td>No</p>
<td>
<tr>
<td>STDEVP </p>
<td>NMath.Stats</p>
<td>StatsFunctions.StandardDeviation()</p>
<tr>
<td>STDEVPA </p>
<td>No</p>
<td>
<tr>
<td>STEYX </p>
<td>NMath.Stats</p>
<td>LinearRegression class in Stats</p>
<tr>
<td>SUBSTITUTE </p>
<td>.NET</p>
<td>
<tr>
<td>SUBTOTAL </p>
<td>NMath.Stats</p>
<td>Use Slice/Subset/Range to get portion of data then StatsFunctions.Sum(), Or, StatsFunctions.SumIf()</p>
<tr>
<td>SUM </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Sum()</p>
<tr>
<td>SUMIF </p>
<td>NMath.Stats</p>
<td>StatsFunctions.SumIf()</p>
<tr>
<td>SUMPRODUCT </p>
<td>NMath.Stats</p>
<td>Use operator* on vectors then NMathFunctions.Sum()</p>
<tr>
<td>SUMSQ </p>
<td>NMath.Stats</p>
<td>StatsFunctions.SumOfSquares()</p>
<tr>
<td>SUMX2MY2 </p>
<td>NMath.Core</p>
<td>Square each vector using NMathFunctions.Pow(2) then us operator- for difference then NMathFunctions.Sum()</p>
<tr>
<td>SUMX2PY2 </p>
<td>NMath.Core</p>
<td>Square each vector using NMathFunctions.Pow(2) then use operator+ for difference then NMathFunctions.Sum()</p>
<tr>
<td>SUMXMY2 </p>
<td>NMath.Stats</p>
<td>use operator- to find difference then Product(2) then NMathFunctions.Sum()</p>
<tr>
<td>SYD </p>
<td>No</p>
<td>
<tr>
<td>T </p>
<td>No</p>
<td>
<tr>
<td>TAN </p>
<td>NMath.Core</p>
<td>NMathFunctions.Tan()</p>
<tr>
<td>TANH </p>
<td>NMath.Core</p>
<td>NMathFunctions.Tanh()</p>
<tr>
<td>TDIST </p>
<td>NMath.Stats</p>
<td>TDistribution class</p>
<tr>
<td>TEXT </p>
<td>No</p>
<td>
<tr>
<td>TIME </p>
<td>.NET</p>
<td>
<tr>
<td>TIMEVALUE </p>
<td>.NET</p>
<td>
<tr>
<td>TINV </p>
<td>NMath.Stats</p>
<td>InverseCDF() in TDistribution class</p>
<tr>
<td>TODAY </p>
<td>.NET</p>
<td>
<tr>
<td>TRANSPOSE </p>
<td>NMath.Core</p>
<td>Transpose() method on a matrix</p>
<tr>
<td>TREND </p>
<td>NMath.Stats</p>
<td>LinearRegression class in Stats</p>
<tr>
<td>TRIM </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Trim()</p>
<tr>
<td>TRIMMEAN </p>
<td>NMath.Stats</p>
<td>StatsFunctions.TrimmedMean()</p>
<tr>
<td>TRUE </p>
<td>.NET</p>
<td>
<tr>
<td>TRUNC </p>
<td>.NET</p>
<td>
<tr>
<td>TTEST </p>
<td>NMath.Stats</p>
<td>TwoSamplePairedTTest or TwoSampleUnpairedTTest classes</p>
<tr>
<td>TYPE </p>
<td>.NET</p>
<td>
<tr>
<td>UPPER </p>
<td>.NET</p>
<td>
<tr>
<td>VALUE </p>
<td>.NET</p>
<td>
<tr>
<td>VAR </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Variance(BiasType.Unbiased)</p>
<tr>
<td>VARA </p>
<td>No</p>
<td>
<tr>
<td>VARP </p>
<td>NMath.Stats</p>
<td>StatsFunctions.Variance()</p>
<tr>
<td>VARPA </p>
<td>No</p>
<td>
<tr>
<td>VDB </p>
<td>No</p>
<td>
<tr>
<td>VLOOKUP </p>
<td>NMath.Stats</p>
<td>Combination of IndexOf() method on DataFrame and index operators</p>
<tr>
<td>WEEKDAY </p>
<td>.NET</p>
<td>
<tr>
<td>WEIBULL </p>
<td>NMath.Stats</p>
<td>WeibullDistribution</p>
<tr>
<td>ZTEST </p>
<td>NMath.Stats</p>
<td>OneSampleZTest</p>
</table>
<p><!--

The following are built into .NET

CALL
CONCATENATE
DATE
DATEVALUE
DAY
DAYS360
DOLLAR
EVEN
EXACT
FALSE
FIND
FIXED
HOUR
HYPERLINK
INFO
INT
LEFT
LEN
LOWER
MID
MINUTE
MOD
MONTH
NA
NOW
ODD
PI
PROPER
RADIANS
REPLACE
REPT
RIGHT
SEARCH
SECOND
SIGN
SUBSTITUTE .NET
TIME
TIMEVALUE
TODAY
TRUE
TRUNC
TYPE
UPPER
VALUE
WEEKDAY
YEAR

These functions are ones we may add to the library. Let us know if you're interested;

AREAS
ASINH
ATANH
AVERAGEA
CELL
CHAR
CHITEST
CHOOSE
CLEAN
CODE
COLUMN
DB
DDB
DEGREES
ERROR.TYPE
FISHER
FISHERINV
FV
GETPIVOTDATA
HLOOKUP
HYPGEOMDIST
INDIRECT
IPMT
IRR
ISERROR
ISLOGICAL
ISNA
ISNONTEXT
ISNUMBER
ISPMT
ISREF
ISTEXT
LOG
MATCH
MAXA
MINA
MIRR
N
NPER
NPV
OFFSET
PMT
PPMT
PV
RATE
REGISTER.ID
ROMAN
RSQ
SLN
STDEVA
STDEVPA
SYD
T
TEXT
VARA
VARPA
VDB

--></p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/using-excel-with-nmath">Using Excel with NMath</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.centerspace.net/using-excel-with-nmath/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1043</post-id>	</item>
		<item>
		<title>Configuring missing values</title>
		<link>https://www.centerspace.net/configuring-missing-values</link>
					<comments>https://www.centerspace.net/configuring-missing-values#respond</comments>
		
		<dc:creator><![CDATA[Trevor Misfeldt]]></dc:creator>
		<pubDate>Wed, 21 Oct 2009 04:23:18 +0000</pubDate>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[NMath]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[missing values]]></category>
		<category><![CDATA[stats]]></category>
		<guid isPermaLink="false">http://www.centerspace.net/blog/?p=327</guid>

					<description><![CDATA[<p>A customer asked how they could read in a CSV file into a DataFrame (for eventual linear regression) with missing values.</p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/configuring-missing-values">Configuring missing values</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>A customer asked how they could read in a CSV file into a DataFrame (for eventual linear regression) with missing values. </p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/configuring-missing-values">Configuring missing values</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.centerspace.net/configuring-missing-values/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">327</post-id>	</item>
		<item>
		<title>Platform configurations x86, x64</title>
		<link>https://www.centerspace.net/x86-x64-platform-configurations</link>
					<comments>https://www.centerspace.net/x86-x64-platform-configurations#respond</comments>
		
		<dc:creator><![CDATA[Trevor Misfeldt]]></dc:creator>
		<pubDate>Wed, 30 Sep 2009 18:16:13 +0000</pubDate>
				<category><![CDATA[NMath]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[32-bit 64-bit x86 x64 configuration]]></category>
		<category><![CDATA[any cpu]]></category>
		<category><![CDATA[BadImageFormatException]]></category>
		<category><![CDATA[build once deploy everywhere]]></category>
		<category><![CDATA[NMath any CPU]]></category>
		<category><![CDATA[x32 configuration]]></category>
		<category><![CDATA[x64 configuration]]></category>
		<guid isPermaLink="false">http://www.centerspace.net/blog/?p=294</guid>

					<description><![CDATA[<p>NMath 4.0 Due to the increasing prevalence of 64bit operating systems, NMath 4.0 has been re-architected to generate executables that can run on 32-bit or 64-bit platforms with one build. When building simple choose the &#8216;Any CPU&#8217; configuration, and the resulting application can be redistributed on both 64-bit or 32-bit platforms with no changes. NMath [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/x86-x64-platform-configurations">Platform configurations x86, x64</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3> NMath 4.0 </h3>
<p>Due to the increasing prevalence of 64bit operating systems, NMath 4.0 has been re-architected to generate executables that can run on 32-bit or 64-bit platforms with one build.  When building simple choose the &#8216;Any CPU&#8217; configuration, and the resulting application can be redistributed on both 64-bit or 32-bit platforms with no changes.</p>
<h3> NMath Versions Prior to 4.0 </h3>
<p>An NMath application targeting a 32-bit operating system should be built using the &#8220;x86&#8221; platform configuration in Visual Studio. The resulting application should ship with the 32-bit NMath assemblies found in &#8220;Assemblies&#8221;. Please note that this application will also run on a 64-bit operating system.</p>
<p>To harness the full capabilities of a 64-bit operating system, build your application using the &#8220;x64&#8221; platform configuration and deploy with the 64-bit NMath assemblies in &#8220;Assemblies/x64&#8221;. The resulting application will not run on a 32-bit operating system.</p>
<p>Using the &#8220;Any CPU&#8221; platform configuration causes .NET to choose a 64-bit application on a 64-bit operating system and a 32-bit application on a 32-bit operating system. This could result in a BadImageFormatException when NMath is loaded.</p>
<p>&#8211; Trevor &#038;  Paul</p>
<h3> .NET 4.5 </h3>
<p>Please note that there has been a change with Visual Studio 2012 and .NET 4.5. If you are building for .NET 4.5 or higher, also ensure that the Prefer 32-bit flag is unchecked, under Build | Platform target in your project properties.</p>
<p>&#8211; Trevor</p>
<p>The post <a rel="nofollow" href="https://www.centerspace.net/x86-x64-platform-configurations">Platform configurations x86, x64</a> appeared first on <a rel="nofollow" href="https://www.centerspace.net">CenterSpace</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.centerspace.net/x86-x64-platform-configurations/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">294</post-id>	</item>
	</channel>
</rss>
