Macaulay2 » Documentation
Packages » RationalMaps :: sourceInversionFactor
next | previous | forward | backward | up | index | toc

sourceInversionFactor -- computes the common factor among the components of the composition of the inverse map and the original map

Synopsis

Description

Given a map $f : X \to Y$, sourceInversionFactor computes the common factor among the components of, $f^{(-1)}$ composed with $f$, which is an element of the coordinate ring of $X$.

If AssumeDominant is set to true (default is false) then it assumes that the rational map of projective varieties is dominant, otherwise the function will compute the image by finding the kernel of $f$.

The Strategy option can be set to HybridStrategy (default), SimisStrategy, ReesStrategy, or SaturationStrategy. Note SimisStrategy will never terminate for non-birational maps. If CheckBirational is set to false (default is true), then no check for birationality will be done. If it is set to true and the map is not birational, then an error will be thrown if you are not using SimisStrategy. The option HybridLimit controls HybridStrategy. Larger values of HybridLimit (the default value is 15) will mean that SimisStrategy is executed longer, smaller values will mean that ReesStrategy will be switched to sooner.

i1 : R = ZZ/7[x,y,z];
i2 : S = ZZ/7[a,b,c];
i3 : h = map(R, S, {y*z, x*z, x*y});

o3 : RingMap R <-- S
i4 : sourceInversionFactor h
sourceInversionFactor: About to find the image of the map.  If you know the image, 
        you may want to use the AssumeDominant option if this is slow.
inverseOfMapSimis: About to find the image of the map.  If you know the image, 
        you may want to use the AssumeDominant option if this is slow.
inverseOfMapSimis: About to check rank, if this is very slow, you may want to try turning QuickRank=>false.
inverseOfMapSimis: rank found, we computed enough of the Groebner basis.

o4 = x*y*z

o4 : R
i5 : S=QQ[a,b,c,d];
i6 : g=(b^2-a*c)*c*d;
i7 : phi=map(S,S,transpose jacobian ideal g);

o7 : RingMap S <-- S
i8 : sourceInversionFactor(phi, Verbosity=>0)

      2 4 2      5 2
o8 = b c d  - a*c d

o8 : S

Caveat

The current implementation of this function works only for irreducible varieties.. Also see the function inverseMap in the package Cremona, which for some maps from projective space is faster. Additionally, also compare with the function invertBirationalMap of the package Parametrization.

See also

Ways to use sourceInversionFactor :

For the programmer

The object sourceInversionFactor is a method function with options.