Зачем нужна статика? передавай (лучше по указателю. Хранить референсы так себе идея).
Может быть тебе стоит рассматривать Constrained отдельно от Matrix? У тебя тут комбинаторный взрыв. Сколько всего классов ты хочешь создать?