/// <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)); } }