# Worksheet to execute the examples in Gao, Kaltofen, May, Yang, & Zhi: # # 'Approximate Factorization of Multivariate polynomials via # differential Equations' > # Factorization routines: > read("multifac_1.3.mpl"): > # Set path to example subdirectory: > path:="examples\/": > # rand_path:="debug_exs\/": # debugging the spreadsheet > rand_path:=path: # random examples in paper # A note about backward_error(F, G, [vars]): # We compute c so that ||F-c*G||_2 is as small as possible. The output # is ||F - c*G||_2 / ||F||_2. # Examples from previous papers on approximate factorization > read(cat(path,"exLit")): # Example 1: Nagasaka in ISSAC'02 # Example taken from: # Nagasaka, Kosaku. Towards certified irreducibility testing of # bivariate approximate polynomials. In Mora, T., editor ISSAC 2002 # Procedings of 2002 International Symposium on Symbolic and Algebraic # Computing, pages 192-199, New York, N.Y., 2002. ACM Press. ISBN # 1-58113-484-3. # > Na02; 5 3 2 2 2 4 3 2 2 3 x + x u - x u + 7 x + u x + u x - 2 u x + 7 u x + 2 u x 3 2 3 + 2 u x - 2 u + 15 u - x - 7 + 0.2 x > t1:=time(): > facNa02:=appfac(Na02,[x,u]); > t1:=time()-t1; ` the biggest gap, the last r-th singular values and the number of factors `, 10.66697691, .4362531450e-3, 2 ` The time for computing the number of factors*****`, 5.728 `The time for the entire factorization******`, 14.561 3 facNa02 := [(0.000341124534691889555 + 0. I) u 2 - (0.294509433380196140 + 0. I) u x 2 - (0.0000413789722447303443 + 0. I) x u 3 - (0.296197230468099148 + 0. I) x 2 + (0.00971289635380540202 + 0. I) u - (0.0142725188110806103 + 0. I) u x 2 + (0.0129003734808113332 + 0. I) x + (0.291409870076061728 + 0. I) u + (0.0109341660279600808 + 0. I) x - 2.038754149 + 0. I, 2 (0.000726418757960970190 + 0. I) u + (0.518780867966489700 + 0. I) u x 2 + (0.513570028546852408 + 0. I) x + (1.02928919310221523 + 0. I) u + (0.0141833754563419710 + 0. I) x - 0.5148251439 + 0. I] t1 := 14.631 > berror1:=backward_error(Na02, convert(facNa02, `*`), [x,u]); > ceil(log[10](%)); c = -6.676951989 berror1 := 0.01084227541 -1 > save facNa02, t1, berror1, cat(path,"exF01-factors"); # Example 2: Sasaki's second example in ISSAC'01 # Example taken from: # Sasaki, Tateaki. Approximate multivariate polynomial factorization # based on zero-sum relations. In Mourrain, B., editor ISSAC 2001 # Procedings of 2001 International Symposium on Symbolic and Algebraic # Computing, pages 284-291, New York, N.Y., 2001. ACM Press. ISBN # 1-58113-417-7. # > Sa01_2; 6 7 5 3 3 9. x - 4. x - 18. u + 9. u + 12.00000000 u x - 3. u x 4 3 2 2 + 22. x u - 18. u x + 36.00000000 x u + 9. x u 4 3 2 2 3 5 4 + 15. u x - 27. u x + 6. x + 6. x - 4. x + 12. x 3 4 9 2 2 8 2 + 9. u + 22. u + 2.000000000 u x + 20. x u + x u 8 6 4 6 3 6 2 - 2. x u + x u + 9.000000000 x u - 14. x u 6 5 5 5 4 5 2 + 7.000000000 x u + 10. x u - 8. x u - 5. x u 3 7 2 7 7 3 5 6 4 + 2. u x - 12. u x - 1. u x - 5. u x + u x 5 4 3 4 5 4 4 4 2 - 6. u x - 10. u x + 12. x u - 1. x u - 7. x u 3 7 3 6 3 4 3 5 + 6. x u - 10. x u + 5. x u - 28.00000000 x u 8 2 7 2 5 2 3 3 10 9 + 4. u x + 2. u x - 3. u x + 18. x u + x + x 8 7 10 9 8 6 - 6. x - 7. x + 2. u + 4. u - 3. u - 8. u - 9. 2 6 2 4 9 8 6 - 13. x u + 14. x u + 5. x u + 7. x u - 24. x u 7 5 - 16.00000000 u x + 7. u x > t2:=time(): > facSa01_2:=appfac(Sa01_2,[x,u]); > t2:=time()-t2; ` the biggest gap, the last r-th singular values and the number of factors `, 516494277.3, .1781971781e-10, 2 ` The time for computing the number of factors*****`, .471 `The time for the entire factorization******`, 5.198 5 facSa01_2 := [-(0.181676211474680910 + 0. I) x -9 2 + (0.139091675649602770 10 + 0. I) x u 3 - (0.545028634288887260 + 0. I) u x -10 2 + (0.870033778093095316 10 + 0. I) x -9 - (0.201083919468041111 10 + 0. I) u 3 2 - (0.363352422755977400 + 0. I) x u -9 3 + (0.105649345512199214 10 + 0. I) u 4 - (0.363352422771981431 + 0. I) x u 2 + (0.726704845647044628 + 0. I) u x -9 2 2 - (0.243094648018957046 10 + 0. I) x u 5 - (0.181676211493751988 + 0. I) u -9 3 2 + (0.154569391958873124 10 + 0. I) u x 3 + (0.181676211268180038 + 0. I) x + (0.545028634139082202 + 0. I) u x 4 - (0.363352422641152362 + 0. I) x 2 + (0.726704845598070136 + 0. I) u 4 - (0.181676211392875486 + 0. I) u x -9 - (0.193514377648845047 10 + 0. I) x 4 - (0.363352422699872668 + 0. I) u 3 + (0.545028634112277422 + 0. I) u x + 0.5450286341 + 0. I, 5 -(0.182422130858285403 + 0. I) x -9 2 - (0.324011290663659887 10 + 0. I) x u 3 + (0.182422131015388206 + 0. I) u x 2 + (0.364844261880250210 + 0. I) x -10 + (0.538630264289403784 10 + 0. I) u 3 2 + (0.364844262024693556 + 0. I) x u 3 + (0.547266392776354250 + 0. I) u 4 - (0.182422130755586554 + 0. I) x u -9 2 + (0.125388414830216774 10 + 0. I) u x 2 2 + (0.547266392900752630 + 0. I) x u 5 - (0.364844261991684404 + 0. I) u 3 2 - (0.364844261941178138 + 0. I) u x 3 + (0.547266392761038390 + 0. I) x - (0.547266393102393556 + 0. I) u x 4 + (0.182422131040151509 + 0. I) x 2 + (0.729688523838087022 + 0. I) u 4 - (0.182422130953146078 + 0. I) u x + (0.547266392726047046 + 0. I) x -9 4 - (0.269607696401641968 10 + 0. I) u -9 3 - (0.245677252645564956 10 + 0. I) u x - 0.5472663931 + 0. I] t2 := 5.258 > berror2:=backward_error(Sa01_2, convert(facSa01_2, `*`), [x,u]); > ceil(log[10](%)); c = 30.17341118 -9 berror2 := 0.8302965983 10 -9 > save facSa01_2, t2, berror2, cat(path,"exF02-factors"); # Example 3: Sasaki's first example in ISSAC'01 # Example taken from: # Sasaki, Tateaki. Approximate multivariate polynomial factorization # based on zero-sum relations. In Mourrain, B., editor ISSAC 2001 # Procedings of 2001 International Symposium on Symbolic and Algebraic # Computing, pages 284-291, New York, N.Y., 2001. ACM Press. ISBN # 1-58113-417-7. # > Sa01_1; 6 7 3 3 4 4. x + 16. x - 12. u - 15.00004000 u x - 6. u x - 8. x u 2 3 2 4 3 2 2 + 4. u x - 12.00003000 x u + 8. u x + 19. u x - 18. x 3 5 4 3 4 + 19. x - 10. x - 16. x + 9. u - 4. u 9 2 2 8 2 8 - 0.9999800000 u x + 4. x u + 18. x u + 8. x u 6 4 6 3 6 2 + 2. x u - 10.00003000 x u + 6. x u 6 5 5 5 4 5 2 - 0.00001000000000 x u - 16. x u - 4. x u + 16. x u 3 7 2 7 7 3 5 6 4 - 5. u x - 4. u x + 14. u x + 16. u x - 12. u x 5 4 3 4 5 4 4 4 2 + 7. u x - 10. u x - 4. x u - 2. x u + 12. x u 3 7 3 6 3 4 3 5 - 4. x u + 16. x u - 2. x u + 19.00001000 x u 8 2 7 2 5 2 3 3 10 + 4. u x + 3. u x - 28. u x - 14. x u - 14. x 9 8 7 10 6 2 6 + 17. x - 24. x - 8. x - 2. u + 6. u + 6. + 12. x u 2 4 9 8 6 7 + 4. x u - 1. x u + 4. x u - 8. x u - 11.99997000 u x 5 11 12 15 14 20 + 21. u x - 2. x + 10. x + 8. x - 8. x + x 19 17 13 18 16 10 7 - 1. x + 3. x - 7. x - 4. x - 7. x - 8. x u 11 2 10 4 19 12 2 15 2 + 10. x u - 5. x u + 2. x u - 10. x u - 2. x u 17 2 17 15 3 14 6 14 4 - 2. x u + x u + 4. x u + 2. x u + 5. x u 14 2 12 8 10 10 11 9 + 11. x u + 6. x u + 9. x u + 11. x u 11 7 10 8 9 3 10 14 + 3. x u + 9. u x - 14. u x + 5. u x + 8. u x 13 5 9 2 18 3 11 3 14 - 6. u x - 3. u x + 2. u x - 17. u x - 5. u x 3 16 2 16 7 13 5 13 3 13 - 4. u x + 6. u x + 3. u x - 1. u x + u x 18 16 11 9 8 10 9 7 - 1. u x + 2. u x + 9. u x + 4. u x + 4. x u 10 2 9 4 13 6 13 4 13 2 + 3. x u + 14. x u + 2. x u + 2. x u - 1. x u 11 8 9 10 11 6 10 9 9 2 - 6. x u - 4. x u + 9. x u + 2. x u - 16. x u 8 9 8 6 17 3 15 4 12 4 + 4. x u + 13. x u + 3. x u + x u + 2. x u 8 12 9 9 8 7 8 4 15 + 7. x u + 6. x u + 8. x u - 3. x u - 6. x u 10 6 3 8 10 7 5 8 3 9 - 4. x u - 10. u x - 8. u x - 14. u x - 11. u x 3 12 7 7 4 16 5 12 5 14 + 9. u x - 17. u x + 2. u x + 7. u x + 2. u x 5 11 13 7 9 7 6 7 4 11 + 11. u x + 4. u x + 4. u x + u x - 2. u x 12 7 11 8 7 4 9 6 4 7 + 2. u x - 2. u x + 4. x u + 4. x u - 12. x u 3 14 4 9 5 7 3 11 5 9 - 2. x u + 25. x u + 12. x u + 13. x u - 13. x u 7 11 5 15 12 7 3 17 5 13 + 8. x u + 3. x u - 3. x u + 8. x u + 5. x u 4 16 4 14 3 12 7 5 3 9 + 11. x u + x u + 12. x u + 18. x u - 8. x u 8 8 10 5 3 15 5 11 4 12 - 1. x u - 7. x u + x u + 9. x u + 14. x u 8 3 12 10 4 8 4 5 8 + 2. u x + 5. u x - 24. u x + 10. u x + 7. x u 3 10 5 6 15 2 8 7 8 6 + 2. x u + 19. x u - 6. u x + 6. u x - 3. u x 12 2 14 6 12 6 10 6 18 2 - 10. u x + 4. u x - 1. u x + 6. u x + 8. u x 14 2 7 6 11 2 13 6 11 6 + 20. u x + 16. u x + 7. u x - 2. u x + 4. u x 9 6 15 4 17 2 13 4 16 3 + 5. u x - 1. u x - 1. u x - 4. u x - 3. u x 10 2 5 6 11 4 13 2 6 6 - 4. u x + 16. u x + 3. u x + 3. u x - 5. x u 2 9 16 13 19 17 + 20. x u - 3. x u - 5. x u + 10. x u - 9. u 14 20 13 16 2 16 13 3 - 6. u + 3. u - 3. u + 2. u + 11. x u + 5. u x 15 10 10 5 12 5 17 + 11. u x - 8. u x + 6. u x + 9. u x - 3. u x > t3 := time(): > facSa01_1:=appfac(Sa01_1,[x,u]): > t3 := t3-time(); ` the biggest gap, the last r-th singular values and the number of factors `, 149706.7995, .3264602951e-7, 2 ` The time for computing the number of factors*****`, 16.454 `The time for the entire factorization******`, 85.904 t3 := -85.964 > berror3:=backward_error(Sa01_1, convert(facSa01_1, `*`), [x,u]); > ceil(log[10](%)); c = -90.27008527 -5 berror3 := 0.1048356779 10 -5 > save facSa01_1, t3, berror3, cat(path,"exF03-factors"); # Example 4: Corless, Giesbrech, van Hoeij, Kotsireas & Watt in ISSAC'01 # Example taken from: # Corless, Robert M., Geisbrecht, Mark W., van Hoeij, Mark, Kotsireas, # Ilias S, and Watt, Stephen M. Towards factoring bivariate approximate # polynomials. In Mourrain, B., editor ISSAC 2001 Procedings of 2001 # International Symposium on Symbolic and Algebraic Computing, pages # 85-92, New York, N.Y., 2001. ACM Press. ISBN 1-58113-417-7. > Cor01; 4 4 4 2 4 3 1336. x - 9140. y - 16701. x y - 12875. x y - 9964. x y 6 3 6 8 6 7 2 12 + 7515. x y - 15765. x y - 24407. x y - 12526. x y 7 4 6 3 3 + 1657. x y + 1201. x y + 8500. x y + 28375. x y 6 4 6 6 5 - 18178. x y + 13029. x y - 2133. x y + 12569. x y 6 2 5 2 5 3 3 4 + 12305. x y - 10865. x y - 18137. x y + 16481. x y 3 12 6 3 - 4332. x y + 17253. x y - 3532. x - 4469. x y 7 2 4 8 4 6 - 23031. x y - 8489. x y + 5622. x y - 1150. x y 6 3 6 3 9 8 + 7446. x y + 11490. x y - 17692. x y - 1279. x y 2 6 12 3 2 3 5 + 7410. x y + 443. y + 1144. x y + 13693. x y 2 3 5 4 10 - 581. x - 13722. x - 8340. x + 14017. x - 2740. x 9 8 7 11 12 + 791. x + 28317. x - 8660. x + 1320. x + 7799. x 15 14 13 5 3 - 1615. x - 8183. x - 7421. x + 9919. y - 2630. y 7 8 2 6 4 + 14528. y - 6070. y + 5780. y - 8752. y - 5476. y 2 5 2 4 2 2 2 - 24956. x y - 4577. x y + 10462. x y + 5138. x y 5 2 3 4 8 + 7992. x y + 14837. x y - 24426. x y + 5665. x y 13 9 10 14 + 2436. x y + 10965. x y - 1933. x y - 2358. x y 11 2 7 2 8 2 13 + 3912. x y - 3197. x y + 7598. x y - 5291. x y 2 9 2 10 2 11 3 12 + 6026. x y + 10455. x y + 19611. x y - 2738. x y 3 7 3 8 15 13 - 20344. x y - 8335. x y + 3538. y + 1166. y 9 10 14 11 - 7638. y + 1505. y + 6824. y - 8379. y 3 10 4 5 4 7 3 11 - 5472. x y + 7984. x y + 38061. x y + 11653. x y 4 9 4 10 4 11 5 5 - 22298. x y + 4951. x y + 623. x y - 9179. x y 5 8 5 7 5 6 5 4 - 37335. x y + 5682. x y - 6521. x y - 4056. x y 5 9 5 10 6 9 6 5 - 26026. x y + 6056. x y + 6809. x y - 28736. x y 7 5 7 3 7 7 7 8 - 16131. x y + 14198. x y + 13192. x y + 9663. x y 7 2 7 6 7 4 8 5 - 21142. x y + 5453. x y - 2478. x y + 33620. x y 8 3 8 7 8 2 8 6 - 4347. x y - 8878. x y + 14689. x y - 5534. x y 8 4 9 9 5 9 3 - 31641. x y + 10428. x y + 20868. x y - 7687. x y 9 2 9 6 9 4 10 + 14028. x y - 7565. x y + 15269. x y - 1248. x y 10 5 10 3 10 2 - 8554. x y + 5810. x y + 18437. x y 10 4 11 2 11 4 11 3 + 29137. x y + 2724. x y + 1771. x y - 1596. x y 11 12 12 3 12 2 + 1896. x y - 2493. x y - 464. x y - 11025. x y 13 2 13 14 + 6590. x y - 8372. x y + 3205. x y + 6384.000382 > t4:=time(): > facCor01:=appfac(Cor01,[x,y]): > t4:=time()-t4; ` the biggest gap, the last r-th singular values and the number of factors `, 11274956.99, .5960595343e-9, 2 ` The time for computing the number of factors*****`, 3.615 `The time for the entire factorization******`, 19.568 t4 := 19.628 > berror4:=backward_error(Cor01, convert(facCor01, `*`), [x,y]); > ceil(log[10](%)); c = -60058.52311 -7 berror4 := 0.1409894147 10 -7 > save facCor01, t4, berror4, cat(path,"exF04-factors"); # Example 5: Corless, Galligo, Kotsireas & Watt in ISSAC'02: # Example taken from: # Corless, Robert M., Galligo, Andre, Kotsireas, Ilias S., and Watt, # Stephen M. A geometric-numeric algorithm for absolute factorization of # multivariate polynomials. In Mora, T., editor ISSAC 2002 Procedings # of 2002 International Symposium on Symbolic and Algebraic Computing, # pages 192-199, New York, N.Y., 2002. ACM Press. ISBN 1-58113-484-3. # > Cor02; 4 4 4 2 4 3 6 3 4 -3 - 16 x + 7 y + 3 x y + 3 x y + 6 x y + 8 x y + 4 x y 3 3 5 2 3 4 3 3 7 - 5 x y - x y - 10 x y - 16 x y + 8 x y - 4 x y 2 6 3 6 3 2 2 3 + 4 x y + 8 x y - 5 x y - 11 x y - 20 x - 11 x 5 4 9 7 5 3 7 2 - 4 x - 2 x - 3 x - 8 x + 3 y + 8 y + 3 y + 3 y 6 4 2 5 2 4 2 2 2 5 + 3 y + 6 y + x y + 4 x y - x y - 16 x y - 4 x y 2 3 4 9 + 5 x y + 5 x y + y > t5:=time(): > facCor02:=appfac(Cor02,[x,y]): > t5:=time()-t5; ` the biggest gap, the last r-th singular values and the number of factors `, 262965857.3, .1877443001e-10, 3 ` The time for computing the number of factors*****`, .231 `The time for the entire factorization******`, 9.184 t5 := 9.234 > berror5:=backward_error(Cor02, convert(facCor02, `*`), [x,y]); Approximate factorization is not a real polynomial c = 0.9035678395 - 6.452966766 I -8 berror5 := 0.1294427317 10 > save facCor02, t5, berror5, cat(path,"exF05-factors"); # New Randomly Generated Examples # Example 6: Three Factors (6, 6, 10), Moderate Noise -5 # This example is a polynomial with three factors with coefficients in # [-5, 5], two factors with total degree 6 and one with total degree 10; # the added noise is of order 10^(-5). # > read(cat(rand_path,"exF06")): > F6 := expand(evalf(cleanF6 + noiseF6)): > norm(evalf(noiseF6),2) / norm(F6,2); > ceil(log10(%)); -5 0.9999995835 10 -5 > t6:=time(): > facF6:=appfac(F6,[x,y]): > t6:=time()-t6; ` the biggest gap, the last r-th singular values and the number of factors `, 1619.016618, .6622266238e-6, 3 ` The time for computing the number of factors*****`, 30.363 `The time for the entire factorization******`, 539.616 t6 := 539.676 > berror6:=backward_error(F6, convert(facF6, `*`), [x,y]); > ceil(log10(%)); c = -2517.435375 berror6 := 0.0002473633661 -3 > save facF6, t6, berror6, cat(rand_path,"exF06-factors"); # Example 7: Two Factors (9, 7), Moderate Noise -4 > read(cat(rand_path,"exF07")): > F7 := expand(evalf(cleanF7 + noiseF7)): > norm(evalf(noiseF7),2) / norm(F7,2); > ceil(log10(%)); 0.0001000000737 -3 > t7:=time(): > facF7:=appfac(F7,[x,y]): > t7:=time()-t7; ` the biggest gap, the last r-th singular values and the number of factors `, 485.9325000, .1528992500e-4, 2 ` The time for computing the number of factors*****`, 5.127 `The time for the entire factorization******`, 43.773 t7 := 43.823 > berror7:=backward_error(F7, convert(facF7, `*`), [x,y]); > ceil(log10(%)); c = -150.5361697 berror7 := 0.0002136147448 -3 > save facF7, t7, berror7, cat(rand_path,"exF07-factors"); # Example 8: Five Factors (4,4,4,4,4), Moderate Noise -5 > read(cat(rand_path,"exF08")): > F8 := expand(evalf(cleanF8 + noiseF8)): > norm(evalf(noiseF8),2) / norm(F8,2); > ceil(log10(%)); -5 0.9999998574 10 -5 > t8:=time(): > facF8:=appfac(F8,[x,y]): > t8:=time()-t8; ` the biggest gap, the last r-th singular values and the number of factors `, 472.8585859, .3093153669e-6, 5 ` The time for computing the number of factors*****`, 17.795 `The time for the entire factorization******`, 1348.065 ` the biggest gap, the last r-th singular values and the number of factors `, 472.8585859, .3093153669e-6, 5 ` The time for computing the number of factors*****`, 18.376 `The time for the entire factorization******`, 1690.841 ` the biggest gap, the last r-th singular values and the number of factors `, 109.0779874, .1410754845e-4, 3 ` The time for computing the number of factors*****`, 1.482 `The time for the entire factorization******`, 59.525 t8 := 3098.872 # > berror8:=backward_error(F8, convert(facF8, `*`), [x,y]); > ceil(log10(%)); c = 4693.311422 berror8 := 0.001314044965 -2 > save facF8, t8, berror8, cat(rand_path,"exF08-factors"); # Example 9: Three Factors (3,3,3), Large Noise -1 > read(cat(rand_path,"exF09")): > F9 := expand(evalf(cleanF9 + noiseF9)): > norm(evalf(noiseF9),2) / norm(expand(F9),2); > ceil(log10(%)); 0.09825285308 -1 > t9:=time(): > facF9:=appfac(F9,[x,y]): > t9:=time()-t9; the gap is too small, we think the polynomial is irreducible. t9 := 0.441 > berror9:=backward_error(F9, convert(facF9, `*`), [x,y]); > ceil(log10(%)); c = 0.9999999994 -9 berror9 := 0.6125680600 10 -9 > save facF9, t9, berror9, cat(rand_path,"exF09-factors"); # # Example 13: Two Factors (5, 5^2), Moderate Noise -5 # This example should have a very small gap. > read(cat(rand_path,"exF13")): > F13 := expand(evalf(cleanF13 + noiseF13)): > norm(evalf(noiseF13),2) / norm(F13,2); > ceil(log10(%)); -5 0.8246778535 10 -5 > t13:=time(): > facF13:=multifac(F13,[x,y],1): > t13:=time()-t13; ` the biggest gap, the last r-th singular values and the number of factors `, 8979.180166, .1184609054e-5, 2 ` The time for computing the number of factors*****`, .561 `The time for the entire factorization******`, 6.009 t13 := 34.280 > berror13:=backward_error(F13, mul(facF13[i][1]^facF13[i][2], > i=1..nops(facF13)), [x,y]); > ceil(log10(%)); c = -514.0322327 berror13 := 0.00006975310525 -4 > save facF13, t13, berror13, cat(rand_path,"exF13-factors"); # Example 15: Two Factors (5, 5), Moderate Noise -5, three vars > read(cat(rand_path,"exF15")): > F15 := expand(evalf(cleanF15 + noiseF15)): > norm(evalf(noiseF15),2) / norm(F15,2); > ceil(log10(%)); 0.00001000000200 -4 > t15:=time(): > facF15:=appfac(F15,[x,y,z]): > t15:=time()-t15; ` the biggest gap, the last r-th singular values and the number of factors `, 11933.53114, .2013892459e-5, 2 ` The time for computing the number of factors*****`, 117.178 `The time for the entire factorization******`, 332.948 t15 := 332.988 > berror15:=backward_error(F15, convert(facF15, `*`), [x,y,z]); > ceil(log10(%)); c = -427.5519626 berror15 := 0.00001719150609 -4 > save facF15, t15, berror15, cat(rand_path,"exF15-factors"); > > # # Example 15a: Two Factors (2,2), three vars, Kaltofen challenge JSC # 29/6, pp. 891-919 (2000) > read(cat(rand_path,"exF19")): > F19 := expand(evalf(cleanF19 + noiseF19)): > norm(evalf(noiseF19),2) / norm(F19,2); > ceil(log10(%)); 0.00004586685667 -4 > t19:=time(): > facF19:=appfac(F19,[x,y,z]): > t19:=time()-t19; ` the biggest gap, the last r-th singular values and the number of factors `, 1563747223., .1675047140e-10, 2 ` The time for computing the number of factors*****`, 5.809 `The time for the entire factorization******`, 12.969 t19 := 13.009 > berror19:=backward_error(F19, convert(facF19, `*`), [x,y,z]); > ceil(log10(%)); c = -1156.631522 -8 berror19 := 0.1017424319 10 -8 > save facF19, t19, berror19, cat(rand_path,"exF19-factors"); > # # #