NAG Data Mining Components Facilitate Developing Mathematically Intense Functions.
The Numerical Algorithms Group (NAG) Data Mining Components applications are pre-built mathematical components that drastically reduce development time, increase accuracy and allow you to easily find opportunity in your customer and operational data. These components allow your company to identify specific patterns and trends within data, more effectively forecasting future trends or behavior.
As the system programmer, what this meant to me was that I could use NAG Data Mining Components to:
* Quickly and easily enhance existing or new applications
* Save time and reduce maintenance costs - developing my own routines can take an expert anything from a few weeks to a few months to fully develop, test and document
* Prototype faster and more effectively - I could rely on the results and spend less time re-developing applications.
* Spend less time debugging applications - our applications are designed and rigorously tested to be robust
* Deliver solutions quickly
The documentation provided with the components was the most complete, intuitive and user-friendly documentation I have ever worked with. The documentation covered every level of detail from introductory examples on how to use the components to detailed proofs on the algorithms themselves.
Additionally, these documents seem to be written by users for users, not by a marketing committee, so I didn't waste time trying to sort out fact from fluff. Those who have any significant experience in dealing with technical documentation will immediately appreciate the exhaustive depth and user friendliness of the NAG documentation.
Installation and use of the components was fluid and the products were integrated into my existing applications within hours of download. Although I was focused on the C libraries, the breadth of the interfaces/platforms they had ported their components to impressed me:
* C libraries
* Fortran libraries
* Matlab
* Excel
* Visual Basic
* Java
* Database/ODBC connections
* Windows
* Linux
The initial components I test ran so fast that I immediately questioned their validity. I surmised that the 300%+ (aggregate) performance gain they had over my 'home-grown' subroutines/functions was due to a look-up table or some other nefarious shortcut. After reviewing the associated documentation/discussions, library and header files, I came to the conclusion that the NAG Data Components are some of the most well developed, implemented and maintained code I have ever seen.
Next, I wanted to review the accuracy of the results from the NAG components. Round off errors, (be them from ill-conditioned matrices or binary truncation) can invalidate routines or, even worse, cause actions to occur based on inaccurate data. (Sidebar: for the value of data integrity, look at www.siam.org/siamnews/general/patriot.htm to see how an error of 2^-20 can effect a system.)
Not only did NAG offer control over the accuracy of each component, but even offered advice on time and memory requirements. For example, the component for cluster analysis tells best practice limits, accuracy and discusses the matrix size limits. Unlike a marketing-vetted technical reference, this actually saved me many hours of troubleshooting after the application was in production, by giving me sage-advice on what accuracy was right for my application, based on resources and restraints.
Finally, I tested the exception handling routines of the NAG Data Mining Components. The documentation of each component clearly shows the input and return values. The components returned documented values when input was in accordance with documentation. When garbage data was input (I personally threw in everything from text files to binary data) not only where the return error codes terse but informative, but the component itself didn't spend precious cycles trying to make something out of garbage, the component returned quickly, minimizing the impact of tainted data.
The large amount of NAG components make the NAG Data Mining Component package an invaluable addition to any application developer’s toolkit. Although I only had an immediate need for about 5 of the components during the start of this review, I have since used another 4 and they have saved me countless hours of programming and have added significant value to our business model. Additionally, just browsing their documentation gave me many ideas on how, using NAG components, I could improve the speed and accuracy of our legacy code with a minimum of work.
In summary, I have found the NAG Data Mining Components to be a great example of superior intellect in practice. The components themselves are based on solid theorems and offer a significant gain over most (all that I have seen) 'home grown' numerical routines. The completeness of the documentation makes working with the components a unsettlingly simple. The entire product line seems well thought out and tuned into what the customer needs, from accuracy, speed, exception handling or reference. From a customer standpoint, this is the most thought-out and complete product I have seen in my years of information technology.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home