ginac.git
17 years agoadded insert(iterator, value_type)
Christian Bauer [Wed, 1 Oct 2003 17:42:54 +0000 (17:42 +0000)]
added insert(iterator, value_type)

17 years agoSynced to 1.1
Jens Vollinga [Tue, 30 Sep 2003 21:50:02 +0000 (21:50 +0000)]
Synced to 1.1

17 years agoImplemented the Blitz++ trick to allow the initialization of lists and matrices
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.

17 years agoparallel build uses NCPU jobs instead of NCPU+1
Christian Bauer [Mon, 29 Sep 2003 17:30:11 +0000 (17:30 +0000)]
parallel build uses NCPU jobs instead of NCPU+1

17 years agoSynced to 1.1
Jens Vollinga [Mon, 29 Sep 2003 17:25:29 +0000 (17:25 +0000)]
Synced to 1.1

17 years agotidied up ex::subs()
Christian Bauer [Thu, 18 Sep 2003 19:35:47 +0000 (19:35 +0000)]
tidied up ex::subs()

17 years ago* ginsh_input(): Modern versions of flex want us to use the macro
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.)

17 years agoImproved the pre-/postorder iterators: They visit the root node and are now
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.

17 years agoadded a note about expressions in STL containers
Christian Bauer [Thu, 4 Sep 2003 18:31:09 +0000 (18:31 +0000)]
added a note about expressions in STL containers

17 years agomention the subs(exmap &) form
Christian Bauer [Thu, 4 Sep 2003 18:01:09 +0000 (18:01 +0000)]
mention the subs(exmap &) form

17 years agodocumentation update
Christian Bauer [Thu, 4 Sep 2003 18:00:59 +0000 (18:00 +0000)]
documentation update

17 years agothe old methods of ex remain for compatibility
Christian Bauer [Thu, 4 Sep 2003 18:00:16 +0000 (18:00 +0000)]
the old methods of ex remain for compatibility

17 years agominor optimizations to ex::subs()
Christian Bauer [Wed, 3 Sep 2003 18:18:34 +0000 (18:18 +0000)]
minor optimizations to ex::subs()

17 years agoimplemented operator-> for the iterators
Christian Bauer [Wed, 3 Sep 2003 18:18:15 +0000 (18:18 +0000)]
implemented operator-> for the iterators

17 years agoadded some words of warning to ex_to<>()
Christian Bauer [Tue, 2 Sep 2003 20:01:55 +0000 (20:01 +0000)]
added some words of warning to ex_to<>()

17 years ago- added missing #include <stdexcept>
Christian Bauer [Tue, 2 Sep 2003 19:59:12 +0000 (19:59 +0000)]
- added missing #include <stdexcept>
- reduced the amount of inlining a little

17 years agosynced to 1.1
Christian Bauer [Tue, 2 Sep 2003 18:29:06 +0000 (18:29 +0000)]
synced to 1.1

17 years agoAdded const_iterator, const_preorder_iterator, const_postorder_iterator. The
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.

17 years agomoved the reference counter into its own class "refcounted"
Christian Bauer [Fri, 29 Aug 2003 17:36:02 +0000 (17:36 +0000)]
moved the reference counter into its own class "refcounted"

17 years ago* Fix for lintian error "package-lacks-versioned-build-depends-on-debhelper 4".
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".

17 years ago* Oops, forgot to cvs add the two new files in last commit.
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.

17 years ago* Preliminar update over Debian's ginac_1.1.3-1.diff.gz.
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.

17 years agolsts are not shareable by default
Christian Bauer [Wed, 27 Aug 2003 19:42:29 +0000 (19:42 +0000)]
lsts are not shareable by default

17 years ago- added some (empty) exception specifications (reduces code size a little)
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[])

17 years agodocumentation update (sort of)
Christian Bauer [Tue, 26 Aug 2003 21:02:52 +0000 (21:02 +0000)]
documentation update (sort of)

17 years agosymbols can be made noncommutative (see symbol constructors); some feedback
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

17 years agobumped archive version number because of added attributes for symbols
Christian Bauer [Tue, 26 Aug 2003 21:00:36 +0000 (21:00 +0000)]
bumped archive version number because of added attributes for symbols

17 years agogenerous use of auto_ptr to provide better exception safety and make the code
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?)

17 years agoprint_tree prints the object addresses
Christian Bauer [Mon, 25 Aug 2003 18:47:33 +0000 (18:47 +0000)]
print_tree prints the object addresses

17 years ago- documented numeric::to_int()/to_long()/to_double()/to_cl_N()
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()

17 years agosome functions that were restricted to symbols for arguments now accept
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

17 years agosome functions that took a "const symbol &" now take a "const ex &"
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 &"

17 years agoremoved some obsolete functions
Christian Bauer [Sun, 24 Aug 2003 22:56:12 +0000 (22:56 +0000)]
removed some obsolete functions

17 years ago- implemented object fusion as proposed by Richy
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.

17 years ago- quo(), rem(), prem(), sprem() and decomp_rational() take a "const ex &"
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 *"

17 years agoadded flag to disable object fusion
Christian Bauer [Sun, 24 Aug 2003 22:51:37 +0000 (22:51 +0000)]
added flag to disable object fusion

17 years ago- charpoly(): lambda is now a "const ex &" instead of a "const symbol &"
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)

17 years agofixed typo (flags -> fl) and made the set of flags cleared by the assignment
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

17 years agoadded on-line help for nestedsums functions
Christian Bauer [Fri, 22 Aug 2003 17:05:42 +0000 (17:05 +0000)]
added on-line help for nestedsums functions

17 years agohash_map.h didn't get installed
Christian Bauer [Fri, 22 Aug 2003 17:02:02 +0000 (17:02 +0000)]
hash_map.h didn't get installed

17 years agooperator[] -> insert() (probably more efficient)
Christian Bauer [Thu, 21 Aug 2003 23:19:25 +0000 (23:19 +0000)]
operator[] -> insert() (probably more efficient)

17 years agoremoved unused function
Christian Bauer [Thu, 21 Aug 2003 22:57:02 +0000 (22:57 +0000)]
removed unused function

17 years agomore efficient constructors
Christian Bauer [Thu, 21 Aug 2003 22:56:27 +0000 (22:56 +0000)]
more efficient constructors

17 years agoex_to<>(), is_a<>() and is_exactly_a<>() weren't inlined
Christian Bauer [Thu, 21 Aug 2003 22:48:56 +0000 (22:48 +0000)]
ex_to<>(), is_a<>() and is_exactly_a<>() weren't inlined

17 years agoadded exams and timings for exhashmap<>
Christian Bauer [Wed, 20 Aug 2003 22:01:35 +0000 (22:01 +0000)]
added exams and timings for exhashmap<>

17 years agoadded exhashmap<> as a replacement for map<> that uses hashing
Christian Bauer [Wed, 20 Aug 2003 21:09:59 +0000 (21:09 +0000)]
added exhashmap<> as a replacement for map<> that uses hashing

17 years agocleaned up specializations of swap()/iter_swap()
Christian Bauer [Wed, 20 Aug 2003 20:56:59 +0000 (20:56 +0000)]
cleaned up specializations of swap()/iter_swap()

17 years agofixed typo
Christian Bauer [Wed, 20 Aug 2003 19:58:55 +0000 (19:58 +0000)]
fixed typo

17 years agoadded ex::const_iterator, ex::begin(), ex::end()
Christian Bauer [Mon, 18 Aug 2003 20:29:52 +0000 (20:29 +0000)]
added ex::const_iterator, ex::begin(), ex::end()

17 years ago- string -> const char * (compiles about 100 times faster)
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

17 years agosynced to 1.2
Jens Vollinga [Fri, 15 Aug 2003 17:01:42 +0000 (17:01 +0000)]
synced to 1.2

17 years ago* acinclude.m4 (GINAC_CHECK_ERRORS): exit with non-zero return value on error.
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.

17 years agoadded test for structure<> template
Christian Bauer [Thu, 14 Aug 2003 20:26:15 +0000 (20:26 +0000)]
added test for structure<> template

17 years agosynced to 1.2
Jens Vollinga [Thu, 14 Aug 2003 19:22:07 +0000 (19:22 +0000)]
synced to 1.2

17 years agosynced to 1.2
Jens Vollinga [Thu, 14 Aug 2003 19:16:32 +0000 (19:16 +0000)]
synced to 1.2

17 years agouse new-style print methods
Christian Bauer [Thu, 14 Aug 2003 18:41:58 +0000 (18:41 +0000)]
use new-style print methods

17 years agouse new-style print methods
Christian Bauer [Wed, 13 Aug 2003 20:44:07 +0000 (20:44 +0000)]
use new-style print methods

17 years agolst(0) now works as expected
Christian Bauer [Wed, 13 Aug 2003 18:35:31 +0000 (18:35 +0000)]
lst(0) now works as expected

17 years agoprint methods can be replaced at run-time with set_print_func<>()
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<>()

17 years agouse new-style print methods
Christian Bauer [Wed, 6 Aug 2003 19:07:46 +0000 (19:07 +0000)]
use new-style print methods

17 years agouse new-style print methods
Christian Bauer [Wed, 6 Aug 2003 18:43:52 +0000 (18:43 +0000)]
use new-style print methods

17 years agoprint_tree: only print the "nops=" line when nops() > 0
Christian Bauer [Wed, 6 Aug 2003 18:43:18 +0000 (18:43 +0000)]
print_tree: only print the "nops=" line when nops() > 0

17 years agosynced to 1.1
Christian Bauer [Wed, 6 Aug 2003 18:35:08 +0000 (18:35 +0000)]
synced to 1.1

17 years agoremoved debug code
Christian Bauer [Thu, 31 Jul 2003 17:25:33 +0000 (17:25 +0000)]
removed debug code

17 years agouse new-style print methods
Christian Bauer [Thu, 31 Jul 2003 00:11:16 +0000 (00:11 +0000)]
use new-style print methods

17 years agoDEFAULT_PRINT macros generate 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

17 years agoinitialize print_context registry on startup
Christian Bauer [Thu, 31 Jul 2003 00:10:26 +0000 (00:10 +0000)]
initialize print_context registry on startup

17 years ago- print_context::duplicate() wasn't virtual
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

17 years agoimplemented double dispatch for print(); methods are specified with
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...

17 years agofixed compilation problem after the registered_class_options change
Christian Bauer [Fri, 25 Jul 2003 20:05:09 +0000 (20:05 +0000)]
fixed compilation problem after the registered_class_options change

17 years ago- added registry for print_context classes (use print_context_class_info::dump_hierar...
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()

17 years ago- split registered_class_info into the actual per-class data and the
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

17 years agohash value computation for indices takes index dimension into account
Christian Bauer [Mon, 21 Jul 2003 19:44:55 +0000 (19:44 +0000)]
hash value computation for indices takes index dimension into account

17 years agoremoved unnecessary const_cast
Christian Bauer [Mon, 21 Jul 2003 19:36:10 +0000 (19:36 +0000)]
removed unnecessary const_cast

17 years agonormal() uses an additional reverse lookup map
Christian Bauer [Mon, 21 Jul 2003 19:15:59 +0000 (19:15 +0000)]
normal() uses an additional reverse lookup map

17 years agogenerous use of subs_options::no_pattern
Christian Bauer [Mon, 21 Jul 2003 18:15:48 +0000 (18:15 +0000)]
generous use of subs_options::no_pattern

17 years agosubs_no_pattern -> no_pattern, subs_algebraic -> algebraic
Christian Bauer [Mon, 21 Jul 2003 17:38:23 +0000 (17:38 +0000)]
subs_no_pattern -> no_pattern, subs_algebraic -> algebraic

17 years agosynced to 1.1
Christian Bauer [Mon, 21 Jul 2003 17:34:54 +0000 (17:34 +0000)]
synced to 1.1

17 years agosubs_no_pattern -> no_pattern, subs_algebraic -> algebraic (but the old names
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)

17 years agosubs_no_pattern -> no_pattern, subs_algebraic -> algebraic
Christian Bauer [Mon, 21 Jul 2003 17:21:23 +0000 (17:21 +0000)]
subs_no_pattern -> no_pattern, subs_algebraic -> algebraic

17 years agofixes for gcc 3.4
Christian Bauer [Thu, 17 Jul 2003 20:58:46 +0000 (20:58 +0000)]
fixes for gcc 3.4

17 years agodocumentation update
Christian Bauer [Thu, 17 Jul 2003 20:58:38 +0000 (20:58 +0000)]
documentation update

17 years agotinfo_key wasn't set correctly in certain constructors
Christian Bauer [Mon, 14 Jul 2003 20:19:44 +0000 (20:19 +0000)]
tinfo_key wasn't set correctly in certain constructors

17 years agodescribe ex_is_less and ex_is_equal
Christian Bauer [Fri, 11 Jul 2003 20:19:42 +0000 (20:19 +0000)]
describe ex_is_less and ex_is_equal

17 years agosubs() and normal() use maps instead of lists, resulting in a huge performance
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()

17 years agosynced to 1.1
Christian Bauer [Fri, 11 Jul 2003 19:24:32 +0000 (19:24 +0000)]
synced to 1.1

17 years agoruns with sizes 50,100,200,500 instead of 25,50,100,200 to get more meaningful
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

17 years agotiny optimization in subs()
Christian Bauer [Thu, 10 Jul 2003 20:40:26 +0000 (20:40 +0000)]
tiny optimization in subs()

17 years agoadded 'structure' to class list
Christian Bauer [Fri, 4 Jul 2003 21:18:49 +0000 (21:18 +0000)]
added 'structure' to class list

17 years ago- added structure template
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

17 years agomerging 1.2 branch into main trunk
Christian Bauer [Wed, 2 Jul 2003 20:46:56 +0000 (20:46 +0000)]
merging 1.2 branch into main trunk

17 years agosynced to 1.1
Christian Bauer [Mon, 30 Jun 2003 22:04:27 +0000 (22:04 +0000)]
synced to 1.1

17 years agodocumentation update
Christian Bauer [Mon, 30 Jun 2003 22:04:23 +0000 (22:04 +0000)]
documentation update

17 years agosynced to 1.2
Christian Bauer [Mon, 30 Jun 2003 16:50:35 +0000 (16:50 +0000)]
synced to 1.2

17 years ago- updated docs
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()

17 years agofunction(unsigned, const exprseq &) constructor clears status_flags::evaluated
Christian Bauer [Wed, 30 Apr 2003 19:48:29 +0000 (19:48 +0000)]
function(unsigned, const exprseq &) constructor clears status_flags::evaluated
[Chris Dams]

17 years agouse "rpmbuild" instead of "rpm"
Christian Bauer [Mon, 24 Mar 2003 17:18:47 +0000 (17:18 +0000)]
use "rpmbuild" instead of "rpm"

17 years agofixed typo
Christian Bauer [Thu, 20 Mar 2003 19:35:40 +0000 (19:35 +0000)]
fixed typo

17 years agoupdated the logic in the numeric(int) constructor
Christian Bauer [Wed, 5 Mar 2003 22:23:22 +0000 (22:23 +0000)]
updated the logic in the numeric(int) constructor

17 years ago*** empty log message ***
Christian Bauer [Tue, 4 Mar 2003 22:08:26 +0000 (22:08 +0000)]
*** empty log message ***