On 26 Feb., 09:02, Alexander Dreyer
<jan.alexander.dre...@googlemail.com> wrote:
> Hello!> > There is no direct interface to CUDD, at least not in the PolyBoRi
> > > wrappers. You can see the code for the wrappers in the files:
>
> > > c_lib/include/pb_wrap.h
> > > sage/libs/polybori/decl.pxi
> > > sage/rings/polynomial/pbori.p{yx,xd}
>
> > > The last one (.pyx) is the most interesting.
>
> The thing, which is close to a wrapper of CUDD is PolyBoRi's BooleSet,
> but this carries only a proper subset of CUDD's functionality (and
> only for ZDDs).
>
> We had realized at some point, that CUDD's C++-wrapper is not so clean
> (so we wrote our own: PolyBoRi/polybori/include/CCuddInterface.h). So,
> whoever wants to integrate CUDD into SAGE should either wrap CUDD C-
> based core in Cython, or use a new C++-wrapper.
Actually, I recommend reading our C++-wrapper just for the reason,
that it works nice.
In particular: the polynomials/sets increase the reference count on
the manager.
This is very important for using the objects in Python later, as the
order of destruction of
objects in Python is unclear and the user shouldn't have to care about
it.
I had much headaches with the original C++-interface.
I think, Alexanders code shows nicely how to do it (in C++ or Cython,
the principles remain the same).
Michael
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---