#5616: speed regression with fast_callable
------------------------------+---------------------------------------------
Reporter: robertwb | Owner: cwitty
Type: defect | Status: new
Priority: major | Milestone: sage-3.4.2
Component: basic arithmetic | Keywords:
------------------------------+---------------------------------------------
Before (vanilla 3.4)
{{{
sage: var('x,y')
(x, y)
sage: time P = parametric_plot3d((x, y, x*y), (x, -10, 10), (y, -10, 10),
plot_points=(500,500))
CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s
Wall time: 0.00 s
sage: time P.triangulate()
CPU times: user 0.06 s, sys: 0.02 s, total: 0.08 s
Wall time: 0.08 s
}}}
after (3.4 + #5093)
{{{
sage: sage: var('x,y')
(x, y)
sage: sage: time P = parametric_plot3d((x, y, x*y), (x, -10, 10), (y, -10,
10), plot_points=(500,500))
CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s
Wall time: 0.00 s
sage: sage: time P.triangulate()
CPU times: user 0.28 s, sys: 0.02 s, total: 0.30 s
Wall time: 0.30 s
}}}
I think this is due to there not being an interface to evaluate
fast_callable objects without passing through Python. Perhaps a
{{{
cdef int call_c(void* args, void* ret) except -1
}}}
method should be attached to the generic interpreter wrapper class (to be
overridden by the subclasses), and those with specific knowledge about the
various implementations could then use this interface (e.g. RDF passes
double*).
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5616>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---