Skip to content

Commit df08067

Browse files
authored
add ordering.jl (#190)
* add ordering.jl * remove paragraph indentation
1 parent 03f4673 commit df08067

File tree

5 files changed

+30
-0
lines changed

5 files changed

+30
-0
lines changed

docs/src/types.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ nterms
5959
coefficients
6060
coefficient(p::AbstractPolynomialLike, m::AbstractMonomialLike, vars)
6161
monomials
62+
ordering
6263
mindegree
6364
maxdegree
6465
extdegree

src/MultivariatePolynomials.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ include("monomial.jl")
6969
include("term.jl")
7070
include("polynomial.jl")
7171
include("monovec.jl")
72+
include("ordering.jl")
7273

7374
include("rational.jl")
7475

src/ordering.jl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
export MonomialOrdering
2+
export GradedLex
3+
export ordering
4+
5+
"""
6+
AbstractOrdering
7+
8+
Abstract type for a monomial ordering.
9+
"""
10+
abstract type AbstractOrdering end
11+
12+
"""
13+
GradedLex
14+
15+
Graded lexicographical monomial ordering.
16+
Compares total monomial degree first, then breaks ties lexicographically.
17+
Currently, a default option for all `AbstractPolynomialLike{T}`.
18+
"""
19+
struct GradedLex <: AbstractOrdering end
20+
21+
"""
22+
ordering(p::AbstractPolynomialLike)
23+
24+
Returns the ordering of polynomial `p`.
25+
"""
26+
ordering(::AbstractPolynomialLike) = GradedLex()

test/monomial.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ end
3838
@test one(x^2) isa AbstractMonomial
3939
@test (@inferred one(typeof(x^2))) == 1
4040
@test one(typeof(x^2)) isa AbstractMonomial
41+
@test ordering(x) === GradedLex()
4142

4243
Mod.@polyvar y[1:7]
4344
m = y[1] * y[3] * y[5] * y[7]

test/polynomial.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ const MP = MultivariatePolynomials
144144
f = 4*x*y^2*z + 4*z^2 - 5*x^3 + 7*x^2*z^2
145145
@test coefficients(f) == [7, 4, -5, 4]
146146
@test monomials(f) == monovec([x^2*z^2, x*y^2*z, x^3, z^2])
147+
@test ordering(f) === GradedLex()
147148
end
148149

149150
@testset "Convertion" begin

0 commit comments

Comments
 (0)