Blog

Archive for the ‘Corporate’ Category

Mono versions of NMath now available

Wednesday, February 8th, 2012

Due to popular request, our NMath and NMath Stats libraries are now available for use in developing applications on Mono. The Mono versions include all of the same features as the .NET/Windows libraries, with native code compiled for Linux and Mac OS X. More information is available at http://www.centerspace.net/mono.

Mono logo

Access to the Mono version is included at no additional charge with the purchase of a .NET (Windows) license.  All customers with a current maintenance agreement can obtain the Mono version by visiting http://centerspace.net/downloads/upgrades/ and entering your product key.  (If you need to renew your maintenance agreement, you can do so at http://www.centerspace.net/order/how-to-order/.)

If you are interested in evaluating NMath on Mono, we offer a free trial version, distributed in binary form only for a 30-day evaluation period.

Please let us know what you think, and thanks, as always, for your business.

Speaking at SC11

Monday, November 14th, 2011

CenterSpace is attending the SC11 conference this week in Seattle. On Tuesday, November 15 at 3:45 pm in the Intel booth, I will be presenting, “Numerical Programming in Managed Code: This Might Just Work.”  Please come join us!

 

Whether or not you make it to the presentation, please drop us a line if you’re attending SC11 – it’s always great to catch up with our users in person!

CenterSpace @ TechEd

Monday, May 16th, 2011
We will be giving demos at the Infragistics booth (#616) at Tech Ed 2011 in Atlanta. Come by and say hello! - Trevor

Accessing .Net Libraries in SQL Server

Wednesday, May 11th, 2011
In previous posts we demonstrated calling CenterSpace's NMath libraries from Excel. Some customers asked if we could call these libraries from Microsoft's SQL Server so we decided to give it a shot. It turns out the problem is a substantially harder problem to solve as the SQL environment is an order of magnitude more complex. This post will show it is possible, but with a few caveats. There are a myriad of ways SQL Server can be setup and for this post, we took whatever shortcut we could find. Our goal was to get this running and worry about doing it "right" later. We found ourselves on a fairly steep learning curve without a lot of examples to work off of. Consider this more of a "proof of concept" post than the definitive "how to". As mentioned above there are lot of different approaches to this problem. In our minds, we wanted to see if we could couple our library at the server side and access results via Reporting Services and Report Builder. We believed that the computations would be more efficient to be handled at the server while the result could take advantage of the graphing packages in Report Services. Our approach was to build a standalone system to develop and test this work on. We choose a standard PC platform running Windows 7. The first task at hand was to decide which version of Microsoft SQL Server to work with. We chose SQL Server 2008R2 full version as we needed the Report Services support. Microsoft supplies a six month trial version that has all services available which was perfect for our project. We installed the full version with support for the Management Studio, Report Services, and Analysis services. In addition, we downloaded Microsoft's AdventureWorks sample databases for our testing environment. We got this all running and ran some sample scripts to make sure we had everything running correctly before moving on. Since we were going to be developing code we installed Visual Studio 2010 next and made sure we included the necessary development templates for the SQL Server environment. After installing CenterSpace's NMath 5.0 library, we were ready to write some code. We will start by creating a new project in Visual Studio called NMathSQL. [caption id="attachment_3404" align="aligncenter" width="500" caption="Creating a new SQL CLR project in Visual Studio"][/caption] We then asked to pick a server and identify the database we will be using. [caption id="attachment_3406" align="aligncenter" width="400" caption="Connecting to the Database"] [/caption] In the next screen we will want to enable SQL/CLR debugging. [caption id="attachment_3411" align="aligncenter" width="400" caption="Enabling SQL/CLR debugging"][/caption] At this point we need to start running SQL scripts as part of the overall setup. We could exit VS and perform these tasks in the Management Studio, but VS can do the job. By selecting from the VS menu bar Data>Transact-SQL Editor>New Query Connection, we get a new window to enter scripts to be run on our database. [caption id="attachment_3414" align="aligncenter" width="500" caption="Accessing the Transact SQL Editor in Visual Studio"][/caption] We found it easier to copy and paste our scripts into this windows as we needed to run SQL statements. Our first task at hand is to load the assembly NMath.dll into the database we have selected to work in. It is at this point we hit our first real obstacle. It turns out that in our shipping NMath.dll we are using some instructions to automatically load x86 or x64. These are illegal in the SQL CLR. We were forced to remove these instructions and build an entirely separate version of NMath.dll for SQL Server. Stepping back and looking at the big picture, we decided that this was an opportunity to also include some of the "glue" code we knew we wanted to write. We had been looking at writing some User Defined Types (UDT) and User Defined Aggregate (UDA) functions to handle the calls into our library. It seemed to make sense to extend our libraries type definitions to be T-SQL types. The result of this approach would enable T-SQL to use NMath types such as DoubleVector and DoubleMatrix. We needed to have some way to load our new data types so we built UDAs LoadDoubleVector, LoadDoubleMatrixByRow, and LoadDoubleMatrixByColumn. After building our new, custom NMath.dll, we can then run a script to load our assembly into the database. Before we could do this, though, we discovered that we needed some basic assemblies that SQL server had left out of their CLR. The following SQL script loads those assemblies. [caption id="attachment_3415" align="aligncenter" width="500" caption="Loading Supporting Assemblies to a SQL Database"][/caption] We are now ready to run the following SQL script to load NMath for SQL. [caption id="attachment_3418" align="aligncenter" width="500" caption="Loading NMath assembly in the SQL Database"][/caption] The next step is to add the reference to our project. From the main toolbar launch the Solution Explorer and right click on Reference then select Add Reference. Add the new assemblies we have loaded so far. [caption id="attachment_3419" align="aligncenter" width="500" caption="Adding NMath reference to the SQL/CLR project"][/caption] We will now have to tell SQL about the new types and functions we have added. We will start by adding the new UDTs DoubleVector and DoubleMatrix. [caption id="attachment_3421" align="aligncenter" width="500" caption="SQL commands to add UDTs for LoadDoubleVector"][/caption] Now that SQL knows about our new types we can add the UDA functions with the following SQL commands. [caption id="attachment_3422" align="aligncenter" width="500" caption="SQL Commands to add NMaths UDAs to the Database"][/caption] At this point we are ready to test our library. We have chosen a problem that represents the work expected to be perform. We will create our sample datapoint tables rather than use tables from the AdventureWorks database. We will then load the data from the tables into DoubleVectors and call our library using a User Defined Function(UDF). Our UDF will be a call to library to find the function values for a curve that fits our datapoints. From our function solution we will create a table with datapoints that represent our curve function to compare against our original datapoints. We will start by creating the UDF call to our library. From the Solution Explorer, we will add a UDF template called NMathFunction.cs. Here is the C# code for this function call:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using CenterSpace.NMath.Core;
using CenterSpace.NMath.Analysis;


public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static DoubleVector NMathFunction(DoubleVector xValues, DoubleVector yValues, DoubleVector start)
    {
        NMathFunctions.GeneralizedDoubleUnaryFunction f = AnalysisFunctions.FourParameterLogistic;
        OneVariableFunctionFitter fitter = new OneVariableFunctionFitter(f);
        return new DoubleVector(fitter.Fit(xValues, yValues, start));
    }
}
We can now tell VS to build the assembly NmathSQL.dll and use SQL to load the assembly to our database. [caption id="attachment_3423" align="aligncenter" width="500" caption="Loading our custom NMathFunctions to the database"][/caption] In order for our UDF NmathFunction to be recognized we need to run a SQL create function command. Note that this command must be the only command in the script. [caption id="attachment_3424" align="aligncenter" width="500" caption="SQL Commands to add our UDF to the database"][/caption] We have now loaded our NMath function call in the database that can be called by scripts. We are ready to write a script to solve the problem we described above. We will start by using the same data from the example we did with our excel post. [caption id="attachment_3425" align="aligncenter" width="500" caption="Sample Data for our example"][/caption] We can now build a script that uses the functionality we have built in with our library to find the solution.
-------------------------------------------------------
Declare @xv DoubleVector
Declare @yv DoubleVector

select @xv = dbo.LoadDoubleVector(xcol) from xvalues
select @yv = dbo.LoadDoubleVector(ycol) from yvalues

Declare @sPar DoubleVector
Declare @solution DoubleVector

set @sPar = '[ 0.1 0.1 0.1 0.1]'

select @solution = dbo.NMathFunction(@xv, @yv, @sPar)
 
select @solution.ToString()

declare @newxval float
declare @newyval float
declare @inc float
declare @a float
declare @b float
declare @c float
declare @d float

set @a = dbo.DVItem(@solution, 0)
set @b = dbo.DVItem(@solution, 1)
set @c = dbo.DVItem(@solution, 2)
set @d = dbo.DVItem(@solution, 3)
 
create table SolutionTBL (newxval float, newyval float)
	set @newxval = 0
	 
	while @newxval < 35.10
	begin
	   
	    set @newyval = @d+((@a-@d)/(1+POWER((@newxval/@c), @b)))
			     
	    insert into SolutionTBL values(@newxval, @newyval)
	    
	  set @newxval = (@newxval + 0.33)
	end
	select * from SolutionTBL
	go
---------------------------------------------------------------------
Here is the output from this script [caption id="attachment_3427" align="aligncenter" width="500" caption="Returned Solution from NMath library call"][/caption] At this point we can pull data from tables, call our Math libraries, and put the solution in a table to be displayed. In production, this last script would be a stored procedure that would be run from the Management Studio. All of this work would reside on the SQL Server. We can now move on to the Reporting Services to see how this solution could be displayed. After launching Report Builder and establishing connection to the database. The data is accessed by setting up a dataset with a query into the table for the necessary data. [caption id="attachment_3430" align="aligncenter" width="500" caption="Selecting the chart data in Report Builder"][/caption] From there it is merely Report Builder to build the necessary graphs. Unfortunately, the chart wizard doesn't include scatterplots. It is best to select a chart type of Line and then run through the wizard. After your chart is set up you can change its properties to scatterplot. [caption id="attachment_3431" align="aligncenter" width="500" caption="Report Builder ScatterPlot"][/caption] We can include our solution in the same report and generate a smooth line as we did in excel. The Report Builder is a very powerful tool which we are still learning. [caption id="attachment_3432" align="aligncenter" width="500" caption="Solution Fitted Line"][/caption] Our results are equivilent to our previous excel post and demonstrate that the approach on the SQL Server is as accurate. In conclusion, we have demonstrated that we can call the CenterSpace NMath libraries from SQL Server and display the results using Report Services powerful charting capabilities. We plan to work on more examples and compare how we might improve on what Analysis Services can produce. We certainly will entertain feedback on useful approaches that should be examined. As a reminder this interface is not possible with our current release of NMath 5.0 and require a "special" version of our assembly. Depending on customer interest and feedback we may or may not decide to develop a product for this interface.

Bactrim Double Strength

Monday, August 30th, 2010

CenterSpace Software and Arction Bactrim double strength, have created a partnership to bring our shared customers a new high performance computing and visualization package. Bactrim children, Arction has built a .NET chart tool for demanding visualization applications such as:



  • professional high-speed data acquisition software

  • real-time measurement and signal monitoring applications

  • PC-based oscilloscopes and signal analyzers

  • scientific research

  • medical measurement displays

  • topographic map rendering



Arction chose CenterSpace's NMath tool set for driving their prototypical examples for the 2010 Measuring and Testing conference in Helsinki.

[caption id="attachment_2600" align="aligncenter" width="300" caption="Visualization by Arction, bactrim over the counter, Bactrim ds 800 mg, Spectrum computation by CenterSpace"][/caption]

Package Offer


Our Arction and CenterSpace partnership offer is a bundle of the Arction LightningChart Ultimate and the NMath Suite for $3395.00 - that's more than a 20% discount. That price includes a one-year subscription on all product extensions and upgrades, bactrim for lice. Bactrim wikipedia, Both products are fully compatible with Visual Studio 2008 and 2010.

[caption id="attachment_3258" align="aligncenter" width="309" caption="Arction sample images"]Arction images[/caption]


Arction's LightningChart Pro


The LightningChart .NET \ C# chart tool is a complete and full featured real-time signal visualization tool, bactrim double strength. Here are a few of LightningChart's key features, bactrim pseudomonas. Bactrim urinary tract infections,

  • Different X-axis real-time monitoring scrolling modes: Scrolling, sweeping, bactrim ds tablet, Bactrim ds package insert, stepping, oscilloscope style level triggered

  • Smoothly renders huge amounts of measured data as graphs in real-time - up to hundreds of millions of new data points per second

  • Full 64-bit support, uses for bactrim. How much does bactrim cost, Utilizes over 2 GB memory (in 64-bit systems).

  • Various series types: SampleData, PointLines, bactrim for sinus infection, Uses of bactrim, FreeformLines, Bars, bactrim coverage, Bactrim to treat mrsa, Bands, Constant lines

  • Many Y axes/chart: stacked or layered

  • Automatic scale fitting, bactrim warfarin, Bactrim staph, grids and divisions

  • Comprehensive user interface customization


For more information please visit the LightningChart product website.

Happy Computing, bactrim ds 800, Bactrim ds for sinus infection, Paul. Does bactrim interact with birth control. Buy bactrim canadian. Buy cheap bactrim online. Bactrim online. Bactrim toxicity. Bactrim joint pain.

Similar posts: Cephalexin 500mg capsules. Bactrim for mrsa. Keflex 250mg. Penicillin vk 500mg. Keflex 500 mg side effects. Where to buy bactrim.
Trackbacks from: Bactrim double strength. Bactrim double strength. Bactrim double strength. Bactrim double strength. Bactrim double strength. Augmentin for strep.