$/users/mk303/Research/42.FinalReport_EPSRC/Maple/Progs1/maple.lib..............................................................................................................................................................................................#|ƒBcontrol........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................1c+M7R0 I(control`6Ec(Hurwitz$:-1c+Kharitonov$:-2c)McMillan$:-3c'h2norm$:-4c*h2norm_TM$ :-5c)linfcand$:-6c*linfcheck$:-7c)linfnorm$:-8c,linfnorm_TM$:-9c)linfposD%:-10c &nugap%:-11c)nugap_TM%:-12c2find_inter_matrix%:-13c+find_range%:-14c&inter%:-15 c3inter_matrices_add%:-16c5inter_matrices_multi%:-17c3inter_matrices_sub%:-18c5 inter_matrix_inverse%:-19c1inter_matrix_mid%:-20c3inter_matrix_norm1%:-21c3inte r_matrix_width%:-22c,inter_multi%:-23c+inter_sort%:-24c0check_spec_fact%:-25c*r _convert%:-26c*root_fact%:-27c*spec_fact%:-28c1root_st_ant_fact%:-29c,st_ant_fa ct%:-30c(Lmatrix%:-31c'h2_syn%:-32c+h2norm_int%:-33c+sqrt_range%:-34c*out_round %:-35b6#%+thismoduleG6"6#%(packageG6E%(HurwitzG%+KharitonovG%)McMillanG%'h2norm G%*h2norm_TMG%)linfcandG%*linfcheckG%)linfnormG%,linfnorm_TMG%)linfposDG%&nugap G%)nugap_TMG%2find_inter_matrixG%+find_rangeG%&interG%3inter_matrices_addG%5int er_matrices_multiG%3inter_matrices_subG%5inter_matrix_inverseG%1inter_matrix_mi dG%3inter_matrix_norm1G%3inter_matrix_widthG%,inter_multiG%+inter_sortG%0check_ spec_factG%*r_convertG%*root_factG%*spec_factG%1root_st_ant_factG%,st_ant_factG %(LmatrixG%'h2_synG%+h2norm_intG%+sqrt_rangeG%*out_roundGFKFKFKFK%,_m136122920G 6"FK M7R0 I$:-2f*6$%%v_inG%+verbose_inG6-%"kG%"nG%"vG%%sgnsG%#f1G%#f2G%#f3G%#f4G%"sG%"HG% (verboseG6"F3C:>8.%&falseG@$3/9#""#09%F7C$>F6%%trueG-%&printG6#%9Kharitonov:~ve rbose~modeG@$2F;"""YQ6not~enough~parametersF3@$4-%%typeG6$9$-%%listG6#-FR6#%(nu mericGYQFZ-%$mapG6$f*6#%"xGF36$%)operatorG%&arro wGF37$-%$minG6$&FP6#FH&FP6#F<-%$maxGFioF3F3F3-%(convertG6%FP%)rationalG%&exactG @$1-Fho6#-%#opG6#-F^o6$f*FaoF3FcoF3FjoF3F3F3FZ""!OF7>8%,&FgnFH!""FH>8'7&FHFHF8(F_q>8)F_q>8*F_q>8+F_q?(8$F_qFHFbqFAC&>Fiq,&FiqFH*&&&FZ6#,&FarFHFHFH6#&Ffq6# ,&-%$modG6$Far""%FHFHFHFH)8,FarFHFH>F[r,&F[rFH*&&Fgr6#&Ffq6#,&-F_s6$FirFasFHFHF HFHFbsFHFH>F]r,&F]rFH*&&Fgr6#&Ffq6#,&-F_s6$,&FarFHFF_r,&F _rFH*&&Fgr6#&Ffq6#,&-F_s6$,&FarFH""$FHFasFHFHFHFHFbsFHFH@$F6C&-FC6$%&f1~=~GFiq- FC6$%&f2~=~GF[r-FC6$%&f3~=~GF]r-FC6$%&f4~=~GF_r>8--T#6$FiqFcs@$50&FdvF]pF_q0&Fd v6#FduF_qOF7>Fdv-Ffv6$F[rFcs@$FivOF7>Fdv-Ffv6$F]rFcs@$FivOF7>Fdv-Ffv6$F_rFcs@$F ivOF7OFAF3F36$%(HurwitzGc(Hurwitz$:-16$%*protectedG/%+modulenameG%(controlG M7R0 I%:-32f*6&%%P_inG%"sG%'tol_inG%+verbose_inG6I%"PG%#PnG%#PdG%#MdG%$MMdG%$Md2G%"m G%#UnG%#VnG%"KG%&K_midG%$TwzG%(Twz_midG%%sp_fG%#pnG%#pdG%"uG%"vG%(u_rangeG%(v_r angeG%)uv_rangeG%&u_midG%&v_midG%(m_rangeG%"SG%"cG%"TG%"nG%%n_pnG%"iG%"jG%)h2_r angeG%*h2_range2G%'h2_achG%(h2_ach2G%$tolG%'tol_spG%$outG%(verboseG6"FQC\p>8J%& falseG@$3/9#""%09'FUC$>FT%%trueG-%&printG6#%5h2_syn:~verbose~modeG@$2FY""#YQ6no t~enough~parametersFQ@$4-%%typeG6$9%%'symbolGYQ2s~is~not~a~symbolFQ@$4-Ffo6$9$- %(ratpolyG6$%(numericGFhoY6$%MP~should~be~a~rational~transfer~function~in~GFho> 8G#""""&++"@$31""$FY-Ffo6$9&Fdp>Fip-%(convertG6%Fcq%)rationalG%&exactG@$FT-F[o6 $%'tol~=~GFip>8$-%'normalG6#-Ffq6%F`pFhqFiq>8%-%&numerG6#F_r>8&-%&denomGFir>8?- %'degreeG6$F[sFho>8@-Fas6$FfrFho@$1F_sFdsYQDthe~plant~should~be~strictly~proper FQ>Ffr*&FfrF[q-%'lcoeffGFbs!"">F[s*&F[sF[qF]tF_t@$FT-F[o6*%&Pn~=~GFfr%&Pd~=~GF[ s%%n~=~GF_s%(n_pn~=~GFds-F[o6#%Qcalculating~the~normalised~coprime~factorisatio nG>8(-%%sortG6$-%(collectG6$-%'expandG6#,&*&-%%subsG6$/Fho,$FhoF_tFfrF[qFfrF[qF [q*&-Fju6$F\vF[sF[qF[sF[qF[qFhoFho@$FT-F[o6$%'MMd~=~GF]u>81-T#6&F]uFho8*FT@$FT- F[o6$%(sp_f~=~G-%&evalfG6#Ffv>837">82Fdw?(8A""!F[qF_sFin>Fcw7$-%#opG6#Fcw-%&coe ffG6%F[sFhoFhw?(FhwFiwF[qFdsFin>Ffw7$-F]x6#Ffw-F`x6%FfrFhoFhw@$FT-F[o6&%&pn~=~G Ffw%&pd~=~GFcw>8<-%'matrixG6%,$F_sF`oFcyFiw?(FhwF[qF[qF_sFinC$?(8BFiwF[qF_sFin> &F_y6$,&FhwF[qFgyF[qFhw&Fcw6#,&FgyF[qF[qF[q?(FgyFiwF[qFdsFin>&F_y6$F[z,&FhwF[qF _sF[q,$&FfwF]zF_t>8)-F_u6$-Fbu6$-Feu6#*&&Ffv6#F[qF[qF_[lF[qFhoFho>8=-Fay6$FcyF[ q?(FhwFiwF[q,&F_sF`oF_tF[qFin>&Fb[l6$,&FhwF[qF[qF[qF[q-F`x6%FgzFhoFhw?(FhwF[qF[ qF_sFin>&Fb[l6$FczF[q,&F_\lF[q&Fcw6#FhwF_t@$FT-F[o6&%%S~=~GF_y%%c~=~GFb[l>8>-%& evalmG6#-%&arrayG6%;F[qFcyFa]l%)identityG?(FhwF[qF[qF_sFin>&Fj\l6$,(F_sF[qFhwF[ qF_tF[qFcy,$Fb\lF_t>F_y-F\]l6#-%#&*G6$Fj\lF_y>Fb[l-F\]l6#-F]^l6$Fj\lFb[l?(FhwF[ qF[q,&F_sF[qF_tF[qFinC%>Fj\l-_%'linalgG%%diagG6$-_Fj^l%*submatrixG6%Fj\l;F`oFcy Fa_l-Fay6#7#7#F[q>F_yFj]l>Fb[lF`^l@$FT-F[o6&%,S(final)~=~GF_y%,c(final)~=~GFb[l >84-F\]l6#-F]^l6$-_Fj^l%(inverseG6#-F^_l6%F_y;F[qF_s;,&F_sF[qF[qF[qFcy-F^_l6%Fb [lFi`l;F[qF[q>85-F\]l6#,&-F^_l6%Fb[lFj`lF^alF[q-F]^l6$-F^_l6%F_yFj`lFj`lF^`lF_t @$FT-F[o6&%%u~=~GF^`l%%v~=~GF`al>8+Fiw>8,Fiw?(FhwFiwF[qFe^lFinC$>F`bl,&*&&F^`lF i[lF[q)FhoFhwF[qF[qF`blF[q>Fbbl,&*&&F`alFi[lF[qFiblF[qF[qFbblF[q>Fbbl,&)FhoF_sF [qFbblF[q>8-*&F`blF[qFbblF_t@$FT-F[o6$%%K~=~GFbcl>8/-%)simplifyG6#-F\]l6#*&,&F[ qF[q*&F_rF[qFbclF[qF_tF_t-Fay6#7$7$F_rFadl7$FadlFbclF[q-F[o6#%5calculating~h2_r angeG>8C,(-%$mapG6$f*6#%"xGFQ6$%)operatorG%&arrowGFQ*$F`pF`oFQFQFQ-T%6%&Ficl6$F [qF[qFho&Ffv6#F`oF[q-F^el6$f*FaelFQFcelFQFfelFQFQFQ-Fhel6%&Ficl6$F[qF`oFhoF\flF `o-F^el6$f*FaelFQFcelFQFfelFQFQFQ-Fhel6%&Ficl6$F`oF`oFhoF\flF[q>F[el-F^el6$%%sq rtGF[el@$FT-F[o6$%,h2_range~=~G-F`w6$F[el"#I-F[o6#%Ycalculating~ranges~of~coeff icients~of~optimal~controllerG>86-T'6$F^`lF\fl>87-F]hl6$F`alF\fl@$FT-F[o6&%+u_r ange~=~G-F^el6$F`wF[hl%+v_range~=~G-F^el6$F`wF`hl-F[o6#%jncalculating~middle~va lues~of~coefficients~of~optimal~controllerG-F[o6#%<(finding~middle~controller)G >89-F^el6$f*FaelFQFcelFQ,&&F`pF`[l#F[qF`o&F`pF]flFiilFQFQFQF[hl>8:-F^el6$f*Fael FQFcelFQFgilFQFQFQF`hl@$FT-F[o6&%)u_mid~=~G-F^el6$F`wFcil%)v_mid~=~G-F^el6$F`wF \jl>F`blFiw>FbblFiw?(FhwFiwF[qFe^lFinC$>F`bl,&*&&FcilFi[lF[qFiblF[qF[qF`blF[q>F bbl,&*&&F\jlFi[lF[qFiblF[qF[qFbblF[q>FbblF_cl>8.Fccl@$FT-F[o6$%)K_mid~=~G-F`w6# Fg[m-F[o6#%Ocalculating~H2~norm~middle~controller~achievesG>80-F[dl6#-F\]l6#*&, &F[qF[q*&F_rF[qFg[mF[qF_tF_t-Fay6#7$7$F_rFi\m7$Fi\mFg[mF[q>8E-T)6$Fb\mFho@$FT-F [o6$%*h2_ach~=~G-F`w6$F`]mFfgl>8D7$-F]x6$F[q-T+6$&F[elF`[l,$Fip#F[q"$+"-F]x6$F` o-F`^m6$&F[elF]flFc^m>8F-F`^m6$F`]mFc^m>8;F\fl@$2Fip,&-%$maxG6$&F\_mF]fl&F[^mF] flF[q&F[^mF`[lF_t-F[o6#%2tightening~rangesG?(FQF[qF[qFQFb_mC?>8H)"#5-%&floorG6# -%&log10G6#-Fe_m6#-F]x6#-F^el6$f*FaelFQFcelFQ,&&F`p6#F`qF[qFjilF_tFQFQFQF`_m>F` `m*&F``mF[q)Fb`m-%%ceilG6#-Fg`m6#*&Fc_mF[qFipF_tF_t@$FT-F[o6&%.improving~--~G-F `w6#Fc_m%*tol_sp~=~G-F`w6#F``m>F`_m-T-6'&FfvFbamF`_mFinF``mFT-F[o6#%>calculatin g~improved~h2_rangeG>F[el,(-F^el6$f*FaelFQFcelFQFfelFQFQFQ-Fhel6%FjelFhoF`_mF[q -F^el6$f*FaelFQFcelFQFfelFQFQFQ-Fhel6%FcflFhoF`_mF`o-F^el6$f*FaelFQFcelFQFfelFQ FQFQ-Fhel6%FjflFhoF`_mF[q>F[elF]gl@$FTFagl-F[o6#%\ocalculating~improved~ranges~ of~coefficients~of~optimal~controllerG>F[hl-F]hl6$F^`lF`_m>F`hl-F]hl6$F`alF`_m@ $FTFdhl-F[o6#%cocalculating~middle~values~of~improved~coefficients~of~optimal~c ontrollerGF_il>Fcil-F^el6$f*FaelFQFcelFQFgilFQFQFQF[hl>F\jl-F^el6$f*FaelFQFcelF QFgilFQFQFQF`hl@$FTFajl>F`blFiw>FbblFiw?(FhwFiwF[qFe^lFinC$>F`blF^[m>FbblFb[m>F bblF_cl>Fg[mFccl@$FTFi[m-F[o6#%Xcalculating~H2~norm~improved~middle~controller~ achievesG>Fb\mFc\m>F`]mFa]m@$FTFe]m>F[^mF\^m>F\_mF]_m-F[o6)%5h2_syn~--~final~ga p~GF`bm%((tol~=~G-F`w6#Fip%4width~of~m_range~=~G-F`w6#-Fe_m6#-F]x6#-F^el6$f*Fae lFQFcelFQF`amFQFQFQF`_m%")GO7'Fg[mF[elF`]mF[^mF\_mFQFQ6.%*spec_factGc*spec_fact %:-28%+h2norm_intGc+h2norm_int%:-33%2find_inter_matrixGc2find_inter_matrix%:-13 %*h2norm_TMGc*h2norm_TM$:-5%+sqrt_rangeGc+sqrt_range%:-34%0check_spec_factGc0ch eck_spec_fact%:-256$%*protectedG/%+modulenameG%(controlG M7R0 I%:-33f*6&%'sys_inG%"sG%"vG%+verbose_inG65%$sysG%"nG%"lG%$numG%$denG%$n_LG%"AG% "BG%"CG%#LoG%#LvG%%varsG%"QG%"XG%"YG%&Y_intG%*Y_inv_intG%(verboseG%%st_tG6"F=CB >85%&falseG@$3/9#""%09'FAC$>F@%%trueG-%&printG6#%9h2norm_int:~verbose~modeG@$2F E""$YQ6not~enough~parametersF=@$4-%%typeG6$9%%'symbolGYQ2s~is~not~a~symbolF=@$4 -FX6$9$-%(ratpolyG6$%)anythingGFZYQGsys~should~be~a~system~transfer~matrixF=@$4 -FX6$9&%%listGYQIv~is~not~a~list~of~variables~with~rangesF=>8$-%(convertG6%F\o% )rationalG%&exactG@$0-%&limitG6$F\p/FZ%)infinityG""!YQBthe~system~is~not~strict ly~properF=>8(-%&denomG6#F\p>8'*&-%&numerGF`q"""-%'lcoeffG6$F]qFZ!"">F]q*&F]qFf qFgqFjq>8%-%'degreeGFiq@$/F^rFipO7$FipFip>8*-%'matrixG6%F^rF^rFip>8+-Fhr6%F^rFf qFip>8,-Fhr6%FfqF^rFip?(8&FfqFfqF^rFKC%>&Ffr6$FfqFcs,$-%&coeffG6%F]qFZ,&F^rFfqF csFjqFjq@$2FcsF^r>&Ffr6$,&FcsFfqFfqFfqFcsFfq>&F_sFgs-Fjs6%FbqFZF\t>&F[s6$FfqFfq Ffq@$F@-FM6(%%A~=~GFfr%%B~=~GF[s%%C~=~GF_s>8--%&arrayG6%%*symmetricG;FfqF^rFfu> 8/7$&FauFit-%#opG6#-F^p6$-%&minusG6$-F^p6$-%&evalmG6#Fau%$setG<#FjuFho>8),$*&F^ rFfq,&F^rFfqFfqFfqFfq#Ffq""#>81-Ffv6#,(-%#&*G6$-_%'linalgG%*transposeG6#FfrFauF fq-Fgw6$FauFfrFfq-Fgw6$-Fjw6#F_sF_sFfq>80-F^p6$-F^p6$FbwFhvFho>82-T#6$FexFhu@$F @-FM6$%%Y~=~GF[y>83-T%6%F[yFgoF@@$F@-FM6$%)Y_int~=~G-%$mapG6$%&evalfGFdy>84-T'6 $-_F[x%*submatrixG6%Fdy;FfqF[wFizF@@$F@-FM6$%-Y_inv_int~=~G-F]z6$F_zFaz>8.-T)6$ Faz-Ffz6%FdyFiz;,&F[wFfqFfqFfqFh[lO-F]z6$%%sqrtG&Fa[lFitF=F=6*%(LmatrixGc(Lmatr ix%:-31%2find_inter_matrixGc2find_inter_matrix%:-13%5inter_matrix_inverseGc5int er_matrix_inverse%:-19%5inter_matrices_multiGc5inter_matrices_multi%:-176$%*pro tectedG/%+modulenameG%(controlG M7R0 I%:-16f*6$%%A_inG%%B_inG6'%"CG%"mG%"nG%"iG%"jG6"F-C-@$29#""#YQ6not~enough~param etersF-@$4-%%typeG6$9$-.%'matrixG6#-%%listG6#%(numericGYQBmatrix~A~is~not~a~mat rix~of~listsF-@$0-%(convertG6$-%$mapG6$%%nopsGF:%$setG<#F2YQZthe~number~of~elem ents~in~each~list~should~be~2:~matrix~AF-@$4-F86$9%F;YQBmatrix~B~is~not~a~matri x~of~listsF-@$0-FH6$-FK6$FMFVFNFOYQZthe~number~of~elements~in~each~list~should~ be~2:~matrix~BF->8%-_%'linalgG%'rowdimG6#F:>8&-_F_o%'coldimGFao@$50-F^o6#FVF\o0 -FeoF[pFcoYQ?incompatible~matrices:~A~and~BF->8$-%&arrayG6$;"""F\o;FfpFco?(8'Ff pFfpF\o%%trueG?(8(FfpFfpFcoFjp>&Fap6$FipF\q,&&F:F_qFfp&FVF_qFfpO-%#opG6#FapF-F- F-6$%*protectedG/%+modulenameG%(controlG M7R0 I%:-11f*6,%&A1_inG%&B1_inG%&C1_inG%&D1_inG%&A2_inG%&B2_inG%&C2_inG%&D2_inG%)g_t ol_inG%+verbose_inG6in%)n1_stateG%&n1_inG%'n1_outG%)n2_stateG%&n2_inG%'n2_outG% #A1G%#B1G%#C1G%#D1G%#A2G%#B2G%#C2G%#D2G%%A2_sG%%B2_sG%%C2_sG%%D2_sG%"AG%"BG%"CG %"DG%$A_sG%$B_sG%$C_sG%$D_sG%#GAG%#GBG%#GCG%#GDG%"GG%%cp_AG%$H_AG%'IP1_s2G%+num _IP1_s2G%+den_IP1_s2G%-H_num_IP1_s2G%-H_den_IP1_s2G%'H_cp_1G%'H_cp_2G%(CinvABDG %"dG%$g_0G%&g_infG%(g_lowerG%&g_tmpG%&g_maxG%"gG%'g_candG%'nu_minG%'nu_maxG%'nu _midG%"WG%"YG%"RG%"HG%"pG%#f1G%"xG%&g_tolG%(verboseG6"FgoCdp>8jn%&falseG@$3/9#" #509-F[pC$>Fjo%%trueG-%&printG6#%4nugap:~verbose~modeG-Fgp6#%3checking~argument sG@$2F_p"")YQ6not~enough~parametersFgo@$34-%%typeG6$9$-.%'matrixG6#%(numericG0F hq7"YQKthe~matrix~must~be~a~real~matrix~or~[]:~A1Fgo@$34-Ffq6$9%Fiq0FgrF_rYQKth e~matrix~must~be~a~real~matrix~or~[]:~B1Fgo@$34-Ffq6$9&Fiq0F`sF_rYQKthe~matrix~ must~be~a~real~matrix~or~[]:~C1Fgo@$334-Ffq6$9'Fiq0FjsF_r0Fjs""!YQNthe~matrix~m ust~be~a~real~matrix,~[]~or~0:~D1Fgo@$34-Ffq6$9(Fiq0FetF_rYQKthe~matrix~must~be ~a~real~matrix~or~[]:~A2Fgo@$34-Ffq6$9)Fiq0F^uF_rYQKthe~matrix~must~be~a~real~m atrix~or~[]:~B2Fgo@$34-Ffq6$9*Fiq0FguF_rYQKthe~matrix~must~be~a~real~matrix~or~ []:~C2Fgo@$334-Ffq6$9+Fiq0FavF_r0FavF]tYQNthe~matrix~must~be~a~real~matrix,~[]~ or~0:~D2Fgo-Fgp6#%@checking~dimensions~of~matricesG@%33/FhqF_r/FgrF_r/F`sF_r@%5 /FjsF_r/FjsF]tYQ8all~the~matrices~are~[]FgoC%>8$F]t>8%-_%'linalgG%'coldimG6#Fjs >8&-_F\x%'rowdimGF^xC)@$55F\wF]wF^wYQXincompatible~matrices:~A1,~B1~and~C1:~one ~of~them~is~[]Fgo>Fgw-F[x6#Fhq>Fiw-F[x6#Fgr>F`x-Fbx6#F`s@$Fjo-Fgp6(%,n1_state~= ~GFgw%+,~n1_in~=~GFiw%,,~n1_out~=~GF`x@%F`w>8--F[r6%F`xFiwF]t>F[zFjs@$55550Fgw- FbxF\y0Fgw-FbxF_y0Fgw-F[xFby0Fiw-F[x6#F[z0F`x-FbxF\[lYQIincompatible~matrices:~ A1,~B1,~C1~and~D1Fgo@%33/FetF_r/F^uF_r/FguF_r@%5/FavF_r/FavF]tYFdwC%>8'F]t>8(-F [x6#Fav>8)-FbxFb\lC)@$55Fd[lFe[lFf[lYQXincompatible~matrices:~A2,~B2~and~C2:~on e~of~them~is~[]Fgo>F^\l-F[x6#Fet>F`\l-F[x6#F^u>Fd\l-Fbx6#Fgu@$Fjo-Fgp6(%,n2_sta te~=~GF^\l%+,~n2_in~=~GF`\l%,,~n2_out~=~GFd\l@%Fh[l>81-F[r6%Fd\lF`\lF]t>F]^lFav @$55550F^\l-FbxF^]l0F^\l-FbxFa]l0F^\l-F[xFd]l0F`\l-F[x6#F]^l0Fd\l-FbxF^_lYQIinc ompatible~matrices:~A2,~B2,~C2~and~D2Fgo@$50FiwF`\l0F`xFd\lYQAincompatible~inpu t/output~numberFgo>8*-%$mapG6&%(convertGFhq%)rationalG%&exactG>8+-F\`l6&F^`lFgr F_`lF``l>8,-F\`l6&F^`lF`sF_`lF``l>F[z-F\`l6&F^`lF[zF_`lF``l>8.-F\`l6&F^`lFetF_` lF``l>8/-F\`l6&F^`lF^uF_`lF``l>80-F\`l6&F^`lFguF_`lF``l>F]^l-F\`l6&F^`lF]^lF_`l F``l>8in#""""&++"@$31""*F_p-Ffq6$9,F]r>F\bl-F^`l6%FfblF_`lF``l@$Fjo-Fgp6$%)g_to l~=~GF\bl-Fgp6#%Bchecking~winding~number~conditionG>82-_F\x%+htransposeG6#F]al> 83-Fdcl6#Faal>84-Fdcl6#Feal>85-FdclF^_l>8X-_F\x%(inverseG6#,&-%#&*GFgoF^bl-Fjdl 6$F`dlF[zF^bl>8Y-Fedl6#,&FidlF^bl-Fjdl6$F[zF`dlF^bl>86-_F\x%,stackmatrixG6$-_F\ x%(augmentG6$,&Fbcl!""-Fjdl6$-Fjdl6$-Fjdl6$F\dlF[zFcdlFhclF^bl-Fjdl6$-Fjdl6$F\d lF^elFf`l-F[fl6$-Fjdl6$-Fjdl6$Fb`lFcdlFhcl,&Fj_lF^bl-Fjdl6$-Fjdl6$-Fjdl6$Fb`lF` dlF^elFf`lF_fl@$Fjo-Fgp6$%%A~=~GFeel>8C-_F\x%)charpolyG6$Feel%"sG@$Fjo-Fgp6$%(c p_A~=~GF\hl>8D-T#6$F\hlFahl@$Fjo-Fgp6(%'H_A~=~GFghl%?~--~the~second~one~should~ be~0G%P~and~the~third~one~should~be~equal~to~n1_state(GFgw%")G@$0&Fghl6#""#F]tC $@$Fjo-Fgp6#%FWinding~number~condition~violated~(1)GO7$F^blF^bl@$0&Fghl6#""$Fgw C$@$Fjo-Fgp6#%FWinding~number~condition~violated~(2)GOF]jl@$Fjo-Fgp6#%CWinding~ number~condition~satisfiedG-Fgp6#%9constructing~realisationG>Feel-Fgel6$-F[fl6$ ,&Fj_lF^bl-Fjdl6$-Fjdl6$F^glF`dlFf`lF_flF\gl-F[fl6$FfflF^fl>87-Fgel6$-F[fl6$Fh[ mF^gl-F[fl6$,$FhflF_flFbfl>88-Fgel6$-F[fl6$-Fjdl6$F^elFf`l-Fjdl6$-Fjdl6$F[zFcdl Fhcl-F[fl6$,$-Fjdl6$-Fjdl6$FcdlF`dlFf`lF_fl-Fjdl6$FcdlFhcl>89-Fgel6$-F[fl6$-Fjd l6$F_]mF`dlF_]m-F[fl6$Ff]mFcdl>8:-_F\x%*transposeG6#Feel>8;-Fg^m6#F]\m>8<-Fg^m6 #Ff\m>8=-Fg^m6#F[^m@$FjoC&Fhgl-Fgp6$%%B~=~GF]\m-Fgp6$%%C~=~GFf\m-Fgp6$%%D~=~GF[ ^m-Fgp6#%=calculation~of~infinity~normG-Fgp6#%8calculating~lower~boundG>8L-%&ev almG6#,&-Fjdl6$-Fjdl6$Ff\m,$*$FeelF_flF_flF]\mF^blF[^mF^bl>8N-_F\x%%normG6$Fh`m Ffil@%-Ffq6$*$FdamFfilF]r>Fdam7$FdamFdamC%>Fdam-%)realrootG6$-_F\x%$detG6#,&*&8 SFfilFidlF^blF^bl-Fjdl6$-Fg^m6#Fh`mFh`mF_flF\bl>Fdam-T%6#-F\`l6$f*6#FdoFgo6$%)o peratorG%&arrowGFgo@%1F]t&Fhq6#F^blFhq%%NULLGFgoFgoFgoFdam>Fdam-%#opG6$F^blFdam >8O-Ffam6$F[^mFfil@%-Ffq6$*$FddmFfilF]r>Fddm7$FddmFddmC%>FddmFabm>Fddm-Facm6#-F \`l6$f*FfcmFgoFgcmFgo@%F[dmFhqF^dmFgoFgoFgoFddm>Fddm-Fadm6$F^blFddm>8P-F\`l6$%% sqrtG7$-%$maxG6$*$&FdamF]dmFfil*$&FddmF]dmFfil-F`fm6$*$&FdamFeilFfil*$&FddmFeil Ffil@$Fjo-Fgp6(%'g_0~=~GFdam%)g_inf~=~GFddm%+g_lower~=~GFjem-Fgp6#%?calculating ~Hamiltonian~matrixG>8Z-Fj`m6#,&FibmF^bl-Fjdl6$Fc_mF[^mF_fl>8en-Fgel6$-F[fl6$,& FeelF^bl-Fjdl6$-Fjdl6$-Fjdl6$F]\m*$FfgmF_flFc_mFf\mF^bl-Fjdl6$FghmF[_m-F[fl6$,$ -Fjdl6$-Fjdl6$F__m,&FidlF^bl-Fjdl6$-Fjdl6$F[^mFihmFc_mF^blFf\mF_fl,$-Fg^m6#Fbhm F_fl@$Fjo-Fgp6$%%H~=~GF]hm-Fgp6#%fncalculating~characteristic~polynomial~of~Ham iltonian~matrixG>8fn-%%sortG6$-%(collectG6$-F^hl6$F]hmFahlFahlFahl@$Fjo-Fgp6$%C characteristic~polynomial~of~H~is~GFcjm-Fgp6#%.normalising~pG>Fcjm-F\`l6$%'norm alGFcjm>8gn-Fhjm6$-%%subsG6$/Fahl-F]fm6#8hnFcjmFa\n@%0&FjemF]dm&FjemFeil>8RFe\n @%-Ffq6$Fd\nF_`l>Fg\n,&Fd\nF^blF\blF^bl>Fg\n*&Fd\nF^bl,&F^blF^bl*&F\blF^bl)F`p- %%ceilG6#-%&log10G6#Fd\nF_flF^blF^bl@$4-T'6,Fh[nFa\nFjbmFg\nFdamFddmFjemFh`mF[^ mFjoC%>8U-F]fm6#,&F^blF^bl*$Fd\n!"#F_fl>8V-F]fm6#,&F^blF^bl*$Fg\nFd^nF_flO7$F_^ nFf^n>8T-T)6'Fh[nFa\nFjbmF\blFjo@$Fjo-Fgp6'%7candidates~in~nugap~=~G-F\`l6$f*Ff cmFgoFgcmFgo-F]fm6#,&F^blF^bl*$F\dmFd^nF_flFgoFgoFgoF^_n%"(G-%&evalfG6#-F\`l6$f *FfcmFgoFgcmFgoFi_nFgoFgoFgoF^_nFail?&8QF^_n4-F[^n6,Fh[nFa\nFjbm&Fe`nF]dmFdamFd dmFjemFh`mF[^mFjo@$Fjo-Fgp6&%,g_tmp[1]~=~GFi`n%B~is~larger~than~the~infinity~no rmG%/hence~continueG@$Fjo-Fgp6%F]anFi`n%O~is~smaller~than~or~equal~to~the~infin ity~normG>F_^n-F]fm6#,&F^blF^bl*$Fi`nFd^nF_fl@%0Fi`n&Fe`nFeil>Fg\nF[bn@%-Ffq6$F i`nF_`l>Fg\n,&Fi`nF^blF\blF^bl>Fg\n*&Fi`nF^bl,&F^blF^bl*&F\blF^bl)F`p-Fc]n6#-Ff ]n6#Fi`nF_flF^blF^bl>Ff^nFg^n@$FjoC%-Fgp6'%*nu_min~=~GF_^nF]`n-F_`n6#F_^nFail-F gp6'%*nu_max~=~GFf^nF]`n-F_`n6#Ff^nFail-Fgp6'%4g_max~for~nu_max~=~GFg\nF]`n-F_` n6#Fg\nFail@$Fi]n-Fgp6(%6succesfully~found~--~GF\_nF]`n-F_`n6#F\_n%&)~--~G-F_`n 6#,&Ff^nF^blF_^nF_fl-Fgp6#%8start~bi-section~searchG>F_^nF]t>Ff^nF^bl?(FgoF^blF ^blFgo2F\blFfdnC%>8W,&Ff^n#F^blFfilF_^nFben>Fe`n*$-F]fm6#,&F^blF^bl*$F`enFfilF_ flF_fl@%-F[^n6,Fh[nFa\nFjbmFe`nFdamFddmFjemFh`mF[^mFjo>F_^nF`en>Ff^nF`enOF\_nFg oFgo6*%(HurwitzGc(Hurwitz$:-1%+inter_sortGc+inter_sort%:-24%*linfcheckGc*linfch eck$:-7%)linfcandGc)linfcand$:-66$%*protectedG/%+modulenameG%(controlG M7R0 I$:-8f*6(%%A_inG%%B_inG%%C_inG%%D_inG%)g_tol_inG%+verbose_inG6D%"AG%"BG%"CG%"DG %$A_sG%$B_sG%$C_sG%$D_sG%(CinvABDG%"RG%(n_stateG%%n_inG%&n_outG%#cpG%%H_cpG%"xG %"sG%"HG%"pG%#f1G%"gG%&g_tmpG%&g_maxG%(g_min_sG%(g_max_sG%(g_mid_sG%'g_candG%$g _0G%&g_infG%(g_lowerG%&g_tolG%(verboseG%$finG%$outG6"FNC[o>8C%&falseG@$3/9#""'0 9)FRC$>FQ%%trueG-%&printG6#%7linfnorm:~verbose~modeG@$2FV""$YQ6not~enough~param etersFN@$34-%%typeG6$9$-.%'matrixG6#%(numericG0Ffo7"YQJthe~matrix~must~be~a~rea l~matrix~or~[]:~AFN@$34-Fdo6$9%Fgo0FepF]pYQJthe~matrix~must~be~a~real~matrix~or ~[]:~BFN@$34-Fdo6$9&Fgo0F^qF]pYQJthe~matrix~must~be~a~real~matrix~or~[]:~CFN@$3 331""%FV4-Fdo6$9'Fgo0F[rF]p0F[r""!YQMthe~matrix~must~be~a~real~matrix,~[]~or~0: ~DFN@$33/FfoF]p/FepF]p/F^qF]p@%552FVFgq/F[rF]p/F[rF^rYQ8all~the~matrices~are~[] FNC'-Fhn6#%)G(s)~=~DG>8'-%$mapG6&%(convertGF[r%)rationalG%&exactG>8@-_%'linalgG %%normG6$Fds""#@%-Fdo6$*$F\tFbtF[p>F\t7$F\tF\tC%>F\t-%)realrootG6$-_F_t%$detG6# ,&*&88Fbt-%#&*GFN"""Fgu-Ffu6$-_F_t%*transposeG6#8,F^v!""8B>F\t-T#6#-Ffs6$f*6#F; FN6$%)operatorG%&arrowGFN@%1F^r&Ffo6#FguFfo%%NULLGFNFNFNF\t>F\t-%#opG6$FguF\tO7 %&F\tF_w&F\t6#FbtF^r@$55FdrFerFfrYQUimcompatible~matrices:~A,~B~and~C:~one~of~t hem~is~[]FN>8.-_F_t%'coldimG6#Ffo>8/-Fbx6#Fep>80-_F_t%'rowdimG6#F^q@$FQ-Fhn6(%+ n_state~=~GF`x%*,~n_in~=~GFfx%+,~n_out~=~GFjx@%FhrC$>Fds-Fio6%FjxFfxF^r@$FQ-Fhn 6$%.D(created)~=~GFds>FdsF[r@$55550F`x-F\yFdx0F`x-F\yFhx0F`x-FbxF^y0Ffx-Fbx6#Fd s0Fjx-F\yF\[lYQEimcompatible~matrices:~A,~B,~C~and~DFN>F`v#Fgu"&++"@$31""&FV-Fd o6$9(F[p>F`v-Fhs6%Fj[lFisFjs@$FQ-Fhn6$%)g_tol~=~GF`v>8$-Ffs6&FhsFfoFisFjs>8%-Ff s6&FhsFepFisFjs>8&-Ffs6&FhsF^qFisFjs>Fds-Ffs6&FhsFdsFisFjs>8(-F[v6#Fc\l>8)-F[v6 #Fg\l>8*-F[v6#F[]l>8+-F[vF\[l@$FQ-Fhn6*%/A(modified)~=~GFc\l%/B(modified)~=~GFg \l%/C(modified)~=~GF[]l%/D(modified)~=~GFds>81-%%sortG6$-%(collectG6$-_F_t%)cha rpolyG6$Fc\l84Fc_lFc_l@$FQ-Fhn6$%Ccharacteristic~polynomial~of~A~is~GFh^l>82-T% 6$Fh^lFc_l@$0&Fi_lFiwF^rYQinthe~system(the~matrix~A)~has~eigenvalues~on~the~ima ginary~axisFN@%/&Fi_l6#F]oF^r@$FQ-Fhn6#%5the~system~is~stableG-Fhn6#%9the~syste m~is~not~stableG>F^v-%&evalmG6#,&-Ffu6$-Ffu6$F[]l,$*$Fc\lF_vF_vFg\lFguFdsFgu>8? -F^t6$F^vFbt@%-Fdo6$*$FialFbtF[p>Fial7$FialFialC%>FialF[u>Fial-Fcv6#-Ffs6$f*Fhv FNFivFN@%F]wFfoF`wFNFNFNFial>Fial-Fcw6$FguFial>F\tF]t@%Fdt>F\tFhtC%>F\t-F\u6$-F _u6#,&FcuFgu-Ffu6$F_^lFdsF_vF`v>F\t-Fcv6#-Ffs6$f*FhvFNFivFN@%F]wFfoF`wFNFNFNF\t >F\tFbw>8A-Ffs6$%%sqrtG7$-%$maxG6$*$&FialF_wFbt*$FgwFbt-Fidl6$*$&FialFiwFbt*$Fh wFbt@$FQ-Fhn6(%'g_0~=~GFial%)g_inf~=~GF\t%+g_lower~=~GFcdl>8--F_al6#,&FcuFgu-Ff u6$F^^lFdsF_v>85-_F_t%,stackmatrixG6$-_F_t%(augmentG6$,&Fc\lFgu-Ffu6$-Ffu6$-Ffu 6$Fg\l*$FjelF_vF^^lF[]lFgu-Ffu6$F_glFf]l-Fgfl6$,$-Ffu6$-Ffu6$Fj]l,&FeuFgu-Ffu6$ -Ffu6$FdsFaglF^^lFguF[]lF_v,$-F[v6#FjflF_v@$FQ-Fhn6$%%H~=~GFafl@$FQ-Fhn6#%Ocalc ulating~the~characteristic~polynomial~of~HG>86-Fj^l6$-F]_l6$-F`_l6$FaflFc_lFc_l Fc_l@$FQ-Fhn6#%.normalising~pG>F\il-Ffs6$%'normalGF\il@$FQ-Fhn6$%Ccharacteristi c~polynomial~of~H~is~GF\il>87-F]_l6$-%%subsG6$/Fc_l-Ffdl6#83F\ilFijl@%0&FcdlF_w &FcdlFiw>8:F][m@%-Fdo6$F\[mFis>F_[m,&F\[mFguF`vFgu>F_[m*&F\[mFgu,&FguFgu*&F`vFg u)"#5-%%ceilG6#-%&log10G6#F\[mF_vFguFgu@$4-T'6,F`jlFijlFduF_[mFialF\tFcdlF^vFds FQC$>8E-Fd\m6-F`jlFijlFduF\[mFialF\tFcdlF^vFdsFQ8DO7%F\[mF_[m&Fh\mFiw>8;F_[m>8> -T)6'F`jlFijlFduF`vFQ?&89Fb]m4-Fd\m6,F`jlFijlFdu&Fg]mF_wFialF\tFcdlF^vFdsFQ@$FQ -Fhn6&%,g_tmp[1]~=~GF[^m%B~is~larger~than~the~infinity~normG%/hence~continueG@$ FQ-Fhn6%F_^mF[^m%O~is~smaller~than~or~equal~to~the~infinity~normG@%0F[^m&Fg]mFi w>F_[mFh^m@%-Fdo6$F[^mFis>F_[m,&F[^mFguF`vFgu>F_[m*&F[^mFgu,&FguFgu*&F`vFgu)Fj[ m-F\\m6#-F_\m6#F[^mF_vFguFgu@$Fb\mC$>Fh\m-Fd\m6-F`jlFijlFduF[^mFialF\tFcdlF^vFd sFQF[]mO7%F[^mF_[mF^]m>F`]m-Ffdl6#-Fidl6$*$F`]mFbt*$F_[mFbt@%/F`]mF^r>8F `]m*&-%&floorG6#*&F`]mFgu)Fj[m-F^am6#-F_\m6#F`]mF_vFguFaamFgu>Fi`m,$F`]mFbt?(FN FguFguFN-Fd\m6,F`jlFijlFduFi`mFialF\tFcdlF^vFdsFQC$>F`]mFi`m>Fi`m,$Fi`mFbt@$FQ- Fhn6&%Kbi-section~search~--~start~with~g_min_s~=~GF`]m%-,~g_max_s~=~GFi`m?(FNFg uFguFN2F`v,&Fi`mFguF`]mF_vC$>8=,&Fi`m#FguFbtF`]mF[cm@%-Fd\m6,F`jlFijlFduFibmFia lF\tFcdlF^vFdsFQ>F`]mFibm>Fi`mFibm>Fh\m-Fd\m6-F`jlFijlFduF`]mFialF\tFcdlF^vFdsF QF[]mO7%F`]mFi`mF^]mFNFN6*%+inter_sortGc+inter_sort%:-24%(HurwitzGc(Hurwitz$:-1 %*linfcheckGc*linfcheck$:-7%)linfcandGc)linfcand$:-66$%*protectedG/%+modulename G%(controlG M7R0 I%:-19f*6$%%A_inG%+verbose_inG63%"AG%#ArG%"BG%"EG%#PmG%#SmG%#IIG%%keseG%"kG%"mG %"nG%%E_n1G%$w_EG%$rhoG%(verboseG%%st_tG%$outG6"F9C=>82%&falseG@$3/9#""#09%F=C$ >F<%%trueG-%&printG6#%Cinter_matrix_inverse:~verbose~modeG@$2FA"""YQ6not~enough ~parametersF9@$4-%%typeG6$9$-.%'matrixG6$-%%listG6#%(numericG%'squareGYQBmatrix ~A~is~not~a~matrix~of~listsF9@$0-%(convertG6$-%$mapG6$%%nopsGFV%$setG<#FBYQZthe ~number~of~elements~in~each~list~should~be~2:~matrix~AF9>8$-Fbo6&F_oFV%)rationa lG%&exactG@$/-T#6#Fjo""!C$@$F<-FI6#%Kinter_matrix_inverse:~thin~matrix~detected GO-T'6#-_%'linalgG%(inverseG6#-T%Fcp>8.-_F`q%'rowdimGFcp>8*-F\q6#-%&evalmG6#-%& arrayG6%;FNFfqFdr%)identityG>8%Fcq>8&-F\q6#-Fbo6%F_o-F_q6#-Fbo6$%&evalfGFgrF]p@ $F<-FI6&%&Ar~=~GF`s%%B~=~G-Fbo6$FbsFir>8'-T+6$F[r-T)6$FjoFir>8/-T-6#F[t>80-FbpF ft@$F8--%%ceilG6#,&*&,&-%&log10G6#*&FhtFN, &FNFNFctF`vFNFNF_vF`vFN-F`wFfuF`vFNF`vFN>81*&)Fct,&FhvFNFNFNFNFcwF`v>8(-FY6%Ffq FfqFdp>F[x-Fbo6$f*6#%"xGF96$%)operatorG%&arrowGF97$,$FbpF`vFbpF9F96$F5FfwF[x@$F <-FI6+%%m~=~GFhv%'rho~=~GFfwFdu-Fbs6#FfwFgu%&Pm~=~G-Fbo6$FbsF[x>8)F[r?(8,FNFNFh vFG>Fey-T/6$-F`t6$F[tFeyF[r@$F<-FI6'%&Sm~=~G-Fbo6$FbsFeyFdu-Fbs6#-Fbp6#FeyFgu>8 4-F`t6$Fir-Fjy6$FeyF[xO-%%evalG6#FizF9F960%3inter_matrix_widthGc3inter_matrix_w idth%:-22%1inter_matrix_midGc1inter_matrix_mid%:-20%&interGc&inter%:-15%5inter_ matrices_multiGc5inter_matrices_multi%:-17%3inter_matrices_subGc3inter_matrices _sub%:-18%3inter_matrix_norm1Gc3inter_matrix_norm1%:-21%3inter_matrices_addGc3i nter_matrices_add%:-166$%*protectedG/%+modulenameG%(controlG M7R0 I%:-10f*6$%&g1_inG%%D_inG6&%"fG%"gG%#g1G%"DG6"F,C)@$29#""#YQ6not~enough~paramet ersF,@$4-%%typeG6$9$%(numericGYQ5g1~should~be~numericF,@$4-F76$9%-.%'matrixG6#F :YQ?the~matrix~D~should~be~numericF,>8&-%(convertG6%F9%)rationalG%&exactG>8'-%$ mapG6&FKFAFMFN>8$-_%'linalgG%$detG6#,&*&8%"""-%#&*GF,FhnFhn-Fjn6$-_FX%*transpos eG6#FPFP!""O-%&evalbG6#/-%&sturmG6&FUFgn*$FIF1%)infinityG""!F,F,F,6$%*protected G/%+modulenameG%(controlG M7R0 I%:-25f*6'%%f_inG%(vars_inG%+improve_inG%'tol_inG%+verbose_inG6;%"nG%"kG%"lG%"r G%&r_newG%%varsG%&v_midG%$outG%&v_tmpG%"fG%#f_G%$f_XG%"XG%"xG%"YG%&Y_newG%#IIG% %IYf_G%)IYf__newG%"KG%#K1G%#K2G%(improveG%$tolG%(verboseG6"FDCN>8<%&falseG@$3/9 #""&09(FHC$>FG%%trueG-%&printG6#%>check_spec_fact:~verbose~modeG@$2FL""#YQ6not~ enough~parametersFD@$4-%%typeG6$9$-%%listG6#-%(polynomG6#%(numericGYQ>f~is~not~ a~list~of~polynomialFD@$4-Fin6$9%F]oYQLvars~is~not~a~list~of~variables~with~ran gesFD@$0-%(convertG6$-%$mapG6$%%nopsGFio%$setG<#""$YQVeach~element~of~vars~shou ld~be~[name,~bound1,~bound2]FD?&8,FioFR@$433-Fin6$&F[q6#"""%'symbolG-Fin6$&F[q6 #FYFbo-Fin6$&F[q6#FgpFboYFip>8:FH@$31FgpFL09&FHC&>F`rFR@$FG-FT6#%>check_spec_fa ct:~improve~modeG@%31""%FL-Fin6$9'Fbo>8;-F_p6%Fbs%)rationalG%&exactG>Fds)"#5,$% 'DigitsG!""@$FG-FT6$%+set~tol~=~GFds>8$-Fdp6#Fio@$0-Fdp6#F[oFdtYQSmismatch~in~t he~numbers~of~variables~and~equationsFD>8)-Fbp6$f*6#F8FD6$%)operatorG%&arrowGFD &F[oFcqFDFDFDFio@$FG-FT6$%,variables~:GF^u>80-%'matrixG6%FdtFdq""!?(8%FdqFdqFdt FR>&F\v6$FbvFdq7$-%$minG6$&&Fio6#FbvFiq&F[wF]r-%$maxGFiv@$FG-FT6$%.width~of~X~= ~G-%&evalfG6#-T#6#F\v>81-T%Fiw@$FG-FT6&%%X~=~G-Few6#-%%evalGFiw%&~x~=~G-Few6#-F ex6#F[x>8*<"?(FbvFdqFdqFdtFR>F\y-%&unionG6$F\y<#/&F^uF\w&F[xFev@$FG-FT6$%)v_mid ~=~GF\y>8-F]v>8.-F^v6%FdtFdtF`v?(FbvFdqFdqFdtFRC$>&F\zFev&F[oF\w?(8&FdqFdqFdtFR >&F^z6$FbvFgz-%%diffG6$Fez&F^u6#Fgz@$FG-FT6&%%f~=~GF\z%'~f_~=~GF^z>8/-T'6$F^zFi o>82-_%'linalgG%(inverseG6#-F]x6#Ff[l@$FG-FT6$%%Y~=~G-Few6#-Fex6#F[\l>84-T)6#-% &evalmG6#-%&arrayG6%;FdqFdtFf]l%)identityG>85-T-6$F\]l-T+6$-F^]lFj\lFf[l>8'-T/6 #Fi]l@$FG-FT6$%%r~=~G-Few6#Fb^l@$1FdqFb^lYQOintervals~too~big~--~specify~smalle r~intervalsFD>88-F^]l6#-Fa]l6#,&F[xFdq-%#&*G6$F[\l-%%subsG6$F\y-Fex6#F\zF^t>89- F[^l6$F\v-F^]lFjx>87-T16$Fa_l-F^^l6$Fi]lF``l@$FG-FT6$%%K~=~G-Few6#-Fex6#Fe`l?(F bvFdqFdqFdtFR@$52&&Fe`lFevFcq&FdvFcq2&FdvFiq&FhalFiqYQLnew~interval~is~not~incl uded~in~the~old~oneFD>F\vFe`l@$FGFaw@$F`r?(FDFdqFdqFD2FdsFgwC2@$FG-FT6#%0in~imp rove~loopG>F[xF\x>F\yF]y>8+7"?(FbvFdqFdqFdtFRC$>F\yF`y>F\cl7$-%#opG6#F\cl7%FeyF ialF[bl>Ff[l-Fh[l6$F^zF\cl>83-Fbp6%F_p-F]\l6#-FewF`\lFgs>86-F[^l6$F\]l-F^^l6$-F ^]l6#F[dlFf[l>8(-Fd^l6#Fbdl@%1FjdlFb^lC%>F[\lF[dl>Fb^lFjdl>Fi]lFbdl>Fi]lFj]l@$F G-FT6%Fi^lFj^l-Few6#Fjdl>Fa_lFb_l>F``lFa`l>Fe`lFf`l?(FbvFdqFdqFdtFRC$@$2FialFga l>FialFgal@$2F\blF[bl>F[blF\bl@$FGFaw>F\clF]cl?(FbvFdqFdqFdtFR>F\clFbclOF\clFDF D62%3inter_matrix_widthGc3inter_matrix_width%:-22%1inter_matrix_midGc1inter_mat rix_mid%:-20%2find_inter_matrixGc2find_inter_matrix%:-13%&interGc&inter%:-15%5i nter_matrices_multiGc5inter_matrices_multi%:-17%3inter_matrices_subGc3inter_mat rices_sub%:-18%3inter_matrix_norm1Gc3inter_matrix_norm1%:-21%3inter_matrices_ad dGc3inter_matrices_add%:-166$%*protectedG/%+modulenameG%(controlG M7R0 I%:-26f*6#%"xG6$%"wG%$x_rG6"F)C%>8%-%(convertG6%9$%)rationalG%&exactG>8$)"#5,(- %&floorG6#-%&log10G6#-%$absG6#F0"""%'DigitsG!""FAFAO7$,&F,FAF4FC,&F,FAF4FAF)F)F )6$%*protectedG/%+modulenameG%(controlG M7R0 I$:-1f*6%%%f_inG%"zG%+verbose_inG6;%"iG%"kG%"lG%"sG%"pG%"hG%(epsilonG%#ssG%"fG% #F1G%#F2G%#f1G%#f2G%$n_fG%%n_f1G%%n_f2G%$k_fG%%k_f1G%%k_f2G%%s_f1G%$HurG%&det_H G%#ddG%(dd_lastG%(verboseG6"FBCF>8<%&falseG@$3/9#""$09&FFC$>FE%%trueG-%&printG6 #%6Hurwitz:~verbose~modeG@$4-%%typeG6$9$-%(polynomG6$%(numericG9%YQ>f~should~be ~a~polynomial~in~zFB>8,-%(convertG6%FZ%)rationalG%&exactG>81-%'degreeG6$F]oFin@ $/Fdo""!O7%FjoFjoFjo>8-Fjo>8.Fjo?(8$Fjo"""FdoFP@%/-%$modG6$Fbp""#Fjo>F^p,&F^pFc p*&-%&coeffG6%F]oFin,&FdoFcpFbp!""Fcp)FinF`qFcpFcp>F`p,&F`pFcpF\qFcp>F^p-%%sort G6$F^pFin>F`p-Fgq6$F`pFin>8/-%$gcdG6$F^pF`p>80-%)simplifyG6#*&F]oFcpF]rFaq>Fbr- Fdr6#*&FbrFcp-%'lcoeffG6$FbrFinFaq@$FEC&-FR6$%&F1~=~GF^p-FR6$%&F2~=~GF`p-FR6$%8 f1(GCD~of~F1~and~F2)~=~GF]r-FR6$%1f2(~=~f~/~f1)~=~GFbr>83-FfoF]s>88-%'matrixG6% F]tF]tFjo?(8%FcpFcpF]tFP?(8&FcpFcpF]tFPC$>Fbp,(F]tFcpFetFcpFgt!"#@$31FjoFbp1Fbp F]t>&F`t6$FetFgt-F^q6%FbrFinFbp>&896#FjoFcp?(FetFcpFcpF]tFP>&Fgu6#Fet-_%'linalg G%$detG6#-_F_v%*submatrixG6%F`t;FcpFetFfv@$FE?(FetFjoFcpF]tFP-FR6&%'det_H[GFet% %]~=~GF[v>8;Fcp>86Fjo>8'Fjo?(FBFcpFcpFB2FbwF]tC$@$FE-FR6$%%s~=~GFbw@%0&Fgu6#,&F bwFcpFcpFcpFjoC&>8:*&F\xFcp&Fgu6#FbwFaq@$0-%%signG6#F^w-Fhx6#Fax>F`w,&F`wFcpFcp Fcp>F^wFax>FbwF^xC,@$FE-FR6#%Ezero~detected~in~Hurwitz~determinantG>8(Fcp?(FBFc pFcpFB/&Fgu6#,(FbwFcpFfyFcpFcpFcpFjo>Ffy,&FfyFcpFcpFcp@$/-Fgp6$FfyFipFjoYQ*p~is ~evenFB>8),&Ffy#FcpFipFgzFcp>Fax*&&Fgu6#,(FbwFcpFfyFcpFipFcpFcpFiyFaq>8*-Fhx6#* &F^wFcpFaxFcp>F`w,*F`wFcpFezFcpFgzFcp*&)FaqFezFcpF^[lFcp#FaqFip>F^wFax>FbwF\[l@ $FE-FR6$%(k_f2~=~GF`w>F]r-%%subsG6$/Fin*&^#FcpFcp%"wGFcpF]r>82-Ffo6$F]rFd\l@$/- Fgp6$Ff\lFipFcp>F]r-Fdr6#*&Fc\lFcpF]rFcp@$FEC$-FR6$%&f1~=~GF]r-FR6$%(n_f1~=~GFf \l>87Fjo?(FBFcpFcpFB2FjoFg\lC&@$FE-FR6$%3while~loop~-~f1~=~GF]r>8+-%)sturmseqGF h\l>F]r-Fdr6#*&F]rFcp&Fc^l6#FcpFaq>Fj]l,&Fj]lFcp-%&sturmG6&Fc^lFd\l,$%)infinity GFaqFb_lFcp>85,&Ff\lFgzFj]lFf[l@$FEC$-FR6$%(s_f1~=~GFj]l-FR6$%(k_f1~=~GFd_l>84, &Fd_lFcpF`wFcpO7%,(FdoFcpFj]lFaqF_`lFaqFj]lF_`lFBFBFB6$%*protectedG/%+modulenam eG%(controlG M7R0 I%:-34f*6$%"aG%'tol_inG6%%"xG%$tolG%$outG6"F+C%@%3/9#""#-%%typeG6$9%%(numericG> 8%-%(convertG6%F5%)rationalG%&exactG>F8)"#5,$%'DigitsG!"">8&-%)realrootG6$,&*$8 $F1"""*$9$F1FCF8@%2""!&&FE6#FLFTOFSO&FE6#F1F+F+F+6$%*protectedG/%+modulenameG%( controlG M7R0 I%:-31f*6$%"QG%%varsG6(%"iG%"jG%"mG%"nG%"YG%"vG6"F.C*>8&-%%nopsG6#9$>8'-F36#9%@ $0F7F1YQTThe~numbers~of~equations~and~variables~do~not~matchF.>8(-%'matrixG6%F1 ,&F1"""FEFE""!>8)-FB6%FDFEFF?(8$FEFEF7%%trueG>&FH6$FLFE&F:6#FL?(FLFEFEF1FMC$?(8 %FEFEF1FM>&F@6$FLFV-%&coeffG6$&F5FR&F:6#FV>&F@6$FLFD-%)simplifyG6#,&&-%&evalmG6 #-%#&*G6$F@FHFPFEFgn!""O-%%evalG6#F@F.F.F.6$%*protectedG/%+modulenameG%(control G M7R0 I%:-20f*6#%"AG6"F&F&-%$mapG6$f*6#%"xGF&6$%)operatorG%&arrowGF&,&&9$6#"""#F4""#& F26#F6F5F&F&F&F2F&F&F&6$%*protectedG/%+modulenameG%(controlG M7R0 I%:-14f*6%%%a_inG%%v_inG%+verbose_inG6>%"cG%#c1G%%c1_uG%#c2G%%c2_rG%#ccG%-speci al_termG%"aG%#a1G%%a1_pG%%a1_mG%%a1_rG%#a2G%%a2_pG%%a2_mG%%a2_rG%"vG%&v_minG%&v _maxG%#v1G%'v1_minG%'v1_maxG%#v2G%(v2_varsG%%v2_rG%&v_tmpG%&v_negG%(verboseG6"F ECB>8?%&falseG@$3/9#""$09&FIC$>FH%%trueG-%&printG6#%9find_range:~verbose~modeG@ $2FM""#YQ6not~enough~parametersFE@$4-%%typeG6$9$-%(polynomG6#%(numericGYQ9a~sho uld~be~a~polynomialFE@$4-Fjn6$9%%%listGYQIv~is~not~a~list~of~variables~with~ran gesFE@$0-%(convertG6$-%$mapG6$%%nopsGFgo%$setG<#FNYQSeach~element~of~v~should~b e~[name,~bound1,~bound2]FE?&8=FgoFS@$433-Fjn6$&Fip6#"""%%nameG-Fjn6$&Fip6#FZF`o -Fjn6$&Fip6#FNF`oYQTeach~element~of~v1~should~be~[name,~bound1,~bound2]FE>84-Fa p6$f*6#%"xGFE6$%)operatorG%&arrowGFE7%&F\oFaq-%$minG6$&F\oFgq&F\oF[r-%$maxGF\sF EFEFE-F^p6%Fgo%)rationalG%&exactG>877">8:Fgs>8>Fgs?&FipF_rFS@'2""!Ffq>Ffs7$-%#o pG6#FfsFip2F_tFjq>Fis7$-Fct6#FisFipC$>Ffs7$Fbt7%F`q,$Fjq!"",$FfqF_u>F[t7$-Fct6# F[t/F`q,$F`qF_u@$FH-FU6(%&v1~=~G-%&evalfGFdt%&v2~=~G-F\vFit%)v_neg~=~GF[t>88-Fa p6$f*FcrFEFerFE/FirFjrFEFEFEFfs>89-Fap6$f*FcrFEFerFE/FirF_sFEFEFEFfs@$FH-FU6%%2 v1_min,~v1_max~=~G-F\v6#Fav-F\v6#Fgv>8;-Fap6$f*FcrFEFerFEFirFEFEFEFis>8<-Fap6$f *FcrFEFerFE/Fir7$F]sF^sFEFEFEFis@$FHC$-FU6$%+v2_vars~=~GFew-FU6$%(v2_r~=~G-F\v6 #Fjw>8+,&-%'expandG6#-%%subsG6$F[t-F^p6%F\oFcsFdsFbq8*Fbq>8,-%'tcoeffG6$F[yFew> 80,&F[yFbqFgyF_u@$FHC$-FU6$%&a1~=~GFgy-FU6$%&a2~=~GF\z>8-F_t>8.F_t?&8$FgyFSC%@$ /F[[lFey\@$4-Fjn6$F[[l%)monomialGYQFgz,&FgzFbqF[[lFbq>Fiz,&FizFbqF[[lFbq@$FH-FU6%%.a1_p,~a1_m~=~GFgzFiz>8/7 $,&-Fay6$FavFgzFbq-Fay6$FgvFizFbq,&-Fay6$FgvFgzFbq-Fay6$FavFizFbq@$FH-FU6$%(a1_ r~=~G-F\v6#Fe\l@%/F\zF_t>837$F_tF_tC*>F\z,&F\zFbqFeyFbq>81Fey>82Fey?&F[[lF\zFSC %@$F^[lF_[l@$Fa[lYQF`^l,&F`^lFbqF[[lFbq>Fb ^l,&Fb^lFbqF[[lF_u@$FH-FU6%%.a2_p,~a2_m~=~GF`^lFb^l>Fj]lF[^l?&F[[lF`^lFSC)@$F^[ lF_[l>8%-%'lcoeffG6%F[[lFew.8'>F\`l*&F\`lFbqFeyFbq>8&-Fay6$FgvFg_l>8(7$FbqFbq?& 8)F\`lFSC$@$/Fg`lFeyF_[l@%/-%$modG6$-%'degreeG6#Fg`lFZFbq>Fd`l-T#6$Fd`l-Fap6$f* FcrFEFerFE)F\o-Faal6#FealFEFE6$F.Fg`l-Fay6$Fjw-Fct6#-%'indetsGFbal>Fd`l-Feal6$F d`l7$F_t)-F`s6#-Fct6#-Fap6$%$absGF^blF`al>Fj]l,&Fj]lFbq*&F``lFbqFd`lFbqFbq?&F[[ lFb^lFSC)@$F^[lF_[l>Fg_lFh_l>F\`lF^`l>F``lFa`l>Fd`lFe`l?&Fg`lF\`lFSC$@$Fj`lF_[l @%F\al>Fd`l-Feal6$Fd`l-Fap6$f*FcrFEFerFEFjalFEFEF]blF^bl>Fd`lFebl>Fj]l,&Fj]lFbq -Fct6#-Fap6$f*FcrFEFerFE7$F]sFirFEFEFE7#FbclF_u@$FHC$-FU6$%(a2_r~=~G-F\v6#Fj]l- FU6$%/a1_r~+~a2_r~=~G-F\v6#,&Fe\lFbqFj]lFbqOFjelFEFE6$%,inter_multiGc,inter_mul ti%:-236$%*protectedG/%+modulenameG%(controlG M7R0 I%:-29f*6'%%g_inG%"sG%"HG%#bsG%#baG63%"gG%"nG%$n_rG%"rG%#rsG%%rs_rG%%rs_cG%#raG %%ra_rG%%ra_cG%#fsG%#faG%"cG%"dG%%bs_rG%%ba_rG%"iG6"F8$-%(convertG6%9$%)rationalG%& exactG@$4-FG6$Ffn-%(polynomG6$F[oFIY6$Q;g~is~not~a~polynomial~in~sF8%-%'degreeG6$FfnFI>8'7#-%'fsolveG6%Ffn FI%(complexG@$0-%%nopsG6#F^pFioYQOcannot~find~all~the~roots~--~use~larger~DIGIT SF<>8(-%$mapG6$f*6#%"xGF<6$%)operatorG%&arrowGF<-%#ifG6%2-%#ReG6#Fjn""!Fjn%%NUL LGF8+-F^q6$f*FaqF8)-F^q6$f*FaqF8*-F^q6$f*FaqF8&-%&sturmG6&FfnFI,$%)i nfinityG!""F]r@$0F[u-Fgp6#FisYQNnot~all~real~roots~found~--~use~larger~DIGITSF< >84F^s>8.F^s>827"?&F^pFis%%trueGC%>F[v*&F[vF^s,&FIF^s(FQFiuFauF^s>F]v7$-%#opG6# F]v7$Fev-Fiv6#-T#Fhp>Fiu,&FiuF^sF^sF^s?&F^pFctF`vC'>F[v*&F[vF^s,(*$FI""#F^s*&Fe vF^sFIF^sFau(FQFawF^sF^s>80-F_w6#-F[rFhp>81-F_w6#-FatFhp>F]v7%Fhv7$Fev-Fiv6#,$F \xFhw7$Fjw-Fiv6#,&-T%6$F\xF\xF^s-F`y6$FaxFaxF^s>Fiu,&FiuF^sFhwF^s>8,-F^q6$f*Faq F8--F^q6$f*FaqFF[u-F]u6&FfnFIF]rF`u@$0F[u -Fgp6#FgyYFgu>FiuF^s>8/F^s>83F^v?&F^pFgyF`vC%>Fjz*&FjzF^s,&FIF^s(FXFiuFauF^s>F\ [l7$-Fiv6#F\[l7$Fb[lF\w>FiuFaw?&F^pF\zF`vC'>Fjz*&FjzF^s,(FgwF^s*&Fb[lF^sFIF^sFa u(FXFawF^sF^s>F\xF]x>FaxFbx>F\[l7%Fe[l7$Fb[lFhx7$F_\lF\y>FiuFeyO7&F[vF]vFjzF\[l F8&-_%'linalgG%'rowdimG6#F;>8'-_F`o%'coldimGFbo@$50-F_o6#FW F]o0-FfoF\pFdoYQ?incompatible~matrices:~A~and~BF.>8$-FL6$f*6#%"xGF.6$%)operator G%&arrowGF.7$,$&F;6#F3!"",$&F;6#"""F_qF.F.F.FW>8%-%&arrayG6$;FcqF]o;FcqFdo?(8(F cqFcqF]o%%trueG?(8)FcqFcqFdoF]r>&Feq6$F\rF_r,&&F;FbrFcq&FbpFbrFcqO-%#opG6#FeqF. F.F.6$%*protectedG/%+modulenameG%(controlG M7R0 I%:-28f*6&%%g_inG%"sG%"aG%+verbose_inG66%"nG%"iG%"gG%#g1G%"xG%%g_lcG%"fG%#f1G%% ff_gG%#fcG%#anG%(a_rangeG%&a_tmpG%"bG%(b_rangeG%'rat_lcG%"vG%%solsG%$outG%(verb oseG6"F>CE>87%&falseG@$3/9#""%09'FBC$>FA%%trueG-%&printG6#%8spec_fact:~verbose~ modeG@$2FF""$YQ6not~enough~parametersF>@$4-%%typeG6$9%%'symbolGYQ2s~is~not~a~sy mbolF>@$4-FY6$9&FfnYQ2a~is~not~a~symbolF>>8&-%(convertG6%9$%)rationalG%&exactG@ $4-FY6$Fao-%(polynomG6$FfoFenY6$Q;g~is~not~a~polynomial~in~sF>QOor~coefficients ~may~contain~irrational~numbersF>@$0-%%subsG6$/Fen,$Fen!""FaoFaoYQJcannot~spect ral~factor~--~g~not~symmetricF>>8'-%(collectG6$-Ffp6$/Fen-%%sqrtG6#8(-%'expandG 6#FaoFhq>8$-%'degreeG6$F^qFhq@$FA-FN6$%=degree~of~spectral~factor~=~GF]r@$2""!- %&sturmG6&F^qFhq,$%)infinityGFjpFgrYQBg~has~roots~on~the~imaginary~axisF>>86-T# 6%FaoFen81>8+-%%sortG6$-F`q6$-Fjq6#&F`s6#"""FenFen>82&F`s6#""#@$FA-FN6$%&f1~=~G Ffs>8)-%$absG6#-%'lcoeffG6$FaoFen>8.-Ffq6#F[u@$FA-FN6$%Jleading~coefficient~of~ spectral~factor~=~GFcu@%-FY6$FcuFfo>83FLC&>F^vFB>85-%)realrootG6$,&*$FhqFetF`tF [uFjp)"#5,$%'DigitsGFjp@%2Fgr&&FbvF_tF_t>FcuF_w>Fcu&FbvFdt@$FA-FN6'%@range~of~l eading~coefficient~=~GFcu%"(G-%&evalfG6#Fcu%")G>8/7">8*Fgr@%F^vC$?(8%FgrF`t,&F] rF`tFjpF`tFLC%>F`x,&*&(F]oFdxF`t)FenFdxF`tF`tF`xF`t>80*&FcuF`t-T%6$-%&coeffG6%F fsFenFdxFbtF`t>F]x7$-%#opG6#F]x7$Fjx-Fhy6#F]y>F`x,&*&FcuF`t)FenF]rF`tF`tF`xF`tC %?(FdxFgrF`tFexFLC%>F`xFhx>F]y-T'6$FcuF_y>F]xFfy>F`x,&*&(F]oF]rF`tF`zF`tF`tF`xF `t>F]x7$Fgy7$F][l-FhyFjw@$FA-FN6)%%f~=~GF`x%6range~of~variables~=~GF]xFgw-FiwFi yF[x>8,-Fhs6$-F`q6$-Fjq6#,&*&-Ffp6$FhpF`xF`tF`xF`tF`tFaoFjpFenFen>8-F^x?(FdxFgr F`tFexFL>Fe\l7$-Fhy6#Fe\l-Fcy6%Fi[lFen,$FdxFet@$4F^v>Fe\l7$Fi\l-Fcy6%Fi[lFen,$F ]rFet@$FA-FN6$%Kfc(equations~coefficients~must~satisfy)~=~GFe\l>F`s7%F`x-T)6$Fe \lF]xFe\l>84-%$mapG6$f*6#F.F>6$%)operatorG%&arrowGF>7$&FeoFdt&Feo6#FSF>F>F>Fct@ $F^v>F_^l7$-Fhy6#F_^l7$FcuFcu@$FA-FN6$%%v~=~GF_^l@$4-T+F`_lYQ:stable~f~is~not~p icked~upF>OF`sF>F>6,%*root_factGc*root_fact%:-27%+find_rangeGc+find_range%:-14% ,inter_multiGc,inter_multi%:-23%0check_spec_factGc0check_spec_fact%:-25%+Kharit onovGc+Kharitonov$:-26$%*protectedG/%+modulenameG%(controlG M7R0 I%:-17f*6$%%A_inG%%B_inG6)%"CG%"mG%"nG%"rG%"iG%"jG%"kG6"F/C.@$29#""#YQ6not~enou gh~parametersF/@$4-%%typeG6$9$-.%'matrixG6#-%%listG6#%(numericGYQBmatrix~A~is~n ot~a~matrix~of~listsF/@$0-%(convertG6$-%$mapG6$%%nopsGF<%$setG<#F4YQZthe~number ~of~elements~in~each~list~should~be~2:~matrix~AF/@$4-F:6$9%F=YQBmatrix~B~is~not ~a~matrix~of~listsF/@$0-FJ6$-FM6$FOFXFPFQYQZthe~number~of~elements~in~each~list ~should~be~2:~matrix~BF/>8%-_%'linalgG%'rowdimG6#F<>8'-_Fao%'coldimGFco>8&-Fgo6 #FX@$0-F`oF\pFeoYQ?incompatible~matrices:~A~and~BF/>8$-%&arrayG6$;"""F^o;FhpFjo ?(8(FhpFhpF^o%%trueG?(8)FhpFhpFjoF\q>&Fcp6$F[qF^q-%$sumG6$.-T#6$&F<6$F[q8*&FX6$ F[rF^q/.F[r;FhpFeoO-%#opG6#FcpF/F/6$%,inter_multiGc,inter_multi%:-236$%*protect edG/%+modulenameG%(controlG M7R0 I%:-35f*6#%"xG6$%&out_lG%&out_rG6"F)C%@'/&9$6#"""""!>8$7$F1F11F0-%$absG6#F->F3- %)realrootG6$,&%"sGF0F-!"")"#5,&%'DigitsGF?F?F0>F3-F;6$F=)FA,(FCF?F?F0-%&floorG 6#-%&evalfG6#-%&log10G6#F6F0@'/&F.6#""#F1>8%F41F0-F76#FT>FX-F;6$,&F>F0FTF?F@>FX -F;6$Fin)FA,(FCF?F?F0-FJ6#-FM6#-FP6#FZF0O7$&&F3F/F/&&FXF/FUF)F)F)6$%*protectedG /%+modulenameG%(controlG M7R0 I%:-23f*6$%"aG%"bG6"F'F'O7$-%$minG6&*&&9$6#"""F1&9%F0F1*&F.F1&F36#""#F1*&&F/F6F 1F2F1*&F9F1F5F1-%$maxGF,F'F'F'6$%*protectedG/%+modulenameG%(controlG M7R0 I%:-27f*6%%%g_inG%"sG%"bG6-%"gG%"nG%$n_rG%"rG%$r_rG%$r_cG%"fG%"cG%"dG%$b_rG%"iG 6"F4C6@$29#""$YQ6not~enough~parametersF4@$4-%%typeG6$9%%'symbolGYQ2s~is~not~a~s ymbolF4@$4-F?6$9&FBYQ2b~is~not~a~symbolF4>8$-%(convertG6%9$%)rationalG%&exactG@ $4-F?6$FM-%(polynomG6$FRFAY6$Q;g~is~not~a~polynomial~in~sF4QOor~coefficients~ma y~contain~irrational~numbersF4@$0-%%subsG6$/FA,$FA!""FMFMYQJcannot~spectral-fac tor~--~g~not~symmetricF4>8%-%'degreeG6$FMFA>8'7#-%'fsolveG6%FMFA%(complexG@$0-% %nopsG6#FioFdoYQOcannot~find~all~the~roots~--~use~larger~DIGITSF4>8&-%&sturmG6& FMFA""!%)infinityG>Fio-%$mapG6$f*6#%"xGF46$%)operatorG%&arrowGF4-%#ifG6%2F[q-%# ReG6#FQFQ%%NULLGF4F4F4Fio>8(-F_q6$f*FbqF4FdqF4-Fhq6%/-%#ImGF]rF[qFQF^rF4F4F4Fio >8)-F_q6$f*FbqF4FdqF4-Fhq6%2F[qFgrFQF^rF4F4F4Fio@$0Fgp-Fbp6#F`rYQNnot~all~real~ roots~found~--~use~larger~DIGITSF4>8.""">8*Fis>8-7"?&FioF`r%%trueGC%>F[t*&F[tFi s,&FAFis(FIFhsFisFis>F]t7$-%#opG6#F]t7$Fet-Fit6#-T#Fcp>Fhs,&FhsFisFisFis?&FioFj rF`tC'>F[t*&F[tFis,(*$FA""#Fis*&FetFisFAFisFis(FIFauFisFis>8+-F_u6#-F\rFcp>8,-F _u6#-FhrFcp>F]t7%Fht7$Fet-Fit6#,$F\vFhu7$Fju-Fit6#,&-T%6$F\vF\vFis-F`w6$FavFavF is>Fhs,&FhsFisFhuFisO7$F[tF]tF4F46&%*r_convertGc*r_convert%:-26%,inter_multiGc, inter_multi%:-236$%*protectedG/%+modulenameG%(controlG M7R0 I%:-13f*6%%%A_inG%"vG%+verbose_inG6(%&A_outG%"mG%"nG%"iG%"jG%(verboseG6"F/C,>8) %&falseG@$3/9#""$09&F3C$>F2%%trueG-%&printG6#%@find_inter_matrix:~verbose~modeG @$2F7""#YQ6not~enough~parametersF/@$4-%%typeG6$9$-.%'matrixG6#%(polynomGYQHmatr ix~A~is~not~a~matrix~of~polynomialsF/@$4-FJ6$9%%%listGYQIv~is~not~a~list~of~var iables~with~rangesF/>8%-_%'linalgG%'rowdimG6#FL>8&-_Fjn%'coldimGF\o>8$-%&arrayG 6$;"""Fgn;FhoF^o?(8'FhoFhoFgnF=?(8(FhoFhoF^oF=>&Fco6$F[pF]p-T#6%&FLF`pFXF2O-%#o pG6#FcoF/F/6$%+find_rangeGc+find_range%:-146$%*protectedG/%+modulenameG%(contro lG M7R0 I%:-30f*6'%%g_inG%"sG%#asG%#aaG%+verbose_inG6;%"nG%#naG%#nsG%"iG%"HG%"gG%#g1G%" xG%%g_lcG%#fsG%#faG%#f1G%%ff_gG%#fcG%)as_rangeG%)aa_rangeG%&a_tmpG%#bsG%#baG%)b s_rangeG%)ba_rangeG%"vG%%solsG%$outG%(verboseG6"FDCR>8<%&falseG@$3/9#""&09(FHC$ >FG%%trueG-%&printG6#%:st_ant_fact:~verbose~modeG@$2FL""%YQ6not~enough~paramete rsFD@$4-%%typeG6$9%%'symbolGYQ2s~is~not~a~symbolFD@$4-Fin6$9&F\oYQ3as~is~not~a~ symbolFD@$4-Fin6$9'F\oYQ3aa~is~not~a~symbolFD>8)-%(convertG6%9$%)rationalG%&exa ctG@$4-Fin6$F^p-%(polynomG6$FcpF[oY6$Q;g~is~not~a~polynomial~in~sFDQOor~coeffic ients~may~contain~irrational~numbersFD@$0-%'lcoeffG6$F^pF[o"""YQIthe~leading~co efficient~of~g~should~be~1FD>8(-T#6%F^pF[oFG@$0&Fiq6#""#""!YQBg~has~roots~on~th e~imaginary~axisFD>8$-%'degreeGFdq>8&&Fiq6#Feq>8%&Fiq6#""$@$FGC$-FT6$%;degree~o f~stable~factor~=~GFjr-FT6$%?degree~of~antistable~factor~=~GF^s>8;-T%6'F^pF[oFi q8586>8/-%%sortG6$-%(collectG6$-%'expandG6#&F[tF\sF[oF[o>87&F[tF`r@$FG-FT6$%&f1 ~=~GFbt>827">8-Fbr?(8'FbrFeq,&FjrFeq!""FeqFRC%>Fhu,&*&(FcoFjuFeq)F[oFjuFeqFeqFh uFeq>84-T'6$-%&coeffG6%FbtF[oFjuF^u>Feu7$-%#opG6#Feu7$Fav-F^w6#Fdv>Fhu,&)F[oFjr FeqFhuFeq@$FG-FT6)%&fs~=~GFhu%6range~of~variables~=~GFeu%"(G-%&evalfGF_w%")G>Fb t-Fdt6$-Fgt6$-Fjt6#&F[tF`sF[oF[o>88&F[t6#FY@$FGFau>83Ffu>8.Fbr?(FjuFbrFeq,&F^sF eqF\vFeqFRC%>F_y,&*&(FjoFjuFeqFbvFeqFeqF_yFeq>Fdv-Ffv6$FhvFhx>F]y7$-F^w6#F]y7$F fyFaw>F_y,&)F[oF^sFeqF_yFeq@$FG-FT6)%&fa~=~GF_yFjwF]yF[x-F]xF]zF^x>80-Fdt6$-Fgt 6$-Fjt6#,&*&FhuFeqF_yFeqFeqF^pF\vF[oF[o>81Ffu?(FjuFbrFeq,&FfrFeqF\vFeqFR>Fb[l7$ -F^w6#Fb[l-Fiv6%FhzF[oFju@$FG-FT6$%Kfc(equations~coefficients~must~satisfy)~=~G Fb[l>F[t7&FhuF_y-T)6$Fb[l7$F]wF\zFb[l>89Ffu?(FjuFeqFeqFjrFR>Ff\l7$-F^w6#Ff\l7$& &Ffx6#FjuF`r&F^]lF`s>Ff\l7$Fj\l7$FeqFeq@$FG-FT6%%%v~=~GFf\l-F]x6$Ff\l"#?@$4-T+F []lYQ;stable~fs~is~not~picked~upFD>Ff\lFfu?(FjuFeqFeqF^sFR@%/-%$modG6$,&F^sFeqF juFeqFarFeq>Ff\l7$Fj\l7$&&Ffx6#,&FjrFeqFjuFeqF`r&F]_lF`s>Ff\l7$Fj\l7$,$F`_lF\v, $F\_lF\v>Ff\lFb]l@$FGFe]l@$F\^lYQ?antistable~fa~is~not~picked~upFDOF[tFDFD6,%(H urwitzGc(Hurwitz$:-1%1root_st_ant_factGc1root_st_ant_fact%:-29%+find_rangeGc+fi nd_range%:-14%0check_spec_factGc0check_spec_fact%:-25%+KharitonovGc+Kharitonov$ :-26$%*protectedG/%+modulenameG%(controlG M7R0 I$:-3f*6$%'sys_inG%"xG6*%$sysG%%sys2G%+sys2_SmithG%"nG%"mG%"iG%"jG%)lcm_polyG6" F0C-@$29#""#YQ6not~enough~parametersF0@$4-%%typeG6$9$-.%'matrixG6#%(ratpolyGYQG sys~should~be~a~system~transfer~matrixF0>8'-_%'linalgG%'rowdimG6#F=>8(-_FI%'col dimGFK?(8)"""FSFG%%trueG?(8*FSFSFNFT@$4-F;6$&F=6$FRFV-FB6$%(numericG%"sGYFD>8$- %$mapG6&%(convertGF=%)rationalG%&exactG>8+FS?(FRFSFSFFFT?(FVFSFSFMFT>Feo-%$lcmG 6$Feo-%&denomG6#&F]oFfn>8%-F_o6$f*6#%"zGF06$%)operatorG%&arrowGF0-%%sortG6$-%'n ormalG6#*&F=FST#FST&F0F06&F/FeoF&9%F]o>8&-_FI%&smithG6$FapFdqO-F_o6$f*FepF0FgpF 0-F^q6#*&F=FSFaq!""F0F06$F/FeoFfqF0F0F06$%*protectedG/%+modulenameG%(controlG M7R0 I$:-4f*6&%%A_inG%%B_inG%%C_inG%+verbose_inG6.%"AG%"BG%"CG%#LoG%"XG%%eqnsG%%vars G%%solsG%"nG%"kG%#kkG%(verboseG6"F6C7>8/%&falseG@$3/9#""%09'F:C$>F9%%trueG-%&pr intG6#%5h2norm:~verbose~modeG@$2F>""$YQ6not~enough~parametersF6@$34-%%typeG6$9$ -.%'matrixG6#%(numericG0FT7"YQJthe~matrix~must~be~a~real~matrix~or~[]:~AF6@$34- FR6$9%FU0F]oFenYQJthe~matrix~must~be~a~real~matrix~or~[]:~BF6@$34-FR6$9&FU0FfoF enYQJthe~matrix~must~be~a~real~matrix~or~[]:~CF6>8,-_%'linalgG%'coldimG6#FT@$55 0F[p-_F^p%'rowdimGF`p0F[p-Ffp6#F]o0F[p-F]p6#FfoYQBimcompatible~matrices:~A,~B~a nd~CF6>8$-%$mapG6&%(convertGFT%)rationalG%&exactG>8%-Fcq6&FeqF]oFfqFgq>8&-Fcq6& FeqFfoFfqFgq@$F9-FF6(%%A~=~GFaq%%B~=~GFiq%%C~=~GF]r>8'-%&arrayG6%%*symmetricG;" ""F[pF\s>8*-Feq6$-%&evalmG6#Fgr%$setG>8(-Fcs6#,(-%#&*G6$-_F^p%*transposeG6#FaqF grF]s-F\t6$FgrFaqF]s-F\t6$-F_t6#F]rF]rF]s@$F9-FF6$%%X~=~GFgs>8)-Feq6$FgsFes>8+- %&solveG6$F]uF_s@$F9-FF6$%(sols~=~GFau>Fgr-%%subsG6$FauFbsO-%%sqrtG6#-_F^p%&tra ceG6#-F\t6$-F\t6$-F_t6#FiqFgrFiqF6F6F66$%*protectedG/%+modulenameG%(controlG M7R0 I%:-22f*6#%%A_inG6"F&F&C&@$29#"""YQ6not~enough~parametersF&@$4-%%typeG6$9$-.%'m atrixG6#-%%listG6#%(numericGYQBmatrix~A~is~not~a~matrix~of~listsF&@$0-%(convert G6$-%$mapG6$%%nopsGF3%$setG<#""#YQZthe~number~of~elements~in~each~list~should~b e~2:~matrix~AF&O-%$maxG6#-%#opG6#-FA6$-FD6$f*6#%"xGF&6$%)operatorG%&arrowGF&-%$ absG6#,&&F36#F+F+&F36#FI!""F&F&F&F3FGF&F&F&6$%*protectedG/%+modulenameG%(contro lG M7R0 I%:-21f*6#%%A_inG6#%"AG6"F(C'@$29#"""YQ6not~enough~parametersF(@$4-%%typeG6$9$- .%'matrixG6#-%%listG6#%(numericGYQBmatrix~A~is~not~a~matrix~of~listsF(@$0-%(con vertG6$-%$mapG6$%%nopsGF5%$setG<#""#YQZthe~number~of~elements~in~each~list~shou ld~be~2:~matrix~AF(>8$-FF6$f*6#%"xGF(6$%)operatorG%&arrowGF(-%$maxG6$-%$absG6#& F56#F--Ffn6#&F56#FKF(F(F(F5O-_%'linalgG%%normG6$-_Fao%*transposeG6#FOF-F(F(F(6$ %*protectedG/%+modulenameG%(controlG M7R0 I$:-5f*6%%'sys_inG%"sG%+verbose_inG63%$sysG%&num_sG%&den_sG%"AG%"BG%"CG%"DG%"mG %"nG%#nnG%(n_stateG%"kG%#kkG%"lG%#llG%*n_currentG%(verboseG6"F:C8>84%&falseG@$3 /9#""$09&F>C$>F=%%trueG-%&printG6#%8h2norm_TM:~verbose~modeG@$2FB""#YQ6not~enou gh~parametersF:@$4-%%typeG6$9$-.%'matrixG6#%(ratpolyGYQGsys~should~be~a~system~ transfer~matrixF:?(8/"""F[o-_%'linalgG%'rowdimG6#FWFH?(81F[oF[o-_F^o%'coldimGF` oFH@$4-FU6$&FW6$FjnFbo-Ffn6$%(numericG9%YFhn>8$-%$mapG6$f*6#%"xGF:6$%)operatorG %&arrowGF:-%'normalG6#-%(convertG6%FW%)rationalG%&exactGF:F:F:FW@$F=-FJ6$%'sys~ =~GFbp>8*-Fdp6%%&limitGFbp/F_p%)infinityG@$F=-FJ6$%%D~=~GFiq@$0-%%subsG6$<#/""! %%NULLG-F`q6$Fiq%$setG<"YQBthe~system~is~not~strictly~properF:>8+-F]o6#Fbp>8,-F doFes>8.Fjr?(FjnF[oF[oFcsFH?(FboF[oF[oFgsFH>Fjs,&FjsF[o-%'degreeG6$-%&denomG6#& FbpF[pF_pF[o@$F=-FJ6(%-m(output)~=~GFcs%,n(input)~=~GFgs%+n_state~=~GFjs>8'-FZ6 %FjsFjsFjr>8(-FZ6%FjsFgsFjr>8)-FZ6%FcsFjsFjr>83F[o?(FjnF[oF[oFcsFH?(FboF[oF[oFg sFHC)>8&Fbt>8%*&-%&numerGFdtF[o-%'lcoeffG6$F^vF_p!"">F^v*&F^vF[oFdvFgv>8--F`tFf v?(82F[oF[oF[wFHC%>&F]u6$Fiu,(FiuF[oFgvF[oF^wF[o,$-%&coeffG6%F^vF_p,&F[wF[oF^wF gvFgv@$2F^wF[w>&F]u6$,&FiuF[oF^wF[oFcwF[o>&Feu6$FjnFcw-Ffw6%F`vF_pFhw@$2FjrF[w> &Fau6$FiuFboF[o>Fiu,&FiuF[oF[wF[o@$F=-FJ6(%%A~=~GF]u%%B~=~GFau%%C~=~GFeuO-T#6&F ]uFauFeuF=F:F:6$%'h2normGc'h2norm$:-46$%*protectedG/%+modulenameG%(controlG M7R0 I%:-15f*6#%"AG6"6$%)operatorG%&arrowGF&-%$mapG6$f*6#%"xGF&F'F&7$9$F1F&F&F&F1F&F &F&6$%*protectedG/%+modulenameG%(controlG M7R0 I%:-12f*6'%(sys1_inG%(sys2_inG%"sG%)g_tol_inG%+verbose_inG6Q%&n1_inG%'n1_outG%& n2_inG%'n2_outG%"iG%"jG%#P1G%#P2G%%P2_sG%"GG%"PG%&IP2P1G%)detIP2P1G%-num_detIP2 P1G%-den_detIP2P1G%&H_numG%&H_denG%,P1_McMillanG%,P2_McMillanG%&cp_P1G%&cp_P2G% (H_cp_P1G%(H_cp_P2G%"DG%(CinvABDG%"dG%%cp_AG%$H_AG%$g_0G%&g_infG%(g_lowerG%&g_t mpG%&g_maxG%"gG%'g_candG%'nu_minG%'nu_maxG%'nu_midG%"RG%"SG%"WG%"HG%"pG%#f1G%"x G%&g_tolG%(verboseG6"FZCio>8R%&falseG@$3/9#""&09(FhnC$>Fgn%%trueG-%&printG6#%7n ugap_TM:~verbose~modeG-Fdo6#%3checking~argumentsG@$2F\o""$YQ6not~enough~paramet ersFZ@$4-%%typeG6$9$-.%'matrixG6#%(ratpolyGYQHsys1~should~be~a~system~transfer~ matrixFZ?(8("""F^q-_%'linalgG%'rowdimG6#FdpFbo?(8)F^qF^q-_Faq%'coldimGFcqFbo@$4 -Fbp6$&Fdp6$F]qFeq-Fip6$%(numericG9&YF[q@$4-Fbp6$9%FepYQHsys2~should~be~a~syste m~transfer~matrixFZ?(F]qF^qF^q-F`q6#FhrFbo?(FeqF^qF^q-FgqF]sFbo@$4-Fbp6$&FhrF^r F_rYFjr-Fdo6#%@checking~dimensions~of~matricesG>8$Ffq>8%F_q>8&F_s>8'F\s@$FgnC$- Fdo6&%)n1_in~=~GFjs%,,~n1_out~=~GF\t-Fdo6&%)n2_in~=~GF^t%,,~n2_out~=~GF`t@$50Fj sF^t0F\tF`tYQBincompatible~input/output~numbersFZ>8*-%$mapG6&%(convertGFdp%)rat ionalG%&exactG>8+-Fdu6&FfuFhrFguFhu>8,-_Faq%*transposeG6#-%%subsG6$/Fbr,$Fbr!"" -%&evalmG6#Fju>8Q#F^q"&++"@$31""%F\o-Fbp6$9'Far>F]w-Ffu6%FfwFguFhu@$Fgn-Fdo6$%) g_tol~=~GF]w-Fdo6#%Bchecking~winding~number~conditionG>8/-Fjv6#,&-%#&*GFZF^q-Fg x6$F^vFbuF^q>80-_Faq%$detG6#Fbx>81-%%sortG6#-%&numerG6#F[y>82-Fcy6#-%&denomGFgy >83-T#6$FayFbr>84-Faz6$FiyFbr@$FgnC(-Fdo6$%*IP2P1~is~GFbx-Fdo6$%-detIP2P1~is~GF [y-Fdo6$%1num_detIP2P1~is~GFay-Fdo6$%1den_detIP2P1~is~GFiy-Fdo6$%*H_num~is~GF_z -Fdo6$%*H_den~is~GFdz@$0&F_z6#""#""!C$@$Fgn-Fdo6#%HWinding~number~condition~vio lated~-~(1)GO7$F^qF^q>85-T%6$FbuFbr>86-F[]l6$FjuFbr>87F^q?(F]qF^qF^q-%$minG6$Fj sF\tFbo>Fb]l*&Fb]lF^q-F]z6#&Fi\l6$F]qF]qF^q>Fb]l-Fcy6#Fb]l>88F^q?(F]qF^qF^q-Fe] l6$F^tF`tFbo>Fa^l*&Fa^lF^q-F]z6#&F^]lF\^lF^q>Fa^l-Fcy6#Fa^l>89-Faz6$Fb]lFbr>8:- Faz6$Fa^lFbr@$FgnC(-Fdo6$%0P1_McMillan~is~GFi\l-Fdo6$%0P2_McMillan~is~GF^]l-Fdo 6$%*cp_P1~is~GFb]l-Fdo6$%*cp_P2~is~GFa^l-Fdo6$%,H_cp_P1~is~GF^_l-Fdo6$%,H_cp_P2 ~is~GFb_l@$0,,&F_z6#F\pF^q&FdzF]alFhv&F^_lF]alF^q&Fb_lF]alFhv&Fb_lF^\lFhvF`\lC$ @$Fgn-Fdo6#%HWinding~number~condition~violated~-~(2)GOFg\l@$Fgn-Fdo6#%CWinding~ number~condition~satisfiedG-Fdo6#%9constructing~realisationG>8--Fjv6#-Fgx6$-Fgx 6$-_Faq%,stackmatrixG6$Fbu-%&arrayG6%%)identityG;F^qFjsF_cl-_Faq%(inverseGF_y-_ Faq%(augmentG6$F^v-F\cl6%F^cl;F^qF^tFicl-Fdo6#%=calculation~of~infinity~normG-F do6#%8calculating~lower~boundG>8<-Fdv6$/FbrF`\l-Fjv6#F`bl>8@-_Faq%%normG6$FadlF _\l@%-Fbp6$*$FhdlF_\lFar>Fhdl7$FhdlFhdlC%>Fhdl-%)realrootG6$-F]y6#,&*&8EF_\lFfx F^qF^q-Fgx6$-F`v6#FadlFadlFhvF]w>Fhdl-T'6#-Fdu6$f*6#FWFZ6$%)operatorG%&arrowGFZ @%1F`\l&Fdp6#F^qFdp%%NULLGFZFZFZFhdl>Fhdl-%#opG6$F^qFhdl>8;-Fdu6%%&limitGF`bl/F br%)infinityG>8A-Fjdl6$FfglF_\l@%-Fbp6$*$F]hlF_\lFar>F]hl7$F]hlF]hlC%>F]hlFeel> F]hl-Fcfl6#-Fdu6$f*FhflFZFiflFZ@%F]glFdpF`glFZFZFZF]hl>F]hl-Fcgl6$F^qF]hl>8B-Fd u6$%%sqrtG7$-%$maxG6$*$&FhdlF_glF_\l*$&F]hlF_glF_\l-Fiil6$*$&FhdlF^\lF_\l*$&F]h lF^\lF_\l@$Fgn-Fdo6(%'g_0~=~GFhdl%)g_inf~=~GF]hl%+g_lower~=~GFcil-Fdo6#%0calcul ating~PhiG>8.-Fjv6#,&F[flF^q-Fgx6$-F`v6#-Fdv6$FfvFedlF`blFhv-Fdo6#%?calculating ~determinant~of~PhiG>8N-Fcy6$-%(collectG6$-F]y6#F_[mFbrFbr@$Fgn-Fdo6$%+det(P)~i s~GF]\m>8O-Fa\m6$-Fdv6$/Fbr-Ffil6#8P-Ffy6#F]\mFb]m@%0&FcilF_gl&FcilF^\l>8DFh]m@ %-Fbp6$Fg]mFgu>Fj]m,&Fg]mF^qF]wF^q>Fj]m*&Fg]mF^q,&F^qF^q*&F]wF^q)"#5-%%ceilG6#- %&log10G6#Fg]mFhvF^qF^q@$4-T)6,Fj\mFb]mF\flFj]mFhdlF]hlFcilFadlFfglFgnC%>8G-Ffi l6#,&F^qF^q*$Fg]m!"#Fhv>8H-Ffil6#,&F^qF^q*$Fj]mFh_mFhvO7$Fc_mFj_m>8F-T+6'Fj\mFb ]mF\flF]wFgn@$Fgn-Fdo6'%7candidates~in~nugap~=~G-Fdu6$f*FhflFZFiflFZ-Ffil6#,&F^ qF^q*$F^glFh_mFhvFZFZFZFb`m%"(G-%&evalfG6#-Fdu6$f*FhflFZFiflFZF]amFZFZFZFb`m%") G?&8CFb`m4-F__m6,Fj\mFb]mF\fl&FjamF_glFhdlF]hlFcilFadlFfglFgn@$Fgn-Fdo6&%,g_tmp [1]~=~GF^bm%B~is~larger~than~the~infinity~normG%/hence~continueG@$Fgn-Fdo6%Fbbm F^bm%O~is~smaller~than~or~equal~to~the~infinity~normG>Fc_m-Ffil6#,&F^qF^q*$F^bm Fh_mFhv@%0F^bm&FjamF^\l>Fj]mF`cm@%-Fbp6$F^bmFgu>Fj]m,&F^bmF^qF]wF^q>Fj]m*&F^bmF ^q,&F^qF^q*&F]wF^q)Fe^m-Fg^m6#-Fj^m6#F^bmFhvF^qF^q>Fj_mF[`m@$FgnC%-Fdo6'%*nu_mi n~=~GFc_mFaam-Fcam6#Fc_mFham-Fdo6'%*nu_max~=~GFj_mFaam-Fcam6#Fj_mFham-Fdo6'%3g_ max~for~nu_max=~GFj]mFaam-Fcam6#Fj]mFham@$F]_m-Fdo6(%6succesfully~found~--~GF`` mFaam-Fcam6#F``m%&)~--~G-Fcam6#,&Fj_mF^qFc_mFhv-Fdo6#%8start~bi-section~searchG >Fc_mF`\l>Fj_mF^q?(FZF^qF^qFZ2F]wF[fmC%>8I,&Fj_m#F^qF_\lFc_mFgfm>Fjam*$-Ffil6#, &F^qF^q*$FefmF_\lFhvFhv@%-F__m6,Fj\mFb]mF\flFjamFhdlF]hlFcilFadlFfglFgn>Fc_mFef m>Fj_mFefmOF``mFZFZ6,%(HurwitzGc(Hurwitz$:-1%)McMillanGc)McMillan$:-3%+inter_so rtGc+inter_sort%:-24%*linfcheckGc*linfcheck$:-7%)linfcandGc)linfcand$:-66$%*pro tectedG/%+modulenameG%(controlG M7R0 I%:-24f*6#%%v_inG6(%"vG%"iG%"jG%"kG%"nG%$tmpG6"F-C*@$29#"""YQ6not~enough~parame tersF-@$4-%%typeG6$9$-%%listG6#-F<6#%(numericGYQ8$-FF6%F:%)rationalG%&exactG>8(-FK6#FR>8',&FXF2!""F2?(F-F2F 2F-2""!FfnC%>8&F[o?(8%F2F2Ffn%%trueG@$2&&FR6#F`o6#F2&&FR6#,&F`oF2F2F2FgoC&>8)Fe o>FeoFio>FioF^p>F^o,&F`oF2FhnF2>FfnF^oOFRF-F-F-6$%*protectedG/%+modulenameG%(co ntrolG M7R0 I$:-6f*6'%&f1_inG%"xG%"gG%)g_tol_inG%+verbose_inG62%#f1G%#f2G%(f12_gcdG%$DisG%& Dis_hG%"hG%,Dis_sqrfreeG%(Dis_tmpG%$solG%(sol_symG%(sol_numG%'g_candG%+g_cand_s ymG%+g_cand_numG%&g_tolG%(verboseG6"F;CB>83%&falseG@$3/9#""&09(F?C$>F>%%trueG-% &printG6#%7linfcand:~verbose~modeG@$2FC""$YQ6not~enough~parametersF;>82#""""&++ "@$31""%FC-%%typeG6$9'%(numericG>FT-%(convertG6$Fin%)rationalG>8$-%%sortG6$-%(c ollectG6$-%)primpartG6$9$9%F\pF\p>8%-Fco6$-Ffo6$-%%diffG6$FaoF\pF\pF\p>8&-Fco6$ -Ffo6$-%&gcdexG6%FaoF^pF\pF\pF\p@$F>C%-FK6$%&f1~=~GFao-FK6$%&f2~=~GF^p-FK6$%4GC D~of~f1~and~f2~=~GFgp@$2""!-%'degreeG6$FgpF\pC%>Fao-Fco6$-Ffo6$-Fio6$-%'normalG 6#*&FaoFVFgp!""F\pF\pF\p>F^p-Fco6$-Ffo6$-Fio6$-Fir6#*&F^pFVFgpF\sF\pF\pF\p@$F>C $-FK6$Fcq-FcoFep-FK6$Ffq-Fco6$F^pF\p>8'-%'factorG6#-%&numerG6#-%)simplifyG6#*&- %*resultantGF^qFV-%'lcoeffGFepF\s@$F>-FK6$%'Dis~=~G-Fco6$Fat9&>Fat-FioFeu>8*-%( sqrfreeGFeu>FatFV?&8+&Fju6#""#FI>Fat*&FatFV&F_v6#FVFV?(F;FVFVF;/-%&coeffG6%FatF fuF\rF\r>Fat-Fir6#*&FatFVFfuF\s@$F>-FK6$%3Dis(simplified)~=~GFdu@$F>-FK6$%Enume rically~solving~Dis~--~degree~=~G-F^rFeu>8.-%)realrootG6$FatFT@$F>-FK6'%=numeri cal~solution~of~Dis~=~GFjw%"(G-%&evalfG6#Fjw%")G@%2"")Fhw>8-7"C'>8(-Fct6#-%%sub sG6$/Ffu-%%sqrtG6#8)-%'expandG6#-Fft6#Fat@$F>-FK6$%)Dis_h~=~G-Fco6$F_yFiy@$F>-F K6$%Hsymbolically~solving~Dis_h~--~degree~=~G-F^rFdz>F[y7#-%&solveG6#F_y@$F>-FK 6$%>symbolic~solution~of~Dis_h~=~GF[y>81F\y>80F\y>Fd[l-%$mapG6$f*6#F&F;6$%)oper atorG%&arrowGF;@%1F\r&F[pFfv7$*$Fb\lFbv*$&F[pFavFbv%%NULLGF;F;F;Fjw@$F>-FK6'%.g _cand_num~=~GFd[lFbx-Fdx6#Fd[lFfx?&8,F[yFI@$3-Fgn6$F_]lFjn2F\rF_]l>Ff[l7$-%#opG 6#Ff[l7$F_]lF_]l@$F>-FK6'%.g_cand_sym~=~GFf[lFbx-FdxFi]lFfx>8/7$-Fh]lF]]lFg]l>F a^l-Fi[l6$f*F\\lF;F]\lF;7$-Fgy6#Fb\l-Fgy6#Ff\lF;F;F;-T#6#Fa^l@$F>-FK6'%*g_cand~ =~GFa^lFbx-FdxF__lFfxOFa^lF;F;6$%+inter_sortGc+inter_sort%:-246$%*protectedG/%+ modulenameG%(controlG M7R0 I$:-9f*6&%'sys_inG%"sG%)g_tol_inG%+verbose_inG6<%$sysG%-sys_McMillanG%#cpG%%H_c pG%"iG%"jG%(CinvABDG%"DG%"PG%"pG%#f1G%'g_candG%"xG%"gG%&g_tmpG%&g_maxG%(g_min_s G%(g_max_sG%(g_mid_sG%$g_0G%&g_infG%(g_lowerG%&g_tolG%(verboseG%$finG%$outG6"FD CS>8;%&falseG@$3/9#""%09'FHC$>FG%%trueG-%&printG6#%:linfnorm_TM:~verbose~modeG@ $2FL""#YQ6not~enough~parametersFD@$4-%%typeG6$9$-.%'matrixG6#%(ratpolyGYQGsys~s hould~be~a~system~transfer~matrixFD?(8("""Feo-_%'linalgG%'rowdimG6#F[oFR?(8)Feo Feo-_Fho%'coldimGFjoFR@$4-Fin6$&F[o6$FdoF\p-F`o6$%(numericG9%YFbo>8:#Feo"&++"@$ 31""$FL-Fin6$9&Fhp>F\q-%(convertG6%Feq%)rationalG%&exactG@$FG-FT6$%)g_tol~=~GF\ q>8$-%$mapG6&FhqF[oFjqF[r@$FG-FT6$%1sys(modified)~=~GFar>8%-T#6$FarFip@$FG-FT6$ %0sys_McMillan~=~GFjr>8&Feo?(FdoFeoFeo-%$minG6$-Fgo6#Far-F^pFisFR>Fcs*&FcsFeo-% &denomG6#&Fjr6$FdoFdoFeo@$FG-FT6$%Ccharacteristic~polynomial~of~A~is~GFcs>8'-T% 6$FcsFip@$0&Fgt6#FY""!YQQthe~system~has~eigenvalues~on~the~imaginary~axisFD@%/& Fgt6#FbqF_u@$FG-FT6#%5the~system~is~stableG-FT6#%9the~system~is~not~stableG>8*- %%subsG6$/FipF_u-%&evalmGFis@$FG-FT6$%+CinvABD~=~GF^v>87-_Fho%%normG6$F^vFY@%-F in6$*$FjvFYFhp>Fjv7$FjvFjvC%>Fjv-%)realrootG6$-_Fho%$detG6#,&*&81FY-%#&*GFDFeoF eo-Fbx6$-_Fho%*transposeG6#F^vF^v!""F\q>Fjv-T'6#-Fcr6$f*6#F6FD6$%)operatorG%&ar rowGFD@%1F_u&F[o6#FeoF[o%%NULLGFDFDFDFjv>Fjv-%#opG6$FeoFjv>8+-Fcr6%%&limitGFar/ Fip%)infinityG@$FG-FT6$%%D~=~GF_z>88-F\w6$F_zFY@%-Fin6$*$FjzFYFhp>Fjz7$FjzFjzC% >Fjz-Fhw6$-F[x6#,&F_xFeo-Fbx6$-Ffx6#F_zF_zFixF\q>Fjz-F\y6#-Fcr6$f*FayFDFbyFD@%F fyF[oFiyFDFDFDFjz>Fjz-F\z6$FeoFjz>89-Fcr6$%%sqrtG7$-%$maxG6$*$&FjvFhyFY*$&FjzFh yFY-F_]l6$*$&FjvF^uFY*$&FjzF^uFY@$FG-FT6(%'g_0~=~GFjv%)g_inf~=~GFjz%+g_lower~=~ GFi\l@$FG-FT6#%0calculating~PhiG>8,-Fdv6#,&F_xFeo-Fbx6$-Ffx6#-F`v6$/Fip,$FipFix FcvFarFix@$FG-FT6$%%P~=~GFf^l>8--%%sortG6$-%(collectG6$-F[x6#Ff^lFipFip@$FG-FT6 $%5determinant~of~P~is~G*&-Fi_l6$-%&numerG6#Fg_lFipFeo-Fi_l6$-%'expandG6#-F^tFi `lFipFix>8.-F\`l6$-F`v6$/Fip-F\]l6#80Fg`lFial@%0&Fi\lFhy&Fi\lF^u>83F]bl@%-Fin6$ F\blFjq>F_bl,&F\blFeoF\qFeo>F_bl*&F\blFeo,&FeoFeo*&F\qFeo)"#5-%%ceilG6#-%&log10 G6#F\blFixFeoFeo@$4-T)6,FaalFialF`xF_blFjvFjzFi\lF^vF_zFGC$>8=-Fdcl6-FaalFialF` xF\blFjvFjzFi\lF^vF_zFG884F_bl>8/-T+6'FaalFialF`xF\qFG?&82 Fbdl4-Fdcl6,FaalFialF`x&FgdlFhyFjvFjzFi\lF^vF_zFG@$FG-FT6&%,g_tmp[1]~=~GF[el%B~ is~larger~than~the~infinity~normG%/hence~continueG@$FG-FT6%F_elF[el%O~is~smalle r~than~or~equal~to~the~infinity~normG@%0F[el&FgdlF^u>F_blFhel@%-Fin6$F[elFjq>F_ bl,&F[elFeoF\qFeo>F_bl*&F[elFeo,&FeoFeo*&F\qFeo)Fjbl-F\cl6#-F_cl6#F[elFixFeoFeo @$FbclC$>Fhcl-Fdcl6-FaalFialF`xF[elFjvFjzFi\lF^vF_zFGF[dlO7%F[elF_blF^dl>F`dl-F \]l6#-F_]l6$*$F`dlFY*$F_blFY@%/F`dlF_u>85F\qC$>F`dl*&-%&floorG6#*&F`dlFeo)Fjbl- F^hl6#-F_cl6#F`dlFixFeoFahlFeo>Figl,$F`dlFY?(FDFeoFeoFD-Fdcl6,FaalFialF`xFiglFj vFjzFi\lF^vF_zFGC$>F`dlFigl>Figl,$FiglFY@$FG-FT6&%Kbi-section~search~--~start~w ith~g_min_s~=~GF`dl%-,~g_max_s~=~GFigl?(FDFeoFeoFD2F\q,&FiglFeoF`dlFixC$>86,&Fi gl#FeoFYF`dlF[jl@%-Fdcl6,FaalFialF`xFiilFjvFjzFi\lF^vF_zFG>F`dlFiil>FiglFiil>Fh cl-Fdcl6-FaalFialF`xF`dlFjvFjzFi\lF^vF_zFGF[dlO7%F`dlFiglF^dlFDFD6,%)McMillanGc )McMillan$:-3%(HurwitzGc(Hurwitz$:-1%+inter_sortGc+inter_sort%:-24%*linfcheckGc *linfcheck$:-7%)linfcandGc)linfcand$:-66$%*protectedG/%+modulenameG%(controlG M7R0 I$:-7f*6-%#f1G%"xG%"gG%&g_tmpG%$g_0G%&g_infG%(g_lowerG%(CinvABDG%"DG%+verbose_i nG%$finG6&%#ffG%&x_solG%"wG%(verboseG6"F5C*>8'%&falseG@$31"#59#09-F9>F8%%trueG@ $4-%%typeG6$*$9'""#%(numericGYQ:g_tmp^2~should~be~numericF5>8&%%NULLG@$1FH*$&9* 6#FJFJC$@&51FH*$&9(6#"""FJ4-T#6$FI9+>FO""!51FH*$&9)FhnFJ4-F\o6$FI9,>FO%)infinit yG@$0FOFP@%0F>"#6OFBO7$FinFO>8$-%(collectG6$-%%subsG6$/9&FI9$9%@$4-FF6$Fep-%(po lynomG6$%)rationalGF_qYQHf1~must~be~a~polynomial~of~x~and~with~gF5@%F_pO-%&eval bG6#2F`o-%&sturmG6&FepF_q,$F[p!""F`oC%>8%7#-%'fsolveG6%/FepF`oF_q;FcrF`o>FO-%#o pG6#-%$mapG6$f*6#F&F56$%)operatorG%&arrowGF5-%%sqrtG6#,$F^qFdrF5F5F5FgrO7$F`r-% $minG6#FOF5F56$%)linfposDGc)linfposD%:-106$%*protectedG/%+modulenameG%(controlG