levinson.m incompatibility
Eric Chassande-Mottin
echassandemottin at gmail.com
Mon Feb 25 05:02:10 CST 2008
levinson(rand(10,1),9) leads to an undetermined error with GNU Octave.
here is a patch to levinson.m (Octave forge 1.0.6) that solves this problem.
eric.
---------------------------------------------------------------------------------------------------
diff -c old/levinson.m new/levinson.m
*** old/levinson.m 2008-02-25 11:50:44.000000000 +0100
--- new/levinson.m 2008-02-25 11:52:04.000000000 +0100
*** 59,71 ****
function [a, v, ref] = levinson (acf, p)
if ( nargin<1 )
! error( 'usage: [a,v,ref]=levinson(acf,p)\n', 1);
elseif( ~isvector(acf) || length(acf)<2 )
! error( 'levinson: arg 1 (acf) must be vector of length >1\n', 1);
! elseif ( nargin>1 && ( ~isscalar(p) || fix(p)~=p || p>length(acf)-2 ) )
! error( 'aryule: arg 2 (p) must be integer >0 and <length(acf)-1\n', 1);
else
! if (nargin == 1) p = length(acf) - 1; endif
if( columns(acf)>1 ) acf=acf(:); endif # force a column vector
if nargout < 3 && p < 100
--- 58,70 ----
function [a, v, ref] = levinson (acf, p)
if ( nargin<1 )
! error("usage: [a,v,ref]=levinson(acf,p)");
elseif( ~isvector(acf) || length(acf)<2 )
! error("levinson: arg 1 (acf) must be vector of length >1");
! elseif ( nargin>1 && ( ~isscalar(p) || fix(p)~=p ) )
! error("levinson: arg 2 (p) must be integer >0");
else
! if (nargin == 1)| (p>=length(acf)) p = length(acf) - 1; endif
if( columns(acf)>1 ) acf=acf(:); endif # force a column vector
More information about the Bug-octave
mailing list