GiNaC/ginac matrix.cpp matrix.h
Richard B. Kreckel
kreckel at thep.physik.uni-mainz.de
Sun Aug 24 21:34:51 CEST 2003
Hi,
On Sun, 24 Aug 2003, Christian Bauer wrote:
> On Sun, Aug 24, 2003 at 08:54:19PM +0200, Richard B. Kreckel wrote:
> > > Log Message:
> > > - charpoly(): lambda is now a "const ex &" instead of a "const symbol &"
> >
> > Is this a speed issue or something else?
>
> I see no reason why lambda should be restricted to symbols. The implementation
> of the algorithm doesn't require it.
In this case, you're right. Leverrier's algorithm doesn't require it and
determinants don't require it either. Okay.
C'mon, that answer was trivial!
I was just panicking over object fusion, but it seems that the doors to
chaos and madness are rather closed in GiNaC 1.2: As part of the GiNaC
evolution towards a modular bridge, some functions received an ex as
argument instead of a symbol. Kompatibility will be maintained by ex
representing symbols?
On Sun, 24 Aug 2003, Christian Bauer wrote to ginac-cvs at ginac.de:
> Modified Files:
> ex.h ex.cpp
> Log Message:
> - implemented object fusion as proposed by Richy
> - unit(), content() and primpart() take a "const ex &" instead of a
> "const symbol &". degree(), coeff(), collect() etc. have dropped the
> restriction to symbols a long time ago, so there's no reason for these
> function to keep it.
That may be somwhat dangerous, but in the end it's great news. What I
would now like to research are the options to put a symbolic class derived
from ex (withoug vtbl/vptr) at the interface side and thus complete the
bridge pattern even more (following CLN's design). This would also
completely avoid confusing code like this one:
On Thu, 10 Jul 2003, Christian Bauer wrote to ginac-list at ginac.de:
> because the symbol objects in the expression are heap-allocated copies
> of "a" and "b", but this works:
>
> symbol &a_sym = *new symbol("a"); a_sym.setflag(status_flags::dynallocated);
> symbol &b_sym = *new symbol("b"); b_sym.setflag(status_flags::dynallocated);
> ex a = a_sym, b = b_sym;
I'll keep you posted.
Regards
-richy.
--
Richard B. Kreckel
<Richard.Kreckel at GiNaC.DE>
<http://www.ginac.de/~kreckel/>
More information about the GiNaC-devel
mailing list