=== 2001 ===================================== pre 0: *** 2001 *** - notebook GS.nb === 2002 ===================================== 0.0: *** beginning 2002 *** - notebooks tensors1.nb to tensors9.nb 0.1: *** 15 May 2002 *** - Converted tensors9.nb into package source MTensor.nb. - Dollar-dummy-indices and screening. - DefManifold and DefTensor. - 398 lines *** 22 May 2002 *** 0.2: *** 3 June 2002 *** - Changed name to exTensor.nb. - Notation \[EmptyDownTriangle][Cd] prepending derivative indices. - Added Throw and Catch for error control. - Improved capabilities of DefDerivative. - Improved function ImposeSymmetry. - calc. - DefMetric. - Included Riemann symmetries in ImposeSymmetry. - Changed name to xTensor.nb. - Included Riemann, Ricci, RicciScalar, Einstein and epsilon. - Option UseMetric. - Lie derivatives. - DefProductMetric. Note that it is a direct product. - ReplaceDummies knows that only the Cd of a metric conmutes with that metric. - Introduced Christoffel, Cd, Riemann, Ricci and RicciScalar of a product spacetime. - Variational derivatives. - 913 lines *** 30 June 2002 *** 0.3: - Changed "signature of metric" to "signdet of metric" to avoid confusion. - Idea: Implement coordinates as scalar fields x[A][]. *** 7 October 2002 *** === 2003 ===================================== 0.4: *** 31 January 2003 *** - Added 0 covariant derivative of the Einstein tensor. - Generalized handling of symmetries. Now we can input any kind of symmetry. Very slow. - Added data-types Tensor, Form, Spinor and CovD. Eliminated because it is not possible to associate upvalues to names. - Lots of validation of input. - Undef functions. *** 16 March 2003 *** 0.5: *** 1 April 2003 *** - Introduce function MakeRule and associated. - Generalized ScreenDollarIndices and InternalToStandard to work with patterns. - MakeRule detects the manifold of the pattern-indices and adds its `Q function. - Added different priorities for index sorting. - Depend function. - Improved symmetry handling, based on papers by Portugal et al. *** 11 April 2003 *** 0.6: *** 28 April 2003 *** - Created package xPerm: strong generating sets for symmetries and coset representatives. - Translated xPerm into C. Much faster. - Recoded basic functions as FindIndices, ReplaceIndex and so on. - Recoded treatment of Lie derivatives. - Introduced functions IndexForm and AddIndex. Eliminated InternalForm and related. - Notebook xTensorDoc.nb. - FlatMetric and metrics with PD as associated derivative. - CheckOptions. - Converted many symbols into private symbols. - Eliminated Depend and related functions. - NumberOfArguments. - Vectors and covectors on the tensor slots (Dir). - Eliminated patterns. - Introduced determinant of metric. *** 9 December 2003 *** === 2004 ===================================== 0.7.0: - Eliminated IndexForm. Now formatting is done using MakeBoxes. - Introduced IndexRule, IndexSet, IndexRuleDelayed and IndexSetDelayed. - Rules now have Module, rather than ReplaceDummies, on the rhs. * First public release 3 March 2004. *** Version 1.1 of CVS *** 5 March 2004 *** 0.7.1: - TypeOf slightly improved, but still incomplete. IndexedQ now depends on TypeOf instead of FindFreeIndices. - Added usage messages for DefInertHead, UndefInertHead, DefScalarFunction, UndefScalarFunction and ForceSymmetries. - Added symbols DoubleRightTee for IndexSet and RightTeeArrow for IndexRule. - Corrected IndexSet. The ouput must be evrhs, and not rhsb. - Added more definitions for Scalar expressions. - Added definition for IsIndexOf on derivatives of scalar functions. - Special case added: SDI[SDI]:=SDI. - Corrected ValidateDir. - Added definition for a covd on a Scalar expression. - Introduced function GroupScalars. - Simplification now includes Simplify. *** Version 1.6 of CVS *** 24 March 2004 *** * Released 24 March 2004. 0.7.2: - Collected PrintAsTensor, PrintAsConstant in a single PrintAs function, sharing the name with the option PrintAs. The function PrintAs always returns strings. Extended to inert heads and scalar functions. - Introduced PrintAsRiemann, PrintAsRicci, PrintAsRicciScalar, PrintAsWeyl, PrintAsEintein, PrintAsChristoffel options for DefCovD. The default values of these options contain ToSymbol, which has been promoted to public function. Function defcovd has a new argument to transmit the names. - Added new input syntax for high-order derivatives. For example we can now write PD[T[-c],-a,-b]. - New rules for Validate on Slot, Pattern and Function expressions. - Deleted name "$ReadingVerbose" from $DollarNames. - Improved evaluation control of function FindSymbols. Now it has a second argument to wrap the output symbols with a function f, which could have a Hold attribute. - Improved evaluation control of UnknownSymbols. It returns names of symbols without evaluating them. That is, the names of symbols at input time. - Functions FindHeads and UnknownHeads have been removed. The global variable $Heads is kept. - Function setargs completely rewritten to have better control on evaluation. - Added more definitions for Scalar. - Functions TypeOf and IndexedQ have been protected. - pairsin and freesin have been improved. Now there are no problems with Dir indices and integers. Patterns are correctly recognized. - Added function HeldQ and global variable $HeldNames with all symbols with a Hold attribute. - InertHeads has a new option: HomogeneityType. - Added functions HoldMap and xHold to improve evaluation control. - Warnings from Validate are given in a different color now. - ListOfFactores uses Factor instead of Expand. - nosign throws an error when acting on -_Dir. - Blanks are now accepted, but not Conditions. - Added nopairsin. - SetIndexSortPriorities slightly simplified. - Introduced function IndexName. FindIndices and ReplaceIndex completely rewritten. - IndexSet et al. rewritten. - Function Validate reorganized. *** Version 1.7 of CVS *** 15 April 2004 *** * Released 15 April 2004. 0.7.3: - Expanded definitions of ManifoldOfIndex. Now there is a function xIndexQ. - Rewritten handling of symmetries of an object. Now there is a structure Symmetry and explicit slots. Function JoinSymmetries. Head TensorTimes. Eliminated ToNumeric and ToIndicial. - ToCanonical on MonomialTimes has been accordindly rewritten. - Verbose messages start with the name of the function that outputs them. - SortInClasses replaced by SplitSort. - Rewritten handling of symmetries of covd objects. Function AD. Eliminated symPD and the like. - SymmetryOf now acts on Commuting expressions. *** Version 1.8 of CVS *** 20 April 2004 *** - Eliminated ObjectQ. - Eliminated HomogeneityType. InertHeads have one argument. - Eliminated old FindIndices1. - $Coordinates is now CoordinatesOfManifold /@ $Manifolds. - TypeOf rewritten. Added head Type. - Added function RD to replace the list of a Module construct. - Corrected SymmetryOfObject on derivatives. *** Version 1.9 of CVS *** 23 April 2004 *** * Released 23 April 2004. 0.7.4: - Constant renamed to ConstantSymbol. Now Constant means either a constant-symbol or a numeric object. Added ConstantQ. - Added global variables $ProtectNewSymbols and $HoldIndices and options ProtectNewSymbol and HoldIndices for the Def-commands. Added many lines dealing with protected objects. - Separated xPerm`Disclaimer and xTensor`Disclaimer. - x-indices renamed as g-indices (from "generalized indices"). - ValidateSymbol now checks that the symbol has no ownvalues. - Added subsubsection analyzing $HeldNames. - Changed definitions for Scalar. - Found a simpler way to deal with xHold and company. Not used yet. - Added more usage messages. - Eliminated calc and its options. - nosign eliminated in favor of up. - Eliminated MapOntoIndices. - HoldReplaceIndex rewritten for derivatives. - Now Dir objects have up/down flag. - Introduce IncreaseSlots to work with held slots. *** Version 1.10 of CVS *** 4 May 2004 *** - Added action of Validate on OverDot expressions. - Added variable xTensor`$xPermVersionExpected to check that we are working with the right version of xPerm. - The message General:shdw is turned off while defining the Disclaimer message. - Corrected SymmetryOfObject acting on Commuting expressions. Now the code is much simpler, using the new function CommutingCycles. - ToCanonical does not act on rules to avoid breaking fine tuned rules. *** Version 1.11 of CVS *** 1 June 2004 *** - Changed version number and date. *** Version 1.12 of CVS *** 3 June 2004 *** * Released 3 June 2004. 0.7.5: - Added BasesOfManifold, storing the list of bases defined for a given manifold. - Added ChartsOfManifold, storing the list of charts defined for a given manifold. - Added DefaultBasisOfManifold and DefaultChartOfManifold. The default for both is DefaultChart. - Defined ColorIndex, printing basis-indices according to the color associated to its basis. - Introduced symbol Basis, with some of its properties. - Added DerQ, identifying CovDs, LieDs and OverDots. - Changed Coordinate* by CoordinateNumber*. - Improved addIndex functions to deal with colored indices. - UltraindexOf now admits both Dir[expr] and expr. - Added a few lines concerning Torsion. Far from finished. - Simplified MakeBoxesCovD. - Added Bracket and main properties: linearity, derivations, MakeBoxes rules and validation. *** Version 1.13 of CVS *** 16 June 2004 *** - Fixed ToCanonical on Scalar expressions. - Small changes in Info section. - Changed UltraIndex by Ultraindex. - Eliminated DefaultBasisOfManifold and DefaultChartOfManifold. *** Version 1.14 of CVS *** 3 July 2004 *** - Changed IndexQ by AIndexQ. Introduced BIndexQ and DIndexQ. Introduced symbols AIndex, BIndex and CIndex. - Added definiton for FindIndices on Bracket expressions. - Added more properties for Basis. - upQ (downQ) on Blank expressions now gives True (False). - ManifoldQ and co. have now attribute HoldAll. This removes some errors in the formatting process. - Improved function ColorString. - Validate now returns the input when it is correct. This allows us to eliminate AutomaticValidate and ManualValidate. The user now directly interacts with the variable $Pre. - Eliminated Catch, but not the Throw messages. Now any message goes uncatched to the highest level. - Introduced UncatchedValidate. Now Validate is just Catch@UncatchedValidate. - Fixed (still untested!) small problems in the validation routines. *** Version 1.15 of CVS *** 11 July 2004 *** - Added inert head ERROR - Now the Validation routines hold their arguments. - Added Parameters and corresponding functions. - Now tensors can depend upon parameters. - Added ParamD and its definitions. - Added *** section *** lines. - Eliminated nonused Find functions. - Several functions modified so that they deal correctly with the basis indices. - Small changes in the info section. - StructureOfManifold changed by SubmanifoldsOfManifold. - Added SupermanifoldsOfManifold. - MetricOfManifold changed by MetricsOfManifold, which now contains a list of metrics. The first one is the default metric, used to raise and lower indices. Other metrics will not be contracted. - Added functions MasterQ, MasterOf and SlavesOf to control which symbols (slaves) are undefined if and only if other symbol (the master) is undefined. Added function MasterSlave. - Function tilde changed to Tilde. Function removesymbol changed to RemoveSymbol. Function lastindex changed to LastIndex. - Added functions xUpSet, xUpAppendTo and xUpDeleteCasesTo. - Fixed problem with ReplaceDummies on basis indices. - Fixed problem with formatting of basis-indices in Prefix notation for derivatives. - Changed "slave" by "servant". - Eliminated BasesOfManifold and ChartsOfManifold. Now registering is done directly on $Bases and $Charts. - Messages of ColorString are now given using nouse rather than warning. - Introduced private list Qfunctions. - Added warning messages when up acts on patterns. - Added IndexType. - Added FirstMetricOfManifold. - Changed symbol All to AllManifolds. - Improved Trace functions. *** Version 1.16 of CVS *** 9 August 2004 *** - Added some more usage messages. - Solved problem in HoldReplaceIndex: Unevaluated was missing in the Thread computations. - Added private variable $xTensorPrivateNames. - Eliminated CovDsOfManifold. - Added function ObjectsOf, DependenciesOf, ManifoldsOf and ParametersOf. - DefaultChart now has associated color blue. - Modified definitions of derivatives on delta and eta tensors to avoid the use of BlankSequence. - Introduced section "Simple types" containing inertheads, scalarfunctions, constantsymbols and parameters. - Index formatting much simplified: patindex eliminated. Introduced IndexForm, that controls all formatting options. The function addindex is much simpler now. - Introduced functions AtPoint and EvaluateAtPoint, with some basic definitions. - SetIndexSortPriorities now allows lexicographic as first priority. - xTensor now expects version 0.4.4 of xPerm. - Added option Notation of ToCanonical. *** Version 1.17 of CVS *** 10 September 2004 *** - Eliminated options PrintAsRiemann, etc from DefCovD. Now there are two functions dealing with that problem: Give Name and GiveOutputName. There are also global symbols Torsion, Riemann, Ricci, RicciScalar, Einstein and Weyl. - Eliminated argument names from defcovd. - Introduced TorsionOfCovd and CurvatureOfCovd. - Introduced BIndexQ. - Solved torsion cases of defcovd. - Introduced TorsionToChristoffel. - Eliminated option CoordinateBasis. - Simplified treatment of symmetries. - Symmetries of tensors are now given as StrongGenSets. *** Version 1.19 of CVS *** 19 October 2004, AEI *** *** Version 1.20 of CVS *** 20 October 2004, AEI *** - Introduced function ReplaceDummiesInModule and eliminated RD - xUnique replaced by xPat and xDum. RPrules changed. - Recoded IndexSet, IndexRule, IndexSetDelayed and IndexRuleDelayed. There is more coherence among them and the RD problem is solved. - Metric[a,-b] is automatically translated into delta[a,-b]. Function MetricToDelta has been eliminated. Several definitions concerning the metric now need HoldPattern. - ManifoldsOfTensor modified to return also the supermanifolds of a manifold. This solves a problem removing product metrics. *** Version 1.21 of CVS *** 25 October 2004, AEI *** - Package ExpressionManipulation is now loaded. - Use ColorPositions from ExpressionManipulation. Introduced ColorTerms and ColorPositionsOfPattern. - Introduced variable $EMNames. - Introduced types Type and AbstractIndex. - Functions FindTensors, FindForms, FindSpinors and FindCovDs replaced by the single function FindAllOfType. - CommuteCovDs replaced by SortCovDs. - New function CommuteCovDs now has a new argument with the indices to commute. - Introduced functions Symmetrize, Antisymmetrize, PairSymmetrize and PairAntisymmetrize. - Introduced function ContractMetricOverDerivatives. - Indices now has their own type and objects cannot share a symbol with indices. - Eliminated functions xDum, ReplaceDummiesInModule. - Simplified IndexRule, IndexSet, IndexRuleDelayed and IndexSetDelayed. - sortdeps changed to SortDependencies. - IndexForm on symbols now uses PrintAs rather than ToString. - DefTensor slightly rewritten. - Added conditions to MakeRule. *** Version 1.22 of CVS *** 16 November 2004 *** - Changed context xTensor` to xAct`xTensor` - Changed and added many usage messages. - Introduced type AbstractIndex and related functions. - Introduced $AbstractIndices, which is now a single list containing the equivalent of the previous Flatten@$Indices. - Functions Tilde and ColorString recoded in a safer way. - DefScalarFunction now has a second argument with the number of arguments (stored in NumberOfArgumentsOf). - BIndexQ recoded to consider missing cases. - Allowed more general priority combinations for IndexSort. Introduced private function validpriority. - Introduced RegisterIndexOnManifold. - Modified DefBasis/DefChart. Now the parallel derivative is defined by DefBasis, and not by DefChart. - Recoded ContractBasis/SeparateBasis/ChangeBasis. - Modified AtPoint. Still in progress. *** Version 1.23 of CVS *** 6 December 2004, LSU *** - Removed wrong rule for Lie derivatives. - Added missing ReplaceDummies in LieD[v,der][expr]. *** Version 1.24 of CVS *** 8 December 2004, LSU *** * Released 8 December 2004. === 2005 ===================================== 0.7.6: - Function SymmetrySlotsOfTensor made private. It is only used by SymmetryEquivalentsOfTensor, which is already private. - Function SortDependencies made private. - Organized treatmente of PrintAs using the function SetPrintAs. - Introduced global variable $WarningFrom to get an idea of where the warning-messages are coming from. - Functions up, IndexName moved in ScreenDollarIndices to get less warning messages. - ReplaceOneIndex recoded on patterns. Now it only gives a warning message if the pattern is actually replaced, and not if a list of rules is attempted on the pattern. - Several sections reordered. - Introduced commands BeginExamples[] and EndExamples[] to separate the Private and the Global contexts. Introduced abbreviation xATP for xAct`xTensor`Private. *** Version 1.25 of CVS *** 4 March 2005 *** - Recoding of the canonicalization of monomials containing a metric and derivatives which are not the corresponding Levi-Civita derivative. This is done through extensive use of ContractMetricOverDerivatives. - Full recoding of the ContractMetric section. Essentially the number of definitions has doubled to ensure that the second index of the metric factors is always contracted before the first index. *** Version 1.26 of CVS *** 6 March 2005 *** - Corrected function careQ, which decides the canonicalization algorithm to be used. *** Version 1.27 of CVS *** 7 March 2005 *** * Released 7 March 2005. 0.7.7: *** Version 1.28 of CVS *** 13 April 2005 *** - Recoded all defcovd functions in just one defcovd function. This saves more than 200 lines of code in xTensor.m and is easier to read. - Introduced functions SupermanifoldQ and DisjointManifolds, replacing the uggly connectedmanifolds. - Corrected brackets of DerQ in DependenciesOf. - Corrected function ManifoldsOfTensor, introducing a Flatten head. - Introduced option OrthogonalTo for DefTensor and DefCovD. - Introduced private function MakeOrthogonalDerivative. - Eliminated function SymmetrySlotsOfTensor. It was only being used in SymmetryEquivalentsOfTensor, and was not really needed. - Introduced option ProjectedWith for DefTensor and DefCovD. - Introduced option Vanishing for DefTensor. - Eliminated HoldIndices and $HoldIndices. - Added definition for ToCanonical on inert-head expressions. - Added option Linear for DefInertHead. - Started section of xTensorDoc on induced metrics. *** Version 1.29 of CVS *** 30 June 2005 *** * Released 30 June 2005. 0.7.8: - Added function JustOne. - Added head IndexList, which replaces a List of indices, internally. Many functions are modified to work with IndexList rather than List. - Added ValidateGIndex and ValidateIndexList. - DisjointManifoldsQ deprecated. Introduced function ZeroDerivativeQ. - Added function DisorderedPairQ, to replace Not@IndexOrderedQ. - Changed = by := in ProductMetricRules. *** Version 1.30 of CVS *** 18 July 2005 *** - Added ZeroDerivativeQ[_,Basis]:=0 to avoid computing DependenciesOfTensor[Basis]. - Recoded function ExpandInBasis. - DerQ now only recognizes parametric derivatives with respect to a single parameter. This is because DerQ is mostly used to implement the Leibniz rule, which is only valid for single derivatives. - Eliminated functions TorsionOfCovD and CurvatureOfCovD. - Modified IsIndexOf to admit {a,DefaultChart} when looking for {a} and viceversa. - Added ManifoldOfBasis[DefaultChart]^=AllManifolds. - Added automatic contraction of Basis elements belonging to the same basis. - All derivatives of admetric are now automatically expanded into derivatives of the metric. - Added an important missing case in the function AD. - Added ContractBasisOverDerivatives and ChangeBasisOverDerivatives. - Added RicciRotation coefficients. Ongoing work. Functions: PDOfBasis, ChristoffelOf, StructureOfRicciRotation, RicciRotationToChristoffel, ChristoffelToRicciRotation, RicciRotationQ, UseRicciRotation. - Added signs RiemannSign and RicciSign. - Solved wrong index positioning in the Christoffels for the function CovDToChristoffel. - Code for ChangeCovD is now legacy code. *** Version 1.31 of CVS *** 31 July 2005 *** - ManifoldsOf* changed again: now they do not return the sub/supermanifolds of the actual manifolds. That was a source of confusion and errors in ZeroDerivativeQ. - Added new definition for AD: now two (non-torsional) derivatives of a scalar do generate a symmetric component in SymmetryOf. - Add head LI (from Label Index) to include a fifth type of g-index. It is very similar to Dir, but without any added meaning. There is the head Labels, which is defined as the manifold of all LI indices (dirty trick). - All patterns _?xTensorQ and co. converted into x_Symbol?xTensorQ and co. - A message Validate::invalid from UltraindexOf is now not thrown because it was halting the ouput from Information concerning definitions associated to derivatives. - Added definitions for Trace*Dummy on lists. It was working improperly because lists were treated as a single object. - Added function STFPart to compute the symmetric-tracefree part of any tensor in any dimension. There are terribly many symmetrizations to do, so that ToCanonical has been removed from Symmetrize to speed up the computation. - Added function SetComponents to compute all components of a tensor in a given basis (perhaps different for different indices) from an arbitrary expression. - ZeroDerivativeQ now remembers its results on tensors to avoid repeating the computation many times. - Added function makepattern to eliminate spurious messages from the formatting of the Info information. - The ExtrinsicK tensor is removed when the induced metric is removed. - Removed function ReorderDummies. It was only used as a last step in ToCanonical and was giving problems when used with several manifolds. Now its role is played by SameDummies, which is much safer. - SymmetryOfTensor changed to SymmetryGroupOfTensor. This is to avoid confusion between the (very different) outputs of functions like SymmetryOf and the old SymmetryOfTensor. - Changed output symbol of slot from # to a dotted-square to avoid confusion with the output of Slot. - Function displace changed to DisplaceSlots. - Functions SymmetryOf / SymmetryOfObject / symmetryof rewritten into SymmetryOf / CovDSymmetryOf, which is simpler to understand because it separates the difficult issues concerning derivatives from SymmetryOf. - TermTimes changed to SortedTermTimes and MonomialTimes changed to SortedMonomialTimes. Removed some unnecessary definitions concerning canonicalization. *** Version 1.32 of CVS *** 7 October 2005 *** - BIndexQ checks that the basis integer is actually a coordinate-number. - Treatment of Scalar expressions completely changed. Now it is done as part of the normal process of canonicalization and not independently by SimplificationScalar. The definition of Simplification is now simply Simplify@ToCanonical. - Function GroupScalars has been rewritten and it is now called PutScalar. Functions BreakScalars and NoScalar simplified. - BreakScalars is not now a part of Simplification. - Introduced EmptySymmetry. - Eliminated xsort. Definitions assigned to xSort directly. *** Version 1.33 of CVS *** 13 October 2005 *** - Eliminated "third element" of basis indices. - Temporary recoding of ContractBasis/ChangeBasis. The True/False switch has been moved to the head of the C*Basis1 functions. - Section on bases and charts moved to a the new package xCoba.nb. - Added automatic rules for the multiplication of two epsilon tensors. - Added EpsilonSign. - Added rules etaUpToepsilon, etaDownToepsilon, epsilonToetaUp and epsilonToetaDown. They requiere one argument: a metric. - Added possibility of defining a manifold with a constant-symbol as dimension. - Recoded function AD. Not it is simpler to understand and more general. - Added one more definition for SortedTermTimes, concerning its product with a numeric quantity. - Recoded generic case of the functions M`Q. The previous coding was too slow when the list of computer-generated indices was too long. Now it is much faster, but there are remembered upvalues for M`Q for all dollar-indices. Thanks to Alfonso Garcia-Parrado for pointing out this problem. === 2006 ===================================== *** Version 1.34 of CVS *** 4 January 2006 *** *** Version 1.35 of CVS *** 9 January 2006 *** - Added function IndexSame to detect that {A,DefaultChart} and {A} are actually the same index. Currently only used in the function pairsin. - Replaced Expand[...] by FixedPoint[Expand, ...] (twice) in the canonicalization routines, to avoid generating new sums by automatic expansion of products, like in a*b*c becoming a*(d+e) by expansion of b*c. - Added Factorial as a scalar-function by default. * Not released. 0.8.0: - The function MonomialsOfTerm now checks that the scalar-functions actually contain indexed objects before converting them into separate monomials. - The built-in Information is modified to avoid the context xAct`xTensor`Private` crop in its output. - The expected version of xPerm is now a minimum version and not the only possible version. We simply compare dates. - Introduced new section on Mathematical Input, dealing with the mathematical expressions themselve, at a low level (terms, factors, expansions and so on). - Any basis-index {i, DefaultChart} is automatically converted into {i}. - PatternQ changed to PIndexQ which is much more careful with the types of pattern that xTensor accepts. - Simplified programming of FindIndices. - The pair IndexPair/UpIndexPair replaces the function horizontal avoiding duplication of messages from up. - Simplified Hold structure of ScreenDollarIndices. - Function defdeltaeta broken in two parts: defdelta and defeta. The former is still associated to a manifold. The latter is now associated to a manifold and a chart. - Added functions xTensorFormStart and xTensorFormStop which can start and stop object formatting. - Many Evaluate heads have been eliminated by wrapping modules with With. - Modified MakeRule to work with component indices. Simply added IndexName at definition of the lists of indices using the fact that the replacement functions work on abstract indices. - GiveName replaced by GiveSymbol and GiveOutputName replaced by GiveOutputString. - Reorganized the check for zero derivatives due to action on a different manifold. It was automatic. Now it can be automatic or user-driven. New functions CheckZeroDerivative and similar. - Removed special version of ValidateCovD for directional derivatives. The generic definition was also valid there. - Simplified formatting of derivatives. There was a third redundant case. - Rewritten whole treatment of Christoffel tensors. - Added function BracketToCovD. - Solved small problem in the ordering of component indices. Index -2 was being sorted before index -1. - Inert-heads can now have many arguments, but only the first one must be tensorial. The tensorial properties of the whole expression are those of the first argument. - Now UndefMetric removes the symbol, without need of UndefTensor. - Added function FindRepeatedIndices. Modified ToCanonicalOne to handle repeated indices (only in the xPerm code; not in xperm.c). Uses the head RepeatedSet imitating DummySet. 3 June - Fully recoded xSort. Now it uses a parser (Identify and MarkBlocked). ObjectSort is now much simpler and clear. Changed ToCanonical accordingly. SymmetryOf not changed. - Added switch $CommuteFreeIndices. 15 June - IndexList, FindIndices, FindFreeIndices, FindDummyIndices made public. 16 June - Automatic conversion of the delta of a product manifold into the delta of one of its manifolds or zero. 17 June - Added function SeparateDir. - ReplaceOneIndex now replaces blocked indices, and basis indices as a whole. 18 June - Added ChangeFreeIndices and EqualExpressionsQ to compare two expressions with different free indices. 24 June - Fully updated xTensorDoc.nb. 25 June - Reintroduced BreakInMonomials and Monomial. 26 June - Further development of frozen metrics. 27 June - Solved problems in ToCanonicalDers. Now it directly uses ChangeCovD. Needs generalization for non-CovD derivatives. - Added function LinearInertHeadQ. Now deltas can be contracted through linear inert-heads. 4 July - ToCanonical and ContractMetric threaded on equations (Equal). - For induced metrics we cannot use d(g^-1) = -(g^-2)dg 6 July *** Version 1.37 of CVS *** 6 July 2006 *** * Released 6 July 2006. 0.8.1 and 0.9.0: 23 July - Added a definition on empty lists for ChangeFreeIndices to avoid EqualExpressionsQ crashing when comparing scalars. - Added option Verbose to NewIndexIn. 30 July - Symmetry checks in DefTensor are now more intelligent. 1 Aug - EqualExpressionsQ now accepts indices of several manifolds. 3 Aug - Removed association of coordinate-numbers to manifolds. Removed type CoordinateNumber: also removed CoordinateNumberQ and $CoordinateNumbers. Function ManifoldOfCoordinateNumber[i] converted into private function ManifoldOfCIndex[i, basis] only called by ManifoldOfIndex. 4 Aug - Added global variable $CindexForm to print cnumbers using the names of the coordinates instead. - Two manifolds cannot share a cnumber in their DefaultChart's. 6 Aug - Only left CNumbersOf[basis, manifold] or CNumbersOf[basis]. Now "cnumbers" are associated to bases. CIndexQ simplified. - Removed disjointmanifolds, redundant with DisjointManifoldsQ. 18 Aug - Changed meaning of the DefaultChart. Now it represents a particular chart which has been already defined, and not an abstract chart always present. This requires the corresponding change in xCoba. - Added type VectorBundle and associated objects. In progress. 3 Sep - Eliminated TypeOf, NonIndexedQ, NonIndexed, Mixed, only used by the old canonicalizer. 7 Sep - Dropped definition of upIndex on and integers, because it is a particular case of the general definition. - Removed DefaultChart. I tried to avoid it, but it was always a headache. - Created a single delta tensor, instead of different delta tensors for different vector bundles. Big change! - Introduced the Lovelock generalized delta tensor Gdelta. - The objects etaUp, etaDown now only depend on a basis. They must be defined when defining a basis, and not with the manifold or the vector bundle. 14 Sep - Completed function DependenciesOf. Now the result is not sorted according to SortDependencies. 4 Oct - Added DependenciesOf[parameter]={parameter}. 6 Oct - Removed SupermanifoldQ. Redundant with SubmanifoldQ. 19 Oct - Changed definition sortder[ParamD[_]] to sortder[ParamD[__]] to consider multiple derivatives. (Thanks to Guillaume Faye for pointing out this problem.) 1 Nov - Added driver ContractMetric for CurvatureRelations. - Added MetricOfCovD[PD] ^= Null. - Corrected Lie derivatives on metric and epsilon tensors (thanks to Alfonso Garcia-Parrado for pointing this out). - Corrected norm factors in InducedDecomposition (thanks to Alfonso Garcia-Parrado for pointing this out). 4 Nov - Removed SupermanifoldsOfManifold. It is not used. - VectorBundle changed to VBundle and vb changed to vbundle. - Changed Module to With in some Module[{servants=...}, ...]. 5 Nov - Changed priorities of IndexSort: free / lexicographic / up . - Rewritten IndexSort (which now uses Block instead of Module), and IndexSortPriorities (which has been decomposed in several pieces). Easier to understand and probably faster. - Added subsections "End of section" to have full control on the created symbols. - $ComputeNewIndices and $FindIndicesAcceptedHeads made public. - Symbol Any changed to AnyIndices and made public because the user could ask for FindIndices[0]. 6 Nov - Private function setorthogonal converted into public function SetOrthogonal. - eta tensors moved to xCoba because they always depend on a basis choice. 8 Nov - Symbols delta, Gdelta, Basis, PD are now servants of symbol Symbol, and hence cannot be undefined. 22 Nov *** Version 1.38 of CVS *** 22 Nov 2006 *** * Released 22 Nov 2006 with date 1 Nov 2006. Version 0.8.1. 23 Nov *** Version 1.39 of CVS *** 23 Nov 2006 *** 27 Nov - Fixes for several small bugs found by Alfonso. 28 Nov - Fixed bug: there was a MetricOfCovD missing in makeChangeRicciRules. Thanks to Gilles Exposito Farese for spotting this. - STFPart now uses FindFreeIndices instead of FindIndices because I think it is not possible to do it consistently on dummies. It also accepts a third argument to specify the indices to symmetrize. - Added missing usage messages for public functions. 4 Dec - Corrected LieD of projected epsilon tensor. Thanks to Alfonso for spotting this. * Released 4 Dec 2006. Version 0.9.0. 0.9.1: 5 Dec - Added SignatureOfMetric because it is needed when computing the values of a normal or an orthonormal metric. We use the slot of signet at definition time, but now with a list of three elements (numbers of +1's, -1's and 0's). - Functions epsilonToeta* and viceversa moved to xCoba. 8 Dec - Added Hold during the construction of the rules in MakeRule. 28 Dec - DaggerIndex on basis indices. === 2007 ===================================== 2 Jan - MetricSign removed. Superceeded by SignatureOfMetric. 2 Jan - Code of IndexRuleDelayed and IndexSetDelayed rewritten in order to handle automatically the problem of conflicting dummies on the RHS. 3 Jan - Added option ExtendedFrom to DefCovD. - Added SymmetryOfMetric to handle antisymmetric metrics. 4 Jan - Added function TransposeDagger. - Added value Hermitian for option Dagger of DefTensor. 9 Jan - Rewritten part of the code of MakeRule to avoid unwanted evaluations of the LHS and RHS of the rules. There are still some checks where those expressions are evaluated. - Rewritten headers of the functions defcovd to transfer part of the Module variables to With constructs. In particular this improves the handling of the indices i1, i2, ... 10 Jan - Solved a problem in Identify, related to recursive identification of Plus expression within TensorTimes. 11 Jan - Improved DependenciesOfIndex. Added AnyDependencies to avoid having the default for DependenciesOf as {}, which was making certain things to be automatically killed by ders. - Added possibility for bases to depend on both manifolds and parameters. See DependenciesOfBasis in xCoba. - Recoded treatment of Dagger. Eliminated the ugly case Dagger->Null. 15 Jan - Removed optional argument "message" from ValidateDir. - Modified manipulation of LHS minus signs in MakeRule. *** Version 1.40 of CVS *** 15 Jan 2007 *** * Released 15 Jan 2007. Version 0.9.1. 16 Jan - Corrected CheckRepeated on AnyIndices cases. - Corrected expandGdelta. - Changed sign of formula for LieD on epsilon tensors. - Changed DaggerIndex on basis indices. Now we use a function in xCoba called DaggerCNumber. 17 Jan - Added some Scalar1->Times rules in ToCanonical to remove some Scalar1 heads left. * Second release 17 Jan 2007. Version 0.9.1. 18 Jan - Changed function DaggerCNumber by DaggerBCIndex, more general. 29 Jan - NonIndexedScalarQ now detects sums of nonindexed objects. - SymmetryOf now tries to remove nonindexed objects before going into its generic definition. * Third release 29 Jan 2007. Version 0.9.1. 0.9.2: - Added function IndicesOf, the new user driver for index selections. 21 Feb - Changed Sort[...] by Union[upIndex/@...] in the computation of LexicSorted in IndexSort. Now the c-indices are sorted according to their absolute value in "lexicographic" priority. - FindIndices on a List is computed as FindIndices on Plus. 26 Feb - Added WeightOfTensor[tensor_?xTensorQ]:=0 definition. 1 Mar - Now Slot and SlotSequence indices are allowed, because they are used by Coba in xCoba. Modified UpIndexQ and IndexForm accordingly. 4 Mar - Changed output of covd-dependent objects, like Christoffel, Riemann, etc. 5 Mar - ToCanonical generalized to admit not only a-index dummies, but also b-index dummies. - Added missing definition for SymmetryOf on Bracket objects. - Added another definition for EmptySymmetry, with 2 arguments. 6 Mar - Functions addhead need evaluation of their arguments to canonicalize scalars through ToCanonicalScalar. First argument (with HoldFirst) cannot be used, so it is now redundant. 7 Mar - Added check of general Bianchi identities (with torsion) to xTensorDoc.nb. 20 Apr - Added function SeparateMetric, inverse to ContractMetric. - Moved special basis AIndex from xCoba to xTensor, because it is used by SeparateMetric. 22 Apr - Moved SetNumberOfArguments, ToSymbol, Tilde, Underline, ColorString to xCore. Moved also the issue of warnings and messages. 2 May - Added option Info to control all output info messages at definition time. 8 May - Rereading of xTensor.nb. Rerun all examples. 9 May - Changed notation of bc-indices: {a, basis} and {-a,-basis} for b-indices and {1, basis} and {1, -basis} for c-indices. 11 May - Added function xCollect. Not finished. 15 May - Reorganized welcome messages in all of xAct. - Added value False for option Info. 20 May - Reorganized section on induced derivatives. 21 May - Added option FrobeniusQ for DefTensor. Still not in use by the induced metric stuff. - Commented out definition of covd on Scalar objects because it leads to infinite recursion after using InducedDecomposition. 22 May - Lots of changes concerning induced metrics. Essentially the system is now far more intelligent, though slower. In particular ToCanonical and ContractMetric are now fully aware of induced metrics. 23 May - Reviewed xTensorDoc.nb. It has 1000 cells now! - Rewritten part of the function ReplaceDummies. - $ComputeNewIndices changed to $ComputeNewDummies. 4 Jun - Added private function RemoveDollarIndices. 6 Jun - nodollar is now handled only through upvalues for indices. - Modified function UnsortedUnion to skip the 100-times problem. 29 Jun - Extended concept of inert-head. - Constant-symbols can now be real, imaginary or complex. - Some functions of section 1 of xTensor moved to xCore. - Reviewed sections 1-5 of xTensor. 30 Jun - Added a first version of SplitIndex. 1 Jul - Improved treatment of contexts of capitals C,D,K,N,O. - Started function Tex, based on strings. - Reviewed sections 6-9 of xTensor. 2 Jul - Started review of Symmetry section. ToCanonical reorganized. 5 Jul - Solved problem with CommutingObjects and metrics blocked by non-compatible derivatives. 10 Jul - Added two InversePerm functions before and after calling CanonicalPerm to change xPerm to Renato's notation. - Further reorganization of the properties of inert heads. - Another revision of xTensorDoc.nb. 11 Jul - Finished work on inert heads. It is clear that it can be done better. - Reorganized special canonicalization algorithm for non-compatible derivatives. Now the process is clearer. Removed AlreadyCanonicalized. 29 Jul - Added $SymmetryCommuteCovDsOnScalars to stop commutation of covds on scalars in DInvar. - Added IndexRange to avoid typing lots of indices at definition time. 7 Aug - Removed every mention of spinors in xTensor. 10 Aug - The Ashtekar notation for densities is now an option, and not compulsory, to simplify tensor formatting, and to allow greater flexibility. - Option Weight renamed WeightOfTensor. Weight removed. Weights are now linear combinations of bases. 13 Aug - Pattern _Symbol?ScalarFunctionQ changed to _?ScalarFunctionQ to allow the InChart[__][__] functions of xCoba. - Created SequenceBox to format sequence of arguments. 14 Aug - ChangeCovD does not see basis-indices anymore. - Introduced public function SetCharacters. * Released 15 August 2007. Version 0.9.2. 0.9.3: 16 Aug - Dropped any mention to density weights in xTensorDoc.nb. - FrozenMetricQ sends (but doesn't throw) messages. - Added special PD-PD definition in changeCovD. 17 Aug - All derivatives are now mapped over lists. - Fixed small bug in ContractMetric. 3 Sep - Rewritten SameVBundleRules. Now SameDummies is much faster. - Reintroduced special definition of ToCanonical on sums. 20 Sep - Fixed parenthesization of ToCanonicalObject on Scalar1. - Added DaggerIndex in the action of Dagger on covds. - Definitions for Dagger on Power. 22 Sep - Updated help files for the *Manifold* commands. 23 Sep - Tangent bundles are servants of their base manifolds. - Updated help files for the *VBundle* commands, and others up to a total of 100 files. 24 Sep - Updated 44 more help files related to indices. 25 Sep - Updated 14 more help files related to tensors. 15 Oct - Continue working on the documentation. 203 updated files so far. 19 Oct - Function ChangeCovD simplified and generalized. 22 Oct - Function addOther added in CommuteCovDs to handle non-abstract indices and upper characters. - Removed tensors RiemannPD, RicciPD, etc. Now expressions GiveSymbol[Riemann, PD] etc all give Zero. 25 Oct - 270 help files updated so far. Another 60 remaining. 26 Oct - Function UncatchedValidate made private. 27 Oct - Directory xTensor added to the CVS repository. - Removed everything related to Form type. It should be DForm, in case this is reintroduced. 28 Oct - Function xCollect renamed as IndexCollect. - Finished documenting the 330 public symbols of xTensor. - Removed test ?vbpmq from the a_ pattern in CD[a_][metric[_,_]] := 0 for a metric and its Levi-Civita CD. 1 Nov - Introduced notation for definition of a variable rank tensor: DefTensor[T[a, AnyIndices[vb]], M]. ValidateTensor is deactivated on such tensors. 2 Nov - Introduced function TraceDummy and its related variable $TraceDummyVerbose. 4 Nov - SubmanifoldQ and SubvbundleQ now work through upvalues in their first argument. - 0-dim and 1-dim manifolds are now possible. - 1-dim vbundles are possible. Tensors with indices on a 1-dim vbundle are symmetric on those indices having the same character. * Released 6 November 2007. Version 0.9.3. 0.9.4: 12 Nov - New function SubdummiesIn. - New code for TraceProductDummy in terms of TraceDummy and SubdummiesIn. Much simpler. 17 Nov - Fixed a bug in ContractMetric. There was xTensorQ where there must be CovDQ in the function PRJ. This affected only induced covds. Thanks to Cyril Pitrou for spotting this. - covdchecks changed to DefCovDCheck and metricchecks changed to DefMetricCheck. - Rewritten function addOther to handle induced derivatives. 5 Dec - Fixed missing Flatten[{}] in makeChangeCurvatureRules. Thanks to Alfonso for spotting and fixing this. 22 Dec - Added Heads->True in FindAllOfType to allow ToValues to find tensors in InChart expressions. 24 Dec - Changed convention of epsilonSign: now +1 with covariant indices. === 2008 ===================================== 3 Jan - DefMetric only accepts metrics fields with indices on tangent bundles. Otherwise DefCovD in DefMetric complains. 20 Jan - DaggerSymbolQ changed to HasDaggerCharacterQ to avoid confusion with DaggerQ. - Removed Linear. Now both option and function are called LinearQ. 26 Jan - upIndex, downIndex, change renamed as UpIndex, DownIndex, ChangeIndex. - Several functions upQ/downQ restricted to UpIndexQ/DownIndexQ. - Removed (obsolete) deltaperm code. 27 Jan - Dropped nopatterns. It wasn't being used. - Improved function symperms, now accepting repeated indices. - Added a careQ warning in MakeRule. - Updated section on Index Notations to allow the new notations Polar[a] and -Polar[2]. Also pure integers. - Renamed several functions in the Indices section. - Introduced function FindBlockedIndices. 30 Jan - Replaced fast patterns in DefMetric by UpIndexQ, EIndexQ, etc. 2 Feb - Completed handling of the double notations BASIS1 and BASIS2 for bc-indices. - Most of the Cases constructs in SelectIndices have been replaced by simpler (but slower) Select constructs to avoid the explicit use of patterns. - Simplified code for metric contractions through inert-heads. 5 Feb - Functions GradMetricToChristoffel y ChristoffelToGradMetric generalized to work with any type of indices. - Directional arguments of (first-)metrics are automatically converted into normal expressions. 6 Feb - The PrintAs definition in DefTensor now takes into account the weight of the tensor. 7 Feb - Added third argument of IsIndexOf in several (not all) places. 17 Feb - Changed $MathLink to $xpermQ, following the change in xPerm. 23 Feb - TraceDummy threads over lists. 26 Feb - Added private global variable $RepeatedSingletonsQ to control canonicalization of repeated indices. 2 Mar - Changed ToCanonicalOne because now the D group is handled using indices instead of slots in xPerm. 4 Mar - Removed option MathLink, which has been transferred to xPerm. In particular MathLink->True is now an option of CanonicalPerm, and not of ToCanonical. *** Version 1.42 of CVS *** 5 Mar 2008 *** * Released 5 March 2008. Version 0.9.4. 0.9.5: 13 Mar - Function putmetric in MakeRule modified to work with spinor metrics. 14 Mar - OrthogonalToVector now knows that the Lie derivative of a spatial tensor along the orthogonal vector is also spatial. Thanks to Alfonso for pointing this out. 21 Mar - FindIndices on inert-heads generalized to find the indices on additional index-arguments. - Name analysis and other stuff in section 1 transferred to xCore. Only left the usage messages and the "begin package". - Functions UnknownSymbols and related removed. - Generalized sections 1-7 (mainly FindIndices, IsIndexOf and ReplaceIndices) to have several indices in the CovD and Bracket index-arguments. Only DerQ has not been generalized. - DerQ renamed as FirstDerQ for clarity. - Further generalization of additional index-arguments of inert-heads. Now they don't need to have a subset of the indices of the expr. The indices of the whole expression are taken to be the (unsorted) union of the indices of the expr and the additional indices. 22 Mar - Generalized IndexForm to format lists of indices. - Generalized AddIndex to work with multiple-indices derivatives. - Private function setprojected converted into an extended public function SetProjected, which imitates SetOrthogonal. - Private function OrthogonalToVector renamed as OrthogonalToVectorQ because it is Boolean. - DefTensor reorganized, separating a function performing general checks, and another one performing symmetry checks. - Introduced function SymmetryTableauxOfTensor for future needs. - Private function PermuteObject generalized and converted into the public function PermuteIndices. 23 Mar - Introduced value Antihermitian for option Dagger of DefTensor. - Improved treatment of Dagger option in DefTensor. - A bit of cleaning in DefProductMetric. - All of xTensor.nb reexecuted after a long time. 6 Apr - Daggered objects (constant-symbols, vbundles and tensors) are now servants of their non-daggered paired. This simplifies definition / undefinition. Indices treated as usual. 20 Apr - Sign variables now have a $ in front. - Started encoding of riggings. 22 Apr - Fixed problem in DummyAs affecting SeparateMetric. Thanks to Juan Jose Lopez-Villarejo for spotting this. - Reversed arguments basis, metric to metric, basis in SeparateMetric, which seems more reasonable to me. - CheckRemoveSymbol now does not complain if the symbol has servants. This was stupid. - An inner vbundle is an object of its base manifold. (Recall that a tangent bundle is a servant of its base manifold.) 1 May - AIndex is a basis (gives True under BasisQ) colored in black. - Introduced new public option/function WeightedWithBasis for covds. - Reintroduced weights in ChangeCovD, ExpandLieD and ExpandProductMetric. In the first case the formula is general for all bases, but not in the other two cases. 2 May - MakeDefineInfo renamed as MakeDefInfo, and MakeUndefineInfo rename as MakeUndefInfo. - nodollar capitalized to NoDollar, and dollarQ to DollarQ. 3 May - FindIndices now finds indices of tensor patterns like tensor_?xTensorQ[a_,b_,c_] and patterns for covds. - Now metric connections can have torsion. I'm not sure which formulas survive and which do not. 4 May - FrobeniusQ now has a default value False, and so it is only given upvalues when having value True. - First code for variational derivatives. 7 May - Much improved code of IndexCoefficient. Now IndexCollect is a recursive function based on IndexCoefficient. Thanks to Juanjo Lopez-Villarejo for discussions on this pair of functions. 10 May - Function FrozenMetricQ is now computed on real time, instead of having upvalues. - A more flexible version of MakeLinearDerivative. 12 May - Ultraindices removed! Only UltraindexOf has been left. Now ToCanonicalDir replaces the ultraindex with the first user-index. - A new full rewriting of IndexCoefficient. - New function SymmetryEquivalentsOf, generalizing the previous SymmetryEquivalentsOfTensor, which still exists. Both private. 13 May - DefManifold and DefVBundle with ultraindex argument convert it into the last index and print a legacy message. - Updated xTensorDoc.nb. Some new examples on VarD and IndexCoefficient. 15 May - Improved section on symbol relations. The old "objects" are now called "visitors" to distinguish them from the Object expressions of Identify. Visitors have "hosts" and now there are functions VisitorsOf (the old ObjectsOf) and HostsOf. The function MasterServant has been changed to SymbolRelations, which now also handles visitors and hosts. * Released 16 May 2008. Version 0.9.5. 29 May - SeparateMetric now also separates the indices of a covariant derivative. Thanks to Juanjo for pointing this out. * Rereleased 29 May 2008. Version 0.9.5. 0.9.6: 31 May - Eliminated dangerous upvalues of AIndex. 4 Jun - AbsDet moved back from xCoba to xTensor. Motivated by xPert. 10 Jun - IsIndexOf[{},_,_]:= False, instead of the old (computed) True. 11 Jun - Introduced pair Implode / Explode. 18 Jun - Removed AbsDet and introduced Determinant, with same code, but not including the absolute value. Cleaner and simpler. AbsDet behaved incorrectly under complex changes of basis. Thanks to Alfonso for noticing this problem. - DefMetric now automatically defines the determinant in the basis AIndex, as used to do in the past. 19 Jun - SetPrintAs broken into three parts: SetPrintAs, PrintAsString and AddDaggerCharacter, for clarity. Equivalent behaviour. 20 Jun - Cleaning of ToCanonicalObject. Intermediate function tocanonical removed. Part of its role is now played by Reconstruct. - puthead now worries about GivePerm. - ToCanonicalOne now returns {0, indices} instead of 0, to have a homogeneous answer. Here indices are those at input. - Reorganization of removeTMPCovD: simpler recursion. 27 Jun - Added Reverse in all Undef/@Reverse[servants] constructs. The servants must be undefined in reverse order because there could be mutual relations. 28 Jun - Added tensor Tetra of a metric, motivated by Spinors`. 29 Jun - Now tensors are also visitors of their slot vbundles. - Modified SymbolRelations to take into account masters of masters. 30 Jun - All indices in directions and scalars are replaced in the rhs of IndexRule and similar, to avoid collisions with patterns on the lhs, as pointed out by Alfonso. - Adsded function ReplaceIsolated, to handle isolated indices on the RHS of rules. - Fixed TransposeDagger. It was wrong with c-indices. * Released 30 June 2008. Version 0.9.6. 0.9.7: 2 Jul - Patterns now don't send a message under ReplaceIndex. 4 Jul - Introduced concept of "isolated expressions" and code for it. - MakeRule now acts on isolated expressions via a call to itself. 5 Jul - Further extensions for multi-index derivatives. - Improved Implode/Explode on complex objects. 6 Jul - The All definition of IndexOnQ transferred to SubvbundleQ, to validate delta tensors. - Only delta[-a, b] is allowed now on vbundles without metric. - delta has now the symmetries of the (first-) metric of the vbundle of its indices. This is controlled through the new private function SymmetryOfIndex, a call to SymmetryOfMetric. 2 Aug - Introduced head Pair for dagger pairs. - Cleaned code of TransposeDagger. 8 Aug - Introduced function FormatTensor to format tensor components in an arbitrary way. This could be in xCoba, but it's nearly identical to xTensorForm for tensors (which is in xTensor). 9 Aug - Added error message for SignatureOfmetric. * Released 11 August 2008. Version 0.9.7. 0.9.8: 13 Aug - Removed check of base manifolds on sum-vbundles: we do not need a product-manifold. All vbundles can have the same base. 4 Sep - Function Symmetry1D to simplify expressions with indices in 1D vbundles. 9 Sep - Now symmetrization of 1D abstract indices is performed in real time in ToCanonical, and not at DefTensor. This is more general, in particular valid on tensor products. 15 Sep - All curvature tensors vanish for a metric in a 1d vbundle. 1 Oct - Introduced function ToInducedDerivative, as suggested by Cyril. - Introduced function DirCovDToLieD, as suggested by Cyril. - Added Lie cases in GradNormalToExtrinsicK. - Implode conflicts with induced derivatives. 2 Oct - Fixed SeparateMetric. The see-saw convention was reversed. Thanks to Alfonso for pointing this out. 5 Oct - Fixed a number of problems with variational derivatives. Note that they do not obey the Leibnitz rule on products. Example: VariationalD[g[x]f'[x],f[x],x] = -g'[x] and not 0. 13 Oct - Added ContractMetric in the OToVcheck. This solves a problem in Implode with induced derivatives. 14 Oct - Fixed SetOrthogonal. - VarD now acts on powers. 16 Oct - Added command GaussCodazzi. 20 Oct - DaggerIndex and IndexForm now act on LI[___], not only LI[_]. 22 Oct - The $*Sign variables are now constant symbols. Their integer powers are converted into 1 or themselves. 2 Nov - Weyl also exists for metric connections with torsion, as pointed out by Alfonso. 3 Nov - Introduced command Cyclize. - Symmetrize and Antisymmetrize with one argument expr act on all free indices of expr. 13 Nov - Added third argument {1} of Position, in IndexSort, to avoid confusion with indices in Dir. - Added Catch in all DefType and UndefType functions, following Guillaume's suggestion. - Implemented "hiding of attributes of Times", as suggested by Michael Trott, to avoid the combinatorial explosion in delta contraction. - Added context xAct`ExpressionManipulation` to ColorTerms. - Reexecuted xTensorDoc.nb. 20 Nov - Introduced DaggerCovD, to deal with the "Hermitian" spincovds with two indices. - TransposeDagger now also acts on lists with head IndexList. 22 Nov - Treatment of derivatives of metric determinants simplified. - Added a fourth argument in ImposeSymmetry and related functions. 23 Nov - Added option Method in ToCanonical, to choose between the old ChangeCovD-based algorithm for canonicalization with non-compatible derivatives and the new Implode-based algorithm. - Symbols for covds are now an option SymbolOfCovD. Old syntax kept for backwards compatibility. * Released 23 November 2008. Version 0.9.8. 0.9.9: 8 Dec - Removed Simplify from ToCanonicalScalar. It was preventing the use of Expand on Scalar expressions. - Fixed variational derivatives on functions. The derivative of the function must go into the rest, and not just outside the derivative. Thanks to Cyril for pointing this out. - New code for NoScalar. Safer. Does not remove Scalar if it is essential. Thanks to Guillaume and Bala for pointing this out. === 2009 ===================================== 3 Jan - Completed working version of TexPrint. Created TexBreak. 9 Jan - Added special definition for NonIndexedScalarQ expressions in ReplaceDummies. - Added missing definition TMPCovD[0,_]:=0. 13 Jan - Added global variable $Info, to deactivate all info messages. 15 Jan - Introduced option OtherDependencies for DefCovD and DefMetric. Now covds, metrics and all their associated objects can have additional dependencies. - Introduced DependenciesOfCovD, so that now covds add other dependencies. On PD it gives {}. 17 Jan - Implode with PD now creates PDMtensor, where M is a manifold, in those cases in which the tensor has several manifold dependencies. - Fixed Cyclize (ReplaceList changed to ReplaceAll). Now we divide by the number of terms, consistently with ImposeSymmetry. 21 Jan - Fixed ToCanonicalDir, which was changing the character of the vector or covector inside Dir. - Added ToCanonicalIndex inside the definition of ToCanonical on single tensors. 26 Jan - Added definition for NoScalar on (first-order) derivatives. 14 Feb - BIndexQ doesn't check now compabitility between the a-index i and the basis in {i, basis}. We just use AIndexQ and BasisQ. - VBundleOfIndex on b-indices uses the a-index. On c-indices it still uses the basis, via VBundleOfBasis. 10 Mar - Introduced public function SplitManifold, which adds much flexibility in defining product manifolds, as suggested by Guillaume. Code simplified. In particular RegisterManifold has been removed. - Parallel change for vbundles, with a function SplitVBundle. - There are no checks now on dimensions at definition time. Any expression can be a dimension. The Split* functions check compatibility. 18 Mar - Introduced function SetSplitTensors. 19 Mar - Function SplitTensor. 15 Jun - Added ChangeFreeIndices[0, _List] := 0 . Thanks to Alfonso for spotting this. - The STFPart::wrongsym message is now only sent, not thrown, following a related recommendation by Guillaume. 17 Jun - Started implementing CovD derivatives, as suggested by Guillaume. It should be more general: Der[expr, ders__], where ders could be of any type. 9 Jul - Added code for LaTeX formatting of derivatives of scalar functions. 11 Jul - All functions with attribute NumericFunction are now considered as scalar-functions by xTensor. Now we do not need to have a special initial list of scalar-functions. - Removed head NumberOfArguments for scalar functions, which was not being used. 18 Jul - Added a check of ranks in IndexCoefficient3, to allow for variable-rank tensors. 25 Jul - Scalar-functions can now be declared as Real, Imaginary or Complex. The NumericFunctions of Mathematica are all assumed to be real, in the sense of staying invariant under complex conjugation of their arguments. - checkChristoffelIndices is now less restrictive, allowing indices of subvbundles. Commented out old code for comparison. 5 Aug - Added Kretschmann scalar. 6 Aug - Added Leibnitz operator, following Jan's suggestion. - Added RiemannDown, and solved the inconsistencies with curvature tensors of frozen metrics, found when working with Estelita and Irene. 16 Aug - I've run "Scan for possible issues" again on xTensor and I see that ParameterQ was a reserved word in Statistics`Common`. It has been now renamed DistributionParameterQ there. Harmless. * Released 9 September 2009. Version 0.9.9. "Chus version". 14 Sep - SeparateDir with two arguments. - More powerful ContractDir, following ContractMetric. In particular, now it handles properly derivatives, and has an OverDerivatives option. Thanks to Thomas Backdahl for discussions on this command. 23 Sep - (This is more a xAct comment than a xTensor comment): mixed xAct webpage and xAct development directory, to make simpler moving both things around... 18 Nov - As pointed out by Alex, extended derivatives associated to a metric were not fully coded up. Added two definitions, as discussed in the group: Christoffel[CD,cd]=0, if CD is an extension of cd, and CD[-a][metric[_?AIndexQ,_?AIndexQ]]:=0 if cd[-a][metric[-b,-c]]==0. 20 Nov - Changed treatment of derivatives on Scalar expressions. Scalar is kept under parametric and Lie derivatives, but covariant derivatives and Lie derivatives convert Scalar into ReplaceDummies before acting on the expression. Scalar could be introduced with PutScalar, but that could be slow, as pointed out by Guillaume. * Rereleased 24 November 2009. Version 0.9.9. 11 Dec - Fixed a missing comma in the new formatting of Scalar. Thanks to Leo Stein for pointing this out. 25 Dec - NumberOfArguments removed from the documentation. Thanks to Sebastian Szybka for pointing this out. - As pointed out by Alessandro (magma), the $Info variable is not able to turn off Undef messages. Now $Info converted into two independent global variables $DefInfo and $UndefInfo. Info changed to DefInfo, because Info is too general. There is no UndefInfo option/function yet. - Also pointed out by Alessandro, chart undefinition was leaving Removed symbols in VisitorsOf[M]. Solved by appending hosts, instead of setting them (that assumes the setting is done only once, and that is not true with charts, which are also bases). - Reexecuted xTensor.nb. Fixed some examples with respect to the presence or not of a metric. Added a couple of trivial Module[{prot=...},...] constructions. *** Version 1.46 of CVS *** 31 December 2009 *** === 2010 ===================================== * Rereleased 10 January 2010. Version 0.9.9. 1.0.0: 25 Jan - Introduced head Sym, following suggestions by Thomas Bäckdahl, as discussed in the group. 26 Jan - Added ReplaceDummies on the RHS of VarD acting on scalar functions because the initial ReplaceDummies does not act on the arguments of scalar functions. Thanks to Leo Stein for reporting in the xAct group the problem caused by that. 29 Jan - Changed all (but one) patterns _Symbol?xTensorQ to _?xTensorQ to allow for more flexible tensor pattern heads. Introduced Tensor objects which contain their info as arguments, instead of going through DefTensor. - Introduced a generalized form of delta, called Sdelta[sym][inds], the "superdelta", to help in the canonicalization of Sym objects. 2 Feb - ImplicitTensorDepQ made public because there are problems in which the user needs to set a nondefault upvalue for it, as in an example posted by Jörg in the xAct group. 3 Feb - Fixed handling of Sym canonicalization for spinor metrics. Problems found by Thomas. 4 Feb - Added CheckRepeated in ValidateTensor to check for repeated indices. Found while constructing xPrintValidQ for Alessandro. 12 Feb - SymmetryOf has a NonIndexedScalarQ check on products which is very slow when there are many terms. Used technique of hiding attributes to make it faster. 18 Feb - Accepted tensor weights in which the coefficient is a constant, and not necessarily a numeric quantity. 24 Feb - Generalized GradMetricToChristoffel and ChristoffelToGradMetric to work with frozen metrics. Not yet for induced metrics. Also ChangeCurvature. 4 Mar - ReplaceDummies now calls ReplaceDummies2[expr,...] instead of the old ReplaceDummies2[MathInputExpand[expr],...]. This change could lead to results having a different, hopefully simpler, form. - Cleaning and small improvements in the section 5.7.5 on ReplaceDummies and SameDummies. 5 Mar - IndexList[___] now formats with blue ($IndexListColor) braces. - The message Validate::repeated from CheckRepeated is now only sent, not thrown. This is to proceed in the 1dim case with repeated indices. 9 Apr - Solved problem in SeparateMetric, which made the function not work on non-indexed scalars. Solved by changing Join@@somelist to Flatten[IndexList@@somelist], where somelist is a list of IndexList expressions. The problem was the special case somelist={}. Thanks to Torsten for reporting this problem in the group. 18 Apr - Added ShowAutoStyles->False in interpretbox to avoid the blue coloring of indices in Mathematica 6+ after copy-pasting. Thanks to Alessandro for spotting this problem. - Added line ReplaceOneIndex[i:slot[_],rules_]:=Replace[i,rules]; to allow slot-expressions to be replaced by normal indices. Suggested by Thomas. 25 Apr - IndexLength computes lengths from PrintAs[index] and not from index, because what we actually show is the PrintAs form. Thanks to Guillaume for finding this. - NewIndexIn now creates indices in the same context of the LastIndex. Suggested by Guillaume. - SetPrintAs now uses StripContext to remove the context of a symbol in its PrintAs form. Suggested by Guillaume. 26 Apr - Started implementation of projectors, following discussions with Guillaume. Projected and MakeProjectors. $ProjectedFormat. 28 Apr - Motivated by the new formatting of projected indices, the functions constructing boxes for tensor formatting are modified. Now they are based on GridBox, instead of SubsuperscriptBox. Both codes are left, with the global variable $TensorBoxes to switch among them. 18 May - Introduced Mapping & company, after discussions with Alfonso at AEI. - Extended syntax of DefManifold to define submanifolds. 13 Jun - Added TensorD and TensorDerivative. It is faster than ChangeCovD and Implode, and seems simple to program. 14 Jun - christoffelToGradMetric acting on metricovd = PD returns the expr. This is to avoid converting Christoffels into covariant derivatives of Cartesian metrics. Thanks to Istvan Racz for finding this problem. - ZeroDerivativeQ now performs pm`Q checks to avoid confusing manifolds when using PD. Thanks again to Istvan. 17 Jun - Fixed problem in SortCovDsStart. Changed a RuleDelayed by SetDelayed. Thanks to Alessandro for reporting this problem. Slight rewriting of SortCovDsStart/Stop to avoid Evaluate. 6 Aug - Removed one of two ; at the end of TexCovDCombine, which was being interpreted as Span. Thanks to Barry for reporting this. 25 Aug - Function DefSign, to define constant symbols representing signs. 23 Sep - Now we admit frozen metrics with associated connection with torsion. - Encoded general contracted Bianchi identity, with torsion and for first and frozen metrics. 24 Sep - Improved formatting and symmetries of TensorDerivative objects. * Released 30 September 2010. Version 1.0.0. === 2011 ===================================== 1.0.1: 29 Jan - As pointed out by Alessandro, IndexLength counts all characters of StyleBox[...] symbols, like colored commas. Returned to the previous convention of assigning length 1 to any comma-object. - Added missing comma in SetNumberOfArguments[Sym{1,3}]. - Added missing definition of TensorDerivative on LI indices. 18 Feb - Extended VarD to work on expressions with free indices, as requested by several people in the group. Not tested at all. Does not work on expressions with derivatives of the differentiation variables, as pointed out by Leo, as xTensor cannot extract the test function then. 28 Feb - Solved problem found by Cyril on the treatment of symmetries of double derivatives of scalars, by describing group orders as a list instead of a number inside Object. 6 Mar - Mathematica 8 dollar symbols produce a$101 and a$101$. This requires a slight twist in RemoveDollarIndices. 10 Mar - Fixed a typo in SignatureOfMetric, that was affecting MetricInBasis. Detected by Alfonso. 11 Mar - TexBreak improved using ideas and code by Barry Wardell. - Tex formatting of indices improved using ideas and code by Thomas Backdahl. 15 Mar - DefCovD[ cd[-a] ] now checks that a belongs to a tangent vbundle. - TorsionQ was not being inherited by extended derivatives, as detected by Alfonso. 16 Mar - Proper ordering of delta indices in VarD, as suggested by David Brizuela. 18 Mar - ToInducedDerivative generalized to work with Lie derivatives as suggested by Cyril. - The weighted part of LieDToCovD is a divergence of the vector, instead of a LieD of the metric along the vector, to avoid the use of a metric. PD is now by default weighted in the basis AIndex. Suggested by David. - Fixed a Not[A,B] in SymDers that should have been Not[A]&&Not[B]. Thanks to Cyril for finding and tracking this down. 10 Apr - Added basic support for conformal transformations, after discussions with Cyril Pitrou and Thomas Backdahl. A conformal transformation is specified using the option ConformalTo->{metric,confactor} in DefMetric. Information is stored in ConformalFactor and (general) ConformalRules. Christoffel changes between connections is done with ChristoffelToGradConformal. Indices CANNOT be moved with the conformal metric; only with the first metric, as usual in xTensor. 12 Apr - Added global variable $TexIndicesInitialBracesQ, suggested by Thomas. * Released 17 April 2011. Version 1.0.1. 20 Apr - Fixed Christoffel relation for conformal transformations, as reported by Cyril. Several small extensions suggested by him. Added function SetConformalTo, which allows setting conformal relations of already declared metrics. 23 Apr - SortCovDsStart/Stop generalized to work with both up and down indices, as SortCovDs does. Thanks to Cyril for finding and fixing this. * Rereleased 27 April 2011. Version 1.0.1. 15 May - Improved Tex on products, sums and powers, after a bug found by Thomas with the product of two sums. - As suggested by Leo, SetOrthogonal and SetProjected now accept input SetOrthogonal[ T[AnyIndices[vb]], vector ]. OrthogonalToVectorQ still refuses to call OToVcheck because it is not clear that orthogonality for 13 indices means orthogonality for any number of indices. * Rereleased 15 May 2011. Version 1.0.1. 1.0.2: 20 May - Fixed TexPrint with exponents. Added $VerboseParenthesationLevel, with default False. 9 Jul - As suggested by Thomas, we now assume that the base of any SGS is formed by the sorted list of moved points, for safe compatibility with the option OrderedBase->True, which produces the nicest output. The function SGSofsym has been modified to inforce that. - Code of SeparateMetric partially modified so that it first localize the tensors to act on, and then computes the indices to separate. This fixes the problem reported by Leo on May 2 in the xAct group. - Added formatting for ParamD. The global variable $ParamDFormat controls this. Currently it takes values "Prefix", "SinglePrefix" and "Postfix", with the first one being the default. - Fixed problem with Christoffel[cd, cdextended] not being declared as a tensor, as reported by Leo on June 3 in the xAct group. Used this oportunity to implement a better treatment of the "vanishing" info messages for tensors. MakeDefInfo has now a fourth argument for this. 15 Jul - TexUpIndex wraps IndexForm[index] with Tex to get proper formatting. Thanks to Eduardo Serna for reporting this, and Thomas for fixing it. - Added better treatment of fractions and roots of numbers, as suggested by Thomas. - Added Zero definitions for TensorDerivative[metric | epsilon | det, LCcovd], as suggested by Leo. * Released 15 July 2011. Version 1.0.2. 1.0.3: 30 Sep - Typo: RicciToEinsteinRule -> RicciToEinsteinRules. Found by Alfonso. - Added xHold to prevent evaluation in ToIndexExpr. Thanks to Stephen Green and Leo Stein. - Changed MetricOfCovD[covd1] by delta in makeChangeRicciRule, as suggested by Leo. - Added line FindIndices[expr_Condition]:=... Thanks to Teake. - Changed a Module[{c},...] to Module[{c=DummyIn@vbundle},...] in ExtrinsicKToGradNormalRules, as suggested by Leo. * Released 10 October 2011. Version 1.0.3. - Changed signs in the definition of the Tetra-metric, to follow the conventions in Penrose & Rindler. - Introduced option epsilonOrientationInBasis for DefMetric and associated function epsilonOrientation. This function takes the default value $epsilonSign, for backward compatibility. * Rereleased 25 October 2011. Version 1.0.3. === 2012 ===================================== 1.0.4: 1 Jan - Added support for SeriesData in sections before Canonicalization. 21 Apr - Extended VarD to operate on general Power expressions, as Leo suggested in 2010! - Implemented code from Thomas to format ParamD in Tex, both in prefix and postfix form. - Added {} for proper Tex formatting of derivative indices in postfix form, as recommended by Thomas. - Added global variable $TexScalarParentheses, with default True. - Fixed AD, case 6, as recommended by Thomas. - Added missing definitions for movedindices on AnyIndices, as reported by Obinna. - Fixed double use of SMP for inert-heads. Found by Thomas. - Introduced MakexTensions in all DefType and UndefType commands, as discussed with Teake. 28 Apr - Tex functionality excised to new package TexAct. * Released 5 May. Version 1.0.4. 1.0.5: 25 Nov - Define IndexLength and IndexForm for BlankSequence and BlankNullSequence indices. Follows suggestion by Thomas in the group (26 Oct 2012). - Define IndexName for BlanSequence and BlankNullSequence indices. Follows suggestion by Leo in the group (26 Oct 2012). - Define UltraIndexOf on Slot objects, as suggested by Thomas in the group (26 Oct 2012). - Fixed lieDcovDdiff by adding an expr term. Reported by Teake in the group (2 Nov 2012). === 2013 ===================================== 20 Jan - Renamed Permute -> PermProduct, following change in xPerm. - Fixed evaluation leak in the MakeBoxes calls for tensors and covds. - UnsortedUnion renamed DeleteDuplicates, following change in xCore. - Removed spurious $RicciSign in TFRicciToRicciRules and RicciToTFRicciRules. Spotted by Teake. - Implemented DropIndexBasis suggestion from Thomas, to allow the IndexRule and MakeRule functions deal with dummy basis indices. - Added selection of AB indices in OToVcheck, as suggested by Cyril. Also a call of GradNormalToExtrinsicK there, suggested by Thomas. - Added another AB selection in IndexSolve, also suggested by Cyril. - The function movedindices now understands inertheads. Contributed by Cyril. - ToInducedDerivative now accepts inertheads. Contributed by Cyril. - Important change in how the induced derivative act on non-projected expressions, in particular the orthogonal vector and the ambient metric. Suggested by Cyril. Watch out for this change. 26 Jan - Extended Bracket to act on all types of scalars, as suggested by Leo. Fixed a bug there, pointed out by him. - VarD extended to work on multi-argument scalar functions. Code contributed by Leo, which includes now the Power case. - Warping factors in product metrics are now general scalars, as suggested by Leo in the group. - Induced derivatives give zero on products of two or more orthogonal vectors. - Extended SameDummies (actually ReplaceDummies2) to work on List and Equal expressions, as suggested by Teake and Thomas in the group. - Fixed a bug pointed out by Alfonso: SymmetryOf was not seing the IndexList indices of the inert heads. - Extended and improved orthogonality checks, following Thomas. In particular the code of GradNormalToExtrinsicKRules is more general now. - Modified usage message of IsIndicesOf, as suggested by Cyril. - Added definition LieD[v[a]][v[b]] := 0 . - Added definition v[b] LieD[v[a]][w[-b]] := 0 if v[b]w[-b]==0. - OrthogonalToVectorQ is now public and protected. It handles remembered information through upvalues of the tensor, as suggested by Thomas. - Added definition ParamD[p][p] := 1, found after a discussion with Guillaume in the group. - As suggested by Thomas, now we specify in error messages which non-projected expression has been found. - Added automatic listability of equations, as discussed with Alfonso. - Removed check of less than 2 manifolds in CheckZeroDerivativeStart, because we might be working with one manifold and a tensor DefTensor[v[a],{}]. * Released 27 January. Version 1.0.5. 28 Jan - Converted many _Symbol?CovDQ into _?CovD, to make CCovD work. Not all. 30 Jan - Added determinants to the ConformalRules, as pointed out by Dario Bettoni in the group. - Added support for parametric derivatives in VarD, as I recommended to Jan Oliver one year ago in the group. - Created google project xact-developer to keep track of bugs. 3 Feb - SplitManifold and SplitVBundle were using SymbolRelations with the wrong order of symbols, hence defining inverted relations host/visitor. 24 Feb - As suggested by Teake, added an explicit factor 3/4 for the fontsize of the indices respect to that of the stem, instead of hardwiring a fontsize 9 vs the standard 12 of the stem. 3 Mar - Fixed sign of the symmetry of Gdelta for an odd half-number of indices. Reported by Davide Cassani. - CovDOfMetric now admits two arguments [metric, torsion]. Introduced LC[metric] to return the Levi-Civita connection, equivalent to CovDOfMetric[metric, Zero]. 9 Mar - HeadOfTensor has now two arguments and is public. - MultiplyHead is now public. - Following Leo's suggestion in the group, Bracket[a][v1, v2] is now Bracket[v1, v2][a], so that it follows the general structure tensor[inds]. Bracket[v1, v2] is now a xTensorQ object, which allowed removing multiple special definitions for Bracket. - Extended PullBack to work on covariant derivatives. - Reverted again the host/visitor relations of SplitManifold and SplitVBundle because they break the reasoning of constructing the product out of the (already existing) factors. Hence the product is a visitor of its (host) factors. - Reexecuted xTensor.nb in Mathematica 9.0.1. From now on the development will be done in the last version of Mathematica, instead of always using 5.2, as done until now. - Christoffels between connections of different base manifolds are now converted into 0, with a Christoffel::base warning, instead of throwing an error. This was suggested by Adam in the group. - Manifolds can be nonatomic now, to work with mappings. 16 Mar - DefType functions now thread over a list in the first argument. - Construction of `Q and `pmQ functions centralized in VBundleIndexQ and VBundleIndexPMQ respectively. 23 Mar - TangentBundleOfManifold now evaluates to Tangent, which is what we should always use. Nicer formatting for TangentM. 30 Mar - SubmanifoldsOfManifold replaced with the (not identical, but almost) SplittingsOfManifold. Same thing for the function SubvbundlesOfVBundle and SplittingsOfVBundle. - The functions SubmanifoldQ and SubvbundleQ do not thread over lists anymore. DisjointManifoldsQ and DisjointVBundlesQ still take lists as arguments. 7 Apr - Fixed ProjectDerivativeRules, which was not careful with divergencies, as pointed out by Filippo in the group. - DummyAs made public. 13 Apr - Added new type Product, with DefProduct, etc, following Alfonso's suggestions and code. ToCanonical extended to handle these objects. - TensorTimes renamed VerbatimProduct[Times], and now the argument can be any product. 28 Apr - Added Kernel/init.m. 26 May - Option GivePerm of ToCanonical removed. Replaced by a simple Sow, right now only used by Invar. - Eliminated Scalar1 and MarkBlocked. Functionality now implemented in the simpler SimpleObjectQ. xSort1 also eliminated. - Eliminated $CommuteFreeIndices. Not needed anymore. Its role is now played by the freesQ argument of ObjectOrder. 30 Jun - Contractions of Gdelta. Imitate the GAMMA` package. 14 Jul - Added xSortPrecedence, as suggested by Thomas. - Added missing definition of Symmetry1D on Symmetric/Antisymmetric as reported by Leo in the group. 28 Jul - Inert heads can be now nonatomic, as requested by Leo. 18 Aug - Added missing torsion terms in ChristoffelToGradMetric, as reported by Teake in the group. === 2014 ===================================== 24 Jan - DefMetric now defines epsilon for a frozen metric, as suggested by Alfonso. - Added function PrimeDagger suggested by Thomas. - Changed PrintAsString in section 2.6.3, Following Thomas suggestion. * Released 15 February. Version 1.1.0. 23 Feb - Fix canonicalization for "Commutative" products. - Fix heuristics for placement of highly symmetric tensors in xSort. - Rewrite symListCombine to avoid hitting $IterationLimit. * Re-released 23 February. Version 1.1.0. * Released 28 September. Version 1.1.1. === 2015 ===================================== 21 Apr - Fix a problem with MakeSequenceBox of a singleton, as suggested by Thomas. 22 Aug - Add missing torsion terms in LieDToCovD, as suggested by Alfonso. * Released 23 August. Version 1.1.2. === 2016 ===================================== === 2017 ===================================== === 2018 ===================================== 28 Feb - Modified extraction of non-indexed scalars inside Scalar expressions. * Released 28 February. Version 1.1.3. 25 Mar - Avoid having a visitor-host relation between two symbols for which there is a master-servant chain between them. - Make sure that a symbol is not added twice to the list of visitors of another symbol. 20 Oct - Solve a problem pointed out by Michael Kopp and Cyril Pitrou, and actually solved by Leo Stein. This problem had been introduced in 1.1.0 when adding VerbatimProduct. - Solve a typesetting problem with c-indices pointed out by Alfonso. 18 Nov - Fix issue with finding indices of Object expressions, that was reported in the forum in relation with (harmless, but spurious) validation messages in xPand. === 2019 ===================================== === 2020 ===================================== 4 Jan - Add ATensor[name, slots, deps, sym] as a way of using abstract tensors without going through DefTensor. - Deactivated buggy algorithm for efficient manipulation of contractions with Gdelta. I blindly took it from somewhere else, without actually understanding how it works, so I cannot fix it now. Fall back to brute expansion via ExpandGDelta while this is sorted out. - Fixed a conflict between the new Information and ScreenDollarIndices, pointed out by Alfonso. * Released 16 February. Version 1.1.4. === 2021 ===================================== 21 Feb - Restrict SeparateMetric to work only on first metrics after some problems posted by Ghadir in the forum. 28 Feb - Generalized to DefMetric[signdet, G[-A, -B]] to declare a metric G on an inner vbundle. It does not have any connection structure associated, and in fact for such a G we will have CovDOfMetric[G] return None. This also required introducing an auxiliary function TangentBundleQ[vb] reporting whether a given vb is tangent (True) or inner (False). - Extended SymmetryEquivalentsOf to work with products of any commutativity type. This was needed to make IndexCoefficient support these products, as requested by Nicolas Castro in the xAct forum. * Released 28 February. Version 1.1.5. 6 Aug - Force SymmetryOf to return a StrongGenSet object, and not a Symmetric object sometimes, as reported by tengfei1220 in the xAct forum. 29 Aug - Extend ConstantQ to accept sums and products of constants, as suggested by Thomas. * Released 17 October. Version 1.2.0