ddg.datastructures.nets.net_generators.quadrics module
Parametrizations of quadrics.
A note on numerical accuracy: Due to the exponential growth of cosh and sinh,
the relation cosh(t) ** 2 - sinh(t) ** 2 = 1 Can break earlier than perhaps
expected. Here is the maximum error of this relation for some randomly sampled
parameter values, which should be taken into account when choosing tolerances:
Parameter value
Approx. error
Approx. size of cosh(t)
0 < t < 1
1e-15
1e2
1 < t < 2
1e-15
1e2
2 < t < 3
1e-14
1e3
3 < t < 4
1e-13
1e3
4 < t < 5
1e-12
1e4
5 < t < 6
1e-11
1e4
6 < t < 7
1e-10
1e4
7 < t < 8
1e-9
1e5
8 < t < 9
1e-9
1e5
9 < t < 10
1e-8
1e6
10 < t < 11
1e-7
1e6
11 < t < 12
1e-6
1e7
12 < t < 13
1e-5
1e7
13 < t < 14
1e-4
1e8
14 < t < 15
1e-3
1e8
15 < t < 16
1e-3
1e8
16 < t < 17
1e-2
1e9
17 < t < 18
1e-1
1e9
18 < t < 19
1e0
1e10
19 < t < 20
1e1
1e10
- ddg.datastructures.nets.net_generators.quadrics.hyperbola(rot=False, name='Hyperbola')[source]
x**2 - y**2 == -1
- ddg.datastructures.nets.net_generators.quadrics.interline(name='IntersectingLines')[source]
x**2 - y**2 == 0
- ddg.datastructures.nets.net_generators.quadrics.sphere(axis=2, name='Ellipsoid')[source]
x**2 + y**2 + z**2 == 1
- ddg.datastructures.nets.net_generators.quadrics.hyperboloid_one_sheeted(axis=2, name='HyperboloidOneSheeted')[source]
x**2 + y**2 - z**2 == 1
- ddg.datastructures.nets.net_generators.quadrics.hyperboloid_two_sheeted(axis=2, name='HyperboloidTwoSheeted')[source]
x**2 + y**2 - z**2 == -1
- ddg.datastructures.nets.net_generators.quadrics.paraboloid_elliptic(axis=2, name='ParaboloidElliptic')[source]
x**2 + y**2 + 2*z == 0
- ddg.datastructures.nets.net_generators.quadrics.paraboloid_hyperbolic(axis=2, name='ParaboloidHyperbolic')[source]
x**2 - y**2 + 2*z == 0
- ddg.datastructures.nets.net_generators.quadrics.cylinder_elliptic(axis=2, name='CylinderElliptic')[source]
x**2 + y**2 == 1
- ddg.datastructures.nets.net_generators.quadrics.cylinder_hyperbolic(axis=2, rot=False, name='CylinderHyperbolic')[source]
x**2 - y**2 == 1
- ddg.datastructures.nets.net_generators.quadrics.cylinder_parabolic(axis=1, name='CylinderParabolic')[source]
x**2 + 2*z == 0
- ddg.datastructures.nets.net_generators.quadrics.cone(axis=2, name='Cone')[source]
x**2 + y**2 - z**2 == 0
- ddg.datastructures.nets.net_generators.quadrics.planes_intersecting(axis=2, name='Planes')[source]
x**2 - y**2 == 0