Skip to content

Commit

Permalink
homogenization for ideal with ZZ^m grading (oscar-system#2372)
Browse files Browse the repository at this point in the history
* homogenization for ideal with ZZ^m grading

* Minor improvements; better comments

* 20230630 faster ideal homogenization

* Fixed 3 edge cases: 0 ideal, std graded, general ZZ^1 grading

* Revised default pos for homogenizaing vars

* Renamed: old impl is now homogenization_via_saturation; new is just homogenization

* Improved homog (now for all gradings)

* Avoid comouting GB in _gens_for_homog_via_sat

* Removed some debug print stmts

* Revised IO for homogenization (see discussion 2582)

* Revised to new syntax/UI for specifying position

* Further cleaning & tidying

* Updated call to homogenization to new syntax

* Updated method signatures for homogenization
  • Loading branch information
JohnAAbbott authored Jul 27, 2023
1 parent c9b9a80 commit 1deabec
Show file tree
Hide file tree
Showing 4 changed files with 327 additions and 43 deletions.
4 changes: 2 additions & 2 deletions docs/src/CommutativeAlgebra/ideals.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,11 +248,11 @@ equidimensional_hull_radical(I::MPolyIdeal)
Referring to [KR05](@cite) for definitions and technical details, we discuss homogenization and dehomogenization in the context of $\mathbb Z^m$-gradings.

```@docs
homogenization(f::MPolyRingElem, W::Union{ZZMatrix, Matrix{<:IntegerUnion}}, var::VarName, pos::Int = 1)
homogenization(f::MPolyRingElem, W::Union{ZZMatrix, Matrix{<:IntegerUnion}}, var::VarName; pos::Union{Int,Nothing}=nothing)
```

```@docs
homogenization(f::MPolyRingElem, var::VarName, pos::Int=1)
homogenization(f::MPolyRingElem, var::VarName; pos::Union{Int,Nothing}=nothing)
```

```@docs
Expand Down
4 changes: 2 additions & 2 deletions experimental/PlaneCurve/src/AffinePlaneCurve.jl
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ function arithmetic_genus(C::AffinePlaneCurve)
K = base_ring(parent(F))
R, (x, y, z) = polynomial_ring(K, ["x", "y", "z"])
T, _ = grade(R)
G = homogenization(F, T, 3)
G = homogenization(F, T; pos=3)
D = ProjPlaneCurve(G)
return arithmetic_genus(D)
end
Expand Down Expand Up @@ -551,7 +551,7 @@ function geometric_genus(C::AffinePlaneCurve)
K = base_ring(parent(F))
R, (x, y, z) = polynomial_ring(K, ["x", "y", "z"])
T, _ = grade(R)
G = homogenization(F, T, 3)
G = homogenization(F, T; pos=3)
D = ProjPlaneCurve(G)
return geometric_genus(D)
end
Expand Down
Loading

0 comments on commit 1deabec

Please sign in to comment.