-
-
Notifications
You must be signed in to change notification settings - Fork 510
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
package for fast polynomial evaluation #13358
Comments
Attachment: fast_polynomial_src_2012_08_11_0341.tar.gz fast_polynomial package compatible with sage >= 4.8 |
A minimal spkg (without boost dependency) to make the installation easier. |
comment:1
Attachment: fast_polynomial-0.9.1.spkg.gz |
bug fix and add changelog.txt file |
comment:2
Attachment: fast_polynomial-0.9.2.spkg.gz |
This comment has been minimized.
This comment has been minimized.
comment:8
Hello, This would be a very nice addition in Sage! First of all, I was not able to install your package on 6.2.rc0 with The code you wrote looks like sage code but you wrote an external package. Was it on purpose that you did not write it directly inside Sage sources? It makes perfect sense to have an external package. But in that case, it should be relatively independent from Sage (I do not know if it is feasible, please tell me). There still might be some compilation options that depend on Sage (especially in the Vincent |
comment:9
Hello, Thanks for your interest. Indeed I only tested it for sage 5.9. I will look into the new package structure and update it. About the package, I did write it as an external package such that it can easily be used directly within python only. All the code related to sage should in theory be in the interface directory only. The idea is that in order to use fast_polynomial with mpmath for example, it is only required to add a corresponding interface file in the interfaces directory (telling how to convert polynomials from mpmath to fast_polynomial) and tell in the setup.py file which interface to use. I must emphasize that this is in theory only, since I only wrote interface files for sage. The other reason I wrote it as an external package is that some part also depends on the boost::interval library, that was not in sage at the time I started the project. Guillaume |
comment:10
Salut Guillaume, It seems that your package is less independent of Sage than what you said: you import some components of the Sage library in To my mind, it would be better (for your work and for Sage) to distribute your library independently of Sage. It can be on your webpage, github or whatever. That would be a Python library with its own testing module. Once the library is ready and run within pure Python, it will be trivial to build a Sage spkg. I think that your library might interest some other projects such as Anaconda, GMPY and the Ipython notebook. All best, |
comment:13
Note: I personally don't care at all about this, but you should make a new-style package, see http://www.sagemath.org/doc/developer/#packaging-third-party-code |
The attached package provides conversion of univariate and multivariate polynomials into object that are optimized for fast evaluation on python object or low-levels c++ classes (see examples at the end).
It could enhanced the fast_callable function for several types, and also enhances in general the evaluation of polynomials on polynomials.
To test it, you can install it as a standard sage package with:
Main features:
Main limitations:
(there is room for speed up on conversion time)
Examples and benchmarks:
Dependencies: boost::interval (optional)
CC: @malb @zimmermann6 @burcin @defeo @videlec
Component: packages: optional
Keywords: polynomials
Issue created by migration from https://trac.sagemath.org/ticket/13358
The text was updated successfully, but these errors were encountered: