Octave and Freemat

Ben Abbott bpabbott at mac.com
Tue Mar 4 20:36:36 CST 2008


On Mar 4, 2008, at 8:27 PM, Ben Abbott wrote:

>
> On Mar 4, 2008, at 6:46 PM, Sebastien Loisel wrote:
>
>> Dear David,
>>
>> Thank you for your email.
>>
>> On Tue, Mar 4, 2008 at 5:44 PM, David Bateman <David.Bateman at motorola.com 
>> > wrote:
>> f = find (p ./ max(p));
>> p = p (f(1):end);
>>
>> Are you missing an abs maybe? Also, I hope you did your checking  
>> for nans and infs before you got there.
>>
>> -- 
>> Sébastien Loisel
>
>
> To respect Matlab an error should result when NaNs or Infs are  
> present.
>
> The abs shouldn't be necessary. In fact, if NaNs and Infs have  
> already be handled, why not
>
> f = find (p);
> p = p(f(1):end);
> n = numel (p)-1;
> A = diag (ones (n-1, 1), -1);
> A(1,:) = -p(2:n+1) ./ p(1);
> z = eig (A);
>
> Ben

ok, nix the simple solution.

I checked Matlab, they apparently remove have some special handling of  
trailing zeros.

 >> p = [poly([3 3 3 3]), 0 0 0 0];

 >> abs(roots(p)-[0; 0; 0; 0; 3; 3; 3; 3])

ans =

             0
             0
             0
             0
    0.00051228
    0.00051228
    0.00051223
    0.00051223

 >>

What should be included is the check for Infs and NaNs. Beyond that we  
might add some tests for consistency with Matlab.

How about the attached?

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: changeset-roots.txt
Url: https://www.cae.wisc.edu/pipermail/octave-maintainers/attachments/20080304/7d2a5ee0/attachment.txt 
-------------- next part --------------





More information about the Octave-maintainers mailing list