# HG changeset patch
# User William Stein <wstein@gmail.com>
# Date 1314086654 25200
# Node ID 163bbb17e4a31bc94ede007aa62bb53928f0c979
# Parent 005cedfeed1cb3b214b0ef4946cd9b2d2c8008e6
trac 6315  part 2: optional doctest failure  caused by mistakes in lectures on number theory rst book
diff git a/doc/en/bordeaux_2008/birds_other.rst b/doc/en/bordeaux_2008/birds_other.rst
a

b


221  221   
222  222  
223  223  Sage uses Bill Hart and David Harvey's GPL'd Flint C library for 
224   arithmetic in :math:`\ZZ[x]`. Its main claim to fame is that it 
225   is the world's fastest for polynomial multiplication, e.g., in the 
226   benchmark below it is 3 times faster than NTL and twice as fast as 
227   Magma. Behind the scenes it contains some carefully tuned discrete 
228   Fourier transform code (which I know nearly nothing about). 
 224  arithmetic in :math:`\ZZ[x]`. Its main claim to fame is that it is the 
 225  world's fastest for polynomial multiplication, e.g., in the benchmark 
 226  below it is faster than NTL and Magma on some systems (though such 
 227  benchmarks of course change as software improves). Behind the scenes 
 228  Flint contains some carefully tuned discrete Fourier transform code. 
229  229  
230  230  :: 
231  231  
… 
… 

242  242  sage: ff = magma(f); gg = magma(g) #optional  magma 
243  243  sage: s = 'time v := [%s * %s : i in [1..10^5]];'%(ff.name(), gg.name()) #optional  magma 
244  244  sage: magma.eval(s) #optional  magma 
245   'Time: 17.120' 
246   sage: (17.120/10^5)*10^(6) # convert to microseconds 
247   171.200000000000 
 245  'Time: ...' 
248  246  
249  247  Singular: Multivariate Polynomial Arithmetic 
250  248   
… 
… 

252  250  Multivariate polynomial arithmetic in many cases uses Singular in 
253  251  library mode (due to Martin Albrecht), which is quite fast. For example, 
254  252  below we do the Fateman benchmark over the finite field of order 
255   32003. 
 253  32003, and compare the timing with Magma. 
256  254  
257  255  :: 
258  256  
… 
… 

264  262  sage: pp = magma(p); qq = magma(q) #optional  magma 
265  263  sage: s = 'time w := %s*%s;'%(pp.name(),qq.name()) #optional  magma 
266  264  sage: magma.eval(s) #optional  magma 
267   'Time: 1.480' 
 265  'Time: ...' 
268  266  
269   Notice that the multiplication takes about four times as long in 
270   Magma. 
271  267  