fsqmat_test.cpp itpp/itbase.h math/libDC.h int int main () main #include<itpp/itbase.h> #include<math/libDC.h> usingnamespaceitpp; //Theselinesareneededforuseofcoutandendl usingstd::cout; usingstd::endl; intmain(){ //Kalmanfilter matA0=randu(3,3); matA=A0*A0.T(); //Testconstructor fsqmatFsq(A); cout<<"Testingconstructors:"<<endl <<"A="<<A<<endl <<"Fsq.to_mat()="<<Fsq.to_mat()<<endl<<endl; //Testinversion fsqmatiFsq(3); Fsq.inv(iFsq); cout<<"inv(A)="<<inv(A)<<endl <<"inv(Fsq).to_mat()="<<iFsq.to_mat()<<endl<<endl; //Testlogdet cout<<"logdet(A)="<<log(det(A))<<endl <<"logdet(Fsq)="<<Fsq.logdet()<<endl<<endl; //Testadd fsqmatFsq2(Fsq); Fsq2.add(Fsq); cout<<"A+A="<<A+A<<endl <<"Fsq2.add(Fsq)="<<Fsq2.to_mat()<<endl<<endl; vecv=randu(3); //Testqform cout<<"vAv'="<<v*(A*v)<<endl <<"qform(Fsq,v)="<<Fsq.qform(v)<<endl<<endl; //Testinvqform cout<<"vinv(A)v'="<<v*(inv(A)*v)<<endl <<"invqform(Fsq,v)="<<Fsq.invqform(v)<<endl<<endl; //Testopupdate Fsq2=Fsq; Fsq2.opupdt(v,1.0); cout<<"A+vv'="<<A+outer_product(v,v)<<endl <<"opupdt(Fsq,v)="<<Fsq2.to_mat()<<endl<<endl; }