public object Create(int alphabetCardinality, int i) { switch (i) { case 0: return (double)0; case 1: return new MatrixRow(alphabetCardinality, i); default: return new Matrix(alphabetCardinality, i); } }
/// <summary> /// The teach. /// </summary> /// <param name="chain"> /// The chain. /// </param> /// <param name="method"> /// The method. /// </param> public override void Teach(BaseChain chain, TeachingMethod method) { var builder = new MatrixBuilder(); var absoluteMatrix = (IAbsoluteMatrix)builder.Create(chain.Alphabet.Cardinality, Rank); for (int i = 0; i < chain.Alphabet.Cardinality; i++) { int[] temp = new int[1]; temp[0] = chain.Alphabet.IndexOf(chain.Alphabet[i]); absoluteMatrix.Add(temp); } ProbabilityMatrixes[0] = absoluteMatrix.ProbabilityMatrix(); }