Opened 3 years ago

Closed 3 years ago

#29928 closed enhancement (fixed)

implement action of DifferentialWeylAlgebra on polynomials

Reported by: Markus Wageringel Owned by:
Priority: major Milestone: sage-9.2
Component: algebra Keywords:
Cc: Merged in:
Authors: Markus Wageringel Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: 7cdc6b0 (Commits, GitHub, GitLab) Commit: 7cdc6b011839f46f8c5a519385e443c5bbab8f52
Dependencies: Stopgaps:

Status badges

Description

This ticket implements the action of differential operators (from the Weyl algebra) on polynomials:

sage: W.<x,y> = DifferentialWeylAlgebra(QQ)
sage: dx, dy = W.differentials()
sage: dx.diff(x^3)
3*x^2
sage: (x*dx + dy + 1).diff(x^4*y^4 + 1)
5*x^4*y^4 + 4*x^4*y^3 + 1

Change History (5)

comment:1 Changed 3 years ago by Markus Wageringel

Authors: Markus Wageringel
Branch: u/gh-mwageringel/29928
Commit: 7cdc6b011839f46f8c5a519385e443c5bbab8f52
Status: newneeds_review

New commits:

7cdc6b0implement action of weyl algebra on polynomials

comment:2 Changed 3 years ago by Travis Scrimshaw

Reviewers: Travis Scrimshaw
Status: needs_reviewpositive_review

This is good to have. Although I don't see why this needs the full Action framework. I guess there is a bit of an issue with overloading * between the action and the natural coercion. Perhaps we could have the action use the @ operator to distinguish the two. That being said, let's get this in as-is and do more based on this ticket later.

comment:3 Changed 3 years ago by Markus Wageringel

Thanks for the review. Mainly, I assumed using the action framework was the preferred way to implement this, but you are probably right that it is not entirely necessary.

Using the @ operator here sounds like a good option to me. Though, given the recent discussion on devel, it might be difficult to reach a consensus about this.

comment:4 Changed 3 years ago by Travis Scrimshaw

Well, I don't think we have to worry too much about multiplying matrices, but I see your point (and I might want to push to use @ for tensor products). However, it would be nice to overload some operator so we don't have to write f.diff(g). Maybe a shift operator >> or << would be good? Or the & operator?

comment:5 Changed 3 years ago by Volker Braun

Branch: u/gh-mwageringel/299287cdc6b011839f46f8c5a519385e443c5bbab8f52
Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.