[GiNaC-devel] Lst test in clifford.cpp

Chris Dams Chris.Dams at mi.infn.it
Mon May 15 18:22:19 CEST 2006


Dear Vladimir,

On Thu, 11 May 2006, Vladimir Kisil wrote:

> >>>>> "CD" == Chris Dams <Chris.Dams at mi.infn.it> writes:
>     >> (e.g. pyGiNaC) and the later are passed. I did the change in
>     >> clifford.cpp and wondering if it should be applied everywhere.
> 
>     CD> Shouldn't this be considered a problem that is to be solved in
>     CD> pyGiNaC instead of in GiNaC? 
> 
> 	I do not understand all internals deeply, but this may be a problem
>   with the BoostPython, which is the engine of pyGiNaC. In this case it
>   may be rather difficult to correct. On the other hand I really enjoy
>   the interactivity of pyGiNaC and think its is worth for GiNaC to make
>   a small step towards it.

I am very much in favour of interactive programs based on GiNaC but am a
bit afraid that solving this problem within GiNaC (1) fixes something in
GiNaC that is not a bug and (2) fails to fix something that is a bug in
another package. Did you try to contact the autor/mailing list of pyGiNaC
on this?

>     CD> Does it go wrong with other types than lst?
> 
> 	It seems like the root of problem in the GiNaC::lst itself, since
>   this is the only(?) class in GiNaC which is not a child of basic. So far
>   I did  not notice  problems with other GiNaC derived classes. 

Well, lst is a child of basic but Maybe the problem is that container is a
child class of both basic and container_storage. Maybe you could test
whether this is the case by trying an example for yourself where you try
to wrap a class that is multiply inherited. This could give an idea
whether the problem with pyGiNaC or with BoostPython.
 
>     CD> After all I think that users of pyGiNaC should be able 
>     CD> to use is_a<lst> for the lists that they
>     CD> create. 
> 
> 	There two level there. First it is necessary to write a C++ wrapper
>   in BoostPython for any class derived from GiNaC (we are doing it now
>   for my library for cycles). For some reasons which I do not understand
>   this does not work for lst. Hence each time the wrapper should explicitly
>   convert Python lists to GiNaC::lst, and the later fail to pass
>   is_a<lst> test. ;-(

Maybe you could try to construct a minimal example that exhibits the
problem and mail that to the PyGiNaC mailing list or author.

Best,
Chris



More information about the GiNaC-devel mailing list