:: O-Matrix ::
 > Overview > Examples > Performance    > Trig Functions    > Statistics    > Matrix Operations    > Signal Processing    > Image Processing > Analysis Functions > Data Visualization > The O-Matrix Language > Data Manipulation/IO > Application Development > Using Matlab m-files > PowerPoint Overview > Pricing & Ordering

O-Matrix Performance

O-Matrix has been designed from the ground up for accuracy and high-performance. The O-Matrix environment enables you to both prototype designs and perform large scale analysis within the integrated environment. O-Matrix has been built using highly optimized C/C++, FORTRAN, and assembly code to provide optimal execution performance. The linear algebra routines in O-Matrix are based on the algorithms from BLAS, LINPACK, and LAPACK to provide robust, accurate solutions. As of O-Matrix 6.4 the majority of the numerical functions and many of the data processing functions have been re-strucutured to to take advantage of multi-core machines.

Overall, O-Matrix is the fastest matrix computation package we have tested.
- SciViews

The following benchmarks are from the Stefen Steinhaus' Number Crunching Report, SciViews.org, and Matlab customers. The benchmark script is 100% Matlab compatible; the same script can be run in either O-Matrix or Matlab. Even greater performance gains are available when implementing solutions in the native O-Matrix language. The O-Matrix environment provides two languages - The native O-Matrix language which is similar to, but more flexible, powerful, and easier to use than Matlab; and Matlab mode for running Matlab code.

 Benchmark O-Matrix 6.5 Matlab 7.6 FFT over 2^19 random complex values 0.044 0.084 FFT over 800,000 random complex values 0.100 0.125 Sorting 2,000,000 random values 0.201 0.271 Standard deviation of 2,000,000 random values 0.003 0.075 1000x1000 random matrix .^3 0.011 0.639 800x800 random matrix .^1000. 0.012 0.045 Gaussian error function over 500x500 matrix 0.001 0.043 800x800 Toeplitz matrix 0.014 0.050 Create 2000x2000 normal distributed random matrix 0.011 0.103 Create 2500x2500 ones matrix 0.014 0.029 Linear regression over 600x600 matrix (c=a\b') 0.019 0.045 720x720 cross-product (b= a' * a) 0.046 0.043 Eigenvalues of 320x320 random matrix 0.154 0.215 Determinant of 650x650 random matrix 0.023 0.038 Cholesky decomposition of 900x900 matrix 0.035 0.031 Inverse of 400x400 random matrix 0.015 0.023 750,000 Fibonacci number (vector calculation) 0.134 0.110 Creation of 1000x1000 Hilbert matrix 0.025 0.038 Escoufier's method on 37x37 matrix (loops) 0.156 0.340 Gamma function over 600x600 matrix 0.061 0.093 sin(x)+cos(x) over 1500x1500 random matrix 0.048 0.094 exp(log(x)) over 1500x1500 random matrix 0.130 0.198 matrix*scalar over 2000x2000 random matrix 0.022 0.025 matrix/scalar over 2000x2000 random matrix 0.020 0.036
All timings are in seconds. - Run on an Intel Core 2 Quad, Q6600 at 2.4 GHz, with 4GB of memory
All calculations performed with double-precision values

I use O-Matrix for computationally intensive numerical mathematics in projects about
plasma physics and engineering. The reasonable O-Matrix price has made it very
affordable, and the outstanding execution performance has relieved me from the need to code in
C/C++ for most of my projects.