func regress(x, y, degree) { var A = Matrix.build(x.len, degree+1, {|i,j| x[i]**j }) var B = Matrix.column_vector(y...) ((A.transpose * A)**(-1) * A.transpose * B).transpose[0] } func poly(x) { 3*x**2 + 2*x + 1 } var coeff = regress( 10.of { _ }, 10.of { poly(_) }, 2 ) say coeff