Skip to content

Commit 5f84fc8

Browse files
committed
Add documentation for a special ideal
1 parent 074f160 commit 5f84fc8

File tree

4 files changed

+49
-11
lines changed

4 files changed

+49
-11
lines changed

docs/oscar_references.bib

+12
Original file line numberDiff line numberDiff line change
@@ -2240,6 +2240,18 @@ @Article{Tra00
22402240
doi = {10.1006/jsco.1999.0416}
22412241
}
22422242

2243+
@article{Tra04,
2244+
author = {Tran, Quoc-Nam},
2245+
title = {Efficient Groebner walk conversion for implicitization of geometric objects},
2246+
journal = {Computer Aided Geometric Design},
2247+
volume = {21},
2248+
number = {9},
2249+
pages = {837--857},
2250+
year = {2004},
2251+
doi = {10.1016/j.cagd.2004.07.001}
2252+
}
2253+
2254+
22432255
@Misc{VE22,
22442256
author = {Vaughan-Lee, Michael and Eick, Bettina},
22452257
title = {SglPPow, Database of groups of prime-power order for some prime-powers, Version 2.3},
+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[
22
"Gröbner walk" => [
33
"introduction.md",
4+
"special-ideals.md"
45
]
56
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
```@meta
2+
CurrentModule = Oscar
3+
```
4+
5+
# Special ideals used for benchmarking
6+
7+
We bundle a couple of special ideals useful for benchmarking of the Gröbner walk.
8+
9+
```@docs
10+
newell_patch(k::Union{QQField, QQBarFieldElem}, n::Int=1)
11+
newell_patch(k::Field, n::Int=1)
12+
```
13+
14+
```@docs
15+
newell_patch_with_orderings(k::Field, n::Int=1)
16+
```

experimental/GroebnerWalk/src/special-ideals.jl

+20-11
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11

22
@doc raw"""
33
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"""
144
newell_patch(k::Field, n::Int=1)
155
166
Let $n$ be an integer between 1 and 32. Returns the ideal corresponding to
177
the implicitization of the $n$-th bi-cubic patch describing
188
the Newell's teapot as a parametric surface.
199
10+
The specific generators for each patch have been taken from [Tra04](@cite).
11+
2012
For fields $k\neq\mathbb{Q},\bar{\mathbb{Q}}$, this gives a variant of the ideal with
2113
integer coefficients.
2214
"""
15+
function newell_patch(k::Union{QQField, QQBarFieldElem}, n::Int=1)
16+
return get_newell_patch_generators(n) |> ideal
17+
end
18+
2319
function newell_patch(k::Field, n::Int=1)
2420
F = get_newell_patch_generators(n)
2521

@@ -35,6 +31,19 @@ function newell_patch(k::Field, n::Int=1)
3531
return ideal(integral_F)
3632
end
3733

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\neq\mathbb{Q},\bar{\mathbb{Q}}$, this gives a variant of the ideal with
45+
integer coefficients.
46+
"""
3847
function newell_patch_with_orderings(k::Field, n::Int=1)
3948
I = newell_patch(k, n)
4049
R = base_ring(I)
@@ -52,7 +61,7 @@ function get_newell_patch_generators(n::Int)
5261
-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,
5362
-z + 12//5 - 63//160 * u^2 + 63//160 * u
5463
]
55-
else
64+
else # TODO: Add the other patches
5665
# TODO: Throw error
5766
end
5867
end

0 commit comments

Comments
 (0)