-
-
Notifications
You must be signed in to change notification settings - Fork 553
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
fast_callable improvements (followup for #5093) #5572
Comments
comment:2
More fast_callable improvements:
|
comment:3
Both good points. At least g.variables() should be a subset of g.args(). |
comment:4
Replying to @jasongrout:
#7512 may take care of this. |
comment:5
Attachment: improve_fast_callable.patch.gz This is a big patch to fast_callable which
The patch also breaks some things---it's still a work in progress. |
Attachment: fast_callable_complex.patch.gz apply on top of previous patch |
comment:6
The second patch is a broken attempt at streamlining the complex support since Cython now supports C99 complex numbers. |
comment:8
CCing: robertwb since fast_float was his idea originally timdumol since he's expressed interest in working on this sort of thing. The two patches need work at this point. In particular, the improvements patch needs docs added/changed, and ptestlong needs to be run to check for breakage. The complex number patch needs an overhaul, as I think it's completely broken at this point. The complex number patch is not necessary for resolving the issues on this ticket. |
comment:9
#8450 would be a good ticket to (trivially) fix after this ticket moves plotting solely over to fast_callable. |
rebase to 4.4.1 |
comment:10
Attachment: improve_fast_callable.2.patch.gz I think it might be best just to fix #7512 in this ticket. |
Attachment: improve_fast_callable.3.patch.gz apply instead of previous patches |
comment:11
Still not done. A clean design still needs to happen for fast_callable on symbolics without specified variables, and the nvars option seems like a hack to make plotting work with lambda functions (since we now match the argument names of lambda functions by default). |
comment:12
Also, something should be done to put fast_float back (and its file) as a convenience method. |
apply instead of previous patches (now doctests in plot/*.py[x] pass) |
Attachment: improve_fast_callable.4.patch.gz apply instead of previous patches (now almost all doctests in plot/plot3d/ pass) |
comment:13
Attachment: improve_fast_callable.5.patch.gz I had to rework some of the transformation code because the returned function often did not have the same keyword arguments as the original function, which throws off plotting. |
Attachment: improve_fast_callable.6.patch.gz apply instead of previous patches (fixed a bunch of stuff so even more doctests pass) |
comment:14
To delete the fast_eval.so file from the build directory (necessary so that the cython fast_eval is eliminated when testing), do:
|
comment:15
Progress report: my current patch queue has the following failures on
|
comment:16
(my patch queue is up at http://sage.math.washington.edu/home/jason/sage-4.5.2-patches and this ticket involves patches up to pickling.patch) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Author: Jason Grout |
This comment has been minimized.
This comment has been minimized.
comment:20
What is the status of switching to Anyway, just curious. |
comment:21
A long time ago I worked on the patches you see here; I believe that all of my work is here, anyway. I probably won't have time to work on this this summer, due to notebook enhancements. I'd like to make this one of the projects for next summer if someone hasn't beaten me to it by then. |
comment:22
The problem is that I think my patch is too big and needs to be broken down into smaller patches that change less at each step. It's been a long time, but I think I'm remembering that right. Anyways, as noted above, my patch queue is up on sage.math and anyone is welcome to work on it. |
This comment has been minimized.
This comment has been minimized.
comment:25
Can I just create a new patch to switch plotting to use |
comment:26
Sounds fine to me. Especially if all the doctests pass (including the new one or two that you write :). |
comment:27
Okay, thanks. This is now #15030, with a patch up. |
comment:30
Note that #15030 is now merged. How that does affect whatever else needs to happen here? |
comment:34
Anyone interested in the deprecation of |
comment:35
Without looking in detail I'd guess that implementing pynac/pynac#8 will make |
The code at #5093 is very good and ready to go in, but there are several improvements that have been suggested and agreed work on at a later date. They are posted here so we can merge and close the other ticket.
Specifically, this ticket addresses these issues:
fast_callable
onlist
,tuple
,vector
,matrix
argumentsfast_callable
on constant argumentsfast_callable
of a zero multivariate polynomial returns a zero of the base ring, without paying attention to the types of the argumentsin general replaces calls to
fast_float
with calls tofast_callable
.Carries out the deprecation in deprecate substitution via __call__ w/ unnamed arguments #5413 (removes the functionality deprecated there)
fast_float
sometimes returns symbolic values instead of floating-point values (see density_plot() is broken with functions involving symbolic expressions #17684, which patchesdensity_plot
to work around this bug)Because of some of the far-reaching changes, this should probably not be merged in a point-point release.
What is not fixed:
The work on this ticket:
See also
fast_callable
to have its own recursion stackCC: @robertwb @TimDumol @eviatarbach @novoselt @orlitzky
Component: basic arithmetic
Author: Jason Grout
Issue created by migration from https://trac.sagemath.org/ticket/5572
The text was updated successfully, but these errors were encountered: