25static const Float R = 1;
26static const Float r = 0.6;
28 return sqr(sqrt(sqr(x[0])+sqr(x[1]))-sqr(R)) + sqr(x[2])-sqr(r);
33 rho = sqrt(sqr(x[2]) + sqr(sqrt(sqr(x[0]) + sqr(x[1])) - sqr(R)));
34 phi = atan2(x[1], x[0]);
35 theta = atan2(x[2], sqrt(sqr(x[0]) + sqr(x[1])) - R);
41 return sin(3*
phi)*cos(3*theta+
phi);
50 - (-10*sin(3*
phi)*cos(3*theta+
phi) - 6*cos(3*
phi)*sin(3*theta+
phi))
51 /sqr(R +
r*cos(theta))
52 - (3*sin(theta)*sin(3*
phi)*sin(3*theta+
phi))
53 /(
r*(R +
r*cos(theta)));
see the Float page for the full documentation
see the point page for the full documentation
point operator()(const point &x) const
point operator()(const point &x) const
void get_torus_coordinates(const point &x, Float &rho, Float &theta, Float &phi)