Adding python support to GiNaC
Richard B. Kreckel
kreckel at thep.physik.uni-mainz.de
Wed Dec 19 17:17:52 CET 2001
Hi there,
On Tue, 18 Dec 2001, Pearu Peterson wrote:
> I have been working on the python interface to GiNaC. It is quite usable
> already and I have tested it in many problems. However, it would be great
> if some python specific changes that I had to do in GiNaC, could be added
> to GiNaC. These changes include mostly printing expressions. Earlier I
> used hooks from GiNaC archive features to get desired output for python,
> but it was _very_ slow compared to the native GiNaC print hooks.
>
> So, please find a patch attached that adds two new print_context classes,
> print_python and print_python_repr, with the corresponding additions to
> print methods of the basic classes.
> The patch includes also the following change in the idx::print method for
> print_latex context: `a.b' becomes `a_{b}' if b is covariant, `a^{b}',
> otherwise (you can ignore it if you don't like it).
>
> This patch is against GiNaC-1.0.1. I can make it also against the
> latest GiNaC in CVS. Let me know if needed.
I am about to check in your patch. Just one curious question: why the
unsigned variable in
> unsigned end = nops();
> if (end)
> op(0).print(c);
> for (unsigned i=1; i<end; ++i) {
> c.s << ',';
> op(i).print(c);
> }
in classes mul and add? Did
> op(0).print(c);
> for (unsigned i=1; i<nops(); ++i) {
> c.s << ',';
> op(i).print(c);
> }
not work? In this case you would have gotten an unevaluated expairseq,
which'ld be strange...
Also, I am removing the implementation of relational::is_equal_same_type
you sent us for 1.0.1 because having relational::compare_same_type is
enough by virtue of basic::compare_same_type.
Well, theoretically. In practice, removing it brought me rather close to
the gates of Heisenbug-madness. See the new lines in inifcns_trans.cpp
for a scary moment. May GCC-2.95 soon fade into oblivion! :-(
Regards
-richy.
--
Richard B. Kreckel
<Richard.Kreckel at Uni-Mainz.DE>
<http://wwwthep.physik.uni-mainz.de/~kreckel/>
More information about the GiNaC-devel
mailing list