The tutorial is based on the C++ project Cxx_matrix.

Its source code on GitHub contains 2 source files:

`matrix.h`

that is a matrix operations library coded in C++`matrix.cpp`

that is a simple test over this library

Let's familiarize ourselves with the `main`

function in `matrix.cpp`

:

intmain(void) {Matrix<2U, 2U> matrix_a {2., 1.,4., 2. };â€‹auto id = identity<2>();bool has_inverse = is_invertible(id);std::cout << "identity is inversible: " << (has_inverse ? "yes\n" : "no\n");â€‹Matrix<2U, 2U> matrix_b = matrix_a + (5 ^ id);Matrix<2, 1> res = solve(matrix_b, { 6., 10. });std::cout << "RESULT IS:\n" << res;â€‹return 0;(void) has_inverse;}

The test implemented in `main`

performs the following step:

It initializes a 2 x 2 matrix

It verifies if the matrix is invertible

It performs some basic operations on this matrix

It solves a matrix equation

We already configured the project Cxx_matrix for TrustInSoft CI by adding a `tis.config`

file to the repository. In our example, the `tis.config`

file specifies the source file `matrix.cpp`

to analyze, the analysis entry point function `main`

and the preprocessor option `-I.`

.

We also launched the analysis in TrustInSoft CI:

**1.** Load the following URL in your browser to vizualize a summary of the analysis results:
https://ci.trust-in-soft.com/projects/TrustInSoft-CI/Cxx_matrix/latestâ€‹

There is only one test, as one entry point, and no undefined behavior on the tested path:

**2**. Sign in to TrustInSoft CI if you're not already signed in. For more information, check out our introduction tutorial.

**3.** Launch TrustInSoft CI Analyzer by clicking the **Explore** button.

Next let's dive into C++ identifiers, constructions and calling conventions in TrustInSoft CI Analyzer.