> restart; > path:="": > read cat(path,"multifac_1.3.mpl"): > interface(rtablesize=80); # The purpose of this worksheet is to generate instances of multivariate # polynomials with complex coefficients. Executing this worksheet # generates the files exf1, exf2, exf3, and exf4. # The Jacobian for a Stewart-Gough Platform # We derive the Jacobian for a platform, first symbolically. # 2. Numerical Instances # We have three vectors to specify: the position vector and the # locations at endplate and the baseplate joints. # For the purposes of applying homotopy continuation to factor the # polynomials, we generate random complex number of modulus one, using # 16 digits precision. # Example 1 # In this first instance, we pick the locations and position vector at # random: > read cat(path,"verschelde/svw_exf1"): > Digits:=20; Digits := 20 > ord:=[op(indets(f1))]; ord := [q[0], q[2], q[3], q[1]] > F1:=subs({q[1]=x,q[2]=y,q[0]=z,q[3]=1},f1): > F1:=evalf(F1/norm(F1,2)): > st:=time(); st := 13.858 > fac_Ver_f1:=multifac1(F1,[x,y,z],10); the gap is too small, we think the polynomial is irreducible. the gap is too small, we think the polynomial is irreducible. fac_Ver_f1 := [[ 3 2 -(0.28137756107706099988 + 0.040542879628549020180 I) z x y - 3 2 (0.20458435392817057602 + 0.20741718179821062897 I) y x z + 3 2 (0.12828986081496044988 - 0.030588150812448102227 I) x y z + 4 (0.056393445805479584857 + 0.066146454970283944092 I) y z x + 2 2 2 (0.26635138178899540622 - 0.042312100197885316915 I) z x y + 3 2 (0.083643933578633216716 + 0.037864554816806552014 I) x z y - 4 (0.11729202182711050441 + 0.077184267470185981914 I) x y z + 2 3 (0.14707342138092092433 + 0.14069086995075684394 I) y z x + 3 2 (0.023190284150807117824 - 0.061684928438596242663 I) y z x 3 - (0.27039723781479167110 - 0.12858307649959434072 I) z y x - 3 (0.11060017260369397690 - 0.057973209439550624417 I) y x z + 2 2 (0.078399744362574173688 + 0.035952808790913886342 I) x z y + 2 2 (0.078107554512261534969 + 0.13535690597700755855 I) y z x 2 - (0.26913362055662782870 + 0.16956960602997494336 I) z y x 3 - (0.15790411336592984052 - 0.10848535225659953800 I) x y z + 2 2 (0.24165517509810043737 - 0.059002184104147661057 I) x y z - 2 (0.079189911607783539202 - 0.043459267820878265892 I) y z x + (0.032369491933157202018 - 0.083141804975914983169 I) y x z - 2 (0.094383213145197152813 - 0.069768585871657235097 I) x y z 6 - (0.0038708499818134083501 - 0.0057481035280473380301 I) y 5 + (0.034516583652185601408 + 0.026525786344522916009 I) x y 5 - (0.011185970238207304004 - 0.015277745363470717394 I) y x - 2 4 (0.067633886304449145777 - 0.018588255863751274962 I) x z + 2 3 (0.055984946945011772686 - 0.091788929226971434410 I) y z 4 + (0.015275620475055743495 - 0.10152672427929808218 I) z y + 5 (0.0043038995259353102712 + 0.0098171490616695021698 I) x z + 4 2 (0.010041518012081979064 + 0.012448718002927769590 I) x y - 4 2 (0.0018408989111264714295 + 0.038073774083090603881 I) x z + 3 3 (0.085798350064406296024 + 0.086673351381399289819 I) z x 4 + (0.026246041892084134460 + 0.026857792519109360546 I) y z 4 - (0.028089338342955908423 - 0.044208380598359722137 I) y x - 2 3 (0.040784007465758032687 - 0.054518675105606664756 I) z x + 2 3 (0.043437886534291299970 + 0.016828070589124386710 I) x y + 2 4 (0.044185933505692731637 + 0.045793986465144765800 I) x y + 5 (0.0065713271052044904360 + 0.0085923809062030115979 I) z x 5 - (0.029074253121272488548 + 0.029878594463316711262 I) z y + 4 (0.10435755819356426588 - 0.026839146311084870098 I) z y x 6 - (0.0073764228581695788735 + 0.010057116126683115026 I) z + 5 (0.0075982618617456385285 - 0.0018699103103984057276 I) y z 6 - (0.0049160646282800574428 + 0.0070181473771023174697 I) x - 3 3 (0.023327784086730288072 - 0.035746891533384351588 I) z y + 2 4 (0.013295375218188759698 - 0.014559333538547000670 I) z y 5 - (0.0047366364349734641852 + 0.0070539390534267623381 I) z 4 + (0.057377130335085235983 + 0.023100434611460717843 I) z + 4 (0.0011994216390239028945 - 0.00041498947500086431953 I) y 5 - (0.016314219928135437002 + 0.011741691313154081697 I) x 5 - (0.0025932809384650865880 - 0.012955384985571304684 I) y - (0.015092311365620636538 - 0.0086747302396593036663 I) x + (0.018415692362825935033 - 0.020360095880630131038 I) y + (0.026532380535408874361 + 0.0029767981467440214004 I) z x - 0.0067392160862249464162 + 0.013349087036273944680 I 2 - (0.011827457206046597833 - 0.0067947288525140906688 I) z + (0.033386896997588717756 - 0.045071282329455762916 I) y x - (0.0053318415379163748906 - 0.029643433428882491831 I) z 2 + (0.026518121034334635623 - 0.041587154298300987387 I) x - 2 (0.0020178630300752538879 - 0.020220287268302788480 I) y x + (0.015264290411029592256 - 0.0019886101356722330568 I) y z 2 - (0.047952192587859078986 - 0.010590466659270464157 I) z y 2 + (0.13781592777532743446 - 0.053214686143416429755 I) z x 2 + (0.023144534627523472192 + 0.050550406842328906481 I) y z 2 - (0.024551443411566114941 - 0.013762561143983964160 I) x z 3 - (0.011607192795225257958 - 0.012995833826696471374 I) z 3 - (0.011156722166386777444 - 0.036083459481269364485 I) y 3 + (0.056042559580669576952 - 0.047156684599423797731 I) x z 4 - (0.0051090251357538095466 - 0.022884396086996972855 I) x 3 + (0.045360983768565287708 + 0.023431319323898598694 I) y z 2 2 + (0.12976400350514413231 + 0.065373941416637345631 I) z y 3 - (0.021681663395451746853 + 0.068299758184379759955 I) z x 3 - (0.016467941104140789047 + 0.052967119627713046023 I) y x 2 2 + (0.036763269594063125812 + 0.13254412730129356022 I) x z 2 2 + (0.12968911045217042628 + 0.083389592757690380247 I) x y 3 - (0.042226229412653650535 + 0.031713725006738603876 I) x y + 2 3 (0.038410478074943556417 - 0.033437318600367370339 I) y x 3 + (0.12471334334055974182 + 0.044758056234362210437 I) z y 4 + (0.043192909969713623505 - 0.038959098334103149400 I) x y 4 + (0.077150929641330450841 + 0.022909377641348712777 I) x z + 2 3 (0.022816709178458848525 - 0.058872737021852827717 I) z y 2 3 + (0.13186213976126629155 - 0.063348723307476062121 I) x z 4 - (0.019080995716457112883 - 0.11400245994647741152 I) z x - 3 3 (0.065133630441732352310 - 0.050338241094099454968 I) x y - 4 2 (0.070076590754355090024 - 0.0018175831386308841587 I) z y 2 - (0.042217850000187839442 + 0.017896029439228628143 I) y 2 - (0.080558558185458516305 - 0.040678369194259596824 I) x y 3 + (0.034118212689603623546 + 0.010944396777996179009 I) x , 2 1], [0.49999999999999997983 z -37 - 0.80141993629531719178 10 y z 2 + 0.49999999999999940254 y -18 - 0.36343886380730026111 10 z x -18 + 0.22453617794811522234 10 y x 2 -39 + 0.50000000000000045736 x + 0.20316850128460292334 10 z -39 + 0.68291847675683484899 10 y -21 - 0.55901699437494748408 10 x + 0.50000000000000016028, 3 ]] # The time for the entire factorization > TIME1:=time()-st; TIME1 := 194.129 # Check the backward error: > result1:=expand(fac_Ver_f1[1][1]*fac_Ver_f1[2][1]^3): > berror_Ver_F1:=backward_error(result1,F1, [x,y,z]); Approximate factorization is not a real polynomial -19 c = 2.3698028698409107314 - 0.46984385500628107669 10 I -15 berror_Ver_F1 := 0.37535435988024594628 10 > ceil(log10(%)); -15 > save berror_Ver_F1,TIME1,fac_Ver_f1, > cat(path,"verschelde/svw_F1-factors"); # Example 2 # Here we set the third element of all locations equal to zero: > Digits:=20; Digits := 20 > read cat(path,"verschelde/svw_exf2"): # > bb:=[op(indets(f2))]; bb := [q[0], q[2], q[3], q[1]] > F2:=subs({q[1]=x,q[2]=y,q[0]=z,q[3]=1},f2): > F2:=evalf(F2/norm(F2,2)): > st:=time(); st := 210.010 # > fac_Ver_f2:=multifac1(F2,[x,y,z],10); the gap is too small, we think the polynomial is irreducible. the gap is too small, we think the polynomial is irreducible. fac_Ver_f2 := [[ 3 2 (0.023190284150807117921 - 0.061684928438596242632 I) y z x + 2 3 (0.14707342138092092417 + 0.14069086995075684398 I) y z x - 3 2 (0.20458435392817057587 + 0.20741718179821062894 I) y x z + 4 (0.056393445805479584863 + 0.066146454970283944012 I) y z x - 3 2 (0.28137756107706099967 + 0.040542879628549020023 I) z x y + 4 (0.10435755819356426586 - 0.026839146311084870140 I) z y x + 2 2 2 (0.26635138178899540617 - 0.042312100197885317141 I) z x y + 3 2 (0.083643933578633217168 + 0.037864554816806552173 I) x z y + 3 2 (0.12828986081496044947 - 0.030588150812448102392 I) x y z - 4 (0.11729202182711050444 + 0.077184267470185982049 I) x y z + 2 2 (0.078399744362574174006 + 0.035952808790913886319 I) x z y 3 - (0.27039723781479167108 - 0.12858307649959434077 I) z y x + 2 2 (0.078107554512261534853 + 0.13535690597700755854 I) y z x - 3 (0.11060017260369397677 - 0.057973209439550624369 I) y x z - 2 (0.079189911607783539101 - 0.043459267820878266031 I) y z x 3 - (0.15790411336592984048 - 0.10848535225659953798 I) x y z + 2 2 (0.24165517509810043722 - 0.059002184104147661015 I) x y z - 2 (0.094383213145197152928 - 0.069768585871657235152 I) x y z 2 - (0.26913362055662782885 + 0.16956960602997494346 I) z y x 4 + (0.057377130335085235930 + 0.023100434611460717858 I) z + 4 (0.0011994216390239028925 - 0.00041498947500086432909 I) y 5 - (0.016314219928135436992 + 0.011741691313154081734 I) x 5 - (0.0047366364349734641151 + 0.0070539390534267623696 I) z 5 - (0.0025932809384650866157 - 0.012955384985571304685 I) y - 4 2 (0.070076590754355090049 - 0.0018175831386308841636 I) z y - 3 3 (0.023327784086730288142 - 0.035746891533384351676 I) z y 6 - (0.0038708499818134083419 - 0.0057481035280473380327 I) y 3 - (0.011607192795225257984 - 0.012995833826696471409 I) z 3 - (0.011156722166386777393 - 0.036083459481269364468 I) y 5 - (0.029074253121272488691 + 0.029878594463316711295 I) z y 4 - (0.0051090251357538095988 - 0.022884396086996972842 I) x + 5 (0.0065713271052044905437 + 0.0085923809062030115659 I) z x + 2 4 (0.044185933505692731595 + 0.045793986465144765820 I) x y 6 - (0.0049160646282800574176 + 0.0070181473771023174889 I) x + 2 3 (0.055984946945011772569 - 0.091788929226971434417 I) y z 2 3 + (0.13186213976126629147 - 0.063348723307476062267 I) x z 4 - (0.028089338342955908402 - 0.044208380598359722115 I) y x 4 + (0.077150929641330450863 + 0.022909377641348712833 I) x z - 2 3 (0.040784007465758032873 - 0.054518675105606664825 I) z x 4 + (0.015275620475055743568 - 0.10152672427929808222 I) z y + 5 (0.0043038995259353103483 + 0.0098171490616695022056 I) x z - 4 2 (0.0018408989111264715055 + 0.038073774083090603874 I) x z - 3 3 (0.065133630441732352221 - 0.050338241094099455066 I) x y + 3 3 (0.085798350064406295975 + 0.086673351381399289868 I) z x 5 + (0.034516583652185601338 + 0.026525786344522915988 I) x y + 4 2 (0.010041518012081979078 + 0.012448718002927769706 I) x y 4 + (0.026246041892084134447 + 0.026857792519109360565 I) y z + 2 3 (0.022816709178458848526 - 0.058872737021852827685 I) z y - 2 4 (0.067633886304449145787 - 0.018588255863751274930 I) x z 5 - (0.011185970238207304047 - 0.015277745363470717391 I) y x 6 - (0.0073764228581695788633 + 0.010057116126683115036 I) z 3 + (0.034118212689603623563 + 0.010944396777996179004 I) x + 5 (0.0075982618617456385951 - 0.0018699103103984057191 I) y z + 2 4 (0.013295375218188759642 - 0.014559333538547000664 I) z y 3 - (0.021681663395451746897 + 0.068299758184379759989 I) z x 4 + (0.043192909969713623519 - 0.038959098334103149464 I) x y 3 + (0.045360983768565287590 + 0.023431319323898598609 I) y z 2 2 + (0.12976400350514413242 + 0.065373941416637345595 I) z y 3 + (0.12471334334055974190 + 0.044758056234362210394 I) z y 3 - (0.016467941104140788971 + 0.052967119627713046023 I) y x 3 + (0.056042559580669576997 - 0.047156684599423797809 I) x z 2 2 + (0.12968911045217042636 + 0.083389592757690380157 I) x y 2 2 + (0.036763269594063125832 + 0.13254412730129356032 I) x z + 2 3 (0.043437886534291299982 + 0.016828070589124386743 I) x y + 2 3 (0.038410478074943556426 - 0.033437318600367370314 I) y x 2 - (0.011827457206046597804 - 0.0067947288525140907032 I) z 4 - (0.019080995716457112912 - 0.11400245994647741160 I) z x + (0.018415692362825934998 - 0.020360095880630131027 I) y - 0.0067392160862249464452 + 0.013349087036273944646 I - (0.015092311365620636513 - 0.0086747302396593036319 I) x 2 - (0.042217850000187839422 + 0.017896029439228628086 I) y 2 + (0.026518121034334635656 - 0.041587154298300987368 I) x - (0.0053318415379163749384 - 0.029643433428882491874 I) z 2 + (0.13781592777532743461 - 0.053214686143416429775 I) z x 2 - (0.080558558185458516323 - 0.040678369194259596892 I) x y 2 - (0.024551443411566114855 - 0.013762561143983964132 I) x z - 2 (0.0020178630300752539436 - 0.020220287268302788548 I) y x + (0.015264290411029592314 - 0.0019886101356722329849 I) y z + (0.033386896997588717665 - 0.045071282329455763002 I) y x + (0.026532380535408874369 + 0.0029767981467440213936 I) z x 2 - (0.047952192587859079042 - 0.010590466659270464132 I) z y 3 - (0.042226229412653650508 + 0.031713725006738603845 I) x y 2 + (0.023144534627523472360 + 0.050550406842328906412 I) y z + (0.032369491933157201906 - 0.083141804975914983104 I) y x z, 2 1], [0.49999999999999997985 z -40 + 0.38669880715627682256 10 y z 2 + 0.49999999999999940265 y -19 - 0.39895627287533552975 10 z x -20 - 0.11180339887498953001 10 y x 2 -41 + 0.50000000000000045736 x + 0.99739068218833902089 10 z -42 + 0.41024165897513845393 10 y -21 - 0.24999999999999998954 10 x + 0.50000000000000016012, 3 ]] # Total time for the factorization > TIME2:=time()-st; TIME2 := 183.234 # Check the backward error : > result2:=expand(fac_Ver_f2[1][1]*fac_Ver_f2[2][1]^3): > berror_Ver_F2:=backward_error(result2,F2, [x,y,z]); Approximate factorization is not a real polynomial -19 c = 2.3698028698409107314 + 0.44530394394954450781 10 I -15 berror_Ver_F2 := 0.37529365639578718235 10 > ceil(log10(%)); -15 > save berror_Ver_F2,TIME2,fac_Ver_f2, > cat(path,"verschelde/svw_F2-factors"); # Example 3 # In addition we set q[1] and q[2] equal to zero: > Digits:=20; Digits := 20 > read cat(path,"verschelde/svw_exf3"): > f3:=ff: > ord:=[op(indets(f3))]; ord := [q[0], q[3]] > F3:=subs({q[0]=x,q[3]=y},f3); 12 12 F3 := 506.82428106974664787 I y - 381.83814643580988726 I x 7 5 + 1802.2581926854483014 I x y 8 4 + 1743.6207467915111190 I x y 11 + 1125.4711123844691766 I y x 6 6 + 3530.0717458640615473 I x y 11 - 267.81663642974756499 I x y 9 3 - 310.03757942583542209 I x y 5 7 + 4588.8336903138817854 I x y 10 2 + 1778.4480557748319457 I y x 9 3 + 3869.8256670168148026 I y x 4 8 + 3171.4518054171322109 I x y 2 10 - 268.4611147963134023 I y x 2 10 5 7 - 1216.6553034547481683 x y - 2109.2067175130324831 x y 4 8 3 9 + 63.67478914309498663 x y - 1047.9913246771234167 x y 9 3 11 - 980.19693598932955484 x y - 179.83569582855000865 x y 2 10 11 + 1338.2542302335944977 y x - 202.43382539114796291 y x 5 7 12 - 2064.0104583878365746 y x - 280.06036681005638841 x 12 8 4 - 255.86756147392930494 y + 5246.0722725281615688 x y 6 6 + 4652.2202066084245328 x y > Digits:=10; Digits := 10 > st:=time(); st := 393.975 # This example is simple, there are only two variables. > fac_Ver_f3:=multifac(F3,[x,y],5); ` the biggest gap, the last r-th singular values and the number of factors `, 60478803.59, .1323067709e-9, 8 ` The time for computing the number of factors*****`, .530 `The time for the entire factorization******`, 46.386 fac_Ver_f3 := [[(0.266308775615931914 - 2.23473174602084113 I) y - (0.322168623326480385 - 1.21956835056692725 I) x -14 -14 - 0.2153116088 10 - 0.1284108387 10 I, 1], [ -(1.25368722527658384 - 0.839114779190559544 I) y - (0.546785371866424952 - 0.180578042929346649 I) x -14 -15 + 0.2601883845 10 - 0.2157497316 10 I, 1], [ -(0.480235333830544897 - 2.46820154727646246 I) y - (3.20152976881405849 + 1.31349853682349238 I) x -14 -14 - 0.1915516443 10 + 0.3769462064 10 I, 1], [ (1.25178070168268074 + 2.59178807223967932 I) y + (0.675331565800837864 - 2.40951303916742932 I) x -14 -15 + 0.4257610486 10 - 0.6140392871 10 I, 1], [ -(0.459317215754494078 + 2.87191599764848960 I) y - (1.03394405340793116 + 5.22183294577524215 I) x -14 -13 + 0.3683013095 10 - 0.1471397929 10 I, 1], [ (3.09433122330882558 + 0.703073328852825919 I) y + (4.66192155596080226 - 3.19024633727890270 I) x -13 -14 + 0.1120666462 10 + 0.4828259986 10 I, 1], [ -(3.72925670973530465 - 1.44698895929656968 I) y - (1.44698896020895650 + 3.72925670891088012 I) x -14 -14 + 0.2092738630 10 - 0.3774358997 10 I, 3], [ -(2.08294810324838498 - 2.48046684295324660 I) y + (2.48046684573684262 + 2.08294810566023658 I) x -14 -14 + 0.2853924999 10 + 0.3987915095 10 I, 3]] > TIME3:=time()-st; TIME3 := 53.928 # Check the backward error: > result3:=expand(fac_Ver_f3[1][1]*fac_Ver_f3[2][1]*fac_Ver_f3[3][1]*fac > _Ver_f3[4][1]*fac_Ver_f3[5][1]*fac_Ver_f3[6][1]*fac_Ver_f3[7][1]^(3)*f > ac_Ver_f3[8][1]^(3)): > berror_Ver_F3:=backward_error(result3,F3, [x,y]); Approximate factorization is not a real polynomial c = -859.4672422 + 126.8596356 I -8 berror_Ver_F3 := 0.7617651587 10 > ceil(log10(%)); -8 > save berror_Ver_F3,TIME3,fac_Ver_f3, > cat(path,"verschelde/svw_F3-factors"); # Example 4 # Finally, we let the point pt have arbitrary coordinates: > Digits:=10; Digits := 10 > read cat(path,"verschelde/svw_exf4"): > f4: > ord:=[op(indets(f4))]; ord := [q[0], q[3], p[1], p[2], p[3]] # There are five variables, but two variables have very small # coefficients. Cutoff the small terms, we have only three variables. > F4:=cutoff(f4,ord,15); #EK reduced cutoff order on stored polynomial 7 5 F4 := (527.96589709213685846 + 231.70817791165632678 I) q[0] q[3] 3 p[3] + (52.796589709213685865 + 23.170817791165632686 I) 11 3 q[0] q[3] p[3] + 4 8 (204.57862963488289620 + 219.95903178339155102 I) q[0] q[3] 3 p[3] + (527.96589709213685857 + 231.70817791165632679 I) 5 7 3 q[0] q[3] p[3] - 8 4 (204.57862963488289636 + 219.95903178339155109 I) q[0] q[3] 3 p[3] - (163.66290370790631704 + 175.96722542671324087 I) 10 2 3 q[0] q[3] p[3] + 3 9 (263.98294854606842932 + 115.85408895582816344 I) q[0] q[3] 3 p[3] + (163.66290370790631703 + 175.96722542671324086 I) 2 10 3 q[0] q[3] p[3] + 9 3 (263.98294854606842920 + 115.85408895582816341 I) q[0] q[3] 3 p[3] + (52.796589709213685867 + 23.170817791165632691 I) 11 3 q[3] q[0] p[3] + 12 (40.915725926976579262 + 43.991806356678310215 I) q[3] 3 p[3] - (40.915725926976579264 + 43.991806356678310214 I) 12 3 q[0] p[3] > ord:=[op(indets(F4))]; ord := [q[0], q[3], p[3]] > Digits:=10; Digits := 10 > ord:=[op(indets(F4))]; > ord := [q[0], q[3], p[3]] > F4:=subs({ord[1]=x,ord[2]=y,ord[3]=z},F4); 7 5 3 F4 := (527.96589709213685846 + 231.70817791165632678 I) x y z 11 3 + (52.796589709213685865 + 23.170817791165632686 I) x y z 4 8 3 + (204.57862963488289620 + 219.95903178339155102 I) x y z 5 7 3 + (527.96589709213685857 + 231.70817791165632679 I) x y z 8 4 3 - (204.57862963488289636 + 219.95903178339155109 I) x y z - 10 2 3 (163.66290370790631704 + 175.96722542671324087 I) x y z 3 9 3 + (263.98294854606842932 + 115.85408895582816344 I) x y z + 2 10 3 (163.66290370790631703 + 175.96722542671324086 I) x y z 9 3 3 + (263.98294854606842920 + 115.85408895582816341 I) x y z 11 3 + (52.796589709213685867 + 23.170817791165632691 I) y x z 12 3 + (40.915725926976579262 + 43.991806356678310215 I) y z 12 3 - (40.915725926976579264 + 43.991806356678310214 I) x z # Each terms in F4 has the the factor z^3,so we divide this factor # out.This improves our factorization significantly. > F41:=coeff(F4,z,3); 7 5 F41 := (527.9658971 + 231.7081779 I) x y 11 + (52.79658971 + 23.17081779 I) x y 4 8 + (204.5786296 + 219.9590318 I) x y 5 7 + (527.9658971 + 231.7081779 I) x y 8 4 - (204.5786296 + 219.9590318 I) x y 10 2 - (163.6629037 + 175.9672254 I) x y 3 9 + (263.9829485 + 115.8540890 I) x y 2 10 + (163.6629037 + 175.9672254 I) x y 9 3 + (263.9829485 + 115.8540890 I) x y 11 + (52.79658971 + 23.17081779 I) y x 12 + (40.91572593 + 43.99180636 I) y 12 - (40.91572593 + 43.99180636 I) x > st:=time(); st := 448.233 > factorF4xy:=multifac(F41,[x,y]); ` the biggest gap, the last r-th singular values and the number of factors `, 922115223.6, .1336144434e-9, 4 ` The time for computing the number of factors*****`, .70e-1 `The time for the entire factorization******`, 4.146 factorF4xy := [[-(0.525007303931559032 - 1.34835114717822612 I) y - (0.436040129579677082 - 2.18926155430969648 I) x -15 -15 - 0.5497339939 10 + 0.2399886390 10 I, 1], [ (2.61577586362428338 + 0.107889294127197208 I) y - (1.65758315979298510 + 0.363593518873166155 I) x -15 -15 - 0.5418155216 10 + 0.5381172998 10 I, 1], [ (2.08417681350838358 - 1.65145380398011788 I) y + (1.65145380478700820 + 2.08417681385099484 I) x -15 -15 + 0.9350792234 10 - 0.4823006509 10 I, 5], [ -(2.22324781594803689 + 0.0448550476189959608 I) y - (0.0448550461476472650 - 2.22324781584787257 I) x -15 -15 - 0.4600110385 10 - 0.5433874236 10 I, 5]] > result4xy:=expand(factorF4xy[1][1]^(factorF4xy[1][2])*factorF4xy[2][1] > ^(factorF4xy[2][2])*factorF4xy[3][1]^(factorF4xy[3][2])*factorF4xy[4][ > 1]^(factorF4xy[4][2])): > TIME4:=time()-st; TIME4 := 8.482 # Check the backward error: > result4:=expand(z^3*result4xy): > berror_Ver_F4:=backward_error(result4,F4, [x,y,z]); Approximate factorization is not a real polynomial c = 225.3073479 + 396.2589673 I -8 berror_Ver_F4 := 0.7367922433 10 > ceil(log10(%)); -8 > save berror_Ver_F4,TIME4,factorF4xy, > cat(path,"verschelde/svw_F4-factors"); > > > > > > # # # # # #