/[GiNaC]/ginac/basic.h
ViewVC logotype

Log of /ginac/basic.h

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Links to release_0-9-0: (view) (annotate)
Sticky Tag:

Revision 1.45 - (view) (annotate) - [select for diffs]
Wed Jun 6 18:16:02 2001 UTC (11 years, 11 months ago) by kreckel
Branch: MAIN
CVS Tags: release_0-9-0
Changes since 1.44: +1 -8 lines
Diff to previous 1.44
- Removed obsolete (even for Cint!) malloc_alloc template arguments.


Revision 1.44 - (view) (annotate) - [select for diffs]
Fri Jun 1 18:50:00 2001 UTC (11 years, 11 months ago) by cbauer
Branch: MAIN
Changes since 1.43: +4 -0 lines
Diff to previous 1.43
- in the output, list delimiters are now { } and matrix delimiters are [ ]
- added evalm() method for evaluating sums and products of matrices
- added map() method for applying a function to subexpressions
- power(noncommut, posint) automatically expands the product, removed ncpow()


Revision 1.43 - (view) (annotate) - [select for diffs]
Wed May 23 20:43:19 2001 UTC (12 years ago) by cbauer
Branch: MAIN
Changes since 1.42: +3 -2 lines
Diff to previous 1.42
- first implementation of pattern matching


Revision 1.42 - (view) (annotate) - [select for diffs]
Sat May 19 17:37:44 2001 UTC (12 years ago) by cbauer
Branch: MAIN
Changes since 1.41: +1 -1 lines
Diff to previous 1.41
replaced "precedence" static member variable by virtual precedence() function


Revision 1.41 - (view) (annotate) - [select for diffs]
Fri May 18 20:42:07 2001 UTC (12 years ago) by cbauer
Branch: MAIN
Changes since 1.40: +0 -4 lines
Diff to previous 1.40
- dummy index renamer didn't account for internal dummy indices of objects
  in products; a~mu.mu-a~nu.nu gets simplified to 0 now
- made a little more use of STL facilities for exvectors, especially in the
  indexed stuff; append_exvector_to_exvector() and index_set_difference() are
  gone and utils.h defines the functors ex_is_less and ex_is_equal


Revision 1.40 - (view) (annotate) - [select for diffs]
Tue Apr 24 15:37:24 2001 UTC (12 years, 1 month ago) by kreckel
Branch: MAIN
CVS Tags: release_0-8-2, release_0-8-3
Changes since 1.39: +5 -4 lines
Diff to previous 1.39
* Cint fix.  It looks like the hacks are going to go away really soon,
  after some recent work by Masaharu.


Revision 1.39 - (view) (annotate) - [select for diffs]
Fri Apr 20 19:06:55 2001 UTC (12 years, 1 month ago) by cbauer
Branch: MAIN
Changes since 1.38: +1 -1 lines
Diff to previous 1.38
- color/clifford objects have representation label to distinguish elements
  of different algebras; objects with different labels commute with each
  other
- dirac_one() -> dirac_ONE()
- added gamma5 clifford objects which is constructed by dirac_gamma5()
- clifford::simplify_ncmul() anticommutes gamma5's to the front and removes
  squares of gamma5
- the argument to collect() can be a list of objects in which case the
  result is either a recursively collected polynomial, or a polynomial in
  a distributed form with terms like coeff*x1^e1*...*xn^en, as specified by
  the second argument to collect(). For example (ginsh):
    > f=a*x-x+a*x*y+x*y+a*x*y^2-2*x*y^2+y^2;
    a*x+y*a*x+y^2*a*x+y^2-x+y*x-2*y^2*x
    > collect(f,x);
    (-1+y+y^2*a+y*a+a-2*y^2)*x+y^2
    > collect(f,y);
    a*x-x+y^2*(1+a*x-2*x)+y*(a*x+x)
    > collect(f,[x,y]);
    (-1+y*(1+a)+y^2*(-2+a)+a)*x+y^2
    > collect(f,[y,x]);
    (-1+a)*x+y*(1+a)*x+(1+(-2+a)*x)*y^2
    > collect_distributed(f,[x,y]);
    (-1+a)*x+y^2*(-2+a)*x+y*(1+a)*x+y^2


Revision 1.38 - (view) (annotate) - [select for diffs]
Tue Apr 10 14:30:21 2001 UTC (12 years, 1 month ago) by cbauer
Branch: MAIN
CVS Tags: release_0-8-1
Changes since 1.37: +7 -0 lines
Diff to previous 1.37
added basic::get_precedence()


Revision 1.37 - (view) (annotate) - [select for diffs]
Fri Apr 6 19:02:58 2001 UTC (12 years, 1 month ago) by cbauer
Branch: MAIN
Changes since 1.36: +3 -10 lines
Diff to previous 1.36
- replaced the various print*() member functions by a single print() that
  takes a print_context object that determines the output formatting; this
  should make it easier to add more output types
- print_tree output of indexed objects looks better


Revision 1.36 - (view) (annotate) - [select for diffs]
Mon Apr 2 16:57:38 2001 UTC (12 years, 1 month ago) by cbauer
Branch: MAIN
Changes since 1.35: +4 -4 lines
Diff to previous 1.35
degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() can now
be used with constants and indexed expressions as well, so you can use
it to collect by powers of Pi or find the coefficient of gamma~0.
Limitations:
 - it only works with symbols, constants and indexed expressions;
   trying to find the coefficient of, e.g., "x^2" or "x+y" won't work
 - it does not know about dummy index summations; the coefficient of
   gamma~0 in p.mu*gamma~mu should be p.0 but is returned as 0
 - using the functions on elements of noncommutative products might
   return wrong or surprising results


Revision 1.35 - (view) (annotate) - [select for diffs]
Fri Mar 23 14:49:54 2001 UTC (12 years, 2 months ago) by cbauer
Branch: MAIN
CVS Tags: release_0-8-0
Changes since 1.34: +1 -0 lines
Diff to previous 1.34
- simplify_indexed() simplifies c*(M).i.j -> (M').i.j (c: numeric, M: matrix)
  with M'=c*M
- new member function matrix::mul(const numeric &other) to multiply matrix
  with scalar
- lst_to_matrix() takes a "lst &" instead of an "ex &"
- added constructor of matrix from flat list
- added function diag_matrix() to construct matrix from list of diagonal
  elements


Revision 1.34 - (view) (annotate) - [select for diffs]
Thu Mar 22 15:52:12 2001 UTC (12 years, 2 months ago) by cbauer
Branch: MAIN
Changes since 1.33: +1 -0 lines
Diff to previous 1.33
sums of indexed matrices are now possible


Revision 1.33 - (view) (annotate) - [select for diffs]
Fri Mar 9 19:21:36 2001 UTC (12 years, 2 months ago) by cbauer
Branch: MAIN
Changes since 1.32: +1 -1 lines
Diff to previous 1.32
- lcm_of_coefficients_denominators(1/2+x^10) returned 1024 instead of 2 and
  multiply_lcm() on that expression barfed
- contract_with() now takes two exvector::iterators and and exvector; this
  makes it possible to look for more contractions in the implementation


Revision 1.32 - (view) (annotate) - [select for diffs]
Tue Mar 6 17:07:16 2001 UTC (12 years, 2 months ago) by cbauer
Branch: MAIN
Changes since 1.31: +3 -1 lines
Diff to previous 1.31
- revamped indexed objects
- subs() works on matrices


Revision 1.31 - (view) (annotate) - [select for diffs]
Wed Feb 28 12:54:52 2001 UTC (12 years, 2 months ago) by kreckel
Branch: MAIN
CVS Tags: release_0-7-3
Changes since 1.30: +33 -74 lines
Diff to previous 1.30
* ginac/registrar.h: dtor is inlined now.
* ginac/basic.h, ginac/ex.h: removed INLINE_FOO_CONSTRUCTORS and hand-inlined
  stuff instead, since the macros turned out to get in the way while
  fine-tuning the inlining.
* ginac/utils.h: if 'long long' works, use that one for computing the hash
  value instead of floating point tricks.  2 Reasons: on Intel the assembler
  is terrible and slow otherwise, 'long long' will appear in C++ anyways when
  they adapt to the C99 standard.
* Several other small performance tweaks.
* ginac/constant.cpp: (constant::calchash()) implement, caring for serial.
* ginac/function.pl (function::calchash()): implement, caring for serial.
* ginac/expairseq.cpp: honor coeff's hash value.
* ginac/pseries.cpp: (pseries::power_const()) fix problems with zero pseries.
* Added several pounds of in-source documentation in doxygen style.


Revision 1.30 - (view) (annotate) - [select for diffs]
Sun Feb 18 16:21:22 2001 UTC (12 years, 3 months ago) by kreckel
Branch: MAIN
Changes since 1.29: +8 -4 lines
Diff to previous 1.29
is_(ex_)(exactly_)of_type: macros fixed, simplfied and documented.


Revision 1.29 - (view) (annotate) - [select for diffs]
Sat Feb 17 18:07:08 2001 UTC (12 years, 3 months ago) by kreckel
Branch: MAIN
CVS Tags: release_0-7-2
Changes since 1.28: +2 -2 lines
Diff to previous 1.28
pseries::expand(): do not generate zero terms.
pseries::print(): print trivial case, too.
others: documentation updates.


Revision 1.28 - (view) (annotate) - [select for diffs]
Thu Feb 15 19:54:52 2001 UTC (12 years, 3 months ago) by cbauer
Branch: MAIN
Changes since 1.27: +1 -1 lines
Diff to previous 1.27
the destructor, copy constructor, and assignment operator (which were the
same for all subclasses of basic, with very few exceptions) are now included
in the GINAC_IMPLEMENT_REGISTERED_CLASS macro; the GINAC_DECLARE_REGISTERED_CLASS
macro also defines these (and other common) member functions


Revision 1.27 - (view) (annotate) - [select for diffs]
Wed Feb 14 16:04:18 2001 UTC (12 years, 3 months ago) by cbauer
Branch: MAIN
Changes since 1.26: +0 -5 lines
Diff to previous 1.26
removed the "some_*" and "typeid_*" definitions since we are using our own
RTTI for quite some time now


Revision 1.26 - (view) (annotate) - [select for diffs]
Mon Jan 22 15:12:08 2001 UTC (12 years, 4 months ago) by kreckel
Branch: MAIN
CVS Tags: release_0-7-1
Changes since 1.25: +8 -3 lines
Diff to previous 1.25
- See if __GNUC__ < 2.97 before using std::vector<..,malloc_alloc>.  Sorry,
  there is no way having this depend on whether we are setting up Cint or
  not because the malloc_alloc goes into the mangled signature and the
  result won't link if one tries to be more clever.  It really sucks.
  Let's all just pray Masaharu throws away that old STL implementation
  really soon now.  (Jeez, he still calls this old junk 'reference'!)
- Bumped up a few dates.  :-)


Revision 1.25 - (view) (annotate) - [select for diffs]
Mon Aug 14 12:21:06 2000 UTC (12 years, 9 months ago) by kreckel
Branch: MAIN
CVS Tags: release_0-7-0
Changes since 1.24: +1 -1 lines
Diff to previous 1.24
- Inserted some more std:: to make it compile under GCC2.96.


Revision 1.24 - (view) (annotate) - [select for diffs]
Sat Aug 12 18:00:04 2000 UTC (12 years, 9 months ago) by kreckel
Branch: MAIN
Changes since 1.23: +2 -2 lines
Diff to previous 1.23
- Changes to make it more ANSI-conformant.  Stuff detected while trying
  the compiler from Portland Group.


Revision 1.23 - (view) (annotate) - [select for diffs]
Fri Aug 11 15:52:41 2000 UTC (12 years, 9 months ago) by cbauer
Branch: MAIN
Changes since 1.22: +2 -2 lines
Diff to previous 1.22
- fixes to the indentation


Revision 1.22 - (view) (annotate) - [select for diffs]
Fri Aug 11 15:07:15 2000 UTC (12 years, 9 months ago) by cbauer
Branch: MAIN
Changes since 1.21: +96 -96 lines
Diff to previous 1.21
- indentation is now done with tabs
- printtree() prints the class names as known to the registrar, not the
  (mangled) class names from typeid().name()


Revision 1.21 - (view) (annotate) - [select for diffs]
Sat Jul 22 00:47:04 2000 UTC (12 years, 10 months ago) by kreckel
Branch: MAIN
CVS Tags: release_0-6-3, release_0-6-4
Changes since 1.20: +1 -1 lines
Diff to previous 1.20
- Fixed the bug that broke xloop's po_redux.
- Interface Change: No argument 'bool branchcut' for series methods,
  instead 'unsigned options'.  Sorry.
: ----------------------------------------------------------------------


Revision 1.20 - (view) (annotate) - [select for diffs]
Thu Jul 20 21:12:40 2000 UTC (12 years, 10 months ago) by kreckel
Branch: MAIN
Changes since 1.19: +12 -12 lines
Diff to previous 1.19
- Derivatives are now assembled in a slightly different manner (i.e. they
  'look' different on first sight).  Under certain circumstances this can
  result in a dramatic speedup because it gives hashing a better chance,
  especially when computing higher derivatives.
- Series expansion accepts an additional bool argument now, telling it
  whether branch cuts are to be honored (as Maple does it) or not (as
  Mathematica does it).  It defaults to true (i.e. the Maple way).
- Many series expansions of built-in functions have been reengineered.
- The Dilogarithm (Li2) now has floating point evaluation, derivative and a
  proper series expansion.
- Namespace 'std' cleanly disentangled, as demanded by ISO/EIC 14882-1998(E).
- Some helpers updated from upstream.


Revision 1.19 - (view) (annotate) - [select for diffs]
Thu Apr 6 15:58:15 2000 UTC (13 years, 1 month ago) by cbauer
Branch: MAIN
CVS Tags: release_0-6-0, release_0-6-1, release_0-6-2
Changes since 1.18: +1 -0 lines
Diff to previous 1.18
- added ex::to_rational() to convert general expression to rational expression
  by replacing all non-rational parts with temporary symbols, e.g.:
    ex a = pow(sin(x), 2) - pow(cos(x), 2);
    ex b = sin(x) + cos(x);
    ex d;
    lst l;
    divide(a.to_rational(l), b.to_rational(l), d);
    cout << d.subs(l) << endl;
  will print "sin(x)-cos(x)"


Revision 1.18 - (view) (annotate) - [select for diffs]
Thu Mar 23 13:50:31 2000 UTC (13 years, 2 months ago) by kreckel
Branch: MAIN
Changes since 1.17: +2 -1 lines
Diff to previous 1.17
- We now write f(x).series(x==3,5) instead of f(x).series(x,3,5) and
  f(x).series(x,4) instead of f(x).series(x,0,4).  We also don't allow
  default arguments any more.


Revision 1.17 - (view) (annotate) - [select for diffs]
Thu Feb 10 18:25:42 2000 UTC (13 years, 3 months ago) by cbauer
Branch: MAIN
CVS Tags: relase_0-5-1, release_0-5-2, release_0-5-3, release_0-5-4
Changes since 1.16: +1 -1 lines
Diff to previous 1.16
- normal() now internally keeps numerator and denominator separated and
  doesn't combine them to a fraction until the very end. All implementations
  of basic::normal() now return a 2-component lst {num, den} instead of a
  simple expression.
- dropped status_flags::normal_form
- ex::numer() and ex::denom() didn't work correctly on numerics
- lcm(a, b) with a and b being a numeric returned the GCD of a and b (*argh*)


Revision 1.16 - (view) (annotate) - [select for diffs]
Wed Feb 2 15:50:10 2000 UTC (13 years, 3 months ago) by kreckel
Branch: MAIN
CVS Tags: relase_0-5-0
Changes since 1.15: +2 -1 lines
Diff to previous 1.15
- diff() is now only defined on classes ex and basic, where it handles
  higher derivatives.  derivative() is now the method to be implemented
  by the user that does single derivatives, it is protected.
- Implemented some very clumpsy automatic generation of ginaccint.
  It is ugly because we have to compile libginac without namespace GiNaC.
- Fixed some wrong logic in numeric::power().


Revision 1.15 - (view) (annotate) - [select for diffs]
Sun Jan 30 20:53:21 2000 UTC (13 years, 3 months ago) by kreckel
Branch: MAIN
Changes since 1.14: +7 -7 lines
Diff to previous 1.14
- Renamed flag NO_GINAC_NAMESPACE to NO_NAMESPACE_GINAC because of m4.
- Made configure check for cint and makecint and call makecint to dump out
  cint/Makefile.cint, which will later be called by cint/Makefile.  See
  configure option --with-cint.
- Added some documentation about GiNaC-cint (e.g. a manpage).
- All dummies in subdir cint/ are created by cint/dummies.pl now, removed
  older stuff.


Revision 1.14 - (view) (annotate) - [select for diffs]
Thu Jan 27 15:26:13 2000 UTC (13 years, 3 months ago) by cbauer
Branch: MAIN
Changes since 1.13: +4 -4 lines
Diff to previous 1.13
- building GiNaC in a separate directory now works


Revision 1.13 - (view) (annotate) - [select for diffs]
Fri Jan 21 15:20:30 2000 UTC (13 years, 4 months ago) by cbauer
Branch: MAIN
Changes since 1.12: +25 -25 lines
Diff to previous 1.12
- changed all instances of "foo const &/*" to "const foo &/*"
- changed function arguments like "int const" to a simple "int"


Revision 1.12 - (view) (annotate) - [select for diffs]
Wed Jan 19 19:46:56 2000 UTC (13 years, 4 months ago) by cbauer
Branch: MAIN
Changes since 1.11: +4 -1 lines
Diff to previous 1.11
- implemented global class registry (for class basic and derived classes)
- implemented archiving of expressions (except for class idx, and all classes
  derived from idx and indexed)
- added series() wrapper function
- class series renamed to pseries to avoid name clashes with global series()
  wrapper function, ex::series(), and basic::series()
- corrected the series expansion of single symbols with respect to the order
  term
- calling subs() on a series didn't work


Revision 1.11 - (view) (annotate) - [select for diffs]
Tue Jan 11 19:25:05 2000 UTC (13 years, 4 months ago) by kreckel
Branch: MAIN
Changes since 1.10: +2 -2 lines
Diff to previous 1.10
- made nops() return unsigned instead of int
- changed dates in copyright notices


Revision 1.10 - (view) (annotate) - [select for diffs]
Mon Dec 20 17:12:36 1999 UTC (13 years, 5 months ago) by kreckel
Branch: MAIN
Changes since 1.9: +1 -1 lines
Diff to previous 1.9
- more logic on the trigonometric function stuff.
- changed several occurences of numeric const & to const numeric &, which
  is the same, but doxygen kept being confused because declarations
  differed from implementations.


Revision 1.9 - (view) (annotate) - [select for diffs]
Mon Dec 13 15:43:32 1999 UTC (13 years, 5 months ago) by kreckel
Branch: MAIN
Changes since 1.8: +1 -1 lines
Diff to previous 1.8
- introduced info_flags::cinteger, info_flags::crational,
  info_flags::cinteger_polynomial, info_flags::crational_polynomial with
  intuitive behaviour.
- extended documentation
- made things like evlaf(zeta(3)) work
- killed several bugs


Revision 1.8 - (view) (annotate) - [select for diffs]
Thu Dec 2 15:45:13 1999 UTC (13 years, 5 months ago) by frink
Branch: MAIN
Changes since 1.7: +28 -1 lines
Diff to previous 1.7
#ifndef around namespace GiNaC { }


Revision 1.7 - (view) (annotate) - [select for diffs]
Mon Nov 22 16:44:59 1999 UTC (13 years, 6 months ago) by cbauer
Branch: MAIN
Changes since 1.6: +1 -1 lines
Diff to previous 1.6
- ASSERT macro renamed to GINAC_ASSERT


Revision 1.6 - (view) (annotate) - [select for diffs]
Fri Nov 19 16:22:11 1999 UTC (13 years, 6 months ago) by cbauer
Branch: MAIN
Changes since 1.5: +1 -34 lines
Diff to previous 1.5
- rotate_31() and golden_hash_ratio() moved to utils.h
- golden_hash_ratio() looks for a suitable data type by means of defines
  from config.h


Revision 1.5 - (view) (annotate) - [select for diffs]
Wed Nov 17 16:57:58 1999 UTC (13 years, 6 months ago) by cbauer
Branch: MAIN
Changes since 1.4: +9 -14 lines
Diff to previous 1.4
- put everything in "GiNaC" namespace
- converted some macros into inline functions
- split debugmsg.h into assertion.h (public) and debugmsg.h (private)


Revision 1.4 - (view) (annotate) - [select for diffs]
Tue Nov 16 16:35:24 1999 UTC (13 years, 6 months ago) by cbauer
Branch: MAIN
Changes since 1.3: +3 -2 lines
Diff to previous 1.3
- modified the comment blocks so the copyright message no longer appears in
  the reference manual (made by Doxygen)


Revision 1.3 - (view) (annotate) - [select for diffs]
Wed Nov 10 19:35:47 1999 UTC (13 years, 6 months ago) by cbauer
Branch: MAIN
Changes since 1.2: +9 -28 lines
Diff to previous 1.2
- modified GiNaC headers to Alexander's liking


Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Nov 10 16:35:10 1999 UTC (13 years, 6 months ago) by cbauer
Branch: MAIN
Changes since 1.1: +21 -8 lines
Diff to previous 1.1
- enforced GiNaC coding standards :-)


Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Nov 9 19:57:01 1999 UTC (13 years, 6 months ago) by cbauer
Branch: MAIN
- switched to automake build environment


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Christian Bauer">Christian Bauer
ViewVC Help
Powered by ViewVC 1.1.15