Cat::ModuleWithSeveralBases – the category of modules with several bases

Cat::ModuleWithSeveralBases(coeffRing) represents the category of modules over coeffRing with several bases.

→ Examples

Creating the Category

Cat::ModuleWithSeveralBases(coeffRing)

Parameters:

coeffRing

A domain which must be from the category Cat::Ring.

Categories

Cat::Module(coeffRing), Cat::UseOverloading

Details:

Details:

Entries

"coeffRing"

Returns the coefficient ring.

"bases"

Returns the set of bases.

"autoDefineBasisChanges"

Boolean that tells the system whether the basis changes that are not defined in basisChangesBasis or basisChanges should be defined when possible by inversion or transposition and automatically added to these tables.

"basisChangesBasis"

Hash table to associate pairs of bases with known change of basis. Each entry of the table is of the form   (basSource, basTarget) = basSourceTobasTargetChangeBasis where basSource and basTarget are domains of Cat::ModuleWithBasis(coeffRing) and basSourceTobasTargetChangeBasis is a function that takes an element x in basSource::basisIndices and returns the image of the element indexed by basSource(x) expressed in the basis basTarget.The basis change for the elements in basSource is defined by the linear extension of the function basSourceTobasTargetChangeBasis.If this table is not empty at the initialization of the domain, each entry is declared to the overloading system which is set to produce automatic conversions of elements in basSource to expressions of elements in basTarget.

"basisChanges"

Hash table to associate pairs with known change of basis. Each entry of the table is of the form   (basSource, basTarget) = basSourceTobasTargetChange where basSource and basTarget are domain of Cat::ModuleWithBasis(coeffRing) and basSourceTobasTargetChange is a function that takes an element x in basSource and returns the image of the element indexed by basSource(x) expressed in the basis basTarget. No linear extension is necessary in this case.If this table is not empty at the initialization of the domain, each entry is declared to the overloading system which is set to produce automatic conversions of elements in basSource to expressions of elements in basTarget.

"dualBasisPairs"

Set of pairs of dual bases which are used to define the scalar product and to define changes of basis by transposition.

"dual"

If the domain is the category has a dual module in this same category, this entry is used to automatically compute changes of basis by transposition. This is done only if the entry autoDefineBasisChanges is set to TRUE.

scalar – scalar product

Cat::ModuleWithSeveralBases::scalar(dom x, dom y)

Returns the scalar product of x and y.

By default this method is set to operators::scalar.

Technical Methods

declareBasisChangesBasis – declaration of change of bases from basis indexes

Cat::ModuleWithSeveralBases::declareBasisChangesBasis(baseClass basSource, baseClass basTarget, function basChange)

This method declares to the overloading system a new automatic conversion of elements in basSource to expressions of elements in basTarget. The function basChange should take a basSource::basisIndices and returns a basTarget as in basisChangesBasis.

It also adds a new entry to the hash table basisChangesBasis.

declareBasisChanges – declaration of change of bases

Cat::ModuleWithSeveralBases::declareBasisChanges(baseClass basSource, baseClass basTarget, function basChange)

This method declares to the overloading system a new automatic conversion of elements in basSource to expressions of elements in basTarget. The function basChange should take a basSource and returns a basTarget as in basisChanges.

It also adds a new entry to the hash table basisChanges.

declareDualBases – declaration of pairs of dual bases

Cat::ModuleWithSeveralBases::declareDualBases(baseClass basDom, baseClass basDual)

This method constructs the set of pairs dualBasisPairs to tell the system information about duality.

It also adds a new entry to the set dualBasisPairs.

Example 1:

See the guided tour.

Changes in MuPAD 3.2

New Function.