1
1
2
2
@doc raw """
3
3
newell_patch(k::Union{QQField, QQBarFieldElem}, n::Int=1)
4
-
5
- Let $n$ be an integer between 1 and 32. Returns the ideal corresponding to
6
- the implicitization of the $n$-th bi-cubic patch describing
7
- the Newell's teapot as a parametric surface.
8
- """
9
- function newell_patch (k:: Union{QQField, QQBarFieldElem} , n:: Int = 1 )
10
- return get_newell_patch_generators (n) |> ideal
11
- end
12
-
13
- @doc raw """
14
4
newell_patch(k::Field, n::Int=1)
15
5
16
6
Let $n$ be an integer between 1 and 32. Returns the ideal corresponding to
17
7
the implicitization of the $n$-th bi-cubic patch describing
18
8
the Newell's teapot as a parametric surface.
19
9
10
+ The specific generators for each patch have been taken from [Tra04](@cite).
11
+
20
12
For fields $k\n eq\m athbb{Q},\b ar{\m athbb{Q}}$, this gives a variant of the ideal with
21
13
integer coefficients.
22
14
"""
15
+ function newell_patch (k:: Union{QQField, QQBarFieldElem} , n:: Int = 1 )
16
+ return get_newell_patch_generators (n) |> ideal
17
+ end
18
+
23
19
function newell_patch (k:: Field , n:: Int = 1 )
24
20
F = get_newell_patch_generators (n)
25
21
@@ -35,6 +31,19 @@ function newell_patch(k::Field, n::Int=1)
35
31
return ideal (integral_F)
36
32
end
37
33
34
+ @doc raw """
35
+ newell_patch_with_orderings(k::Field, n::Int=1)
36
+
37
+ Let $n$ be an integer between 1 and 32. Returns the ideal corresponding to
38
+ the implicitization of the $n$-th bi-cubic patch describing
39
+ the Newell's teapot as a parametric surface.
40
+ Additionally returns suitable start and target orderings, e.g. for use with the Gröbner walk.
41
+
42
+ The specific generators for each patch have been taken from [Tra04](@cite).
43
+
44
+ For fields $k\n eq\m athbb{Q},\b ar{\m athbb{Q}}$, this gives a variant of the ideal with
45
+ integer coefficients.
46
+ """
38
47
function newell_patch_with_orderings (k:: Field , n:: Int = 1 )
39
48
I = newell_patch (k, n)
40
49
R = base_ring (I)
@@ -52,7 +61,7 @@ function get_newell_patch_generators(n::Int)
52
61
- y + 63 // 125 * v^ 2 - 294 // 125 * v + 56 // 125 * v^ 3 - 819 // 1000 * u^ 2 * v + 42 // 125 * u^ 3 * v - 3 // 50 * u * v^ 3 + 351 // 2000 * u^ 2 * v^ 2 + 39 // 250 * u^ 2 * v^ 3 - 9 // 125 * u^ 3 * v^ 2 - 8 // 125 * u^ 3 * v^ 3 ,
53
62
- z + 12 // 5 - 63 // 160 * u^ 2 + 63 // 160 * u
54
63
]
55
- else
64
+ else # TODO : Add the other patches
56
65
# TODO : Throw error
57
66
end
58
67
end
0 commit comments