Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346############################################################################# ## ## HomalgMatrix.gd MatricesForHomalg package Mohamed Barakat ## ## Copyright 2007-2008 Lehrstuhl B für Mathematik, RWTH Aachen ## ## Declarations for homalg matrices. ## ############################################################################# #################################### # # categories: # #################################### # two new GAP-categories: ## this is introduced to allow internal matrices ## to remain mutable, although Eval is an attribute DeclareCategory( "IsInternalMatrixHull", IsAdditiveElementWithInverse and IsExtLElement and IsComponentObjectRep ); ## CAUTION: never let such matrix hulls be multiplicative elements!! ## <#GAPDoc Label="IsHomalgMatrix"> ## <ManSection> ## <Filt Type="Category" Arg="A" Name="IsHomalgMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## The &GAP; category of &homalg; matrices. ## <Listing Type="Code"><![CDATA[ DeclareCategory( "IsHomalgMatrix", IsMatrixObj and IsAttributeStoringRep ); ## ]]></Listing> ## </Description> ## </ManSection> ## <#/GAPDoc> #################################### # # properties: # #################################### DeclareOperation( "SetIsMutableMatrix", [ IsHomalgMatrix, IsBool ] ); ## <#GAPDoc Label="IsInitialMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsInitialMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsInitialMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsInitialIdentityMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsInitialIdentityMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsInitialIdentityMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsVoidMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsVoidMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsVoidMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsZero:matrix"> ## <ManSection> ## <Prop Arg="A" Name="IsZero" Label="for matrices"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## Check if the &homalg; matrix <A>A</A> is a zero matrix, taking possible ring relations into account.<P/> ## (for the installed standard method see <Ref Meth="IsZeroMatrix" Label="homalgTable entry"/>) ## <Example><![CDATA[ ## gap> ZZ := HomalgRingOfIntegers( ); ## Z ## gap> A := HomalgMatrix( "[ 2 ]", ZZ ); ## <A 1 x 1 matrix over an internal ring> ## gap> Z2 := ZZ / 2; ## Z/( 2 ) ## gap> A := Z2 * A; ## <A 1 x 1 matrix over a residue class ring> ## gap> Display( A ); ## [ [ 2 ] ] ## ## modulo [ 2 ] ## gap> IsZero( A ); ## true ## ]]></Example> ## </Description> ## </ManSection> ## <#/GAPDoc> ## <#GAPDoc Label="IsOne:matrix"> ## <ManSection> ## <Prop Arg="A" Name="IsOne"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## Check if the &homalg; matrix <A>A</A> is an identity matrix, taking possible ring relations into account.<P/> ## (for the installed standard method see <Ref Meth="IsIdentityMatrix" Label="homalgTable entry"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## ## <#GAPDoc Label="IsPermutationMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsPermutationMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsPermutationMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsSpecialSubidentityMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsSpecialSubidentityMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsSpecialSubidentityMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsSubidentityMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsSubidentityMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsSubidentityMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsLeftRegular"> ## <ManSection> ## <Prop Arg="A" Name="IsLeftRegular"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsLeftRegular", IsHomalgMatrix ); ## <#GAPDoc Label="IsRightRegular"> ## <ManSection> ## <Prop Arg="A" Name="IsRightRegular"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsRightRegular", IsHomalgMatrix ); ## <#GAPDoc Label="IsInvertibleMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsInvertibleMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsInvertibleMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsLeftInvertibleMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsLeftInvertibleMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsLeftInvertibleMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsRightInvertibleMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsRightInvertibleMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsRightInvertibleMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsEmptyMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsEmptyMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsEmptyMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsDiagonalMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsDiagonalMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## Check if the &homalg; matrix <A>A</A> is an identity matrix, taking possible ring relations into account.<P/> ## (for the installed standard method see <Ref Meth="IsDiagonalMatrix" Label="homalgTable entry"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsDiagonalMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsScalarMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsScalarlMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsScalarMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsUpperTriangularMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsUpperTriangularMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsUpperTriangularMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsLowerTriangularMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsLowerTriangularMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsLowerTriangularMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsStrictUpperTriangularMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsStrictUpperTriangularMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsStrictUpperTriangularMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsStrictLowerTriangularMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsStrictLowerTriangularMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsStrictLowerTriangularMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsUpperStairCaseMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsUpperStairCaseMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsUpperStairCaseMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsLowerStairCaseMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsLowerStairCaseMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsLowerStairCaseMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsTriangularMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsTriangularMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsTriangularMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsBasisOfRowsMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsBasisOfRowsMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsBasisOfRowsMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsBasisOfColumnsMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsBasisOfColumnsMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsBasisOfColumnsMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsReducedBasisOfRowsMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsReducedBasisOfRowsMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsReducedBasisOfRowsMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsReducedBasisOfColumnsMatrix"> ## <ManSection> ## <Prop Arg="A" Name="IsReducedBasisOfColumnsMatrix"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsReducedBasisOfColumnsMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="IsUnitFree"> ## <ManSection> ## <Prop Arg="A" Name="IsUnitFree"/> ## <Returns><C>true</C> or <C>false</C></Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareProperty( "IsUnitFree", IsHomalgMatrix ); #################################### # # attributes: # #################################### DeclareAttribute( "Eval", IsHomalgMatrix ); DeclareAttribute( "EvalMatrixOperation", IsHomalgMatrix ); DeclareAttribute( "EvalInvolution", IsHomalgMatrix ); DeclareAttribute( "ItsInvolution", IsHomalgMatrix ); DeclareAttribute( "EvalCertainRows", IsHomalgMatrix ); DeclareAttribute( "EvalCertainColumns", IsHomalgMatrix ); DeclareAttribute( "EvalUnionOfRows", IsHomalgMatrix ); DeclareAttribute( "EvalUnionOfColumns", IsHomalgMatrix ); DeclareAttribute( "EvalDiagMat", IsHomalgMatrix ); DeclareAttribute( "EvalKroneckerMat", IsHomalgMatrix ); DeclareAttribute( "EvalMulMat", IsHomalgMatrix ); DeclareAttribute( "EvalMulMatRight", IsHomalgMatrix ); DeclareAttribute( "EvalAddMat", IsHomalgMatrix ); DeclareAttribute( "EvalSubMat", IsHomalgMatrix ); DeclareAttribute( "EvalCompose", IsHomalgMatrix ); DeclareAttribute( "EvalSyzygiesOfRows", IsHomalgMatrix ); DeclareAttribute( "EvalSyzygiesOfColumns", IsHomalgMatrix ); DeclareAttribute( "EvalLeftInverse", IsHomalgMatrix ); DeclareAttribute( "EvalRightInverse", IsHomalgMatrix ); DeclareAttribute( "EvalInverse", IsHomalgMatrix ); DeclareAttribute( "PreEval", IsHomalgMatrix ); ## <#GAPDoc Label="NrRows"> ## <ManSection> ## <Attr Arg="A" Name="NrRows"/> ## <Returns>a nonnegative integer</Returns> ## <Description> ## The number of rows of the matrix <A>A</A>.<P/> ## (for the installed standard method see <Ref Meth="NrRows" Label="homalgTable entry"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## if not IsBound( NumberRows ) then DeclareAttribute( "NrRows", IsHomalgMatrix ); fi; ## <#GAPDoc Label="NrColumns"> ## <ManSection> ## <Attr Arg="A" Name="NrColumns"/> ## <Returns>a nonnegative integer</Returns> ## <Description> ## The number of columns of the matrix <A>A</A>.<P/> ## (for the installed standard method see <Ref Meth="NrColumns" Label="homalgTable entry"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## if not IsBound( NumberColumns ) then DeclareAttribute( "NrColumns", IsHomalgMatrix ); else DeclareSynonymAttr( "NrColumns", ValueGlobal( "NumberColumns" ) ); fi; ## <#GAPDoc Label="DeterminantMat"> ## <ManSection> ## <Attr Arg="A" Name="DeterminantMat"/> ## <Returns>a ring element</Returns> ## <Description> ## The determinant of the quadratic matrix <A>A</A>.<P/> ## You can invoke it with <C>Determinant</C>( <A>A</A> ).<P/> ## (for the installed standard method see <Ref Meth="Determinant" Label="homalgTable entry"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "DeterminantMat", IsHomalgMatrix ); ## <#GAPDoc Label="RowRankOfMatrix"> ## <ManSection> ## <Attr Arg="A" Name="RowRankOfMatrix"/> ## <Returns>a nonnegative integer</Returns> ## <Description> ## The row rank of the matrix <A>A</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "RowRankOfMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="ColumnRankOfMatrix"> ## <ManSection> ## <Attr Arg="A" Name="ColumnRankOfMatrix"/> ## <Returns>a nonnegative integer</Returns> ## <Description> ## The column rank of the matrix <A>A</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "ColumnRankOfMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="ZeroRows"> ## <ManSection> ## <Attr Arg="A" Name="ZeroRows"/> ## <Returns>a (possibly empty) list of positive integers</Returns> ## <Description> ## The list of zero rows of the matrix <A>A</A>. <P/> ## (for the installed standard method see <Ref Meth="ZeroRows" Label="homalgTable entry"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "ZeroRows", IsHomalgMatrix ); ## <#GAPDoc Label="ZeroColumns"> ## <ManSection> ## <Attr Arg="A" Name="ZeroColumns"/> ## <Returns>a (possibly empty) list of positive integers</Returns> ## <Description> ## The list of zero columns of the matrix <A>A</A>. <P/> ## (for the installed standard method see <Ref Meth="ZeroColumns" Label="homalgTable entry"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "ZeroColumns", IsHomalgMatrix ); ## <#GAPDoc Label="NonZeroRows"> ## <ManSection> ## <Attr Arg="A" Name="NonZeroRows"/> ## <Returns>a (possibly empty) list of positive integers</Returns> ## <Description> ## The list of nonzero rows of the matrix <A>A</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "NonZeroRows", IsHomalgMatrix ); ## <#GAPDoc Label="NonZeroColumns"> ## <ManSection> ## <Attr Arg="A" Name="NonZeroColumns"/> ## <Returns>a (possibly empty) list of positive integers</Returns> ## <Description> ## The list of nonzero columns of the matrix <A>A</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "NonZeroColumns", IsHomalgMatrix ); ## <#GAPDoc Label="PositionOfFirstNonZeroEntryPerRow"> ## <ManSection> ## <Attr Arg="A" Name="PositionOfFirstNonZeroEntryPerRow"/> ## <Returns>a list of nonnegative integers</Returns> ## <Description> ## The list of positions of the first nonzero entry per row of the ## matrix <A>A</A>, else zero. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "PositionOfFirstNonZeroEntryPerRow", IsHomalgMatrix ); ## <#GAPDoc Label="PositionOfFirstNonZeroEntryPerColumn"> ## <ManSection> ## <Attr Arg="A" Name="PositionOfFirstNonZeroEntryPerColumn"/> ## <Returns>a list of nonnegative integers</Returns> ## <Description> ## The list of positions of the first nonzero entry per column of the ## matrix <A>A</A>, else zero. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "PositionOfFirstNonZeroEntryPerColumn", IsHomalgMatrix ); ## DeclareAttribute( "AdjunctMatrix", IsHomalgMatrix ); ## <#GAPDoc Label="LeftInverse"> ## <ManSection> ## <Attr Arg="M" Name="LeftInverse"/> ## <Returns>a &homalg; matrix</Returns> ## <Description> ## A left inverse <M>C</M> of the matrix <A>M</A>. If no left inverse exists then ## <C>false</C> is returned. (&see; <Ref Oper="RightDivide" Label="for pairs of matrices"/>) <P/> ## (for the installed standard method see <Ref Meth="LeftInverse" Label="for matrices"/>) ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "LeftInverse", IsHomalgMatrix ); ## <#GAPDoc Label="RightInverse"> ## <ManSection> ## <Attr Arg="M" Name="RightInverse"/> ## <Returns>a &homalg; matrix</Returns> ## <Description> ## A right inverse <M>C</M> of the matrix <A>M</A>. If no right inverse exists then ## <C>false</C> is returned. (&see; <Ref Oper="LeftDivide" Label="for pairs of matrices"/>) <P/> ## (for the installed standard method see <Ref Meth="RightInverse" Label="for matrices"/>) ## ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "RightInverse", IsHomalgMatrix ); DeclareAttribute( "IndicatorMatrixOfNonZeroEntries", IsHomalgMatrix ); ## <#GAPDoc Label="CoefficientsOfUnreducedNumeratorOfHilbertPoincareSeries"> ## <ManSection> ## <Attr Arg="A" Name="CoefficientsOfUnreducedNumeratorOfHilbertPoincareSeries"/> ## <Returns>a list of integers</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "CoefficientsOfUnreducedNumeratorOfHilbertPoincareSeries", IsHomalgMatrix ); ## <#GAPDoc Label="CoefficientsOfNumeratorOfHilbertPoincareSeries"> ## <ManSection> ## <Attr Arg="A" Name="CoefficientsOfNumeratorOfHilbertPoincareSeries"/> ## <Returns>a list of integers</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "CoefficientsOfNumeratorOfHilbertPoincareSeries", IsHomalgMatrix ); ## <#GAPDoc Label="UnreducedNumeratorOfHilbertPoincareSeries"> ## <ManSection> ## <Attr Arg="A" Name="UnreducedNumeratorOfHilbertPoincareSeries"/> ## <Returns>a univariate polynomial with rational coefficients</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "UnreducedNumeratorOfHilbertPoincareSeries", IsHomalgMatrix ); ## <#GAPDoc Label="NumeratorOfHilbertPoincareSeries"> ## <ManSection> ## <Attr Arg="A" Name="NumeratorOfHilbertPoincareSeries"/> ## <Returns>a univariate polynomial with rational coefficients</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "NumeratorOfHilbertPoincareSeries", IsHomalgMatrix ); ## <#GAPDoc Label="HilbertPoincareSeries"> ## <ManSection> ## <Attr Arg="A" Name="HilbertPoincareSeries"/> ## <Returns>a univariate rational function with rational coefficients</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "HilbertPoincareSeries", IsHomalgMatrix ); ## <#GAPDoc Label="HilbertPolynomial"> ## <ManSection> ## <Attr Arg="A" Name="HilbertPolynomial"/> ## <Returns>a univariate polynomial with rational coefficients</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "HilbertPolynomial", IsHomalgMatrix ); ## <#GAPDoc Label="AffineDimension"> ## <ManSection> ## <Attr Arg="A" Name="AffineDimension"/> ## <Returns>a nonnegative integer</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "AffineDimension", IsHomalgMatrix ); ## <#GAPDoc Label="AffineDegree"> ## <ManSection> ## <Attr Arg="A" Name="AffineDegree"/> ## <Returns>a nonnegative integer</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "AffineDegree", IsHomalgMatrix ); ## <#GAPDoc Label="ProjectiveDegree"> ## <ManSection> ## <Attr Arg="A" Name="ProjectiveDegree"/> ## <Returns>a nonnegative integer</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "ProjectiveDegree", IsHomalgMatrix ); ## <#GAPDoc Label="ConstantTermOfHilbertPolynomial"> ## <ManSection> ## <Attr Arg="A" Name="ConstantTermOfHilbertPolynomialn"/> ## <Returns>an integer</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix (row convention). ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "ConstantTermOfHilbertPolynomial", IsHomalgMatrix ); ## <#GAPDoc Label="MatrixOfSymbols"> ## <ManSection> ## <Attr Arg="A" Name="MatrixOfSymbols"/> ## <Returns>an integer</Returns> ## <Description> ## <A>A</A> is a &homalg; matrix. ## </Description> ## </ManSection> ## <#/GAPDoc> ## DeclareAttribute( "MatrixOfSymbols", IsHomalgMatrix ); #################################### # # global functions and operations: # #################################### # constructors: DeclareGlobalFunction( "homalgInternalMatrixHull" ); DeclareGlobalFunction( "HomalgMatrix" ); DeclareGlobalFunction( "HomalgMatrixWithAttributes" ); DeclareGlobalFunction( "HomalgZeroMatrix" ); DeclareGlobalFunction( "HomalgIdentityMatrix" ); DeclareGlobalFunction( "HomalgInitialMatrix" ); DeclareGlobalFunction( "HomalgInitialIdentityMatrix" ); DeclareGlobalFunction( "HomalgVoidMatrix" ); DeclareGlobalFunction( "HomalgDiagonalMatrix" ); DeclareGlobalFunction( "HomalgScalarMatrix" ); DeclareGlobalFunction( "ListToListList" ); DeclareOperation( "CreateHomalgMatrixFromString", [ IsString, IsHomalgRing ] ); DeclareOperation( "CreateHomalgMatrixFromString", [ IsString, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "CreateHomalgBlockDiagonalMatrixFromStringList", [ IsList, IsList, IsList, IsHomalgRing ] ); DeclareOperation( "CreateHomalgMatrixFromSparseString", [ IsString, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "CreateHomalgMatrixFromList", [ IsList, IsHomalgRing ] ); DeclareOperation( "CreateHomalgMatrixFromList", [ IsList, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "SaveHomalgMatrixToFile", [ IsString, IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "SaveHomalgMatrixToFile", [ IsString, IsHomalgMatrix ] ); DeclareOperation( "LoadHomalgMatrixFromFile", [ IsString, IsHomalgRing ] ); DeclareOperation( "LoadHomalgMatrixFromFile", [ IsString, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrixViaListListString", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrixViaListListString", [ IsHomalgMatrix, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrixViaListString", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrixViaListString", [ IsHomalgMatrix, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrixViaSparseString", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrixViaSparseString", [ IsHomalgMatrix, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrix", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "ConvertHomalgMatrix", [ IsHomalgMatrix, IsInt, IsInt, IsHomalgRing ] ); #DeclareOperation( "*", # [ IsHomalgRing, IsHomalgMatrix ] ); #DeclareOperation( "*", # [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "RingMap", [ IsHomalgMatrix, IsHomalgRing, IsHomalgRing ] ); DeclareOperation( "RingMap", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "RingMap", [ IsHomalgMatrix ] ); # basic operations: DeclareOperation( "HomalgRing", [ IsHomalgMatrix ] ); DeclareOperation( "LeftInverseLazy", [ IsHomalgMatrix ] ); DeclareOperation( "RightInverseLazy", [ IsHomalgMatrix ] ); DeclareOperation( "GetRidOfObsoleteRows", [ IsHomalgMatrix ] ); DeclareOperation( "GetRidOfObsoleteColumns", [ IsHomalgMatrix ] ); DeclareOperation( "BlindlyCopyMatrixProperties", [ IsHomalgMatrix, IsHomalgMatrix ] ); DeclareOperation( "SetConvertHomalgMatrixViaSparseString", [ IsHomalgMatrix, IsBool ] ); DeclareOperation( "SetConvertHomalgMatrixViaFile", [ IsHomalgMatrix, IsBool ] ); DeclareOperation( "SetMatElm", [ IsHomalgMatrix, IsInt, IsInt, IsString, IsHomalgRing ] ); DeclareOperation( "SetMatElm", [ IsHomalgMatrix, IsInt, IsInt, IsRingElement, IsHomalgRing ] ); DeclareOperation( "AddToMatElm", [ IsHomalgMatrix, IsInt, IsInt, IsRingElement ] ); DeclareOperation( "AddToMatElm", [ IsHomalgMatrix, IsInt, IsInt, IsRingElement, IsHomalgRing ] ); DeclareOperation( "MatElmAsString", [ IsHomalgMatrix, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "MatElmAsString", [ IsHomalgMatrix, IsInt, IsInt ] ); DeclareOperation( "MatElm", [ IsHomalgMatrix, IsInt, IsInt, IsHomalgRing ] ); DeclareOperation( "GetListOfMatrixAsString", [ IsList ] ); DeclareOperation( "GetListListOfStringsOfMatrix", [ IsList, IsHomalgRing ] ); DeclareOperation( "GetListListOfStringsOfHomalgMatrix", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "GetListOfHomalgMatrixAsString", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "GetListOfHomalgMatrixAsString", [ IsHomalgMatrix ] ); DeclareOperation( "GetListListOfHomalgMatrixAsString", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "GetListListOfHomalgMatrixAsString", [ IsHomalgMatrix ] ); DeclareOperation( "GetSparseListOfHomalgMatrixAsString", [ IsHomalgMatrix, IsHomalgRing ] ); DeclareOperation( "GetSparseListOfHomalgMatrixAsString", [ IsHomalgMatrix ] ); DeclareOperation( "EntriesOfHomalgMatrixAsListList", [ IsHomalgMatrix ] ); DeclareOperation( "EntriesOfHomalgMatrix", [ IsHomalgMatrix ] ); DeclareOperation( "AreComparableMatrices", [ IsHomalgMatrix, IsHomalgMatrix ] ); DeclareOperation( "GetUnitPosition", [ IsHomalgMatrix, IsList ] ); DeclareOperation( "GetUnitPosition", [ IsHomalgMatrix ] ); DeclareOperation( "GetCleanRowsPositions", [ IsHomalgMatrix, IsList ] ); DeclareOperation( "GetCleanRowsPositions", [ IsHomalgMatrix ] ); DeclareOperation( "GetColumnIndependentUnitPositions", [ IsHomalgMatrix, IsList ] ); DeclareOperation( "GetColumnIndependentUnitPositions", [ IsHomalgMatrix ] ); DeclareOperation( "GetRowIndependentUnitPositions", [ IsHomalgMatrix, IsList ] ); DeclareOperation( "GetRowIndependentUnitPositions", [ IsHomalgMatrix ] ); DeclareOperation( "DivideEntryByUnit", [ IsHomalgMatrix, IsInt, IsInt, IsRingElement ] ); DeclareOperation( "DivideRowByUnit", [ IsHomalgMatrix, IsInt, IsRingElement, IsInt ] ); DeclareOperation( "DivideColumnByUnit", [ IsHomalgMatrix, IsInt, IsRingElement, IsInt ] ); DeclareOperation( "CopyRowToIdentityMatrix", [ IsHomalgMatrix, IsInt, IsList, IsInt ] ); DeclareOperation( "CopyColumnToIdentityMatrix", [ IsHomalgMatrix, IsInt, IsList, IsInt ] ); DeclareOperation( "SetColumnToZero", [ IsHomalgMatrix, IsInt, IsInt ] ); DeclareOperation( "ConvertRowToMatrix", [ IsHomalgMatrix, IsInt, IsInt ] ); DeclareOperation( "ConvertColumnToMatrix", [ IsHomalgMatrix, IsInt, IsInt ] ); DeclareOperation( "ConvertMatrixToRow", [ IsHomalgMatrix ] ); DeclareOperation( "ConvertMatrixToColumn", [ IsHomalgMatrix ] ); DeclareOperation( "Involution", [ IsHomalgMatrix ] ); DeclareOperation( "CertainRows", [ IsHomalgMatrix, IsList ] ); DeclareOperation( "CertainColumns", [ IsHomalgMatrix, IsList ] ); DeclareOperation( "UnionOfRows", [ IsHomalgMatrix, IsHomalgMatrix ] ); DeclareOperation( "UnionOfColumns", [ IsHomalgMatrix, IsHomalgMatrix ] ); DeclareOperation( "DiagMat", [ IsList ] ); DeclareOperation( "KroneckerMat", [ IsHomalgMatrix, IsHomalgMatrix ] ); DeclareOperation( "*", ## this must remain, since an element in IsInternalMatrixHull [ IsInternalMatrixHull, IsInternalMatrixHull ] ); ## is not a priori IsMultiplicativeElement DeclareOperation( "DiagonalEntries", [ IsHomalgMatrix ] ); DeclareOperation( "Minors", [ IsInt, IsHomalgMatrix ] ); DeclareOperation( "MaximalMinors", [ IsHomalgMatrix ] ); DeclareOperation( "Numerator", [ IsHomalgMatrix ] ); DeclareOperation( "Denominator", [ IsHomalgMatrix ] ); DeclareOperation( "CoefficientsOfUnreducedNumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "CoefficientsOfNumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "UnreducedNumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList, IsRingElement ] ); DeclareOperation( "UnreducedNumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "UnreducedNumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsRingElement ] ); DeclareOperation( "NumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList, IsRingElement ] ); DeclareOperation( "NumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "NumeratorOfHilbertPoincareSeries", [ IsHomalgMatrix, IsRingElement ] ); DeclareOperation( "HilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList, IsRingElement ] ); DeclareOperation( "HilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList, IsString ] ); DeclareOperation( "HilbertPoincareSeries", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "HilbertPoincareSeries", [ IsHomalgMatrix, IsRingElement ] ); DeclareOperation( "HilbertPoincareSeries", [ IsHomalgMatrix, IsString ] ); DeclareOperation( "HilbertPolynomial", [ IsHomalgMatrix, IsList, IsList, IsRingElement ] ); DeclareOperation( "HilbertPolynomial", [ IsHomalgMatrix, IsList, IsList, IsString ] ); DeclareOperation( "HilbertPolynomial", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "HilbertPolynomial", [ IsHomalgMatrix, IsRingElement ] ); DeclareOperation( "HilbertPolynomial", [ IsHomalgMatrix, IsString ] ); DeclareOperation( "AffineDimension", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "AffineDegree", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "ProjectiveDegree", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "ConstantTermOfHilbertPolynomial", [ IsHomalgMatrix, IsList, IsList ] ); DeclareOperation( "Pullback", [ IsHomalgRingMap, IsHomalgMatrix ] ); DeclareOperation( "NoetherNormalization", [ IsHomalgMatrix ] ); DeclareOperation( "Iterator", [ IsHomalgMatrix ] ); DeclareOperation( "Select", [ IsHomalgMatrix, IsList ] ); DeclareOperation( "ClearDenominatorsRowWise", [ IsHomalgMatrix ] ); #################################### # # synonyms: # ####################################