====== BigObject Morphism ====== //from application [[..:tropical|tropical]]//\\ \\ A morphism is a function between cycles which is locally affine linear and respects the lattices. It is defined by a ''[[..:tropical:Morphism#DOMAIN |DOMAIN]]'', which is a cycle, and values on this domain, ''[[..:tropical:Morphism#VERTEX_VALUES |VERTEX_VALUES]]'' and ''[[..:tropical:Morphism#LINEALITY_VALUES |LINEALITY_VALUES]]'', much like ''[[..:tropical:TropicalRationalFunction |TropicalRationalFunction]]''. Alternatively, it can be defined as a global affine linear function by giving a matrix and a translation vector. ? Type Parameters: :: ''Addition'': Mode of tropical addition, must be ''[[..:common#Min |Min]]'' or ''[[..:common#Max |Max]]''. There is on purpose no default value for it. ===== Properties ===== ==== Defining morphisms and functions ==== These properties are used to define morphisms or rational functions on a Cycle. ---- {{anchor:domain:}} ? **''DOMAIN''** :: This property describes the domain of the morphism. I.e. the morphism is defined on this complex and is locally affine integral linear. ? Type: :''[[..:tropical:Cycle |Cycle]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:is_globally_affine_linear:}} ? **''IS_GLOBALLY_AFFINE_LINEAR''** :: This is TRUE, if the morphism is defined on the full projective torus by a ''[[..:tropical:Morphism#MATRIX |MATRIX]]'' and a ''[[..:tropical:Morphism#TRANSLATE |TRANSLATE]]'' The rules do not actually check for completeness of the ''[[..:tropical:Morphism#DOMAIN |DOMAIN]]''. This property will be set to TRUE, if the morphism is only defined by ''[[..:tropical:Morphism#MATRIX |MATRIX]]'' and ''[[..:tropical:Morphism#TRANSLATE |TRANSLATE]]'', otherwise it is false (or you can set it upon creation). ? Type: :''[[..:common#Bool |Bool]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:lineality_values:}} ? **''LINEALITY_VALUES''** :: The vector in row i describes the function value (slope) of ''[[..:tropical:Morphism#DOMAIN |DOMAIN]]''->LINEALITY_SPACE->row(i) ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:matrix:}} ? **''MATRIX''** :: If the morphism is a global affine linear map x |-> Ax+v, then this contains the matrix A. Note that this must be well-defined on tropical projective coordinates, so the sum of the columns of A must be a multiple of the (1,..,1)-vector. If ''[[..:tropical:Morphism#TRANSLATE |TRANSLATE]]'' is set, but this property is not set, then it is the identity by default. ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:translate:}} ? **''TRANSLATE''** :: If the morphism is a global affine linear map x |-> Ax+v, then this contains the translation vector v. If ''[[..:tropical:Morphism#MATRIX |MATRIX]]'' is set, but this property is not set, then it is the zero vector by default. ? Type: :''[[..:common#Vector |Vector]]<[[..:common#Rational |Rational]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:vertex_values:}} ? **''VERTEX_VALUES''** :: The vector at row i describes the function value of vertex ''[[..:tropical:Morphism#DOMAIN |DOMAIN]]''->SEPARATED_VERTICES->row(i). (In tropical homogenous coordinates, but without leading coordinate). More precisely, if the corresponding vertex is not a far ray, it describes its function value. If it is a directional ray, it describes the slope on that ray. ? Type: :''[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]],[[..:common#NonSymmetric |NonSymmetric]]>'' ? from extension: : [[:external_software|bundled:atint]] ---- ===== Methods ===== ==== Affine and projective coordinates ==== These methods deal with affine and projective coordinates, conversion between those and properties like dimension that change in projective space. ---- {{anchor:affine_representation:}} ? **''affine_representation([[..:common#Int |Int]] domain_chart, [[..:common#Int |Int]] target_chart)''** :: Computes the representation of a morphism (given by ''[[..:tropical:Morphism#MATRIX |MATRIX]]'' and ''[[..:tropical:Morphism#TRANSLATE |TRANSLATE]]'') on tropical affine coordinates. ? Parameters: :: ''[[..:common#Int |Int]]'' ''domain_chart'': Which coordinate index of the homogenized domain is shifted to zero to identify it with the domain of the affine function. 0 by default. :: ''[[..:common#Int |Int]]'' ''target_chart'': Which coordinate of the homogenized target space is shifted to zero to identify it with the target of the affine function. 0 by default. ? Returns: :''[[..:common#Pair |Pair]]<[[..:common#Matrix |Matrix]]<[[..:common#Rational |Rational]]>,[[..:common#Vector |Vector]]<[[..:common#Rational |Rational]]%%>>%%'' ? from extension: : [[:external_software|bundled:atint]] ---- ==== Morphisms ==== These are general methods that deal with morphisms and their arithmetic. ---- {{anchor:after:}} ? **''after([[..:tropical:Morphism |Morphism]] g)''** :: Computes the composition of another morphism g and this morphism. This morphism comes after g. ? Parameters: :: ''[[..:tropical:Morphism |Morphism]]'' ''g'' ? Returns: :''[[..:tropical:Morphism |Morphism]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:before:}} ? **''before([[..:tropical:Morphism |Morphism]] g)''** :: Computes the composition of this morphism and another morphism g. This morphism comes before g. ? Parameters: :: ''[[..:tropical:Morphism |Morphism]]'' ''g'' ? Returns: :''[[..:tropical:Morphism |Morphism]]'' ? from extension: : [[:external_software|bundled:atint]] ---- {{anchor:restrict:}} ? **''restrict([[..:tropical:Cycle |Cycle]] Some)''** :: Computes the restriction of the morphism to a cycle. The cycle need not be contained in the ''[[..:tropical:Morphism#DOMAIN |DOMAIN]]'' of the morphism, the restriction will be computed on the intersection. ? Parameters: :: ''[[..:tropical:Cycle |Cycle]]'' ''Some'': cycle living in the same ambient space as the ''[[..:tropical:Morphism#DOMAIN |DOMAIN]]'' ? Returns: :''[[..:tropical:Morphism |Morphism]]'' ? from extension: : [[:external_software|bundled:atint]] ---- ==== Visualization ==== These methods are for visualization. ---- {{anchor:visual:}} ? **''VISUAL()''** :: Visualizes the domain of the morphism. Works exactly as VISUAL of WeightedComplex, but has additional option ? Options: : :: ''[[..:common#String |String]]'' ''FunctionLabels'': If set to "show", textual function representations are diplayed on cones. False by default : option list ''[[..:tropical#Visual_Cycle_FunctionDecorations |Visual::Cycle::FunctionDecorations]]'' ? from extension: : [[:external_software|bundled:atint]] ----