                   ----------------------------------------
                   | CHANGES of the numericalsgps package |
                   ----------------------------------------

#======
1.3.0 -> 1.3.0 dev
- LegendrianGenericNumericalSemigroup
- AperyList now works for an ideal, and computes the Apéry list wrt the multiplicity of its ambient numerical semigroup
- Added SpecialArfGaps, IsArfIrreducible, ArfOverSemigroups, DecomposeIntoArfIrreducibles 
- Added DenumerantIdeal
- Remove IsRectangularTable as filter 
- Added IsUniversallyFreeNumericalSemigroup
- BinomialIdealOfNumericalSemigroup

#======
1.2.2 -> 1.3.0
- Addeed NearlyGorensteinVectors
- Added CircuitsOfKernelCongruence, PrimitiveRelationsOfKernelCongruence, IsMinimalRelationOfNumericalSemigroup, AllMinimalRelationsOfNumericalSemigroup
- Added IsAlmostCanonicalIdeal, IsNearlyGorenstein, IsGeneralizedAlmostSymmetric, IsHomogeneousNumericalSemigroup, AsNumericalDuplication, DilatationOfNumericalSemigroup, RFMatrices (by Francesco Strazzanti)
- Added new section in the chapter of factorizationas, and moved IsMpure and IsPure to this new section
- Added PseudoFrobenius, Type and FrobeniusNumber for an ideal of a numerical semigroup 
- Added IsComplementOfIntegralIdeal and IdealByDivisorClosedSet
- ViewString for affine semigroups now considers singular in a single generator or minimal generator
- Decomposition of ideals into irreducibles (by Jorge Angulo)
- NumericalSemgigroupByNuSequence and NumericalSemgigroupByTauSequence (by Jorge Angulo)

#======
1.2.1 -> 1.2.2
- Bug fix for DivisorsOfElementInNumericalSemigroup(0,s).
- Bug fix in proportionally modular affine semigroups of dimenstion two
- Added IsSubset for ideals of numerical semigroups
- Disabled GradedModules

#=======
1.2.0 -> 1.2.1
- Changes in tests to fit new version of gapdays
- Code for ideals of affine semigroups by Helena Martin Cruz

#=======
1.1.0 -> 1.2.0 * brief summary *
* This is just a summary of the changes made from the major release 1.1.0 to the major release 1.2.0.
* For details, please check the lists of changes between minor releases below.
- Many small fixes and slight improvements (both in the code and in the manual).
- Many functions added (in particular some for affine and good semigroups (especially for generalized numerical semigroups - contributions of Carmelo Cisto, and for good semigroups - contributions of Nicola Maugeri))
- Travis & Codecov support added (great help of Max Horn in this and other aspects).
- The list of contributors has increased and has been updated.
- Great improvement of the critical functions 'AperyList' (thanks Chris O'Neill) and 'SmallElements': this led to a considerable speedup of numerous functions in the package.
- Added several shortnames.
- Globally profound revision of the manual.
- Several functions marked as obsolet and finally removed.
#=======

1.1.11 -> 1.1.11 dev
- New implementation of AperyListOfNumericalSemigroupWRTElement by Chris O'Neill (this affects the speed of many other functions in the package)
- added WittCoefficients for a univariate polynomial
- added several functions for good semigroups implemented by Nicola Maugeri
- Code coverage improved

1.1.10 -> 1.1.11
- various small fixes and improvements
- fixed a problem in ArfGoodSemigroupClosure (Thanks Nicola Maugeri!)
- updates in the manual and in the test file
- Travis integration updated (Thanks Max Horn!)
- added functions for random semigroups with genus
- added functions for affine semigroups with a finite number of gaps (generalized numerical semigroups) -- mostly contributions of Carmelo Cisto
- improved the SmallElements method for a numerical semigroup given by generators. (The improvement goes beyond the order of 20 in most examples.)	   
1.1.9 -> 1.1.10
- added the global function ElementsUpTo
- avoid duplication of tests in some methods
- avoid using obsolete 'Tuple' (Thanks Max Horn!)
1.1.8 -> 1.1.9
- avoid differences in the output when all packages are loaded (the order of the pairs in representations is not relevant)
- small fixes (Irreducibles, PseudoFrobenius, OmegaPrimalityOfElement*)
- mark some functions as obsolete, namely: NumericalSemigroupByMinimalGenerators
- Updates in the manual. This includes: fixing typos; adding text (mainly in the introduction of chapters or sections); adding links.
- reference to external packages in the banner (and decrease the Info level ...
- updates in the test file (in part to improve code coverage)
- shortnames for various functions (e.g. CatenaryDegree, TameDegree, elasticity functions)
- added ElasticityOfFactorizationsElementWRTAffineSemigroup
- added Weight of a numerical semigroup
- MinimalGenerators (for good semigroups) -> MinimalGoodGenerators
- PrimitiveElements (which was part of the name of several functions) -> DegreesOfPrimitiveElements
- Fixed inconsistency in the function ForcedIntegersForPseudoFrobenius (pointed out by I. Ojeda) 
- new version of AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber
- functions AlmostSymmetricNumericalSemigroupsWithFrobeniusNumberAndType and AlmostSymmetricNumericalSemigroupsFromIrreducibleAndGivenType by Ignacio Ojeda
- NumericalSemigroupByGaps([]) now returns N (it produced an error before)
- GPL file added to the repository
- README.md updated (mainly for Travis & Codecov support) (Many thanks to Max Horn)

1.1.7->1.1.8
- functions to translate graphs related to numerical and affine semigroups to the dot language

1.1.6->1.1.7
- some technical improvements related to automatic tests

1.1.5->1.1.6
- NumberElement_IdealOfNumericalSemigroup and ElementNumber_IdealOfNumericalSemigroup
- List and sublist access for numerical semigroups and ideals of numerical semigroups, \[\] and \{\}
- Iterator for numerical semigroup and ideals of numerical semigroups
- NextElementOfNumericalSemigroup, NumberElement_NumericalSemigroup and ElementNumber_NumericalSemigroup

1.1.4->1.1.5
- Fixed an issue related to the names of indeterminates that caused problems in the test file

1.1.3->1.1.4
- Removed SuggestedOtherPackages (some are incompatible, and other require special installation that might produce errors for unexperienced users)

1.1.2->1.1.3
- GBASIS is not set while loading singular; it is set inside functions calling Gröbner basis for methods using singular.
1.1.1->1.1.2
- Type is now an operation (clash with FinIng), and TypeOfNumericalSemigroup remains an attribute
1.1.0->1.1.1
- Inequalities was used in MatricesForHomalg as an operation, and so we turned it an operation; the corresponding attribute is AffineSemigroupInequalities
- removed all methods in singular using SingularLibrary (this was producing unexpected issues if the required software for the singular libraries was not well installed)
- Removed [0,..,0] from GraverBasis in some methods (and thus in the testify)
- Fixed issue with GeneratorsOfKernelCongruence and MinimalPresentationOfAffineSemigroup when it was empty (singular method)

1.0.1->1.1.0
- Contributors updated
- Added FengRao numbers and distances
- Added rth element of a numerical semigroup and divisors of an elemenet
- Moved to GitHub
- Now PackageInfo gathers collaborators: authors that are neither authors nor mantainers
- Minor corrections in the manual
- Improved membership method for numericalsemigroups for the case generators are known; bounds for the conductor are now used
- GeneratorsKhalerDifferentials -> GeneratorsKahlerDifferentials
- SmallElements now return small elements as a set (better performance for membership, maxima and minima)
- *gapdays in Siegen*
- Added GeneratorsKhalerDifferentials
- Added ModuleGenerators_Global (computes a basis an ideal of a polynomial algebra in one variable)
- Cleaning the code of MinimalGeneratingSystemOfNumericalSemigroup (Alfredo Sánchez-R. Navarro pointed out that the code was hard to understand) and making it faster
- Cleaning the code of RepresentsSmallElementsOfNumericalSemigroup and making it faster
- Added RatliffRushNumberOfIdealOfNumericalSemigroup, AsymptoticRatliffRushNumberOfIdealOfNumericalSemigroup, RatliffRushClosureOfIdealOfNumericalSemigroup
- Now NumericalDuplication is more flexible (the third argument does not have to be in the semigroup, Alessio Borzi and Francesco Strazzanti)
- DenumerantOfElementInNumericalSemigroup now uses NrRestrictedPartitions
- Changes when the user wants to use the "singular" package
- Faster functions for Arf semigroups with given Frobenius or genus and Arf Characters (G. Zito)
- Added new implementations for IsSelfReciprocalPolynomial and IsKroneckerPolynomial (Andrés Herrera)
- Now synonyms are the long names and the originals are short (thanks for the suggestion Sebastian Gutsche)
- Intersection is now shorthand for IntersectionOfNumericalSemigroups and IntersectionIdealsOfNumericalSemigroup
- Added IsOrdinaryNumericalSemigroup and IsAcuteNumericalSemigroup (and synonyms IsOrdinary and IsAcute)
- IsSymmetricNumericalSemigroup is now a property, the same for IsPseudoSymmetricNumericalSemigroup, IsIrreducibleNumericalSemigroup and IsAlmostSymmetricNumericalSemigroup, and others related to complete intersections; synonyms added
- Added DesertsOfNumericalSemigroup
- HilbertBasis* and PrimitiveElements* now available with singular (through 4ti2 and normaliz libraries) (to be removed in the future?)
- Improved IsFreeNumericalSemigroup
- Added GraverBasis
- New implementation of catenary degree (using Kruskal algorithm)
- Updated references
- Added DeltaSetOfAffineSemigroup
- Added CanonicalBasisOfKernelCongruence
- Clarified the documentation relative to the various ways of defining numerical and affine semigroups
- Added some abbreviations to the names of some functions ("Gaps", Holes", "AperyList"...), especially at the documentation level
- External packages section in Affine Semigroups chapter was moved to its own chapter
- Added MinimalGenerators and Generators for affine semigroups
- Allowed a second argument in AperyList (an integer) and then AperyListOfNumericalSemigroupWRTElement or AperyListOfNumericalSemigroupWRTInteger is called depending on the membership of the integer to the semigroup
- NumericalSegrmioupByMinimalGenerators and NumericalSegrmioupByMinimalGeneratorsNC will be deprecated, and so are now undocumented
- New function MultiplicitySequenceOfNumericalSemigroup; also LipmanSemigroup is synonym of BlowUpOfNumericalSemigroup
- New function HolesOfNumericalSemigroup
- Added tools to deal with good semigroups in N^2 (membership, minimal good systems of generators, Arf closure, Arf test..) and good ideals
- Added KunzCoordinatesOfNumericalSemigroup and KunzPolytope
- New function NumericalDuplication
- New function InductiveSemigroup and MultipleOfNumericalSemigroup
- New function NumericalSemigroupByAffineMap
- New methods for computing the Frobenius number of a numerical semigroup and Apéry sets using Gröbner basis computations (thanks Ignacio Ojeda and Carlos Jesús Moreno Ávila); these rely on the package singular, 4ti2Interface and/or 4ti2gap
- New functions for counting Arf numerical semigroups
- Added SemigroupOfValuesOfPlaneCurve (depends on the package singular)
- Added several new attributes, namely "Generators", "MinimalGenerators" and "SmallElements", which work for the various kinds of semigroups where they make sense
  *REMARK* From this version on, the value of "Generators" (and consequently the value returned by GeneratorsOf..." or by "Generators") does not change even when the MinimalGenerators are computed
- New functions by Alessio Sammartano (thanks!): TorsionOfAssociatedGradedRingNumericalSemigroup and BuchsbaumNumberOfAssociatedGradedRingNumericalSemigroup
- AperyListOfNumericalSemigroupWRTInteger now admits negative integers
- Fixed bug with number of numerical semigroups with given Frobenius number
- Fixed bug in RepresentsGapsOfNumericalSemigroup
- IsSubset must not be declared -- fixed
- Some error messages with typos in SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity corrected
- Fixed bug in IsProportionallyModularNumericalSemigroup
- Added functions for Wilf's conjecture based on Eliahou's paper
- Fixed bug while using SingularSetBaseRing in affine-extra-s.gi
- Added MultipleOfNumericalSemigroup and InductiveNumericalSemigroup
- Added functions for patterns on ideals and semigroups (contribution K. Stokes)
- Added synonym for ANumericalSemigroupWithPseudoFrobeniusNumbers
- Conductor now gathers ConductorOfNumericalSemigroup and ConductorOfIdeal…
- Added LatticePathAssociatedToNumericalSemigroup (from the paper by Kunz and Waldi)
- Cleaned code from polynomials.gi
- IsHomogeneousList -> IsRectangularTable in omega primality
- Fixed bug (reported by I. Frolov) on the definition of proportionally modular numerical semigroups
- Added NumericalSemigroupWithGivenElementsAndFrobenius and auxiliary functions

0.980 -> 1
- NumSgpsTests() modified (Thanks Alexander!)
- Corrected and simplified usage of GAP type objects and declarations of GAP representations (Thanks Max!)
- Added functions to find the set of numerical semigroups (or a random numerical semigroup) with a given set of pseudo-Frobenius numbers.
- Small bug with NumSgpsUseSingular[Interface] solved.
- Added GeneratorsOfKernelCongruence.
- Primitive elements of affine semigroups via Lawrence lifting (if normaliz or 4ti2 are not used) are now done via GeneratorsOfKernelCongruence instead of MinimalPresentationOfAffineSemigroup, since in this setting the generators of the kernel congruence are already a minimal presentation.
- Fixed bug in the definition of proportionally modular semigroups (affected the case a < c (in this case it should return the entire N) -- )
- The function AperyListOfNumericalSemigroup has been added. It has only a numerical semigroup as argument and does the same than AperyListOfNumericalSemigroupWRTElement when considered relative to the multiplicity (which is, by far, the most important case).
- The components of the objects "NumericalSemigroup" and "IdealOfNumericalSemigroup" became attributes. All "!." used either to access the components and to assign new values to them have been changed accordingly. It affected various files.
- ReducedSetOfGeneratorsOfNumericalSemigroup became just a synonym of MinimalGeneratingSystemOfNumericalSemigroup, since this function is now reasonably fast and the former one was not significantly used. The name was kept for compatibility with code produced for previous versions.
- GeneratorsOfNumericalSemigroupNC became a synonym of GeneratorsOfNumericalSemigroup. The former one had no interest. The name was kept for compatibility with code produced for previous versions.
- Small bug with InfoLevel 0 corrected.
- Connectedness of graphs now is faster, and thus BettiElementsOfNumericalSemigroup has been changed accordingly.
- Added functions for denumerant, maximal denumerant, additive semigroup, supersymmetric semigroup, adjustment of a numerical semigroup .
- Added functions for the homogenization of a numerical semigroup: Betti elements, catenary degree (homogeneous catenary degree).
- Fixed bug for the multiplicity of some proportionally modular numerical semigroups.
- Added star operation for ideals of numerical semigroups.
- Small bug fixed in the output of AsGluingOfNumericalSemigroups.
- Added IsUniquelPresentedNumericalSemigroup, IsGenericNumericalSemigroup.
- Fixed small bug in FactorizationsIntegerWRTList when there were duplicates in the second argument.
- New contributions of Chris O'Neil (see the contribution appendix of the manual) for factorizations, delta sets and omega primality of numerical semigroups.
- The chapters related to ideals and minimal presentations have been rearranged.
- Added Moebius function associated to the poset defined by a numerical semigroup.
- Added functions for cyclotomic numerical semigroups.
- Added functions for semigroup of values of curves parametrized by polynomials (also local version; series) and planar curves with a single place at infinity (approximate roots).
- MinimalGeneratingSystem is new function that admits both ideals and numerical semigroups (calling then the corresponding MinimalGeneratingSystem...).
- Added LFormsOfNumericalSemigroup.
- Added alternate catenary degrees: monotone, adjacent, equal, homogeneous.
- Added a new chapter for affine semigroups with functions designed for them (see manual).
- AsAffineSemigroup lets you see a numerical semigroup as an affine semigroup; whence use functions for affine semigroups with it.
- Interaction with 4ti2Interface, NormalizInterface, singular, SingularInterface and GradedModules. Methods implemented depending if these packages have been loaded.
- Now InfoNumSgps is used in more functions.


0.971 -> 0.980
- Fixed N not to be irreducible nor symmetric.
- Gluings of numerical semigroups added to the manual.
- New functions for almost symmetric numerical semigroups:
	-IsAlmostSymmetricNumericalSemigroup
	-AlmostSymmetricNumericalSemogrupsFromIrreducible
	-AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber
- New functions for complete intersection numerical semigroups
	- CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber
	- IsFreeNumericalSemigroup
	- FreeNumericalSemigroupsWithFrobeniusNumber
	- IsTelescopicNumericalSemigroup
	- TelescopicNumericalSemigroupsWithFrobeniusNumber
	- IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity
	- NumericalSemigroupsAssociatedIrreduciblePlanarCurveSingularityWithFrobeniusNumber
- New (faster) implementation of
        - IrreducibleNumericalSemigroupsWithFrobeniusNumber
- The output of BettiElementsOfNumericalSemigroup is now a set
- NumericalSemigroupsWithGenus(0) now returns []
- Improvements in
        - BelongsToNumericalSemigroup
        - FundamentalGapsOfNumericalSemigroup (much faster)
        - SpacialGapsOfNumericalSemigroup
- New functions for maximal embedding dimension numerical semigroups
	- ArfNumericalSemigroupsWithFrobeniusNumber
	- SaturatedNumericalSemigroupsWithFrobeniusNumber
- New functions related to factorizations of integers
	- RClassesOfSetsOfFactorizations
	- TameDegreeOfSetOfFactorizations
	- CatenaryDegreeOfSetOfFactorizations
	- DeltaSetOfSetOfIntegers
	- LengthsOfFactorizationsIntegerWRTList
	- FactorizationsIntegerWRTList
- New functions for Apéry sets added
	- AperyListOfIdealOfNumericalSemigroupWRTElement
	- AperyTableOfNumericalSemigroup
	- AperyListOfNumericalSemigroupWRTInteger
- New synonym included: S-I denotes (0+S)-I, the opposite or dual of the ideal I
- New contributions by Sammartano
	- TypeSequenceOfNumericalSemigroup
	- IsAperySetAlphaRectangular
	- IsAperySetBetaRectangular
	- IsAperySetGammaRectangular
	- IsGradedAssociatedRingNumericalSemigroupCI
- Factorizations of an integer (expressions as sums with nonnegative
coefficients of elements in a list) are now performed with
RestrictedPartitions, with a speed up of the functions that deal with
factorizations
- Improvement (speed up) of TameDegreeOfNumericalSemigroup
- The computation of minimal presentations now uses
RClassesOfSetsOfFactorizations and the FactorizationsIntegerWRTList,
and now is much faster

0.97 -> 0.971
- Fixed some bugs related to the numerical semigroup N. (These bugs did not produce wrong results.)
- New functions added
	-SaturatedNumericalSemigroupClosure
	-IsSaturatedNumericalSemigroup
	-AsGluingOfNumericalSemigroups
	-IsACompleteIntersectionNumericalSemigroup

0.96 -> 0.97
- Removed (for the sake of non-dependencies and simplicity: in particular, the folder "src" so as the files "drawapery.g*" and "xnumsgp.g*" containing the functions below have been removed)
	-DrawAperyListOfNumericalSemigroup
	-XDrawAperyListOfNumericalSemigroup
	-XNumericalSemigroup

- Fixed bugs in
	-IsSubsemigroupOfNumericalSemigroup
	-TameDegreeOfElementInNumericalSemigroup
	-NumericalSemigroupByFundamentalGaps
	-Random[[Proportionally]Modular]NumericalSemigroup

- Improvements in
	- MinimalGeneratingSystemOfNumericalSemigroup (the case of a semigroup given by generators is new)
	- NumericalSemigroup (when the generators form a range (i.e., an interval of integers); when the semigroup is given by a closed interval with rational ends or when the semigroup is given as a proportionally modular semigroup;  when the semigroup is given by two generators it is immediately seen as modular semigroup; modular semigroups are also proportionally modular semigroups and proportionally modular semigroups of proportion 1 are modular semigroups -- this information is stored so that specific algorithms can be immediately used)

- New functions added
	-GenusOfNumericalSemigroup
	-ConductorOfNumericalSemigroup
	-TypeOfNumericalSemigroup
	-EmbeddingDimensionOfNumericalSemigroup
	-BettiElementsOfNumericalSemigroup
	-IsGradedAssociatedRingNumericalSemigroupBuchsbaum (by A. Sammartano)
	-IsMpureNumericalSemigroup (by A. Sammartano)
	-IsPureNumericalSemigroup (by A. Sammartano)
	-IsGradedAssociatedRingNumericalSemigroupGorenstein (by A. Sammartano)
	-ReducedSetOfGeneratorsOfNumericalSemigroup

- New methods for existing functions
	-MultiplicityOfNumericalSemigroup (for semigroups given by intervals of rationals)

- Improved methods for existing functions
	- FrobeniusNumberOfNumericalSemigroup (a new algorithm for modular NS)
	- FrobeniusNumberOfNumericalSemigroup (the general method now uses Johnson's reduction, when possible; a fast algorithm for semigroups of embedding dimension 3 has been implemented)
	- SmallElementsOfNumericalSemigroup (As a numerical semigroup generated by an interval is automatically proportionally modular, the method for PM semigroups is used)

- Added documentation for the new functions and for
	-TameDegreeOfElementInNumericalSemigroup

0.95 -> 0.96

- New functions added:
      - CatenaryDegreeOfElementNS
      - CatenaryDegreeOfElementNS_NC
      - NumericalSemigroupsWithGenus
      - IsMonomialSemigroupRing

- fixed bugs in
      - IsProportionallyModularNumericalSemigroup
      - SmallElementsOfNumericalSemigroup
      - FactorizationsElementWRTNumericalSemigroup
      - BelongsToNumericalSemigroup [0\in S]


- improvements in
      - MinimalGeneratingSystemOfNumericalSemigroup
      - DrawAperyListOfNumericalSemigroup [to be usable in Windows]
      - GraphAssociatedToElementInNumericalSemigroup
