-
-
Notifications
You must be signed in to change notification settings - Fork 552
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MultiCoordFunction: Make it the element class of the free module over ChartFunctionRing #31982
Comments
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:8
Looks nice. However, the pickling of continuous maps fails with the new code for
|
comment:9
Thanks for taking a look! Because of these errors I hadn't set the ticket to "needs review" yet. I'll revise it in the next few days, but help is welcome. |
This comment has been minimized.
This comment has been minimized.
Author: Matthias Koeppe |
comment:12
|
comment:13
I think I could use some help from a pickling expert here... |
comment:14
I bet this is related to #31182. |
comment:15
Okay, maybe not. |
comment:16
Replying to @mkoeppe:
Sorry I am definitely not such an expert and therefore cannot offer help here. Instead, let me ask about the motivation of this ticket. I understand that, from a mathematical point of view,
In both cases, there is no meaning in the basic module operations |
comment:17
My main motivation for the present ticket is for defining (not necessarily smooth) vector-valued (and later matrix-valued #31988) functions on manifolds (for #31981). If another class is better suited for this, I'd be interested to know. Some fixes here on the ticket are needed to make free module elements over the ring of coordinate functions work properly. Then I realized that |
comment:18
Regarding the pickling, can you spot after which commit the error occurred; more precisely, which lines caused it? |
comment:19
Replying to @mkoeppe:
Thanks for your quick reply. This sounds a strong motivation for a module structure!
Wouldn't a kind of
Thanks for these explanations. |
comment:20
Replying to @egourgoulhon:
You are probably right about this. I guess a tricky point is regarding the required smoothness of scalar fields. I like to think of the domain as a smooth manifold, but the functions that I want to define on them often are less smooth - typically only piecewise C1, with Lipschitz gradients. See for example https://www.cvxpy.org/api_reference/cvxpy.atoms.elementwise.html |
Work Issues: rebase on #31999; fix pickling issue |
comment:23
Setting a new milestone for this ticket based on a cursory review. |
Currently,
MultiCoordFunction
is not an element class.We change the function
sage.modules.free_module.element_class
so that it uses the element classVector_symbolic_dense
not only for free modules over the ringSR
but also for free modules over any commutative ring whose base ring isSR
.In fact, we dispatch through a new method
_free_module_element_class_dense
.ChartFunction
provides a specialized implementation, which makes sure thatMultiCoordFunction
(now a subclass ofVector_symbolic_dense
) is used as the element class.This simplifies the implementation of
MultiCoordFunction
and also makes the elementwise symbolic methodssimplify
etc. available.Follow-up:
MultiCoordFunction.jacobian
to the superclass, making it more generally available.Depends on #31721
Depends on #31999
CC: @egourgoulhon @mjungmath @tscrim
Component: manifolds
Work Issues: rebase on #31999; fix pickling issue
Author: Matthias Koeppe
Branch/Commit: u/mkoeppe/multicoordfunction__make_it_the_element_class_of_the_free_module_over_chartfunctionring @
fb31802
Issue created by migration from https://trac.sagemath.org/ticket/31982
The text was updated successfully, but these errors were encountered: