func main() { p := []int{11, 22, 33} i := permute.Iter(p) for sign := i(); sign != 0; sign = i() { fmt.Println(p, sign) } }
func determinant(m [][]float64) (d float64) { p := make([]int, len(m)) for i := range p { p[i] = i } it := permute.Iter(p) for s := it(); s != 0; s = it() { pr := 1. for i, σ := range p { pr *= m[i][σ] } d += float64(s) * pr } return }