#11868: PARI library interface broken by design
-----------------------------------+------------------------------
Reporter: jdemeyer | Owner: was
Type: defect | Status: needs_work
Priority: major | Milestone: sage-5.13
Component: interfaces | Resolution:
Keywords: t0GEN t1GEN gen | Merged in:
Authors: Peter Bruin | Reviewers: Jeroen Demeyer
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
-----------------------------------+------------------------------
Comment (by jdemeyer):
Replying to [comment:16 pbruin]:
> Replying to [comment:10 jdemeyer]:
> > One important "detail": it seems this ticket causes a lot more copying
of data (because of the `gcopy()` in `cdef GEN toGEN`. That's bad.
> In an earlier attempt I did make the `t0` variables of type `gen`. I
think the reason I changed them back to `GEN` is to decrease the number of
`gen` objects that had to be created/deleted. The (only) price to pay for
this is an extra `gcopy()` for Sage objects that are converted via their
`_pari_()` method. This is an extremely common case of course. I'll have
to think some more about this issue.
I don't my suggestion would create more `gen` objects. What usually
happens is (with this patch applied):
- some PARI computation creates a `GEN` on the PARI stack
- `_new_gen()` calls `deepcopy_to_python_heap` which copies the object to
the Python heap and makes it into a `gen` object
- `toGEN` copies the object back to the PARI stack
My proposal is essentially removing the last step.
--
Ticket URL: <http://trac.sagemath.org/ticket/11868#comment:17>
Sage <http://www.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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.