The BzzMath library can be freely used and distributed for non-commercial applications. The user is not allowed to use the BzzMath library for commercial purposes without contacting: guido.buzziferraris@polimi.it. Also, whenever the BzzMath is used to produce any research activity or piece of software (executable, library, object file, dll) a detailed reference to such library should be reported.

BzzMath can be downloaded from the webpage www.chem.polimi.it/homes/gbuzzi. The file BzzMath.zip contains 5 folders:

- Tutorial: contains about 1000 Powerpoint slides;
- Hpp: contains the header files of the library;
- Libs: contains the library for different compilers;
- Example: contains a wide set of examples;
- Exe: contains useful tools.

The classes currently implemented are:

**Utilities:**

- Printing and messages;
- Quadrature equation;
- Matrix coefficient existence;
- Matrix symmetric coefficient existence;
- Matrices existence;
- Statistical functions.

**Interpolation:**

Specific classes allow to solve linear and nonlinear regressions with dependent and independent stochastic variables. Parameters estimation can be performed while the optimal design of experiments is solved. Recently, new performing techniques was implemented to identify gross errors and outliers (Buzzi-Ferraris, Manenti, Kirk-Othmer Encyclopedia, 2011). Such algorithms have been successfully adopted also in online data reconciliation problems.

- Cubic interpolation:
- Hermite;
- Smooth;
- Spline.

- Bicubic interpolation:
- Hermite;
- Smooth;
- Spline.

**Complex algebra;**

**Integer algebra:**

- Vector;
- Matrices.

**Linear algebra:**

In linear algebra, the concept of matrix condition number has been changed into the concept of system conditioning number (Buzzi-Ferraris, Computers & Chemical Engineering, 2011). By doing so, a relevant problem affecting all numerical libraries have been recently revised in BzzMath library.

- Linear algebra:
- Vectors;
- Matrices;
- Diagonal matrices;
- Band matrices;
- Left matrices;
- Right matrices;
- Sparse matrices;
- Diagonal block matrices;
- Tridiagonal block matrices;
- Block matrices;
- Rectangle band matrices;
- Symmetric matrices;
- Band symmetric matrices;
- Sparse symmetric matrices.

- Eigenvalues:
- Symmetric matrices.

- Linear systems:
- Factorized Gauss;
- Factorized band Gauss;
- Factorized tridiagonal Gauss;
- Factorized sparse Gauss;
- Factorized diagonal block Gauss;
- Factorized tridiagonal block Gauss;
- Factorized LQ;
- Factorized sparse LQ;
- Factorized QR;
- Factorized sparse QR;
- Factorized SVD.

**Utilities:**

- Save & load;
- BzzPlot.exe, BzzSparse.exe…

**Numerical differentiation;**

**Root finding;**

**Nonlinear systems:**

The class for the solution of nonlinear algebraic systems has been recently used to handle very large problems, with up to 40 million of equations, characterizing a burner (Cuoci et al., 2009).

- Dense and sparse systems.

**Mono/multi-dimensional minimization;**

Classes for the integration of differential and differential-algebraic systems have been used in 50+ countries by academic users and for industrial applications. BzzOde and BzzDae have been integrated in commercial tools for process dynamic simulation to speed up calculations when needed, to integrate user added models, and to make feasible new solutions at the industrial scale. For instance, the real-time dynamic optimization has been recently solved within ROMeo (Invensys Inc.) environment for steam cracking furnaces (Manenti et al., Computer Aided Chemical Engineering, 2011).

- Definite integrals:
- Integral;
- Integral Gauss.

- ODE:
- Multi Value Methods ODE non stiff;
- Runge-Kutta Methods ODE non stiff;
- Multi Value Methods ODE stiff;
- Multi Value Methods ODE stiff sparse.

- DAE:
- DAE;
- DAE sparse.

**Boundary value problems:**

An ongoing activity is related to boundary value problems by means of an improved orthogonal collocation (Buzzi-Ferraris and Manenti, Computers & Chemical Engineering, 2012).

**Regressions:**

Specific classes of BzzMath allow to solve linear and nonlinear regressions with dependent and independent stochastic variables. Parameters estimation can be performed while the optimal design of experiments is solved. Recently, new performing techniques was implemented to identify gross errors and outliers (Buzzi-Ferraris, Manenti, Kirk-Othmer Encyclopedia, 2011). Such algorithms have been successfully adopted also in online data reconciliation problems.

- BzzLinearRegression.exe;
- Linear regression;
- Nonlinear regression;
- Optimal design of experiments;
- Rival model discrimination.

**Linear programming:**

The Attic method is the basis for the current research program on supply chain optimization of industrial networks (i.e. LINDE GAS, LUKOIL).

- Attic method.

**Nonlinear model predictive control:**

Object-oriented programming allows to solve in an innovative and performing way nonlinear model predictive control and real-time dynamic optimization paradigms. Solvers can be combined so as to solve many issues of the CAPE world.

- Innovative algorithm for high performances.