Add basic functionality for univariate Ore operators#2411
Conversation
|
As long as this is a draft, I am ignoring some style rules. I didn't sort the |
| function PolyFracFieldAnyMap{D,C,V}(d::D,ϕ::V) where {D,C,V} | ||
| return new{D,C,V}(d,ϕ) | ||
| end |
There was a problem hiding this comment.
| function PolyFracFieldAnyMap{D,C,V}(d::D,ϕ::V) where {D,C,V} | |
| return new{D,C,V}(d,ϕ) | |
| end | |
| function PolyFracFieldAnyMap{D,C,V}(d::D,phi::V) where {D,C,V} | |
| return new{D,C,V}(d,phi) | |
| end |
please do not use unicode in variable names, see https://docs.oscar-system.org/dev/DeveloperDocumentation/styleguide/#Unicode
|
I have been playing around with some skew polynomial rings lately and so would also be interested in this functionality. I think this implementation here looks good. There are a few things I think would be worth discussing:
This has the advantage, that we can dispatch on the type
I really like the Sage interface: https://doc.sagemath.org/html/en/reference/noncommutative_polynomial_rings/sage/rings/polynomial/ore_polynomial_ring.html |
I mean, I'm not really attached to names or anything. At least, this one meshes better with the rest of AA.jl.
That's how it looked like in a initial draft but then I took out the reference to
Otherwise, that's already happening with
For
I am aware of that one. |
|
Can you clarifiy whether this implementation here is specifically for ore extensions of univariate polynomial rings? You keep mentioning that In the arithmetic application I have in mind the ore extension is |
Sure, I was being a bit imprecise here, I did introduce That said, this implementation is for univariate Ore extensions, in the sense of a single indeterminate that commutes according to But this implementation doesn't care about this as long as you can define
I mean, two big families of Ore extensions people care about are those with Again, thinking only of univariate polynomials as coefficients was me not thinking hard enough of more examples. EDIT: I suppose suitable |
|
Thanks for the explanation. Yeah, then in my example I could Then one could add special methods for Are you currently working on this? If not, do you mind if I push a few things to make the arithmetic example work? |
I mean, yeah, I'm working on the code right now. But if you have something written down already, sure, go ahead. Even then, I would appreciate the examples for test cases. |
This pull request adds basic functionality for univariate Ore polynomials. This is implemented in pure Julia.
For now, this contains arithmetic capabilities and implements an interface similar or equal to
NCPolyRingand such.There are some minor additions that are technically required that would come with this PR.
Currently, there is no way to define a ring homomorphism of fraction fields (or function fields for that instance).
They are a rather common choice for coefficient fields of Ore algebras, that's why they are of interest.
Since for fraction fields of polynomial rings, the notion would naturally extend, I also introduce a type
PolyFracFieldAnyMapthat mimicsPolyRingAnyMap.I would keep this PR at this scope since this is also the point where we fix the interface for Ore algebras
which will be relevant as soon we make use of the implementation in FLINT for some specialised cases.