ginac.git
18 years ago- dirac_trace() handles arbitrary expressions (even unexpanded), including
Christian Bauer [Thu, 26 Apr 2001 19:36:07 +0000 (19:36 +0000)]
- dirac_trace() handles arbitrary expressions (even unexpanded), including
  gamma5
- implemented color_trace()
- eps0123() creates a 4-dimensional epsilon tensor without checking the
  indices (so they may be D-dimensional); this may become a different class
  soon, but for now all the implemented properties of the standard epsilon
  tensor also apply to eps0123

18 years agoadded more trace checks
Christian Bauer [Thu, 26 Apr 2001 19:33:22 +0000 (19:33 +0000)]
added more trace checks

18 years agodirac_trace() can handle arbitrary gamma strings without gamma5. The only
Christian Bauer [Wed, 25 Apr 2001 20:41:13 +0000 (20:41 +0000)]
dirac_trace() can handle arbitrary gamma strings without gamma5. The only
remaining unimplemented case is now Tr[gamma5 S_2n]

18 years agoadded more trace checks
Christian Bauer [Wed, 25 Apr 2001 20:40:35 +0000 (20:40 +0000)]
added more trace checks

18 years ago* Minor packaging fixes. release_0-8-2
Richard Kreckel [Tue, 24 Apr 2001 23:53:52 +0000 (23:53 +0000)]
* Minor packaging fixes.
* Pushing towards version 0.8.2-1.

18 years ago* Cint fix. It looks like the hacks are going to go away really soon,
Richard Kreckel [Tue, 24 Apr 2001 19:37:24 +0000 (19:37 +0000)]
* Cint fix.  It looks like the hacks are going to go away really soon,
  after some recent work by Masaharu.

18 years ago* Example: Don't confuse users with _ex0().
Richard Kreckel [Tue, 24 Apr 2001 19:35:39 +0000 (19:35 +0000)]
* Example: Don't confuse users with _ex0().

18 years ago* Push towards 0.8.2.
Richard Kreckel [Tue, 24 Apr 2001 19:35:20 +0000 (19:35 +0000)]
* Push towards 0.8.2.

18 years ago- added get_representation_label()
Christian Bauer [Tue, 24 Apr 2001 17:22:09 +0000 (17:22 +0000)]
- added get_representation_label()
- clifford contractions honor repr. label
- first implementation of dirac_trace(), works with 0..3 clifford objects

18 years agoadded first trace check
Christian Bauer [Tue, 24 Apr 2001 17:21:16 +0000 (17:21 +0000)]
added first trace check

18 years ago\18* class matrix: solve() doesn't call algorithms redundantly any more and
Richard Kreckel [Mon, 23 Apr 2001 19:50:23 +0000 (19:50 +0000)]
\18* class matrix: solve() doesn't call algorithms redundantly any more and
  inverse() falls back to solve() which works in more general cases.

18 years ago* class matrix: solve() doesn't call algorithms redundantly any more and
Richard Kreckel [Mon, 23 Apr 2001 19:50:16 +0000 (19:50 +0000)]
* class matrix: solve() doesn't call algorithms redundantly any more and
  inverse() falls back to solve() which works in more general cases.

18 years ago- degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() work with
Christian Bauer [Fri, 20 Apr 2001 23:09:09 +0000 (23:09 +0000)]
- degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() work with
  non-symbols as the second argument
- collect_distributed() produces result in distributed form (second argument
  should be a list of symbols)

18 years ago- color/clifford objects have representation label to distinguish elements
Christian Bauer [Fri, 20 Apr 2001 23:06:55 +0000 (23:06 +0000)]
- 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

18 years ago- dirac_one() -> dirac_ONE()
Christian Bauer [Fri, 20 Apr 2001 23:03:43 +0000 (23:03 +0000)]
- dirac_one() -> dirac_ONE()
- more clifford checks

18 years agodocumentation update
Christian Bauer [Fri, 20 Apr 2001 23:03:25 +0000 (23:03 +0000)]
documentation update

18 years ago* fixed some mindboggling tremendous superhuge gigantic #*@$&! memory leaks.
Richard Kreckel [Thu, 19 Apr 2001 00:41:18 +0000 (00:41 +0000)]
* fixed some mindboggling tremendous superhuge gigantic #*@$&! memory leaks.

18 years ago* color.cpp: remove duplicated default args.
Richard Kreckel [Wed, 18 Apr 2001 19:30:21 +0000 (19:30 +0000)]
* color.cpp: remove duplicated default args.
* numeric.cpp: insert some missing cln:: namespace decls.
  Why did this ever work?
* structure.cpp, structure.h: adjust to the new print scheme.

18 years ago* Now this four-package split-up is gonna get in. Promised. release_0-8-1
Richard Kreckel [Mon, 16 Apr 2001 20:27:58 +0000 (20:27 +0000)]
* Now this four-package split-up is gonna get in.  Promised.

18 years ago* Finalization for 0.8.1.
Richard Kreckel [Mon, 16 Apr 2001 20:25:21 +0000 (20:25 +0000)]
* Finalization for 0.8.1.

18 years ago* Documented print_latex.
Richard Kreckel [Mon, 16 Apr 2001 20:24:53 +0000 (20:24 +0000)]
* Documented print_latex.

18 years ago* Don't print '*' in LaTeX mode.
Richard Kreckel [Mon, 16 Apr 2001 20:24:27 +0000 (20:24 +0000)]
* Don't print '*' in LaTeX mode.

18 years ago* Still some std:: missing...
Richard Kreckel [Mon, 16 Apr 2001 20:24:09 +0000 (20:24 +0000)]
* Still some std:: missing...

18 years ago* Added example about series expansion.
Richard Kreckel [Sun, 15 Apr 2001 00:28:38 +0000 (00:28 +0000)]
* Added example about series expansion.

18 years ago* basic::collec() never worked correctly on non-polynomials till now.
Richard Kreckel [Sun, 15 Apr 2001 00:28:18 +0000 (00:28 +0000)]
* basic::collec() never worked correctly on non-polynomials till now.
  We simply correct for the missing terms, which makes it at least
  algebraically correct (suggested by Pearu Peterson).
* Added support to print out LaTeX-style, based on some work by Stefan
  Weinzierl:
  - print.h: added a class print_latex().
  - function.pl: added function_options::latex_name() because there was
    no good way of setting that name before.
  - inifncs*.cpp: use it.
  - *.cpp: switch to see if print_context is actually print_latex and
    then change the style.
* Fixed some stupid bugs in sections that were #define'd away for gcc-2.95.

18 years ago* INSTALL: adjusted Cint status.
Richard Kreckel [Sun, 15 Apr 2001 00:22:44 +0000 (00:22 +0000)]
* INSTALL: adjusted Cint status.
* document change in .collect().

18 years ago* Preparing for 0.8.1.
Richard Kreckel [Fri, 13 Apr 2001 19:26:29 +0000 (19:26 +0000)]
* Preparing for 0.8.1.

18 years ago* Removed obsolete exponent marker in float output example.
Richard Kreckel [Fri, 13 Apr 2001 18:46:23 +0000 (18:46 +0000)]
* Removed obsolete exponent marker in float output example.

18 years ago* add::print() shouldn't put parens around overall_coeff.
Richard Kreckel [Fri, 13 Apr 2001 18:27:34 +0000 (18:27 +0000)]
* add::print() shouldn't put parens around overall_coeff.

18 years ago* Remove bogus counter in sqrfree_yun().
Richard Kreckel [Fri, 13 Apr 2001 18:26:46 +0000 (18:26 +0000)]
* Remove bogus counter in sqrfree_yun().

18 years agoarchive property example uses propinfovector
Christian Bauer [Tue, 10 Apr 2001 23:04:24 +0000 (23:04 +0000)]
archive property example uses propinfovector

18 years agoadded basic::get_precedence()
Christian Bauer [Tue, 10 Apr 2001 18:30:21 +0000 (18:30 +0000)]
added basic::get_precedence()

18 years ago* introduced typedef propinfovector in order to please Cint.
Richard Kreckel [Tue, 10 Apr 2001 13:47:03 +0000 (13:47 +0000)]
* introduced typedef propinfovector in order to please Cint.

18 years agoadapted to change symbol::getname() -> symbol::get_name()
Christian Bauer [Mon, 9 Apr 2001 23:32:23 +0000 (23:32 +0000)]
adapted to change symbol::getname() -> symbol::get_name()

18 years agoadded functions to retrieve the properties stored in archive objects
Christian Bauer [Mon, 9 Apr 2001 21:33:48 +0000 (21:33 +0000)]
added functions to retrieve the properties stored in archive objects
outside of unarchive(), for printing or debugging purposes

18 years ago- updated to reflect the extended possibilities of subs(), (l)degree(),
Christian Bauer [Mon, 9 Apr 2001 21:33:17 +0000 (21:33 +0000)]
- updated to reflect the extended possibilities of subs(), (l)degree(),
  (l/t)coeff() and collect()
- added examples for specialized expression output by tree-traversal and
  with the aid of archives

18 years agodocumentation update
Christian Bauer [Mon, 9 Apr 2001 21:30:32 +0000 (21:30 +0000)]
documentation update

18 years ago- renamed
Christian Bauer [Mon, 9 Apr 2001 01:08:35 +0000 (01:08 +0000)]
- renamed
    function::getserial() -> function::get_serial()
    symbol::setname() -> symbol::set_name()
    symbol::getname() -> symbol::get_name()
  for consistency (since the interface has changed anyway)
- added pseries::get_var() and pseries::get_point()

18 years agoadded function::get_name() to return a function's print name
Christian Bauer [Sat, 7 Apr 2001 20:58:09 +0000 (20:58 +0000)]
added function::get_name() to return a function's print name

18 years agosomething like 2/3*a is no longer printed as (2/3)*a
Christian Bauer [Fri, 6 Apr 2001 23:39:47 +0000 (23:39 +0000)]
something like 2/3*a is no longer printed as (2/3)*a

18 years agoupdated with respect to new print() method
Christian Bauer [Fri, 6 Apr 2001 23:39:17 +0000 (23:39 +0000)]
updated with respect to new print() method

18 years agoprinttree() -> print(print_tree())
Christian Bauer [Fri, 6 Apr 2001 23:03:15 +0000 (23:03 +0000)]
printtree() -> print(print_tree())

18 years ago- replaced the various print*() member functions by a single print() that
Christian Bauer [Fri, 6 Apr 2001 23:02:58 +0000 (23:02 +0000)]
- 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

18 years agoadded check for archiving system
Christian Bauer [Fri, 6 Apr 2001 23:02:12 +0000 (23:02 +0000)]
added check for archiving system

18 years agodocumentation update
Christian Bauer [Fri, 6 Apr 2001 23:02:02 +0000 (23:02 +0000)]
documentation update

18 years agosubs() performs "syntactic substitution" as in Maple; you can substitute
Christian Bauer [Thu, 5 Apr 2001 21:02:26 +0000 (21:02 +0000)]
subs() performs "syntactic substitution" as in Maple; you can substitute
any object by any other object (even numerics) but only when the object
subs() is called on exactly matches an object on the left-hand side of the
substitution list; expairseq still doesn't substitute its numeric coefficients
so substituting numerics will not replace them in all occurences (this
shouldn't matter, though)

18 years agodocumentation update
Christian Bauer [Thu, 5 Apr 2001 20:58:36 +0000 (20:58 +0000)]
documentation update

18 years ago- subs() can be used to substitute functions, tensors and indexed objects
Christian Bauer [Thu, 5 Apr 2001 19:45:05 +0000 (19:45 +0000)]
- subs() can be used to substitute functions, tensors and indexed objects
- op(0) of an idx object returns the index value; a nice side-effect of
  this is that idx'es no longer all have the same hash value
- added checks for clifford class

18 years ago- subs() can be used to substitute functions, tensors and indexed objects
Christian Bauer [Thu, 5 Apr 2001 19:44:47 +0000 (19:44 +0000)]
- subs() can be used to substitute functions, tensors and indexed objects
- op(0) of an idx object returns the index value; a nice side-effect of
  this is that idx'es no longer all have the same hash value

18 years agodocumentation update
Christian Bauer [Thu, 5 Apr 2001 00:39:51 +0000 (00:39 +0000)]
documentation update

18 years agodegree(), ldegree(), coeff(), tcoeff(), lcoeff() and collect() work with
Christian Bauer [Thu, 5 Apr 2001 00:37:46 +0000 (00:37 +0000)]
degree(), ldegree(), coeff(), tcoeff(), lcoeff() and collect() work with
functions (you can collect by powers of sin(x) etc.)

18 years agosimplify_indexed() will re-expand the expression and re-run the
Christian Bauer [Thu, 5 Apr 2001 00:16:02 +0000 (00:16 +0000)]
simplify_indexed() will re-expand the expression and re-run the
simplification if a contraction in a product resulted in a factor that
is a sum or a product itself; so e.g. gamma~mu*gamma~nu*gamma.nu*gamma.mu
will return dim^2*ONE without having to run simplify_indexed() twice

18 years ago* removed some obsolete stuff.
Richard Kreckel [Wed, 4 Apr 2001 21:51:19 +0000 (21:51 +0000)]
* removed some obsolete stuff.

18 years agodegree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() can now
Christian Bauer [Mon, 2 Apr 2001 20:57:32 +0000 (20:57 +0000)]
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

18 years agothe unsigned number 128 was stored incorrectly (0x80 instead of 0x80 0x01)
Christian Bauer [Fri, 30 Mar 2001 21:11:04 +0000 (21:11 +0000)]
the unsigned number 128 was stored incorrectly (0x80 instead of 0x80 0x01)

18 years ago- added Clifford contractions:
Christian Bauer [Fri, 30 Mar 2001 18:14:32 +0000 (18:14 +0000)]
- added Clifford contractions:
   gamma~mu*gamma~alpha*gamma~beta*gamma.mu
   gamma~mu*gamma~alpha*gamma~beta*gamma~delta*gamma.mu
- detection of free indices of the complete product in
  simplify_indexed_product() could go wrong if contractions resulted in
  composite expressions

18 years ago- dummy index recognition in products was flawed: A.i.i*B.j.j would be
Christian Bauer [Fri, 30 Mar 2001 17:34:35 +0000 (17:34 +0000)]
- dummy index recognition in products was flawed: A.i.i*B.j.j would be
  treated as a scalar product of A and B, A.j.j.i.i*B.k.l would be 0
  if A was symmetric and B antisymmetric etc.
- removed redundant code for handling d.akl*f.akl contraction; this is
  handled by simplify_indexed() itself since it is a contraction of a
  symmetric with an antisymmetric tensor

18 years agoadded checks for bugs in GiNaC 0.8.0
Christian Bauer [Fri, 30 Mar 2001 17:32:02 +0000 (17:32 +0000)]
added checks for bugs in GiNaC 0.8.0

18 years agoadded checks for color objects
Christian Bauer [Thu, 29 Mar 2001 20:56:45 +0000 (20:56 +0000)]
added checks for color objects

18 years ago- added Clifford algebra unity element
Christian Bauer [Thu, 29 Mar 2001 20:56:32 +0000 (20:56 +0000)]
- added Clifford algebra unity element
- superfluous unity elements are removed from Clifford and color strings
- added Clifford contractions:
    gamma~mu*gamma.mu
    gamma~mu*gamma~alpha*gamma.mu
- added color contractions:
    d.aac
    d.abc*d.abc
    d.akl*d.bkl
    d.abc*f.abc
    d.akl*f.bkl
    f.abc*f.abc
    f.akl*f.bkl
- delta tensor and color structure constants can be evaluated numerically
- color_T(), color_d() and color_f() check their arguments
- added a couple of utility functions to idx.*
- simplify_indexed() doesn't crash any more when used on expressions containing
  noncommutative products

18 years ago- introduced macros to shorten the source files
Christian Bauer [Thu, 29 Mar 2001 20:48:17 +0000 (20:48 +0000)]
- introduced macros to shorten the source files
- added exam_color()

18 years agoskeleton implementation of new color class
Christian Bauer [Wed, 28 Mar 2001 01:25:32 +0000 (01:25 +0000)]
skeleton implementation of new color class

18 years agorestored deleted files
Christian Bauer [Wed, 28 Mar 2001 01:21:43 +0000 (01:21 +0000)]
restored deleted files

18 years ago- added skeleton implementation of color and clifford classes (don't bother
Christian Bauer [Wed, 28 Mar 2001 00:36:37 +0000 (00:36 +0000)]
- added skeleton implementation of color and clifford classes (don't bother
  trying it, it doesn't work yet)
- some macros in utils.h (DEFAULT_*) provide shorthands for implementing
  many required class member functions

18 years agocontraction of symmetric with antisymmetric tensor over more than one index
Christian Bauer [Tue, 27 Mar 2001 18:17:25 +0000 (18:17 +0000)]
contraction of symmetric with antisymmetric tensor over more than one index
is zero

18 years agoadded check for contraction of epsilon with symmetric tensor
Christian Bauer [Tue, 27 Mar 2001 18:17:06 +0000 (18:17 +0000)]
added check for contraction of epsilon with symmetric tensor

18 years ago* Documented sqrfree. release_0-8-0
Richard Kreckel [Sat, 24 Mar 2001 22:09:41 +0000 (22:09 +0000)]
* Documented sqrfree.

18 years ago* Date inserted.
Richard Kreckel [Sat, 24 Mar 2001 22:09:30 +0000 (22:09 +0000)]
* Date inserted.

18 years ago* Tidied some old crap.
Richard Kreckel [Fri, 23 Mar 2001 19:27:20 +0000 (19:27 +0000)]
* Tidied some old crap.

18 years agofixed memory leaks in lst_to_matrix() and diag_matrix()
Christian Bauer [Fri, 23 Mar 2001 18:36:41 +0000 (18:36 +0000)]
fixed memory leaks in lst_to_matrix() and diag_matrix()

18 years agolst_to_matrix() takes a "lst &" instead of an "ex &"
Christian Bauer [Fri, 23 Mar 2001 17:50:01 +0000 (17:50 +0000)]
lst_to_matrix() takes a "lst &" instead of an "ex &"

18 years ago- simplify_indexed() simplifies c*(M).i.j -> (M').i.j (c: numeric, M: matrix)
Christian Bauer [Fri, 23 Mar 2001 17:49:54 +0000 (17:49 +0000)]
- 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

18 years agosimplify_indexed() recognizes linear combinations of matrices with numeric
Christian Bauer [Fri, 23 Mar 2001 17:46:44 +0000 (17:46 +0000)]
simplify_indexed() recognizes linear combinations of matrices with numeric
coefficients

18 years agoused new diag_matrix() and matrix from lst constructor
Christian Bauer [Fri, 23 Mar 2001 17:46:12 +0000 (17:46 +0000)]
used new diag_matrix() and matrix from lst constructor

18 years agodocumentation update
Christian Bauer [Fri, 23 Mar 2001 17:45:59 +0000 (17:45 +0000)]
documentation update

18 years ago* Eliminated overloaded operator% for noncommunistic objects for good.
Richard Kreckel [Thu, 22 Mar 2001 21:24:32 +0000 (21:24 +0000)]
* Eliminated overloaded operator% for noncommunistic objects for good.
  End of story.  There was just too much risk involved in somebody not
  caring enough whether there are noncommutatating objects inside
  expressions to be multiplied and it could potentially end up in people
  using operator% instead of operator* all the time, just to be safe.
  In any case, it was our firm believe that noncommutatividity is a
  property of the class objects belong to and hence of the objects and
  not at all of the sign to symbol the object (as Maple, Reduce and others
  want to make us believe).  Finally we found out how to code operator*
  so that it handles both cases without any performance loss.  It couldn't
  be less intrusive!  There is no measurable performance degradation.
  (Except perhaps for the tgamma-expansion which seems to show some 3%
  loss while others mysteriously become somewhat faster -- my brain is
  melting.)  Enough, now...

18 years ago* configure.in, cint/run_exams.cpp, cint/ginaccint.cpp: adjusted the
Richard Kreckel [Thu, 22 Mar 2001 20:09:25 +0000 (20:09 +0000)]
* configure.in, cint/run_exams.cpp, cint/ginaccint.cpp: adjusted the
  --with-cint logic so ginaccint may run without a preset $CINTSYSDIR
  (in case of a clean system-wide installation as opposed to the tool-
  centric installation).  cint/Makefile.makecint generation does not
  yet work in this case, makecint needs a tiny upstream bugfix.

18 years ago* INSTALL: reflect Cint status.
Richard Kreckel [Thu, 22 Mar 2001 20:09:22 +0000 (20:09 +0000)]
* INSTALL: reflect Cint status.
* configure.in, cint/run_exams.cpp, cint/ginaccint.cpp: adjusted the
  --with-cint logic so ginaccint may run without a preset $CINTSYSDIR
  (in case of a clean system-wide installation as opposed to the tool-
  centric installation).  cint/Makefile.makecint generation does not
  yet work in this case, makecint needs a tiny upstream bugfix.

18 years agosums of indexed matrices are now possible
Christian Bauer [Thu, 22 Mar 2001 18:52:08 +0000 (18:52 +0000)]
sums of indexed matrices are now possible

18 years agoadded another relativistic electrodynamics check (energy density and Poynting
Christian Bauer [Thu, 22 Mar 2001 18:51:48 +0000 (18:51 +0000)]
added another relativistic electrodynamics check (energy density and Poynting
vector)

18 years agobumped version number to 0.8.0
Christian Bauer [Thu, 22 Mar 2001 18:51:15 +0000 (18:51 +0000)]
bumped version number to 0.8.0

18 years ago* tensdelta is an atomic class.
Richard Kreckel [Wed, 21 Mar 2001 21:07:29 +0000 (21:07 +0000)]
* tensdelta is an atomic class.

18 years ago- the tensor returned by metric_tensor() is symmetric
Christian Bauer [Wed, 21 Mar 2001 21:03:05 +0000 (21:03 +0000)]
- the tensor returned by metric_tensor() is symmetric
- (c*x)~mu with c being a number automatically gets converted to c*x~mu

18 years agothe tensor returned by metric_tensor() is symmetric
Christian Bauer [Wed, 21 Mar 2001 21:01:58 +0000 (21:01 +0000)]
the tensor returned by metric_tensor() is symmetric

18 years ago* Adjusted to current class shuffling.
Richard Kreckel [Tue, 20 Mar 2001 21:27:13 +0000 (21:27 +0000)]
* Adjusted to current class shuffling.

18 years agoadded tutorial section about indexed objects
Christian Bauer [Mon, 19 Mar 2001 18:42:39 +0000 (18:42 +0000)]
added tutorial section about indexed objects

18 years agoan indexed "0" is just a plain "0"
Christian Bauer [Fri, 16 Mar 2001 18:08:48 +0000 (18:08 +0000)]
an indexed "0" is just a plain "0"

18 years ago* Exam some simple square free factorizations.
Richard Kreckel [Thu, 15 Mar 2001 21:10:48 +0000 (21:10 +0000)]
* Exam some simple square free factorizations.

18 years ago* added missing std::
Richard Kreckel [Thu, 15 Mar 2001 20:42:14 +0000 (20:42 +0000)]
* added missing std::

18 years ago* add missing std::.
Richard Kreckel [Wed, 14 Mar 2001 23:09:51 +0000 (23:09 +0000)]
* add missing std::.

18 years agoadded checks involving epsilon tensor
Christian Bauer [Wed, 14 Mar 2001 23:05:38 +0000 (23:05 +0000)]
added checks involving epsilon tensor

18 years agoadded predefined epsilon tensor
Christian Bauer [Wed, 14 Mar 2001 23:05:10 +0000 (23:05 +0000)]
added predefined epsilon tensor

18 years agodocumentation update
Christian Bauer [Wed, 14 Mar 2001 23:01:06 +0000 (23:01 +0000)]
documentation update

18 years ago* ex.h: add docu.
Richard Kreckel [Wed, 14 Mar 2001 21:31:28 +0000 (21:31 +0000)]
* ex.h: add docu.
* normal.cpp: make sqrfree_yun() static.
* basic.cpp (compare): slightly clarify syntax.

18 years agofix stupid memory problem.
Richard Kreckel [Wed, 14 Mar 2001 21:30:16 +0000 (21:30 +0000)]
fix stupid memory problem.

18 years agonormal.cpp, normal.h: Fix Yun's algorithm (there was a mistake in Geddes et
Richard Kreckel [Sun, 11 Mar 2001 19:10:03 +0000 (19:10 +0000)]
normal.cpp, normal.h: Fix Yun's algorithm (there was a mistake in Geddes et
al.) for square-free factorization.  Also change the syntax to allow for
square-free factoring in a recursive way in Q[X].  This is an example how it
works in Z[x,y,z] in ginsh:
> ?sqrfree
sqrfree(expression [, symbol-list]) - square-free factorization of a polynomial
> sqrfree(expand((x+y)*(x+y+z)^2*(y-z)^3));
(x+y)*(-x-y-z)^2*(y^3+3*y*z^2-3*y^2*z-z^3)
> sqrfree(expand((x+y)*(x+y+z)^2*(y-z)^3),[y]);
(x+y)*(y-z)^3*(x+y+z)^2
> sqrfree(expand((x+y)*(x+y+z)^2*(y-z)^3),[z]);
(x+y)*(y-z)^3*(x+y+z)^2
> sqrfree(expand((x+y)*(x+y+z)^2*(y-z)^3),[x]);
(x+y)*(-x-y-z)^2*(y^3+3*y*z^2-3*y^2*z-z^3)
> sqrfree(expand((x+y)*(x+y+z)^2*(y-z)^3),[x,y]);
(x+y)*(-x-y-z)^2*(y^3+3*y*z^2-3*y^2*z-z^3)
> sqrfree(expand((x+y)*(x+y+z)^2*(y-z)^3),[x,y,z]);
(x+y)*(-x-y-z)^2*(y^3+3*y*z^2-3*y^2*z-z^3)
> sqrfree(expand((x+y)*(x+y+z)^2*(y-z)^3),[v]);
3*x*y^5+3*x^2*y^4+x^3*y^3+y^6-y*z^5-2*y^4*z^2+y^2*z^4-y^5*z+2*y^3*z^3-3*x^3*y^2*z+3*x^3*y*z^2-5*x*y^4*z-x*y*z^4+3*x^2*y*z^3+6*x*y^2*z^3+3*x^2*y^2*z^2-2*x*y^3*z^2-7*x^2*y^3*z-x^3*z^3-2*x^2*z^4-x*z^5

18 years agofixed major memory leak in mul::expand()
Christian Bauer [Sat, 10 Mar 2001 04:07:15 +0000 (04:07 +0000)]
fixed major memory leak in mul::expand()

18 years ago- lcm_of_coefficients_denominators(1/2+x^10) returned 1024 instead of 2 and
Christian Bauer [Fri, 9 Mar 2001 22:21:35 +0000 (22:21 +0000)]
- 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

18 years ago- revamped indexed objects
Christian Bauer [Tue, 6 Mar 2001 20:07:16 +0000 (20:07 +0000)]
- revamped indexed objects
- subs() works on matrices

18 years agoadded checks for new indexed objects
Christian Bauer [Tue, 6 Mar 2001 20:06:38 +0000 (20:06 +0000)]
added checks for new indexed objects