polynomial
// create an Nth order infinite polynomial surface
// poly { N <a,b,c...> [sturm] }
// N = order of poly, M terms where M = (N+1)*(N+2)*(N+3)/6
poly {
5, // order of polynomial (2...7)
<
// x^5, x^4y, x^4z, x^4,
0, 0, 0, 0,
// x^3y^2, x^3yz, x^3y, x^3z^2,
0, 0, 0, 0,
// x^3z, x^3, x^2y^3, x^2y^2z,
0, 0, 0, 0,
// x^2y^2, x^2yz^2, x^2yz, x^2y,
0, 0, 0, 0,
// x^2z^3, x^2z^2, x^2z, x^2,
0, 0, 0, 0,
// xy^4, xy^3z, xy^3, xy^2z^2,
0, 0, 0, 0,
// xy^2z, xy^2, xyz^3, xyz^2,
0, 0, 0, 0,
// xyz, xy, xz^4, xz^3,
0, 0, 0, 0,
// xz^2, xz, x, y^5,
0, 0, 0, 0,
// y^4z, y^4, y^3z^2, y^3z,
0, 0, 0, 0,
// y^3, y^2z^3, y^2z^2, y^2z,
0, 0, 0, 0,
// y^2, yz^4, yz^3, yz^2,
0, 0, 0, 0,
// yz, y, z^5, z^4,
0, 0, 0, 0,
// z^3, z^2, z, C
0, 0, 0, 0
>
sturm // optional, slower but reduces speckles
}