Comments (7)
What's the license of the Fortran code and does it make any sense to translate it to Julia?
from polynomials.jl.
They haven't stated the license, but I can try to ask them if MIT is okay.
I have considered writing a Julia version, but I think it would take more time than I can allow to spend.
By the way, I should add that the advantage of their method is that the companion matrix can be stored very compactly and hence it is possible to calculate the roots of polynomials of very high degree.
from polynomials.jl.
Any private progress on this topic? Would be interesting to compare the KU Leuven algorithm to a8c9302;
and if there were no performance penalty, I'd opt for the faster algorithm. If you have the Fortran code running, please test against a8c9302 and if the outcome will be positive, let's consider porting to native Julia.
Also, do you have any author feedback on licensing?
from polynomials.jl.
Just checked my email and Watkins replied that he is fine with MIT license for the AMVW code. There is no doubt that AMVW code can handle much larger problems and I think it is faster for all problem sizes. It would be great to use the AMVW functionality for finding roots in this package. It would either require that we find a way to supply binaries of the Fortran code or port the code to Julia. Right now, I don't have much time to do any of these but if you are interested in trying it out, I can try to help.
from polynomials.jl.
I'd definitely opt for porting to native Julia. I will await whether my other pull requests will find their way to the pkg, then I may consider investing some work into trying and porting the AMVW code. BTW, if you have the code running (outside of Julia), can you just run few tests, what will be errors of Fortran AMVW compared to a8c9302 roots? I mean
r=something (randn, real, complex,...) r1=roots(poly(r)) r=sort(r, lt=(a,b)->(real(a)<real(b)||imag(a)<imag(b))) r1=sort(r1, lt=(a,b)->(real(a)<real(b)||imag(a)<imag(b))) e=r1-r maximum(abs(e))
or std(e)
.
It would be great to assure the AMVW will not give worse results, prior to replace the very standard way using full O(n^2) companion matrix. No doubt it will be faster, though.
from polynomials.jl.
Your other pull request will find its way in soon. I was going to ask you to add a test, but see you've already got there. This would be a good addition in my opinion, though it might be best in an independent package at the outset.
from polynomials.jl.
This was done in https://github.com/jverzani/AMRVW.jl
from polynomials.jl.
Related Issues (20)
- breaking change for coeffs of Polynominal(0) ? HOT 2
- Polynomials.@variable clashes with JuMP.@variable HOT 3
- Poly() not defined HOT 2
- docs: advertise composition of polynomials HOT 1
- `ImmutablePolynomial` constructors seem to prevent good type inference HOT 4
- improved implementations of composition of polynomials HOT 4
- bad type inference for composition of `ImmutablePolynomial`s HOT 2
- Should `AbstractPolynomial` subtype `Function`? HOT 2
- Question: is multipliciation of polynomials implemented with FFT HOT 6
- type stability: `(::Polynomial)(::ImmutablePolynomial)` composition yields `ImmutablePolynomial` HOT 2
- polynomials should have `big` methods? HOT 2
- Should `coeffs(::ImmutablePolynomial)` be type-stable? HOT 1
- Feature request: decompose a polynomial HOT 1
- Polynomials.fit fails with InexactError for Rational HOT 2
- Question about using HOT 2
- Warnings and Test failure with Julia 1.10 HOT 2
- Polynomial/Polynomial = Rational or? HOT 1
- (Low priority) Axis offset warning when using OffsetArrays HOT 3
- Conversions to and from RationalFunction broken HOT 3
- MakieCore doesn't need to be in `deps` HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from polynomials.jl.