/// <summary>
 /// Initializes a new instance of the <see cref="MatrixBase"/> class.
 /// </summary>
 /// <param name="alphabetCardinality">
 /// Alphabet of the matrix.
 /// </param>
 /// <param name="dimensionality">
 /// Dimensionality of the matrix.
 /// </param>
 /// <param name="builder">
 /// Rule for creating the matrix.
 /// </param>
 public MatrixBase(int alphabetCardinality, int dimensionality, IMatrixBuilder builder)
 {
     AlphabetCardinality = alphabetCardinality;
     ValueList = new ArrayList();
     Rank = dimensionality;
     for (int i = 0; i < AlphabetCardinality; i++)
     {
         ValueList.Add(builder.Create(AlphabetCardinality, dimensionality - 1));
     }
 }