Jesper Boeg on Priming Kanban
In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on Apr 09, 2009
Meta Numerics is a .NET library for scientific computations offering support for complex numbers, matrixes, advanced functions and statistical operations.
Complex Numbers
The library supports complex numbers and 12 related arithmetic operations including advanced functions like: Gamma, Faddeeva and Riemann Zeta.
Matrixes
Meta Numerics permits the following computations with generic and square matrixes:
| Operation | Generic | Square |
| Arithmetic |
Y |
Y |
| Decomposition |
Y |
|
| Determinant |
Y |
|
| Inverse |
Y |
|
| Eigenvalues and Eigenvectors |
Y |
Advanced Functions
The library also contains the following advanced functions: Gamma, Psi, Beta, Incomplete Gamma, Incomplete Beta, Erf, Fresnel, Integrals, Exponential Integrals, Cylindrical Bessel J and Y, Spherical Bessel j and y, Reimann Zeta, Hermite H, Laguerre L, Legendre P, Chebyshev T.
Statistics and Analysis
The library allows to perform a large number of tests on data including t-tests, Mann-Whitney, F-Tests, Kolmogorov-Smirnov, Kuiper, Pearson's R, Spearman's R and Kendall's τ. It also can be used for regressions “including fitting to a constant, fitting to a line, and fitting to aribitrary, parameterized functions. All fits return a χ2 statistic and error bars on all parameters.”. Distributions: “Uniform, Normal, Exponential, χ2, t, F, and Kolmogorov-Smirnov. You can easily obtain PDF values, CDF values, arbitrary central and raw moments, and probit values.” Analysis of “contingency tables using odds ratios, χ2 tests, Fisher exact tests”. Others.
The library can be downloaded from CodePlex under Microsoft Public License (Ms-PL).
SCM best practices for multiple processes, releases & distributed teams
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
A quick comment on the matrix implementation.
You should seriously consider using a one-dimensional array to represent the matrices (and index this through offsets), otherwise it would be difficult to use the library for more than the very simplest problems. There's a ton of literature you can find on this.
Multi-dimensional (or jagged arrays) are very textbook, but have terrible performance characteristics for pretty much every matrix operation, and especially so for matrix multiplication. By itself you should expect a performance improvement up to an order of magnitude for matrices with more than a few hundred rows/cols, but it also opens up other avenues that can give it another 10x boost.
It's a bit more work to implement, but you can find some good examples of this in e.g. the Java CERN Colt library. Worth benchmarking against this first though.
C Curl: Thanks for the suggestion. I have created a bug to track this issue. Please feel free to create others or use the discussion forum to bring up issues. Thanks for giving Meta.Numerics a look.
Abel: Thanks for publicizing Meta.Numerics.
Nice to see more choice among open source .NET scientific libraries; other libraries include:
ILNumerics is a LGPL .NET library with support for linear algebra, complex, and import/export of MATLAB files. It also includes a GPL library for visualization.
dnAnalytics is a Microsoft Public License .NET library with support for sparse matrices, statistics and a F#-friendly syntax.
In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
3 comments
Watch Thread Reply