Jens Vollinga [Tue, 30 Sep 2003 21:50:02 +0000 (21:50 +0000)]
Synced to 1.1
Christian Bauer [Tue, 30 Sep 2003 19:58:59 +0000 (19:58 +0000)]
Implemented the Blitz++ trick to allow the initialization of lists and matrices
from comma-separated sequences of expressions, like this:
lst l;
l = x, 2, y, x+y;
matrix M(3, 3);
M = x, y, 0,
-y, x, 0,
0, 0, 1;
This is both faster and produces much smaller code than the old constructors
lst(ex, ex, ...) and matrix(unsigned, unsigned, lst), especially in the case
of matrices, and is now the recommended way to create these objects.
Christian Bauer [Mon, 29 Sep 2003 17:30:11 +0000 (17:30 +0000)]
parallel build uses NCPU jobs instead of NCPU+1
Jens Vollinga [Mon, 29 Sep 2003 17:25:29 +0000 (17:25 +0000)]
Synced to 1.1
Christian Bauer [Thu, 18 Sep 2003 19:35:47 +0000 (19:35 +0000)]
tidied up ex::subs()
Richard Kreckel [Sat, 6 Sep 2003 01:11:58 +0000 (01:11 +0000)]
* ginsh_input(): Modern versions of flex want us to use the macro
YY_CURRENT_BUFFER instead of accessing yy_current_buffer directly.
(I'm not sure about the preprocessor conditional, but asking whether
YY_CURRENT_BUFFER is defined appears to be the most natural strategy.)
Christian Bauer [Fri, 5 Sep 2003 19:58:11 +0000 (19:58 +0000)]
Improved the pre-/postorder iterators: They visit the root node and are now
only marginally slower than a recursive function like traverse(). The only
remaining problem is that for an expression consisting of only one primitive
object, ex::begin() and ex::end() return the same value, so the iteration
immediately stops without visiting the one existing node. We probably need
special versions of begin()/end() for creating pre-/postorder iterators after
all.
Christian Bauer [Thu, 4 Sep 2003 18:31:09 +0000 (18:31 +0000)]
added a note about expressions in STL containers
Christian Bauer [Thu, 4 Sep 2003 18:01:09 +0000 (18:01 +0000)]
mention the subs(exmap &) form
Christian Bauer [Thu, 4 Sep 2003 18:00:59 +0000 (18:00 +0000)]
documentation update
Christian Bauer [Thu, 4 Sep 2003 18:00:16 +0000 (18:00 +0000)]
the old methods of ex remain for compatibility
Christian Bauer [Wed, 3 Sep 2003 18:18:34 +0000 (18:18 +0000)]
minor optimizations to ex::subs()
Christian Bauer [Wed, 3 Sep 2003 18:18:15 +0000 (18:18 +0000)]
implemented operator-> for the iterators
Christian Bauer [Tue, 2 Sep 2003 20:01:55 +0000 (20:01 +0000)]
added some words of warning to ex_to<>()
Christian Bauer [Tue, 2 Sep 2003 19:59:12 +0000 (19:59 +0000)]
- added missing #include <stdexcept>
- reduced the amount of inlining a little
Christian Bauer [Tue, 2 Sep 2003 18:29:06 +0000 (18:29 +0000)]
synced to 1.1
Christian Bauer [Fri, 29 Aug 2003 21:29:14 +0000 (21:29 +0000)]
Added const_iterator, const_preorder_iterator, const_postorder_iterator. The
pre-/postorder iterators don't visit the root node; this should probably be
fixed. The ex::traverse*() functions can then be removed.
Christian Bauer [Fri, 29 Aug 2003 17:36:02 +0000 (17:36 +0000)]
moved the reference counter into its own class "refcounted"
Richard Kreckel [Fri, 29 Aug 2003 01:06:23 +0000 (01:06 +0000)]
* Fix for lintian error "package-lacks-versioned-build-depends-on-debhelper 4".
Richard Kreckel [Fri, 29 Aug 2003 00:35:39 +0000 (00:35 +0000)]
* Oops, forgot to cvs add the two new files in last commit.
Richard Kreckel [Fri, 29 Aug 2003 00:34:38 +0000 (00:34 +0000)]
* Preliminar update over Debian's ginac_1.1.3-1.diff.gz.
Christian Bauer [Wed, 27 Aug 2003 19:42:29 +0000 (19:42 +0000)]
lsts are not shareable by default
Christian Bauer [Tue, 26 Aug 2003 22:14:37 +0000 (22:14 +0000)]
- added some (empty) exception specifications (reduces code size a little)
- synced to 1.1 (ex::const_iterator::operator[])
Christian Bauer [Tue, 26 Aug 2003 21:02:52 +0000 (21:02 +0000)]
documentation update (sort of)
Christian Bauer [Tue, 26 Aug 2003 21:01:27 +0000 (21:01 +0000)]
symbols can be made noncommutative (see symbol constructors); some feedback
on the usefulness of this would be appreciated
Christian Bauer [Tue, 26 Aug 2003 21:00:36 +0000 (21:00 +0000)]
bumped archive version number because of added attributes for symbols
Christian Bauer [Tue, 26 Aug 2003 20:57:44 +0000 (20:57 +0000)]
generous use of auto_ptr to provide better exception safety and make the code
more expressive (doesn't that sound great?)
Christian Bauer [Mon, 25 Aug 2003 18:47:33 +0000 (18:47 +0000)]
print_tree prints the object addresses
Christian Bauer [Mon, 25 Aug 2003 18:45:53 +0000 (18:45 +0000)]
- documented numeric::to_int()/to_long()/to_double()/to_cl_N()
- a little more information about evalf()
Christian Bauer [Sun, 24 Aug 2003 22:58:23 +0000 (22:58 +0000)]
some functions that were restricted to symbols for arguments now accept
general expressions
Christian Bauer [Sun, 24 Aug 2003 22:57:15 +0000 (22:57 +0000)]
some functions that took a "const symbol &" now take a "const ex &"
Christian Bauer [Sun, 24 Aug 2003 22:56:12 +0000 (22:56 +0000)]
removed some obsolete functions
Christian Bauer [Sun, 24 Aug 2003 22:55:54 +0000 (22:55 +0000)]
- 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.
Christian Bauer [Sun, 24 Aug 2003 22:53:39 +0000 (22:53 +0000)]
- quo(), rem(), prem(), sprem() and decomp_rational() take a "const ex &"
instead of a "const symbol &"
- get_symbol_stats(): the sym_desc_vec holds an ex instead of an (unsafe)
"const symbol *"
Christian Bauer [Sun, 24 Aug 2003 22:51:37 +0000 (22:51 +0000)]
added flag to disable object fusion
Christian Bauer [Sun, 24 Aug 2003 22:51:12 +0000 (22:51 +0000)]
- charpoly(): lambda is now a "const ex &" instead of a "const symbol &"
- slighly more efficient matrix constructors (avoid double initialization of m)
Christian Bauer [Sun, 24 Aug 2003 22:49:36 +0000 (22:49 +0000)]
fixed typo (flags -> fl) and made the set of flags cleared by the assignment
operator explicit
Christian Bauer [Fri, 22 Aug 2003 17:05:42 +0000 (17:05 +0000)]
added on-line help for nestedsums functions
Christian Bauer [Fri, 22 Aug 2003 17:02:02 +0000 (17:02 +0000)]
hash_map.h didn't get installed
Christian Bauer [Thu, 21 Aug 2003 23:19:25 +0000 (23:19 +0000)]
operator[] -> insert() (probably more efficient)
Christian Bauer [Thu, 21 Aug 2003 22:57:02 +0000 (22:57 +0000)]
removed unused function
Christian Bauer [Thu, 21 Aug 2003 22:56:27 +0000 (22:56 +0000)]
more efficient constructors
Christian Bauer [Thu, 21 Aug 2003 22:48:56 +0000 (22:48 +0000)]
ex_to<>(), is_a<>() and is_exactly_a<>() weren't inlined
Christian Bauer [Wed, 20 Aug 2003 22:01:35 +0000 (22:01 +0000)]
added exams and timings for exhashmap<>
Christian Bauer [Wed, 20 Aug 2003 21:09:59 +0000 (21:09 +0000)]
added exhashmap<> as a replacement for map<> that uses hashing
Christian Bauer [Wed, 20 Aug 2003 20:56:59 +0000 (20:56 +0000)]
cleaned up specializations of swap()/iter_swap()
Christian Bauer [Wed, 20 Aug 2003 19:58:55 +0000 (19:58 +0000)]
fixed typo
Christian Bauer [Mon, 18 Aug 2003 20:29:52 +0000 (20:29 +0000)]
added ex::const_iterator, ex::begin(), ex::end()
Christian Bauer [Mon, 18 Aug 2003 19:00:07 +0000 (19:00 +0000)]
- string -> const char * (compiles about 100 times faster)
- disabled output of exam_inifcns_nstdsums
- updated exams.ref
Jens Vollinga [Fri, 15 Aug 2003 17:01:42 +0000 (17:01 +0000)]
synced to 1.2
Richard Kreckel [Fri, 15 Aug 2003 01:27:01 +0000 (01:27 +0000)]
* acinclude.m4 (GINAC_CHECK_ERRORS): exit with non-zero return value on error.
Thus, debian/rules and similar environments can easily probe the return value
of configure and forego a hopeless compilation effort. This has been the
cause of much pain and suffering for the poor Debian m68k build daemon.
Christian Bauer [Thu, 14 Aug 2003 20:26:15 +0000 (20:26 +0000)]
added test for structure<> template
Jens Vollinga [Thu, 14 Aug 2003 19:22:07 +0000 (19:22 +0000)]
synced to 1.2
Jens Vollinga [Thu, 14 Aug 2003 19:16:32 +0000 (19:16 +0000)]
synced to 1.2
Christian Bauer [Thu, 14 Aug 2003 18:41:58 +0000 (18:41 +0000)]
use new-style print methods
Christian Bauer [Wed, 13 Aug 2003 20:44:07 +0000 (20:44 +0000)]
use new-style print methods
Christian Bauer [Wed, 13 Aug 2003 18:35:31 +0000 (18:35 +0000)]
lst(0) now works as expected
Christian Bauer [Wed, 6 Aug 2003 19:22:44 +0000 (19:22 +0000)]
print methods can be replaced at run-time with set_print_func<>()
Christian Bauer [Wed, 6 Aug 2003 19:07:46 +0000 (19:07 +0000)]
use new-style print methods
Christian Bauer [Wed, 6 Aug 2003 18:43:52 +0000 (18:43 +0000)]
use new-style print methods
Christian Bauer [Wed, 6 Aug 2003 18:43:18 +0000 (18:43 +0000)]
print_tree: only print the "nops=" line when nops() > 0
Christian Bauer [Wed, 6 Aug 2003 18:35:08 +0000 (18:35 +0000)]
synced to 1.1
Christian Bauer [Thu, 31 Jul 2003 17:25:33 +0000 (17:25 +0000)]
removed debug code
Christian Bauer [Thu, 31 Jul 2003 00:11:16 +0000 (00:11 +0000)]
use new-style print methods
Christian Bauer [Thu, 31 Jul 2003 00:10:46 +0000 (00:10 +0000)]
DEFAULT_PRINT macros generate new-style print methods
Christian Bauer [Thu, 31 Jul 2003 00:10:26 +0000 (00:10 +0000)]
initialize print_context registry on startup
Christian Bauer [Thu, 31 Jul 2003 00:09:52 +0000 (00:09 +0000)]
- print_context::duplicate() wasn't virtual
- fixed static initialization order problem with the print_context registry
- print methods can use basic::print_dispatch<>() to re-enter the double
dispatch mechanism to defer to superclass methods
Christian Bauer [Fri, 25 Jul 2003 20:44:49 +0000 (20:44 +0000)]
implemented double dispatch for print(); methods are specified with
print_func<C>() options in the GINAC_IMPLEMENT_REGISTERED_CLASS_OPT macro
(see basic.cpp for an example); what remains is to convert all existing
classes to this new scheme...
Christian Bauer [Fri, 25 Jul 2003 20:05:09 +0000 (20:05 +0000)]
fixed compilation problem after the registered_class_options change
Christian Bauer [Tue, 22 Jul 2003 21:27:46 +0000 (21:27 +0000)]
- added registry for print_context classes (use print_context_class_info::dump_hierarchy()
to show the class hierarchy tree)
- the default output format is now handled by the print_dflt type, but
print_context remains the base class for the print context hierarchy
- you can override the default output format for functions on a per-function
basis by specifying one or multiple print_func<C>() (C is a print_context
type) function options (see inifcns.cpp/abs() for an example)
- better LaTeX and C source output for abs()
Christian Bauer [Mon, 21 Jul 2003 22:09:41 +0000 (22:09 +0000)]
- split registered_class_info into the actual per-class data and the
"infrastructure"
- use registered_class_info::dump_hierarchy() to display the class hierarchy
tree as seen by GiNaC
Christian Bauer [Mon, 21 Jul 2003 19:44:55 +0000 (19:44 +0000)]
hash value computation for indices takes index dimension into account
Christian Bauer [Mon, 21 Jul 2003 19:36:10 +0000 (19:36 +0000)]
removed unnecessary const_cast
Christian Bauer [Mon, 21 Jul 2003 19:15:59 +0000 (19:15 +0000)]
normal() uses an additional reverse lookup map
Christian Bauer [Mon, 21 Jul 2003 18:15:48 +0000 (18:15 +0000)]
generous use of subs_options::no_pattern
Christian Bauer [Mon, 21 Jul 2003 17:38:23 +0000 (17:38 +0000)]
subs_no_pattern -> no_pattern, subs_algebraic -> algebraic
Christian Bauer [Mon, 21 Jul 2003 17:34:54 +0000 (17:34 +0000)]
synced to 1.1
Christian Bauer [Mon, 21 Jul 2003 17:22:32 +0000 (17:22 +0000)]
subs_no_pattern -> no_pattern, subs_algebraic -> algebraic (but the old names
remain in for backwards compatibility)
Christian Bauer [Mon, 21 Jul 2003 17:21:23 +0000 (17:21 +0000)]
subs_no_pattern -> no_pattern, subs_algebraic -> algebraic
Christian Bauer [Thu, 17 Jul 2003 20:58:46 +0000 (20:58 +0000)]
fixes for gcc 3.4
Christian Bauer [Thu, 17 Jul 2003 20:58:38 +0000 (20:58 +0000)]
documentation update
Christian Bauer [Mon, 14 Jul 2003 20:19:44 +0000 (20:19 +0000)]
tinfo_key wasn't set correctly in certain constructors
Christian Bauer [Fri, 11 Jul 2003 20:19:42 +0000 (20:19 +0000)]
describe ex_is_less and ex_is_equal
Christian Bauer [Fri, 11 Jul 2003 19:28:43 +0000 (19:28 +0000)]
subs() and normal() use maps instead of lists, resulting in a huge performance
boost for subs()
Christian Bauer [Fri, 11 Jul 2003 19:24:32 +0000 (19:24 +0000)]
synced to 1.1
Christian Bauer [Fri, 11 Jul 2003 18:38:04 +0000 (18:38 +0000)]
runs with sizes 50,100,200,500 instead of 25,50,100,200 to get more meaningful
results on modern hardware
Christian Bauer [Thu, 10 Jul 2003 20:40:26 +0000 (20:40 +0000)]
tiny optimization in subs()
Christian Bauer [Fri, 4 Jul 2003 21:18:49 +0000 (21:18 +0000)]
added 'structure' to class list
Christian Bauer [Fri, 4 Jul 2003 21:16:17 +0000 (21:16 +0000)]
- added structure template
- Perl doesn't play any significant role any more
Christian Bauer [Wed, 2 Jul 2003 20:46:56 +0000 (20:46 +0000)]
merging 1.2 branch into main trunk
Christian Bauer [Mon, 30 Jun 2003 22:04:27 +0000 (22:04 +0000)]
synced to 1.1
Christian Bauer [Mon, 30 Jun 2003 22:04:23 +0000 (22:04 +0000)]
documentation update
Christian Bauer [Mon, 30 Jun 2003 16:50:35 +0000 (16:50 +0000)]
synced to 1.2
Christian Bauer [Tue, 6 May 2003 17:49:11 +0000 (17:49 +0000)]
- updated docs
- added online help and Tab-completion for print(), iprint(), print_latex()
and print_csrc()
Christian Bauer [Wed, 30 Apr 2003 19:48:29 +0000 (19:48 +0000)]
function(unsigned, const exprseq &) constructor clears status_flags::evaluated
[Chris Dams]
Christian Bauer [Mon, 24 Mar 2003 17:18:47 +0000 (17:18 +0000)]
use "rpmbuild" instead of "rpm"
Christian Bauer [Thu, 20 Mar 2003 19:35:40 +0000 (19:35 +0000)]
fixed typo
Christian Bauer [Wed, 5 Mar 2003 22:23:22 +0000 (22:23 +0000)]
updated the logic in the numeric(int) constructor
Christian Bauer [Tue, 4 Mar 2003 22:08:26 +0000 (22:08 +0000)]
*** empty log message ***
Christian Bauer [Tue, 4 Mar 2003 22:08:22 +0000 (22:08 +0000)]
fixed some compiler warnings