Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Tag: |
* Happy New Year(s)!
* Happy New Year(s)!
Vladimirs patch for removing the "anti-commuting" branches from Clifford objects.
Fixed doxygen warning for function lst_to_clifford.
Reviving return_type_tinfo-system.
- New tinfo mechanism (Remark: return_type_tinfo returns basic* now) - Removed rtt from class symbol.
Fixed bug in substituion of clifford objects.
Various improvements for clifford class (subs for metric, commutator_sign, is_equal with repr labels) [V.Kisil]
* Now two different simplification paths in clifford::contract_with(). * Clifford now works with non-symmetric metric as well. * Several small corrections and update of tutorial and automatic checks. [V.Kisil]
* Last week, the FSF has moved their office.
* Last week, the FSF has moved their office.
Synced to HEAD: Better output for slashed expressions (C.Dams' patch).
Better output for slashed expressions (C.Dams' patch).
Synced to HEAD (patches from V.Kisil and C.Dams, tutorial face-lift).
* Applied Vladimir Kisil's patches (bug in clifford_prime and clifford_to_lst, remove_dirac_ONE honors representation_label, improved clifford documentation, better LaTeX output). * Chris Dams' patch applied to correct canonicalize_clifford. * Truncated some lines in the tutorial that were too long for printing nicely.
Happy new year!
Happy new year!
* clifford_moebius_map: honor representation label (Vladimir Kisil).
* clifford_moebius_map: honor representation label (Vladimir Kisil).
* clifford_to_lst() applies to lst. * new additional clifford_moebius_map.
Various bug-fixes and enhancements (new moebius transformation).
synced to head (dirac_trace()/color_trace())
- added variants of dirac_trace() and color_trace() that take the trace over more than one representation label by specifying a set or list of labels - diracgamma::contract_with() uses Chisholm identities in 4 dimensions to produce more compact results - added missing documentation for options parameter of simplify_indexed()
fixed typos
fixed typos
- clifford::metric stores the metric without indices, removing rendundancy - default metric comes from a flyweight to conserve memory - API change: The 'metr' argument to clifford_unit() and lst_to_clifford() is now a tensor or a symmetric matrix without indices
fixed coding style and stuff...
Added contribution from Vladimir Kisil: generalization of clifford algebra: * different metrics can now be defined for clifford * new class "clifford_unit" to represent generators of the algebra
Happy New Year!
Added complex conjugation methods and GiNaC function "conjugate".
synced to 1.1
fixed some documentation inconsistencies
generous use of auto_ptr to provide better exception safety and make the code more expressive (doesn't that sound great?)
use new-style print methods
merging 1.2 branch into main trunk
replaced container.pl by a template
func(void) -> func() (this is C++, dammit :)
*** empty log message ***
- prepared for 1.0.13 release - synced to 1.1
- synced to 1.0 (gammaL/R) - removed dirac_gamma6/7() - renamed simplify_ncmul() to eval_ncmul(), as it should have been called from the beginning
- added Dirac gammaL and gammaR objects (chiral projectors) - fixed a typo in add.cpp
* Sync 1.1 branch to 1.0 mainline.
* Finilize version 1.0.4 (version numbers, copyrights and such rubbish).
- Cleanups: My evil plot of making ex::bp private may finally be carried out, provided one changes all the is_of_type(obj,type) to is_a<type>(obj) which we don't do right now because it would degrade performance on gcc-2.95.x. Also, ex_to_type(obj) has gone for good now, we have been having ex_to<type>(obj) long enough. ex_to_nonconst_type(obj) have gone as well, since they are almost never used and one can always cast aways the constness explicitly if need should arise.
- epsilon*epsilon contractions work
- dirac_slash(a, D) now constructs a special kind of clifford object (printed
as "a\") instead of creating a "a.symbol42*gamma~symbol42" product. This
helps avoiding problems when doing something like
ex prop = (dirac_slash(p, D) - m * dirac_ONE());
ex I = prop * dirac_slash(l, D) * prop;
where the same dummy index would be used for both p-slash in I. Now it's
perfectly safe to do this. Dummy indices are only created when taking
traces or contracting indices. A nice side-effect of this is that "a\*a\"
immediately gets simplified to a^2.
- The "contraction of symmetric and antisymmetric objects is zero" rule
in simplify_indexed() has been generalized. Now expressions like
"epsilon.i.j.k*A.j*A.k" also get simplified to zero (what GiNaC does is
to assert dummy index exchange symmetry).
- replaced the Derivative() function by a more resonable fderivative class; to see it in action, try "series(abs(x),x==0,3)" and "series(abs(x),x==y,3)" in ginsh with previous GiNaC releases and with this one - add::eval() throws an exception when the first term is non-commutative and the overall_coeff is non-zero - small fixes to print_tree output of indexed objects - ncmul::expand() now actually does expand something like "(dirac_gamma(mu)+1) *dirac_gamma(nu)" correctly (but the change to add::eval() should make this a "can't happen" case) - moved ToString() to tostring.h (fewer header dependencies) - ALL YOUR "BASES CLASSES" ARE BELONG TO US
- added find() (like has(), but returns list of all occurrences)
- added lst::sort() and lst::unique()
- status_flags::expanded is only taken into account when no expand options
are specified. This makes it possible to re-expand with other options.
- added expand_options::expand_function_args
- collect(foo, {}) doesn't crash any more
- introduced match_same_type() method which is slightly similar to
is_equal_same_type() but doesn't check subexpressions. Fixed a number of
match() bugs with this (e.g. a==b matched a!=b, and matrices with different
dimensions but the same number of elements could match). Only container
classes with additional member variables that have to be equal for a match
need to implement match_same_type().
* Supplement some (now deprecated) macros by inlined template functions: - ex_to_foobar(baz) -> ex_to<foobar>(baz).
* Supplement some (now deprecated) macros by inlined template functions: - is_of_type(foo, type) -> is_a<type>(foo) - is_ex_of_type(foo, type) -> is_a<type>(foo) - is_exaclty_of_type(foo, type) -> is_exaclty_a<type>(foo) - is_ex_exaclty_of_type(foo, type) -> is_exaclty_a<type>(foo)
- Instead of just totally symmetric or antisymmetric, complex symmetries can now be defined for indexed objects. Symmetries are described by a tree of "symmetry" objects that is constructed with the sy_none(), sy_symm(), sy_anti() and sy_cycl() functions. The symmetry of a function with respect to its arguments can also be defined (this is currently only used for the Beta function). - color_trace() and dirac_trace() can be applied to a more general class of expressions, e.g. using it on a relation will take the trace on both sides etc. - Generalized map() to take a function object instead of a function pointer. This allows passing an arbitrary number of additional state to the function being called. - The unarchiving functinos find_bool(), find_unsigned() and find_string() can take an additional "index" argument.
- simplify_indexed() renames dummy indices so, e.g., "a.i*a.i+a.j*a.j" gets simplified to "2*a.i*a.i" (or 2*a.j*a.j, you can't know which one) - fixed possible crash when calling subs() on expressions with non-commutative products - added canonicalize_clifford()
- dirac_trace() takes an optional third argument: the expression to use for the trace of the unit matrix - more conventional factor I in gamma5
- color and clifford classes are quite functional now - new "spinidx" class for dotted/undotted indices - predefined spinor metric tensor (created by spinor_metric())
- 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
dirac_trace() can handle arbitrary gamma strings without gamma5. The only remaining unimplemented case is now Tr[gamma5 S_2n]
- added get_representation_label() - clifford contractions honor repr. label - first implementation of dirac_trace(), works with 0..3 clifford objects
- 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
- 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
- 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
restored deleted files
removed obsolete files
* 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.
GINAC_DECLARE_REGISTERED_CLASS declares duplicate() and compare_same_type(), GINAC_IMPLEMENT_REGISTERED_CLASS implements duplicate()
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
removed the "some_*" and "typeid_*" definitions since we are using our own RTTI for quite some time now
added missing thisexprseq() to clifford class
- added documentation to the indexed, color, lortensor and clifford classes - moved Dim() function from lortensor.cpp to lorentzidx.cpp - moved append_exvector_to_exvector() from color.cpp to utils.cpp - some cleanups in the lortensor and clifford classes
- 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. :-)
- Inserted some more std:: to make it compile under GCC2.96.
- indentation is now done with tabs - printtree() prints the class names as known to the registrar, not the (mangled) class names from typeid().name()
- 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.
- 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.
- building GiNaC in a separate directory now works
- changed all instances of "foo const &/*" to "const foo &/*" - changed function arguments like "int const" to a simple "int"
- made nops() return unsigned instead of int - changed dates in copyright notices
#ifndef around namespace GiNaC { }
- put everything in "GiNaC" namespace - converted some macros into inline functions - split debugmsg.h into assertion.h (public) and debugmsg.h (private)
- modified the comment blocks so the copyright message no longer appears in the reference manual (made by Doxygen)
- modified GiNaC headers to Alexander's liking
- enforced GiNaC coding standards :-)
- 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.
| Christian Bauer">Christian Bauer | ViewVC Help |
| Powered by ViewVC 1.1.15 |