I just tried roots in the Polynomial package
here's what happened
@time roots(Poly([randn(100)]));
LAPACKException(99)
while loading In[10], in expression starting on line 44
in geevx! at linalg/lapack.jl:1225
in eigfact! at linalg/factorization.jl:531
in eigfact at linalg/factorization.jl:554
in roots at /Users/julia/.julia/v0.3/Polynomial/src/Polynomial.jl:358
my first question would be why are we calling geevx for a matrix
known to be Hessenberg?
I'd be happy to have a time comparable to matlab's though i'm sure there
are faster algorithms out there as well
On Friday, May 9, 2014 11:21:11 PM UTC-4, Tony Kelman wrote:
>
> By default GitHub doesn't enable issue tracking in forked repositories,
> the person who makes the fork has to manually go do that under settings.
>
>
> On Friday, May 9, 2014 9:39:56 AM UTC-7, Hans W Borchers wrote:
>>
>> @Jameson
>> I am writing a small report on scientific programming with Julia. I
>> changed the section on polynomials by now basing it on the newer(?)
>> Polynomials.jl. This works quite fine, and roots() computes the zeros of
>> the Wilkinson polynomial to quite satisfying accuracy.
>>
>> It's a bit irritating that the README file still documents the old order
>> of sequence of coefficients while the code already implements the
>> coefficients in increasing order of exponents. I see there is a pull
>> request for an updated README, but this is almost 4 weeks old.
>>
>> Testing one of my examples,
>>
>> julia> using Polynomials
>>
>> julia> p4 = poly([1.0, 1im, -1.0, -1im])
>> Poly(--1.0 + 1.0x^4)
>>
>>
>> which appears to indicate a bug in printing the polynomial. The stored
>> coefficient is really and correctly -1.0 as can be seen from
>>
>> julia> p4[0]
>> -1.0 + 0.0im
>>
>>
>> I wanted to report that as an issue on the project page, but I did not
>> find a button for starting the issue tracker. Does this mean the
>> Polynomial.jl project is still 'private' in some sense?
>>
>> I know there have been long discussions on which is the right order for
>> the coefficients of a polynomial. But I feel it uneasy that the defining
>> order in MATLAB and other numerical computing systems has been changed so
>> drastically. Well, we have to live with it.
>>
>>
>> On Friday, May 9, 2014 7:53:30 AM UTC+2, Hans W Borchers wrote:
>>>
>>> Thanks a lot. Just a few minutes ago I saw here on the list an
>>> announcement
>>> of the "Least-squares curve fitting package" with poly_fit, among others.
>>> I think this is good enough for me at the moment.
>>>
>>> I will come back to your suggestion concerning polynomials when I have a
>>> better command of the type system. For polynomials there is surprisingly
>>> many more interesting functionality than is usually implemented.
>>>
>>>
>>> On Friday, May 9, 2014 6:30:06 AM UTC+2, Jameson wrote:
>>>>
>>>> As the author of Polynomial.jl, I'll say that being "a bit
>>>> unsatisfied" is a good reason to make pull requests for any and all
>>>> improvements :)
>>>>
>>>> While loladiro is now the official maintainer of Polynomials.jl (since
>>>> he volunteered to do the badly-needed work to switch the coefficient
>>>> order), if I had access, I would accept a pull request for additional
>>>> roots() methods (parameterized by an enum type, for overloading, and
>>>> possibly also a realroots function), horner method functions, polyfit,
>>>> etc.
>>>>
>>>> I would not accept a pull request for allowing a vector instead of a
>>>> Polynomial in any method, however. IMHO, this is a completely
>>>> unnecessary "optimization", which encourages the user to conflate the
>>>> concept of a Vector and a Polynomial without benefit. It could even
>>>> potentially lead to subtle bugs (since indexing a polynomial is
>>>> different from indexing a vector), or passing in the roots instead of
>>>> the polynomial.
>>>>
>>>> I think merging your proposal for a polyfit function with
>>>> StatsBase.fit makes sense. You could use a tuple parameter to combine
>>>> the Polynomial parameter with the degrees information:
>>>>
>>>> function fit((T::(Type{Polynomial},Int), data)
>>>> P, deg = T
>>>> return Poly( pfit(deg, data) ) #where pfit represents the
>>>> calculation of the polynomial-of-best fit, and may or may not be a
>>>> separate function
>>>> end
>>>> fit((Polynomial,3), data)
>>>>
>>>> David de Laat put together a pull request to add his content to
>>>> Polynomial: https://github.com/vtjnash/Polynomial.jl/pull/25. He also
>>>> indicated he would update it for Polynomials.jl so that it could be
>>>> merged.
>>>>
>>>>