Univariate GCD timing: use sr_gcd when appropriate. release_1-5-0
authorAlexei Sheplyakov <varg@metalica.kh.ua>
Mon, 16 Feb 2009 14:23:16 +0000 (16:23 +0200)
committerJens Vollinga <jensv@balin.nikhef.nl>
Tue, 17 Feb 2009 13:43:36 +0000 (14:43 +0100)
commitcbba7a5eb9d33003c081a8017dec7da3aa990571
tree47bbdf28fda2cf188f4c2d063292b25490c95053
parent4f2cf6aebc213c200b98fde6adb7133e8688530d
Univariate GCD timing: use sr_gcd when appropriate.

The benchmark consists of two parts:
1) timing of different GCD calculation methods (i.e. subresultant PRS,
   heuristic, chinese remaindering).
2) timing of different implementations of the same method. The purpose
   is to find out how (in)efficient GiNaC::ex is as a representation
   of (univariate) polynomials (as a side note, the result is a bit
   depressing -- using coefficient vector instead of GiNaC:ex makes
   GCD calculation 50x -- 1000x faster).

Now GiNaC uses modular (chinese remaindering) GCD by default, so part 2)
got broken, i.e. instead of (intended) timings

a) (heuristic, GiNaC::ex) versus (heuristic, coefficient vector)
b) (PRS, GiNaC::ex) versus (PRS, coefficient vector)

one gets

a') (heuristic, GiNaC::ex) versus (heuristic, coefficient vector)
b') (chinese remaindering, GiNaC::ex) versus (PRS, coefficient vector)

Set the gcd_options::use_sr_gcd to restore the meaning of the benchmark.

Note: this patch does not affect the library proper.
check/time_uvar_gcd.cpp