The versatility of `mldivide`

in solving linear
systems stems from its ability to take advantage of symmetries in
the problem by dispatching to an appropriate solver. This approach
aims to minimize computation time. The first distinction the function
makes is between *full* (also called "*dense*")
and *sparse* input arrays.

### Algorithm for Full Inputs

The flow chart below shows the algorithm path when inputs `A`

and `B`

are **full**.

### Algorithm for Sparse Inputs

If `A`

is full and `B`

is
sparse then `mldivide`

converts `B`

to
a full matrix and uses the full algorithm path (above) to compute
a solution with full storage. If `A`

is sparse, the
storage of the solution `x`

is the same as that of `B`

and `mldivide`

follows
the algorithm path for **sparse** inputs,
shown below.