PolynomialTools

Real-rootedness, interlacing, log-concavity, Eulerian and h*-polynomials, recurrence finding, Hilbert functions.

Load with Needs["PolynomialTools`"].

Background on symmetricfunctions.com: Real-rooted and stable polynomials, Interlacing polynomials, Eulerian polynomials, Gamma-positive polynomials, Ehrhart theory.

Functions and symbols

BinomialEulerianPolynomial

BinomialEulerianPolynomial[n,t] returns the Binomial Eulerian polynomial, introduced by Athanasiadis.

CompleteHomogeneousPolynomial

CompleteHomogeneousPolynomial[d,{a,b},x] returns the degree-d complete homogeneous polynomial in variables x[a]…x[b].

DenominatorIndexDegree

DenominatorIndexDegree is an option for FindPolynomialRecurrence; its default is 0 and its value is a non-negative integer.

DenominatorVariableDegree

DenominatorVariableDegree is an option for FindPolynomialRecurrence; its default is 0 and its value is a non-negative integer.

DifferentialDegree

DifferentialDegree is an option for FindPolynomialRecurrence; its default is 0 and its value is a non-negative integer.

ElementarySymmetricPolynomial

ElementarySymmetricPolynomial[d,{a,b},x] returns the degree-d elementary symmetric polynomial in variables x[a]…x[b].

EulerianA

EulerianA[n,m] returns the Eulerian number counting permutations of n with m descents.

Background: Eulerian polynomials

EulerianAPolynomial

EulerianAPolynomial[n,t] returns Sum[EulerianA[n,m] t^m,{m,n}] as a polynomial in t.

Background: Eulerian polynomials

FindPolynomialRecurrence

FindPolynomialRecurrence[{p1,p2,…,pk},{t,n}] returns
a linear recursion involving the polynomials (in t) and their derivatives, and coefficients in
t and n. Options are used to specify maximal length of recursion, maximal degree of differentiation,
and maximal degree in t and degree in n.

FindStablePolynomialCounterExample

FindStablePolynomialCounterExample[poly] uses FindInstance to look for a counterexample to stability.

GammaPolynomial

GammaPolynomial[poly,x] expands a palindromic polynomial in the gamma-basis. See Athanasiadis for background.

Background: Gamma-positive polynomials

HilbertFunctionValues

HilbertFunctionValues[polyIdeal,vars,d] returns the Hilbert function values through degree d for an ideal generated by polyIdeal in vars.

Homogeneous

Homogeneous is an option for FindPolynomialRecurrence; its default is True and its value is True or False.

HStarPolynomial

HStarPolynomial[pol] returns the h*-polynomial using the first variable of pol.
HStarPolynomial[pol,x] returns the h*-polynomial in the specified variable x.

Background: Ehrhart theory

HStarVectorToEhrhart

HStarVectorToEhrhart[vec,t] returns the Ehrhart polynomial associated with the h-vector.

Background: Ehrhart theory

HVector

HVector[poly, x] returns the h-vector associated with the polynomial poly in x, with trailing zero entries retained through the degree of poly.

Background: Ehrhart theory

HVectorInequalitiesQ

HVectorInequalitiesQ[{1,h1,h2,…,hd}] returns True if the vector satisfies several necessary inequalities for an h*-vector; the conditions are not sufficient.

Background: Ehrhart theory

IndexDegree

IndexDegree is an option for FindPolynomialRecurrence; its default is 1 and its value is a non-negative integer.

Interleaving2x2MinorQ

Interleaving2x2MinorQ[m,t] returns true if the 2x2-matrix m (in t) preserves interlacing. See Bränden’s work.

InterleavingRootsQ

InterleavingRootsQ[P,Q,t] returns True if the real roots of P and Q weakly interleave, with the largest root of Q at least the largest root of P.
InterleavingRootsQ[{p1,p2,…},t] returns True if every pair of polynomials in the list weakly interleaves. The WorkingPrecision option defaults to 30.

IsLorentzianQ

IsLorentzianQ[polynomial] returns true if the polynomial is Lorentzian (in all variables). Set second argument to true if check for Normalized Lorentzian.

LogConcaveQ

LogConcaveQ[poly,t] returns true if coefficients form a log-concave sequence.

RealRootedQ

RealRootedQ[poly] returns True if poly is a real-rooted univariate polynomial in its single variable, or a constant.
RealRootedQ[poly,t] returns True if poly is a real-rooted univariate polynomial in t, or a constant.

Background: Real-rooted and stable polynomials

RecurrenceLength

RecurrenceLength is an option for FindPolynomialRecurrence; its default is 2 and its value is a non-negative integer.

RefinedEulerian

RefinedEulerian[n,j,t] returns the descent-generating polynomial for permutations in S_n with pi(1)=j.

RefinedEulerianCoefficients

RefinedEulerianCoefficients[poly,t] returns the coefficients in the refined Eulerian basis.

RulesList

RulesList is an option for FindPolynomialRecurrence; its default is False, and True returns the recurrence coefficients as rules.

SamePhaseStableQ

SamePhaseStableQ[poly, [samples] ] randomly checks some stuff.

SequenceToPolynomial

SequenceToPolynomial[f, x] returns a polynomial in x interpolating the sequence f[1], f[2], …; it samples one value beyond the candidate degree. SequenceToPolynomial[f, x, maxDegree] limits the search to degree maxDegree (default 30).

SEulerianPolynomial

SEulerianPolynomial[s,t] returns the s-Eulerian polynomial associated with positive vector s.

StablePolynomialQ

StablePolynomialQ[poly, [samples] ] randomly checks some stuff.

SturmSequenceQ

SturmSequenceQ[polys,x] returns true if the sequence forms a Sturm sequence.

SymmetricDecomposition

SymmetricDecomposition[p,x] returns two palindromic polynomials, a,b, such that p=a+xb

UltraLogConcaveQ

UltraLogConcaveQ[poly,t] returns true if coefficients form an ultra log-concave sequence.

VariableDegree

VariableDegree is an option for FindPolynomialRecurrence; its default is 1 and its value is a non-negative integer.


Generated by Scripts/BuildDocs.m from the repository. MIT license.