Online Samples Continuous Distribution Explorer Discrete Distribution Explorer Offline Samples Fractal Viewer M#: .NET Language of Technical Computing Curve Fitting Regress

Sample Applications

M#: The .NET Language for Technical Computing Introduction

The Extreme Optimization Numerical Libraries for .NET contain extensive support for numerical linear algebra. To illustrate the range and versatility of the linear algebra classes, we created M#: the the .NET language for numerical computing. M# comes with a complete environment for linear algebra computations. The language (pronounced "M sharp") implements a subset of the Matlab language. Data types supported are boolean values, scalars, vectors, matrices and strings. It supports control flow constructs such as `if`, `for`, and `while`, as well as a large number of built-in functions.

Reference

The following tables list the operators and functions supported by the M# language:

Operator  Description
`+` Addition, unary plus.
`-` Subtraction, unary minus.
`*`  Multiplication, matrix multiplication.
`/`  Division, solution of linear system.
`\`  Backwards division, solution of linear system.
`^`  Raise a matrix or number to a power.
`.*`  Componentwise multiplication.
`./` Componentwise division.
`.\`  Componentwise backward division.
`.^`  Componentwise power operator.
`'`  Matrix transpose.
`== ~= < > <= >= `  Relational operators.
`:`  Colon ('range') operator.
Table 1. Supported operators.

 Function Description `size` Size of a matrix. `numel` Number of elements. `cat` Concatenate matrices. `horzcat` Concatenate matrices horizontally. `vertcat` Concatenate matrices vertically. `repmat` Tile a matrix horizontally and vertically. `flipud` Flip a matrix horizontally. `fliplr` Flip a matrix vertically. `find` Find non-zero elements of a matrix. `tril` Extract lower triangular matrix. `triu` Extract upper triangular matrix.
Table 2. Supported array operations.

 Function Description `sum` Sum of elements in matrix columns. `cumsum` Cumulative sum of elements in matrix columns. `prod` Product of elements in matrix columns. `cumprod` Cumulative product of elements in matrix columns. `min` Return largest component(s). `max` Return smallest component(s).
Table 3. Supported matrix operations.

 Function Description `zeros` Creates a matrix of all zeros. `ones` Creates a matrix of all ones. `eye` Creates an identity matrix. `rand` Creates a matrix with random components. `magic` Creates a magic square. `hilb` Creates a Hilbert matrix. `pascal` Creates a part of the Pascal triangle.. `linspace` Creates a vector of equally spaced components. `logspace` Creates a vector of logarithmically spaced components.
Table 4. Supported special matrices.

 Function Description `det` Determinant of a matrix. `trace` Trace of a matrix. `inv` Inverse matrix. `rcond` Estimate for the reciprocal of the condition number. `lu` LU decomposition of a matrix. `qr` QR decomposition of a matrix..
Table 5. Supported linear algebra operations.

 Function Description `blanks` Returns a string of spaces. `deblank` Removes trailing spaces from a string. `findstr` Finds all occurrances of a string in another string. `lower` Converts a string to lower case. `strcat` Concatenates two or more strings. `strcmp` Compares two strings for equality. `strcmpi` Compares two strings for equality independent of case. `strjust` Aligns a string. `upper` Converts a string to upper case.
Table 6. Supported string functions.