From dbd9c306a74f1cb258c0d15a346b973b39deaad2 Mon Sep 17 00:00:00 2001 From: Christian Bauer Date: Tue, 21 Jan 2003 22:50:19 +0000 Subject: [PATCH] - prepared for 1.0.13 release - synced to 1.1 --- ginac/add.cpp | 2 +- ginac/add.h | 2 +- ginac/archive.cpp | 2 +- ginac/archive.h | 2 +- ginac/assertion.h | 2 +- ginac/basic.cpp | 2 +- ginac/basic.h | 2 +- ginac/clifford.cpp | 6 +- ginac/clifford.h | 2 +- ginac/color.cpp | 2 +- ginac/color.h | 2 +- ginac/constant.cpp | 2 +- ginac/constant.h | 2 +- ginac/container.pl | 4 +- ginac/ex.cpp | 2 +- ginac/ex.h | 2 +- ginac/expair.cpp | 2 +- ginac/expair.h | 2 +- ginac/expairseq.cpp | 2 +- ginac/expairseq.h | 2 +- ginac/exprseq_suppl.cpp | 2 +- ginac/fail.cpp | 2 +- ginac/fail.h | 2 +- ginac/fderivative.cpp | 2 +- ginac/fderivative.h | 2 +- ginac/flags.h | 2 +- ginac/function.pl | 4 +- ginac/ginac.h | 2 +- ginac/idx.cpp | 2 +- ginac/idx.h | 2 +- ginac/indexed.cpp | 158 +++++++++++++++++++++++++++++----------- ginac/indexed.h | 2 +- ginac/inifcns.cpp | 2 +- ginac/inifcns.h | 2 +- ginac/inifcns_gamma.cpp | 2 +- ginac/inifcns_trans.cpp | 2 +- ginac/inifcns_zeta.cpp | 2 +- ginac/input_lexer.h | 2 +- ginac/input_lexer.ll | 2 +- ginac/input_parser.yy | 2 +- ginac/lst_suppl.cpp | 2 +- ginac/matrix.cpp | 2 +- ginac/matrix.h | 2 +- ginac/mul.cpp | 2 +- ginac/mul.h | 2 +- ginac/ncmul.cpp | 2 +- ginac/ncmul.h | 2 +- ginac/normal.cpp | 2 +- ginac/normal.h | 2 +- ginac/numeric.cpp | 2 +- ginac/numeric.h | 2 +- ginac/operators.cpp | 2 +- ginac/operators.h | 2 +- ginac/power.cpp | 2 +- ginac/power.h | 2 +- ginac/print.cpp | 2 +- ginac/print.h | 2 +- ginac/pseries.cpp | 2 +- ginac/pseries.h | 2 +- ginac/registrar.cpp | 2 +- ginac/registrar.h | 2 +- ginac/relational.cpp | 2 +- ginac/relational.h | 2 +- ginac/remember.cpp | 2 +- ginac/remember.h | 2 +- ginac/structure.cpp | 2 +- ginac/structure.h | 2 +- ginac/structure.pl | 4 +- ginac/symbol.cpp | 2 +- ginac/symbol.h | 2 +- ginac/symmetry.cpp | 2 +- ginac/symmetry.h | 2 +- ginac/tensor.cpp | 2 +- ginac/tensor.h | 2 +- ginac/tinfos.h | 2 +- ginac/tostring.h | 2 +- ginac/utils.cpp | 2 +- ginac/utils.h | 2 +- ginac/version.h.in | 2 +- ginac/wildcard.cpp | 2 +- ginac/wildcard.h | 2 +- 81 files changed, 203 insertions(+), 125 deletions(-) diff --git a/ginac/add.cpp b/ginac/add.cpp index b3fd1f60..706013a3 100644 --- a/ginac/add.cpp +++ b/ginac/add.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's sums of expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/add.h b/ginac/add.h index 92888919..4f55240a 100644 --- a/ginac/add.h +++ b/ginac/add.h @@ -3,7 +3,7 @@ * Interface to GiNaC's sums of expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/archive.cpp b/ginac/archive.cpp index 2dc14f67..28d8afc3 100644 --- a/ginac/archive.cpp +++ b/ginac/archive.cpp @@ -3,7 +3,7 @@ * Archiving of GiNaC expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/archive.h b/ginac/archive.h index 0dca095b..b7e9ba98 100644 --- a/ginac/archive.h +++ b/ginac/archive.h @@ -3,7 +3,7 @@ * Archiving of GiNaC expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/assertion.h b/ginac/assertion.h index e0f1240e..0abce53c 100644 --- a/ginac/assertion.h +++ b/ginac/assertion.h @@ -3,7 +3,7 @@ * Assertion macro definition. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/basic.cpp b/ginac/basic.cpp index fb73096f..f625e92b 100644 --- a/ginac/basic.cpp +++ b/ginac/basic.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's ABC. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/basic.h b/ginac/basic.h index d7fef593..d2d3e865 100644 --- a/ginac/basic.h +++ b/ginac/basic.h @@ -3,7 +3,7 @@ * Interface to GiNaC's ABC. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/clifford.cpp b/ginac/clifford.cpp index af8b749c..b12e385c 100644 --- a/ginac/clifford.cpp +++ b/ginac/clifford.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's clifford algebra (Dirac gamma) objects. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -210,6 +210,8 @@ bool diracgamma::contract_with(exvector::iterator self, exvector::iterator other unsigned char rl = ex_to(*self).get_representation_label(); ex dim = ex_to(self->op(1)).get_dim(); + if (other->nops() > 1) + dim = minimal_dim(dim, ex_to(self->op(1)).get_dim()); if (is_a(*other)) { // Contraction only makes sense if the represenation labels are equal @@ -439,7 +441,7 @@ ex clifford::simplify_ncmul(const exvector & v) const } else if (!a_is_diracgamma && !b_is_diracgamma && ag.is_equal(bg)) { // a\ a\ -> a^2 - varidx ix((new symbol)->setflag(status_flags::dynallocated), ex_to(a.op(1)).get_dim()); + varidx ix((new symbol)->setflag(status_flags::dynallocated), ex_to(a.op(1)).minimal_dim(ex_to(b.op(1)))); a = indexed(ag, ix) * indexed(ag, ix.toggle_variance()); b = dirac_ONE(representation_label); something_changed = true; diff --git a/ginac/clifford.h b/ginac/clifford.h index 2a9e73b1..ce5d2acf 100644 --- a/ginac/clifford.h +++ b/ginac/clifford.h @@ -3,7 +3,7 @@ * Interface to GiNaC's clifford algebra (Dirac gamma) objects. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/color.cpp b/ginac/color.cpp index 7d71facf..4c50a6e7 100644 --- a/ginac/color.cpp +++ b/ginac/color.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's color (SU(3) Lie algebra) objects. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/color.h b/ginac/color.h index be51156d..66cf0769 100644 --- a/ginac/color.h +++ b/ginac/color.h @@ -3,7 +3,7 @@ * Interface to GiNaC's color (SU(3) Lie algebra) objects. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/constant.cpp b/ginac/constant.cpp index 5ba84751..636eeae4 100644 --- a/ginac/constant.cpp +++ b/ginac/constant.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's constant types and some special constants. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/constant.h b/ginac/constant.h index 6f3aa0fa..e0242d97 100644 --- a/ginac/constant.h +++ b/ginac/constant.h @@ -3,7 +3,7 @@ * Interface to GiNaC's constant types and some special constants. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/container.pl b/ginac/container.pl index d187d065..39c75385 100755 --- a/ginac/container.pl +++ b/ginac/container.pl @@ -191,7 +191,7 @@ $interface=< +#include #include #include "indexed.h" @@ -387,6 +388,22 @@ ex indexed::derivative(const symbol & s) const // global functions ////////// +struct idx_is_equal_ignore_dim : public std::binary_function { + bool operator() (const ex &lh, const ex &rh) const + { + if (lh.is_equal(rh)) + return true; + else + try { + // Replacing the dimension might cause an error (e.g. with + // index classes that only work in a fixed number of dimensions) + return lh.is_equal(ex_to(rh).replace_dim(ex_to(lh).get_dim())); + } catch (...) { + return false; + } + } +}; + /** Check whether two sorted index vectors are consistent (i.e. equal). */ static bool indices_consistent(const exvector & v1, const exvector & v2) { @@ -394,7 +411,7 @@ static bool indices_consistent(const exvector & v1, const exvector & v2) if (v1.size() != v2.size()) return false; - return equal(v1.begin(), v1.end(), v2.begin(), ex_is_equal()); + return equal(v1.begin(), v1.end(), v2.begin(), idx_is_equal_ignore_dim()); } exvector indexed::get_indices(void) const @@ -815,17 +832,11 @@ contraction_done: * obtained during the simplification of sums. */ class symminfo { public: - symminfo() {} + symminfo() : num(0) {} ~symminfo() {} - symminfo(const ex & symmterm_, const ex & orig_) + symminfo(const ex & symmterm_, const ex & orig_, unsigned num_) : orig(orig_), num(num_) { - if (is_exactly_a(orig_) && is_exactly_a(orig_.op(orig_.nops()-1))) { - ex tmp = orig_.op(orig_.nops()-1); - orig = orig_ / tmp; - } else - orig = orig_; - if (is_exactly_a(symmterm_) && is_exactly_a(symmterm_.op(symmterm_.nops()-1))) { coeff = symmterm_.op(symmterm_.nops()-1); symmterm = symmterm_ / coeff; @@ -835,40 +846,44 @@ public: } } - symminfo(const symminfo & other) - { - symmterm = other.symmterm; - coeff = other.coeff; - orig = other.orig; - } + ex symmterm; /**< symmetrized term */ + ex coeff; /**< coefficient of symmetrized term */ + ex orig; /**< original term */ + unsigned num; /**< how many symmetrized terms resulted from the original term */ +}; - const symminfo & operator=(const symminfo & other) +class symminfo_is_less_by_symmterm { +public: + bool operator() (const symminfo & si1, const symminfo & si2) const { - if (this != &other) { - symmterm = other.symmterm; - coeff = other.coeff; - orig = other.orig; - } - return *this; + int comp = si1.symmterm.compare(si2.symmterm); + if (comp < 0) return true; +#if 0 + if (comp > 0) return false; + comp = si1.orig.compare(si2.orig); + if (comp < 0) return true; + if (comp > 0) return false; + comp = si1.coeff.compare(si2.coeff); + if (comp < 0) return true; +#endif + return false; } - - ex symmterm; - ex coeff; - ex orig; }; -class symminfo_is_less { +class symminfo_is_less_by_orig { public: - bool operator() (const symminfo & si1, const symminfo & si2) + bool operator() (const symminfo & si1, const symminfo & si2) const { - int comp = si1.symmterm.compare(si2.symmterm); + int comp = si1.orig.compare(si2.orig); if (comp < 0) return true; +#if 0 if (comp > 0) return false; - comp = si1.orig.compare(si2.orig); + comp = si1.symmterm.compare(si2.symmterm); if (comp < 0) return true; if (comp > 0) return false; comp = si1.coeff.compare(si2.coeff); if (comp < 0) return true; +#endif return false; } }; @@ -920,8 +935,12 @@ ex simplify_indexed(const ex & e, exvector & free_indices, exvector & dummy_indi sum = term; first = false; } else { - if (!indices_consistent(free_indices, free_indices_of_term)) - throw (std::runtime_error("simplify_indexed: inconsistent indices in sum")); + if (!indices_consistent(free_indices, free_indices_of_term)) { + std::ostringstream s; + s << "simplify_indexed: inconsistent indices in sum: "; + s << exprseq(free_indices) << " vs. " << exprseq(free_indices_of_term); + throw (std::runtime_error(s.str())); + } if (is_ex_of_type(sum, indexed) && is_ex_of_type(term, indexed)) sum = ex_to(sum.op(0)).add_indexed(sum, term); else @@ -950,24 +969,81 @@ ex simplify_indexed(const ex & e, exvector & free_indices, exvector & dummy_indi std::vector v; for (int i=0; i(sum_symm)) for (int j=0; j::iterator i=v.begin(); i!=v.end(); ) { - std::vector::iterator j = i; - for (j++; j!=v.end() && i->symmterm == j->symmterm; j++) ; - for (std::vector::iterator k=i; k!=j; k++) - result.push_back((k->coeff)*(i->orig)); + std::sort(v.begin(), v.end(), symminfo_is_less_by_symmterm()); + + std::vector v_pass2; + for (std::vector::const_iterator i=v.begin(); i!=v.end(); ) { + + // Combine equal terms + std::vector::const_iterator j = i + 1; + if (j != v.end() && j->symmterm == i->symmterm) { + + // More than one term, collect the coefficients + ex coeff = i->coeff; + while (j != v.end() && j->symmterm == i->symmterm) { + coeff += j->coeff; + j++; + } + + // Add combined term to result + if (!coeff.is_zero()) + result.push_back(coeff * i->symmterm); + + } else { + + // Single term, store for second pass + v_pass2.push_back(*i); + } + i = j; } + + // Were there any remaining terms that didn't get combined? + if (v_pass2.size() > 0) { + + // Yes, sort them by their original term + std::sort(v_pass2.begin(), v_pass2.end(), symminfo_is_less_by_orig()); + + for (std::vector::const_iterator i=v_pass2.begin(); i!=v_pass2.end(); ) { + + // How many symmetrized terms of this original term are left? + unsigned num = 1; + std::vector::const_iterator j = i + 1; + while (j != v_pass2.end() && j->orig == i->orig) { + num++; + j++; + } + + if (num == i->num) { + + // All terms left, then add the original term to the result + result.push_back(i->orig); + + } else { + + // Some terms were combined with others, add up the remaining symmetrized terms + std::vector::const_iterator k; + for (k=i; k!=j; k++) + result.push_back(k->coeff * k->symmterm); + } + + i = j; + } + } + + // Add all resulting terms ex sum_symm = (new add(result))->setflag(status_flags::dynallocated); if (sum_symm.is_zero()) free_indices.clear(); diff --git a/ginac/indexed.h b/ginac/indexed.h index ad18ddb5..0a00e769 100644 --- a/ginac/indexed.h +++ b/ginac/indexed.h @@ -3,7 +3,7 @@ * Interface to GiNaC's indexed expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/inifcns.cpp b/ginac/inifcns.cpp index 74522306..9d373e79 100644 --- a/ginac/inifcns.cpp +++ b/ginac/inifcns.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's initially known functions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/inifcns.h b/ginac/inifcns.h index 86156398..11850c34 100644 --- a/ginac/inifcns.h +++ b/ginac/inifcns.h @@ -3,7 +3,7 @@ * Interface to GiNaC's initially known functions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/inifcns_gamma.cpp b/ginac/inifcns_gamma.cpp index 1beab9ea..3f3bd561 100644 --- a/ginac/inifcns_gamma.cpp +++ b/ginac/inifcns_gamma.cpp @@ -4,7 +4,7 @@ * some related stuff. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/inifcns_trans.cpp b/ginac/inifcns_trans.cpp index ec2fb911..67a578dd 100644 --- a/ginac/inifcns_trans.cpp +++ b/ginac/inifcns_trans.cpp @@ -4,7 +4,7 @@ * functions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/inifcns_zeta.cpp b/ginac/inifcns_zeta.cpp index d7e29c06..ef956e61 100644 --- a/ginac/inifcns_zeta.cpp +++ b/ginac/inifcns_zeta.cpp @@ -3,7 +3,7 @@ * Implementation of the Zeta-function and some related stuff. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/input_lexer.h b/ginac/input_lexer.h index ed3f94c6..001c5467 100644 --- a/ginac/input_lexer.h +++ b/ginac/input_lexer.h @@ -4,7 +4,7 @@ * This file must be processed with flex. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/input_lexer.ll b/ginac/input_lexer.ll index 139d6907..d8bfd362 100644 --- a/ginac/input_lexer.ll +++ b/ginac/input_lexer.ll @@ -4,7 +4,7 @@ * This file must be processed with flex. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/input_parser.yy b/ginac/input_parser.yy index 43d7cc82..c4f69c26 100644 --- a/ginac/input_parser.yy +++ b/ginac/input_parser.yy @@ -4,7 +4,7 @@ * This file must be processed with yacc/bison. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/lst_suppl.cpp b/ginac/lst_suppl.cpp index 13438c5d..7c0d83fc 100644 --- a/ginac/lst_suppl.cpp +++ b/ginac/lst_suppl.cpp @@ -4,7 +4,7 @@ * generated. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/matrix.cpp b/ginac/matrix.cpp index 46d7a64c..146127fa 100644 --- a/ginac/matrix.cpp +++ b/ginac/matrix.cpp @@ -3,7 +3,7 @@ * Implementation of symbolic matrices */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/matrix.h b/ginac/matrix.h index b0b582d7..4dc2ee05 100644 --- a/ginac/matrix.h +++ b/ginac/matrix.h @@ -3,7 +3,7 @@ * Interface to symbolic matrices */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/mul.cpp b/ginac/mul.cpp index 63f6381d..4a66f310 100644 --- a/ginac/mul.cpp +++ b/ginac/mul.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's products of expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/mul.h b/ginac/mul.h index 65a291b7..d7df44a9 100644 --- a/ginac/mul.h +++ b/ginac/mul.h @@ -3,7 +3,7 @@ * Interface to GiNaC's products of expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/ncmul.cpp b/ginac/ncmul.cpp index 6931279d..2b91cb23 100644 --- a/ginac/ncmul.cpp +++ b/ginac/ncmul.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's non-commutative products of expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/ncmul.h b/ginac/ncmul.h index f8ba6284..78a45ed6 100644 --- a/ginac/ncmul.h +++ b/ginac/ncmul.h @@ -3,7 +3,7 @@ * Interface to GiNaC's non-commutative products of expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/normal.cpp b/ginac/normal.cpp index 936957fe..6e18f512 100644 --- a/ginac/normal.cpp +++ b/ginac/normal.cpp @@ -6,7 +6,7 @@ * computation, square-free factorization and rational function normalization. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/normal.h b/ginac/normal.h index 9196f965..304d51c2 100644 --- a/ginac/normal.h +++ b/ginac/normal.h @@ -6,7 +6,7 @@ * computation, square-free factorization and rational function normalization. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/numeric.cpp b/ginac/numeric.cpp index a3872b96..545d8742 100644 --- a/ginac/numeric.cpp +++ b/ginac/numeric.cpp @@ -7,7 +7,7 @@ * of special functions or implement the interface to the bignum package. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/numeric.h b/ginac/numeric.h index 3c7dba2c..c56c56bd 100644 --- a/ginac/numeric.h +++ b/ginac/numeric.h @@ -3,7 +3,7 @@ * Makes the interface to the underlying bignum package available. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/operators.cpp b/ginac/operators.cpp index c83f09a1..da3e766c 100644 --- a/ginac/operators.cpp +++ b/ginac/operators.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's overloaded operators. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/operators.h b/ginac/operators.h index 9c37506d..770d2086 100644 --- a/ginac/operators.h +++ b/ginac/operators.h @@ -3,7 +3,7 @@ * Interface to GiNaC's overloaded operators. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/power.cpp b/ginac/power.cpp index 7d84c82e..0730e3c8 100644 --- a/ginac/power.cpp +++ b/ginac/power.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's symbolic exponentiation (basis^exponent). */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/power.h b/ginac/power.h index 12ebf6a2..46acef97 100644 --- a/ginac/power.h +++ b/ginac/power.h @@ -3,7 +3,7 @@ * Interface to GiNaC's symbolic exponentiation (basis^exponent). */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/print.cpp b/ginac/print.cpp index 1018ee70..606e5e16 100644 --- a/ginac/print.cpp +++ b/ginac/print.cpp @@ -3,7 +3,7 @@ * Implementation of helper classes for expression output. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/print.h b/ginac/print.h index af910f1a..00ebcc91 100644 --- a/ginac/print.h +++ b/ginac/print.h @@ -3,7 +3,7 @@ * Definition of helper classes for expression output. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/pseries.cpp b/ginac/pseries.cpp index e08921e8..bdf17d16 100644 --- a/ginac/pseries.cpp +++ b/ginac/pseries.cpp @@ -4,7 +4,7 @@ * methods for series expansion. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/pseries.h b/ginac/pseries.h index f2fc7591..26c27306 100644 --- a/ginac/pseries.h +++ b/ginac/pseries.h @@ -3,7 +3,7 @@ * Interface to class for extended truncated power series. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/registrar.cpp b/ginac/registrar.cpp index 83269e5a..34c91118 100644 --- a/ginac/registrar.cpp +++ b/ginac/registrar.cpp @@ -3,7 +3,7 @@ * GiNaC's class registrar (for class basic and all classes derived from it). */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/registrar.h b/ginac/registrar.h index eda20bb3..e620250e 100644 --- a/ginac/registrar.h +++ b/ginac/registrar.h @@ -3,7 +3,7 @@ * GiNaC's class registrar (for class basic and all classes derived from it). */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/relational.cpp b/ginac/relational.cpp index bd3b6442..d779c632 100644 --- a/ginac/relational.cpp +++ b/ginac/relational.cpp @@ -3,7 +3,7 @@ * Implementation of relations between expressions */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/relational.h b/ginac/relational.h index 779b1fe8..9f58e0c7 100644 --- a/ginac/relational.h +++ b/ginac/relational.h @@ -3,7 +3,7 @@ * Interface to relations between expressions. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/remember.cpp b/ginac/remember.cpp index 1a102719..cdd346f7 100644 --- a/ginac/remember.cpp +++ b/ginac/remember.cpp @@ -4,7 +4,7 @@ * in GiNaC functions */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/remember.h b/ginac/remember.h index 9a76a21b..704c3f8e 100644 --- a/ginac/remember.h +++ b/ginac/remember.h @@ -4,7 +4,7 @@ * in GiNaC functions */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/structure.cpp b/ginac/structure.cpp index c8c0e2b0..d2f6a9b8 100644 --- a/ginac/structure.cpp +++ b/ginac/structure.cpp @@ -3,7 +3,7 @@ * Implementation of 'abstract' class structure. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/structure.h b/ginac/structure.h index 9c7417e4..9bfb97ce 100644 --- a/ginac/structure.h +++ b/ginac/structure.h @@ -3,7 +3,7 @@ * Interface to 'abstract' class structure. */ /* - * GiNaC Copyright (C) 1999-2002 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2003 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/ginac/structure.pl b/ginac/structure.pl index 809ae268..5ec55af4 100755 --- a/ginac/structure.pl +++ b/ginac/structure.pl @@ -125,7 +125,7 @@ $interface=<