def cube(<EOL>xmin=<NUM_LIT:0.0>, xmax=<NUM_LIT:1.0>, ymin=<NUM_LIT:0.0>, ymax=<NUM_LIT:1.0>, zmin=<NUM_LIT:0.0>, zmax=<NUM_LIT:1.0>, nx=<NUM_LIT:11>, ny=<NUM_LIT:11>, nz=<NUM_LIT:11><EOL>):
<EOL>x_range = numpy.linspace(xmin, xmax, nx)<EOL>y_range = numpy.linspace(ymin, ymax, ny)<EOL>z_range = numpy.linspace(zmin, zmax, nz)<EOL>x, y, z = numpy.meshgrid(x_range, y_range, z_range, indexing="<STR_LIT>")<EOL>nodes = numpy.array([x, y, z]).T.reshape(-<NUM_LIT:1>, <NUM_LIT:3>)<EOL>a0 = numpy.add.outer(numpy.array(range(nx - <NUM_LIT:1>)), nx * numpy.array(range(ny - <NUM_LIT:1>)))<EOL>a = numpy.add.outer(a0, nx * ny * numpy.array(range(nz - <NUM_LIT:1>)))<EOL>elems0 = numpy.concatenate(<EOL>[a[..., None], a[..., None] + nx, a[..., None] + <NUM_LIT:1>, a[..., None] + nx * ny],<EOL>axis=<NUM_LIT:3>,<EOL>)<EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] += <NUM_LIT:1><EOL>elems0[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] += <NUM_LIT:1><EOL>elems1 = numpy.concatenate(<EOL>[<EOL>a[..., None] + nx,<EOL>a[..., None] + <NUM_LIT:1> + nx,<EOL>a[..., None] + <NUM_LIT:1>,<EOL>a[..., None] + <NUM_LIT:1> + nx + nx * ny,<EOL>],<EOL>axis=<NUM_LIT:3>,<EOL>)<EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems1[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems2 = numpy.concatenate(<EOL>[<EOL>a[..., None] + nx,<EOL>a[..., None] + <NUM_LIT:1>,<EOL>a[..., None] + nx * ny,<EOL>a[..., None] + <NUM_LIT:1> + nx + nx * ny,<EOL>],<EOL>axis=<NUM_LIT:3>,<EOL>)<EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] -= <NUM_LIT:1><EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems2[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems2[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems3 = numpy.concatenate(<EOL>[<EOL>a[..., None] + nx,<EOL>a[..., None] + nx * ny,<EOL>a[..., None] + nx + nx * ny,<EOL>a[..., None] + <NUM_LIT:1> + nx + nx * ny,<EOL>],<EOL>axis=<NUM_LIT:3>,<EOL>)<EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] += <NUM_LIT:1><EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems3[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems3[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems4 = numpy.concatenate(<EOL>[<EOL>a[..., None] + <NUM_LIT:1>,<EOL>a[..., None] + nx * ny,<EOL>a[..., None] + <NUM_LIT:1> + nx + nx * ny,<EOL>a[..., None] + <NUM_LIT:1> + nx * ny,<EOL>],<EOL>axis=<NUM_LIT:3>,<EOL>)<EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>] += <NUM_LIT:1><EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:2>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:0>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems4[<NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:1>::<NUM_LIT:2>, <NUM_LIT:3>] -= <NUM_LIT:1><EOL>elems = numpy.vstack(<EOL>[<EOL>elems0.reshape(-<NUM_LIT:1>, <NUM_LIT:4>),<EOL>elems1.reshape(-<NUM_LIT:1>, <NUM_LIT:4>),<EOL>elems2.reshape(-<NUM_LIT:1>, <NUM_LIT:4>),<EOL>elems3.reshape(-<NUM_LIT:1>, <NUM_LIT:4>),<EOL>elems4.reshape(-<NUM_LIT:1>, <NUM_LIT:4>),<EOL>]<EOL>)<EOL>return nodes, elems<EOL>
Canonical tetrahedrization of the cube.
    Input:
    Edge lenghts of the cube
    Number of nodes along the edges.