2
// to provide automatic print of ar objects with armap
5
// We use armp_p as the default function for printing
9
//used for display of armax objects
12
if rhs==1 then out=%io(2),end
13
deff('[ta]=%cv(x)',['[m,n]=size(x);';
14
'frmt=format();frmt=10**frmt(2)/maxi([1,norm(x)]);';
15
'x=round(frmt*x)/frmt;';
16
't=[];for k=1:m,t=[t;''|''],end;';
18
' aa=string(x(:,k)),';
20
' if part(aa(l),1)<>''-'' then ';
21
' aa(l)='' ''+aa(l),';
24
' n=maxi(length(aa)),';
25
' aa=part(aa+blank,1:n),';
26
' ta=ta+aa+part(blank,1),';
32
if ar(1)<>'ar' then write(%io(2)," This is not an ARMAX");return;end;
36
write(out," A(z^-1)y= D(z^-1) e(t)");
38
write(out," A(z^-1)y=B(z^-1)u + D(z^-1) e(t)");
45
if ar(3)==[] then I=[1,3];else I=1:3 ;end
50
if i==2,nli=int((lna/ar(6)));end;
51
blank=[];for k=1:na,blank=[blank;' '],end
52
blank1=part(blank,1:7)
53
// blank1([na/2,na/2+1])=[' '+M(i)+'(s)= ']
54
blank1([int(na/2)+1])=[' '+M(i)+'(x)=']
57
blank1=part(blank,1:6)
60
ta=a(:,1+(j-1)*nna:j*nna);
61
if t==[],t=blank+%cv(ta);else t=t+%cv(ta);end;
63
if length(str)==3,str=str+' ';end
64
if j<>nli;str=str+'+ ';else str=str+' ';end
65
// blank1([na/2,na/2+1])=[' ';str];
66
blank1([int(na/2)+1])=[str];
68
if length(t(1))>=lll,write(out,t),write(out," ");t=[];end
73
write(%io(2),' e(t)=Sig*w(t); w(t) '+string(ny)+'-dim white noise');
77
blank=[];for k=1:na,blank=[blank;' '],end
78
blank1=part(blank,1:8)
79
// blank1([na/2,na/2+1])=[' ';' Sig= ']
80
blank1([int(na/2)+1])=[' Sig= ']
87
function armap_p(ar,out)
88
//used for display of armax objects
89
//use Scilan Polynomial matrix display
92
if rhs==1 then out=%io(2),end
93
deff('[ta]=%cv(x)',['[m,n]=size(x);';
94
'frmt=format();frmt=10**frmt(2)/maxi([1,norm(x)]);';
95
'x=round(frmt*x)/frmt;';
96
't=[];for k=1:m,t=[t;''|''],end;';
98
' aa=string(x(:,k)),';
100
' if part(aa(l),1)<>''-'' then ';
101
' aa(l)='' ''+aa(l),';
104
' n=maxi(length(aa)),';
105
' aa=part(aa+blank,1:n),';
106
' ta=ta+aa+part(blank,1),';
112
if ar(1)<>'ar' then write(%io(2)," This is not an ARMAX");return;end;
114
[ny,vid]=size(ar(2));
116
write(out," A(z^-1)y= D(z^-1) e(t)");
118
write(out," A(z^-1)y=B(z^-1)u + D(z^-1) e(t)");
125
if ar(3)==[] then I=[1,3];else I=1:3 ;end
132
B=inv_coeff(ar(3),(nb/ar('nu'))-1);
141
write(%io(2),' e(t)=Sig*w(t); w(t) '+string(ny)+'-dim white noise');
145
blank=[];for k=1:na,blank=[blank;' '],end
146
blank1=part(blank,1:8)
147
// blank1([na/2,na/2+1])=[' ';' Sig= ']
148
blank1([int(na/2)+1])=[' Sig= ']