private GenericGFPoly buildGenerator(int degree)
{
if (degree >= cachedGenerators.Count)
{
var lastGenerator = (GenericGFPoly)cachedGenerators[cachedGenerators.Count - 1];
for (int d = cachedGenerators.Count; d <= degree; d++)
{
var nextGenerator = lastGenerator.multiply(new GenericGFPoly(field, new int[] { 1, field.exp(d - 1) }));
cachedGenerators.Add(nextGenerator);
lastGenerator = nextGenerator;
}
}
return (GenericGFPoly)cachedGenerators[degree];
}