|
From: Bill H. <goo...@go...> - 2008-11-21 15:43:18
|
I found the problem with F_mpz_poly_add. Basically when coefficients were being demoted as a result of cancellations, the mpz_t's were being lost instead of returned to the memory manager. The times are now much more what I would expect, and close to the FLINT 1.x series times. So now FLINT has a sensible integer format and writing polynomial functions is quite easy. The other advantage of the new model is that attaching polynomials using F_mpz_poly_attach will still be possible. It wasn't under the previous model. length 100, bits = 50, iter = 1000000 ===================================== mpz_poly: clear-init2-add-add : 24.342s clear-init2-add : 17.957s clear-init2 : 9.227s flint fmpz_poly: clear-init-add-add : 10.522s clear-init-add : 5.059s clear-init : 0.183s flint-2 F_mpz_poly: clear-init-add-add: 2.360s clear-init2-add: 1.320s clear-init2: 0.400s length 100, bits = 64, iter = 1000000 ===================================== mpz_poly: clear-init2-add-add : 24.608s clear-init2-add : 17.758s clear-init2 : 9.245s flint fmpz_poly: clear-init-add-add : 9.861s clear-init-add : 3.804s clear-init : 0.183s flint-2 F_mpz_poly: clear-init-add-add: 11.740s clear-init2-add: 7.240s clear-init2: 0.450s length 100, bits = 1000, iter = 1000000 ===================================== mpz_poly: clear-init2-add-add : 39.639s clear-init2-add : 28.760s clear-init2 : 10.445s flint fmpz_poly: clear-init-add-add : 19.321s clear-init-add : 8.697s clear-init : 0.235s flint-2 F_mpz_poly: clear-init-add-add: 18.940s clear-init2-add: 9.240s clear-init2: 0.500s length 100, bits = 100, 200, iter = 1000000 ===================================== mpz_poly: clear-init2-add-add : 33.716s clear-init2-add : 18.921s clear-init2 : 10.237s flint fmpz_poly: clear-init-add-add : 14.611s clear-init-add : 6.425s clear-init : 0.190s flint-2 F_mpz_poly: clear-init-add-add: 12.160s clear-init2-add: 6.520s clear-init2: 0.450s Bill. |