Oscar.jl
Oscar.jl copied to clipboard
Ideal gens merge
Introducing Gröbner bases/standard bases and ideal generating systems, as discussed. This PR contains the necessary amount of changes and resulting streamlining, while staying as close as possible to the status quo. Generalizations and more functionality for ideal generating systems to come as next steps.
The elements of a GB are referred to using gens
:
julia> gens(groebner_basis(J))
How about replacing gens
by elements
?
Any thoughts somebody?
The elements of a GB are referred to using
gens
: julia> gens(groebner_basis(J)) How about replacinggens
byelements
?Any thoughts somebody?
I would say that groebner_basis(J)
should be iterable, and groebner_basis(J)[1]
should work and collect(groebner_basis(J))
.
julia> S = Set([1,2,3,4])
Set{Int64} with 4 elements:
4
2
3
1
julia> collect(S)
4-element Vector{Int64}:
4
2
3
1
We could allow both gens(groebner_basis(J))
and elements(groebner_basis(J))
. Can't hurt. Maybe one user searches for gens
and the other likes elements
better. This way both are happy.
Let me have one another look in 12 hours.
I see that that the fields isGB
, ord
and keepordering
in the old BiPolyArray
are moved to the new IdealGens
.
Any comments on the efficacy of this two-level approach?
old:
BiPolyArray:
Ox
O
Sx
S
isGB
ord
keepordering
new:
BiPolyArray:
Ox
O
Sx
S
IdealGens:
gens::BiPolyArray
isGB
ord
keepordering
As far as I understood there will soon be more (meta) data added to IdealGens
than just the ordering. I also raised the point of efficiancy some months ago but maybe @jankoboehm can give us more insight on the future plans for IdealGens
.
in any case, merge is fine with me