Changelog for hspray-0.5.4.0
Changelog for hspray
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to the Haskell Package Versioning Policy.
0.1.0.0 - 2022-12-11
First release.
0.1.1.0 - 2022-12-12
-
New functions
toList,sprayTermsandbombieriSpray. -
New operation
.^, to multiply a spray by an integer. -
Added some unit tests.
0.1.2.0 - 2023-02-24
New function derivSpray, to differentiate a spray.
0.1.3.0 - 2023-08-29
-
Powers(..)is now exported. -
Completed the README to show how to deal with symbolic coefficients.
0.2.0.0 - 2024-03-14
-
New functions
prettySpray'andprettySprayXYZ. -
New function
substituteSpray. -
New function
sprayDivision, to perform the division of a spray by a list of sprays. -
New function
groebner, to compute a Gröbner basis of a list of sprays. -
New function
isSymmetricSpray, to check whether a spray is a symmetric polynomial. -
New function
isPolynomialOf, to check whether a spray can be expressed as a polynomial of a given list of sprays.
0.2.1.0 - 2024-03-22
-
New functions
permuteVariablesandswapVariables. -
New function
resultant, to compute the resultant of two sprays. -
New function
subresultants, to compute the subresultants of two sprays.
0.2.1.1 - 2024-03-25
-
Improved the documentation.
-
Flipped the order of appearance of the terms in the output of the
prettySprayfunctions.
0.2.2.0 - 2024-03-26
- Fixed an error in
esPolynomial, which resulted to a bug inisSymmetricSpray.
0.2.3.0 - 2024-03-28
-
New unit tests.
-
Fixed
resultantandsubresultants: the variables of the sprays they return were incorrect. -
New function
gcdQX, to compute the greatest common divisor of two univariate sprays with rational coefficients.
0.2.4.0 - 2024-03-30
-
Flipped the order of the arguments in
permuteVariablesandswapVariables. -
New function
gcdSpray, to compute the greatest common divisor of two sprays with coefficients in a field. -
The function
gcdQXhas been removed sincegcdSprayis more general. -
The function
sprayDivisionhas been renamed tosprayDivisionRemainder. -
New function
sprayDivision, returning the quotient and the remainder of the division of two sprays.
0.2.5.0 - 2024-04-02
-
New function
resultant'which computes the resultant of two sprays with coefficients in a field. Thus it is less general than the functionresultantbut it is more efficient. -
Fixed a small mistake in
isSymmetricSprayandisPolynomialOf: these functions didn't deal with the constant term of the spray. -
New function
psPolynomialwhich computes the power sum polynomials. -
A particular type of sprays, namely
SymbolicSpray a, has been introduced. The coefficients of these sprays are ratios of univariate polynomials withacoefficients. There is a specializationSymbolicQSprayfor the case whenais a type of rational numbers. The necessary instances have been defined and there is the functionprettySymbolic(Q)Sprayto display such sprays. There are also some functions to perform evaluation of such sprays.
0.2.6.0 - 2024-04-15
-
New function
collinearSprayswhich checks whether two sprays are collinear. -
The function
isPolynomialOfthrew an error when the number of variables in the spray to be tested was less than the number of variables in the list of sprays. That is me who programmed this error and this was wrong: for example,x = p1 - p2^*^p3withp1 = x + y^*^z,p2 = y, andp3 = z. -
New functions to print sprays with numeric coefficients, such as
prettyNumSprayandprettyQSpray. -
The functions
prettySpray,prettySpray'andprettySpray''have been changed. -
New functions to print symbolic sprays.
-
Documentation and README have been improved.
0.2.7.0 - 2024-04-19
-
Defined
qlone, which is the same aslonebut always returns a rational spray (aQSprayspray). -
The function
sprayDivisionran into an infinite loop when the divisor was constant. This has been fixed. -
New function
characteristicPolynomial, to compute the characteristic polynomial of a matrix. -
Gegenbauer polynomials. They have been implemented mainly to provide an illustration of the type
Spray (Spray a)in README. -
New function
evalSpraySpray, to evaluate the spray coefficients of aSpray (Spray a)spray, thereby yielding aSpray aspray. -
New type
RatioOfSprays a, whose objects represent ratios of polynomials represented by twoSpray aobjects. Thus the typeSpray (RatioOfSprays a)allows more possibilities than the typeSymbolicSpray abecause it is not restricted to univariate fractions of polynomials, and obviously it also allows more possibilities than the typeSpray (Spray a). Instances and arithmetic operations for these ratios of sprays have been defined. The result of an arithmetic operation always is an irreducible fraction. See README for examples. -
Jacobi polynomials. They have been implemented mainly to experiment the type
Spray (RatioOfSprays a). By the way, this type has been namedParametricSpray a, but this is possibly temporary. -
The class
HasVariables ahas been introduced in order to have some functions which apply to bothSpray aobjects andRatioOfSprays aobjects. -
The function
derivSprayno longer exists. To get a derivative of a spray, use thederivativefunction, which is also applicable to a ratio of sprays (this is a method of the classHasVariables). -
A spray with coefficients in a field can now be divided by a scalar by using the
/>operator. This operator can also be used to divide a ratio of sprays (with coefficients in a field) by a scalar.
0.3.0.0 - 2024-04-21
-
The type
SymbolicSpray ahas been renamed toOneParameterSpray a, and all functions names which contained the stringSymbolichave been changed by replacingSymbolicwithOnePerameter. -
The class
HasVariables, which is instantiated forSprayandRatioOfSprays, has a new methodchangeVariablesallowing to perform polynomial transformations of the variables of a spray and of a ratio of sprays. For sprays, this is the same as thecomposeSprayfunction. -
The class
HasVariablesis now also instantiated forRatioOfPolynomials. -
The type alias
ParametricSpray a = Spray (RatioOfSprays a)has been kept and the type aliasSimpleParametricSpray a = Spray (Spray a)has been introduced. We say that aSpray bspray is parametric whenbhas theHasVariablesinstance. So this applies to aParametricSpray aspray, to aSimpleParametricSpray aspray, and also to aOneParameterSpray aspray (recall thatOneParameterSpray a = Spray (RatioOfPolynomials a)). -
Functions to print
ParametricSpraysprays andSimpleParametricSpraysprays. -
Function
numberOfParameters, returning the number of parameters of a parametric spray, that is to say the number of variables occurring in the coefficients of this spray. -
Function
changeParameters, to perform polynomial transformations of the parameters of a parametric spray. -
Function
substituteParameters, to replace the parameters of a parametric spray with some values. For aSimpleParametricSprayspray, this function is the same asevalSpraySpray(which will probably disappear in the future). -
Function
evalParametricSpray, to replace the variables of a parametric spray with some values.
0.4.0.0 - 2024-04-27
-
The efficiency of the arithmetic on the
RatioOfSpraysfractions of polynomials has been greatly improved for the univariate case. According to some benchmarks on the Jack polynomials, theParametricSpraysprays with only one parameter are now more efficient than theOneParameterSpraysprays. -
For this reason, the Jack polynomials with a symbolic Jack parameter, implemented in the 'jackpolynomials' package, are represented by
ParametricSpraysprays in a new version of the package, while there were previously represented byOneParameterSpraysprays. -
Slight improvements of the code in general.
-
Function
lone'to construct monomials likex_n^pmore efficiently thanlone n ^**^ p. -
Function
monomialto construct monomials likex_1^4.x_3^7.
0.5.0.0 - 2024-05-01
-
The class
HasVariableshas been renamed toFunctionLike, and the arithmetic operations for sprays (^+^,^-^,^*^,^**^,*^) have been moved to this class. Therefore it is now possible to apply these operations to the ratios of sprays. Moreover, there are two new operators in this class,(+>)and(<+), which allow to add a constant to an object of this class. For example,x +> spraygives the same result asconstantSpray x ^+^ spraybut is more efficient. -
There was an error in
gcdSpray. -
There was a small mistake in
collinearSprays. -
The functions
changeParametersandchangeVariablesdid not remove the possibly null terms of their result. -
The function
groebnerhas been renamed togroebnerBasis. -
Function
isHomogeneousSpray, to check whether a spray defines a homogeneous polynomial.
0.5.1.0 - 2024-05-03
-
An error in an internal function resulted in an error in
groebnerBasis. It has been fixed. -
A limit on the number of elements of a Gröbner basis has been set in the algorithm performed by
groebnerBasis. When this limit is attained, an error is thrown. The reason of this limit is that I encountered an example of a large Gröbner basis and the algorithm took a quite long time. -
There was an error in
esPolynomial. -
The
FunctionLikeclass provides two new functions:involvesVariable, to check whether a variable is involved in a function-like object (a spray or a ratio of sprays), anddropVariables, to drop a given number of leading variables in a function-like object. ThedropVariablesfunctions is very unsafe: if a variable is dropped while it is involved, the result can be an invalid function-like object.
0.5.2.0 - 2024-05-05
-
Function
polynomialSubresultants, to compute the polynomial subresultants of two sprays (while thesubresultantsfunction computes the principal subresultants). -
Function
sturmHabichtSequence, to compute the Sturm-Habicht sequence of a spray. -
Function
principalSturmHabichtSequence, to compute the principal Sturm-Habicht sequence of a spray. -
Functions
numberOfRealRoots,numberOfRealRootsInOpenIntervalandnumberOfRealRootsInClosedInterval, to compute the total number of real roots of a suitable univariate spray or its number of real roots in a given interval. This can be very slow if the degree of the spray is not small.
0.5.3.0 - 2024-06-03
- Now the denominator of a
RatioOfSpraysis always monic, i.e. it is a polynomial whose leading coefficient is 1.
0.5.4.0 - 2024-06-19
-
Now the greatest common divisor of two sprays (function
gcdSpray) is always monic, i.e. it is a polynomial whose leading coefficient is 1. -
Function
evalRatioOfSprays', to substitute the variables of a ratio of sprays with some ratios of sprays.