type matrix … func (a *matrix) at(i, j int) *Rat { … } func (a *matrix) set(i, j int, x *Rat) { … } func newMatrix(n, m int) *matrix { … } func newUnit(n int) *matrix { … } func newHilbert(n int) *matrix { … } func newInverseHilbert(n int) *matrix { … } func (a *matrix) mul(b *matrix) *matrix { … } func (a *matrix) eql(b *matrix) bool { … } func (a *matrix) String() string { … } func doHilbert(t *testing.T, n int) { … } func TestHilbert(t *testing.T) { … } func BenchmarkHilbert(b *testing.B) { … }