#6229: [with patch, positive review] efficiency in Lagrange polynomial
interpolation (easy fix...)
----------------------+-----------------------------------------------------
 Reporter:  ylchapuy  |       Owner:  tbd       
     Type:  defect    |      Status:  new       
 Priority:  minor     |   Milestone:  sage-4.0.1
Component:  algebra   |    Keywords:            
----------------------+-----------------------------------------------------

Comment(by mvngu):

 The patch contains the suggested fix by ylchapuy. It's ylchapuy's code,
 not mine, so authorship credit goes to ylchapuy. I'm just reviewing the
 code. Here are some timing statistics on sage.math:
 {{{
 # BEFORE

 sage: R = PolynomialRing(QQ, 'x')
 sage: %timeit R.lagrange_polynomial([(0,1),(2,2),(3,-2),(-4,9)])
 1000 loops, best of 3: 830 µs per loop
 sage: R.lagrange_polynomial([(0,1),(2,2),(3,-2),(-4,9)])
 -23/84*x^3 - 11/84*x^2 + 13/7*x + 1
 sage: R = PolynomialRing(GF(2**3,'a'), 'x')
 sage: a = R.base_ring().gen()
 sage: timeit("R.lagrange_polynomial([(a^2+a,a),(a,1),(a^2,a^2+a+1)])")
 625 loops, best of 3: 112 µs per loop
 sage: R.lagrange_polynomial([(a^2+a,a),(a,1),(a^2,a^2+a+1)])
 a^2*x^2 + a^2*x + a^2


 # AFTER

 sage: R = PolynomialRing(QQ, 'x')
 sage: %timeit R.lagrange_polynomial([(0,1),(2,2),(3,-2),(-4,9)])
 1000 loops, best of 3: 416 µs per loop
 sage: R.lagrange_polynomial([(0,1),(2,2),(3,-2),(-4,9)])
 -23/84*x^3 - 11/84*x^2 + 13/7*x + 1
 sage: R = PolynomialRing(GF(2**3,'a'), 'x')
 sage: a = R.base_ring().gen()
 sage: timeit("R.lagrange_polynomial([(a^2+a,a),(a,1),(a^2,a^2+a+1)])")
 625 loops, best of 3: 86.2 µs per loop
 sage: R.lagrange_polynomial([(a^2+a,a),(a,1),(a^2,a^2+a+1)])
 a^2*x^2 + a^2*x + a^2
 }}}
 So efficiency gain of up to 50%. Positive review.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6229#comment:4>
Sage <http://sagemath.org/>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to