Softanza
DémarrerEnglish
Softanza
La bibliothèque se documente elle-même · Numérique et optimisation

stzPolynomial

23 méthodes propres · 7 formes avec extensions, rangées sous leur méthode

la source: base/number/stzPolynomial.ring(s'ouvre dans un nouvel onglet) · Toutes les classes · La référence du domaine : Numérique et optimisation

Sous chaque méthode, ses extensions (Q CS XT Z ZZ IB W U) : en gras et cochée, elle existe ; barrée, elle n'existe pas. Les extensions et leur sens

Exemples : 0 viennent des tests de la bibliothèque ; 18 ont été composés à partir de la signature de chaque méthode et exécutés pour cette page, sur un objet neuf, par exemple o1 = new stzPolynomial([1, -3, -5, 5, -6, 8]). 5 méthodes n'en ont pas encore. Exemples exécutés le 2026-10-03 12:54 dans la bibliothèque au commit 0e72e2e2c.

Méthode
Explication, telle que la source la porte
init
(sans commentaire dans la source : le nom se lit comme une phrase) initaucune extension
Coefficients
READING THE POLYNOMIALaussi écrite: Coeffsaucune extension
Degree
The degree: 0 for a constant, n for x^n. The zero polynomial has no meaningful degree; it answers 0.
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.Degree()
#--> 5
composé à partir de la signature, exécuté pour cette page
aucune extension
LeadingCoefficient
(sans commentaire dans la source : le nom se lit comme une phrase) leading coefficientaussi écrite: Leading
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.LeadingCoefficient()
#--> 1
composé à partir de la signature, exécuté pour cette page
aucune extension
IsMonic
(sans commentaire dans la source : le nom se lit comme une phrase) is monic
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.IsMonic()
#--> 1
composé à partir de la signature, exécuté pour cette page
aucune extension
IsZeroPolynomial
(sans commentaire dans la source : le nom se lit comme une phrase) is zero polynomial
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.IsZeroPolynomial()
#--> 0
composé à partir de la signature, exécuté pour cette page
aucune extension
Monic
The same polynomial scaled to leading coefficient 1 -- the form the companion matrix needs.QCSXTZZZIBWU
ValueAt
EVALUATION ------------------------------------------------------ p(x) by Horner's rule -- n multiplications, and numerically the steadiest way to evaluate a polynomial.aussi écrite: At · Eval
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.ValueAt(2)
#--> -40
composé à partir de la signature, exécuté pour cette page
aucune extension
Derivative
p'(x)'s coefficients: the power rule, term by term.
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.Derivative() )
#--> [ 5, -12, -15, 10, -6 ]
composé à partir de la signature, exécuté pour cette page
QCSXTZZZIBWU
CompanionMatrix
Assembled by the engine, not here. It looks like four lines of glue -- the sign, which row carries the coefficients, the monic division, the leading-zero case -- and every one of those is a decision a second implementation gets subtly differently. poly.zig owns it, so every language over the engine builds the same matrix.
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.CompanionMatrix() )
#--> [ [ 3, 5, -5, 6, -8 ], [ 1, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0 ], [ 0, 0, 1, 0, 0 ], [ 0, 0, 0, 1, 0 ] ]
composé à partir de la signature, exécuté pour cette page
QCSXTZZZIBWU
ComplexRoots
Past degree four no formula exists, so the general method is the companion matrix's eigenvalues -- and that whole chain lives in poly.zig over eigen_general.zig's Francis QR. This method binds arguments and marshals; it does not assemble a matrix and it does not decide anything.aussi écrite: Roots
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.ComplexRoots() )
#--> [ @noname, @noname, @noname, @noname, @noname ]
composé à partir de la signature, exécuté pour cette page
aucune extension
RealRootsWithin
(sans commentaire dans la source : le nom se lit comme une phrase) real roots within
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.RealRootsWithin(2) )
#--> [ -2.00, -0.00, -0.00, 1.00, 4.00 ]
composé à partir de la signature, exécuté pour cette page
aucune extension
RealRoots
(sans commentaire dans la source : le nom se lit comme une phrase) real roots
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.RealRoots() )
#--> [ -2.00, 1.00, 4.00 ]
composé à partir de la signature, exécuté pour cette page
aucune extension
NumberOfRealRoots
(sans commentaire dans la source : le nom se lit comme une phrase) number of real roots
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.NumberOfRealRoots()
#--> 3
composé à partir de la signature, exécuté pour cette page
aucune extension
HasRealRoot
(sans commentaire dans la source : le nom se lit comme une phrase) has real root
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.HasRealRoot()
#--> 1
composé à partir de la signature, exécuté pour cette page
aucune extension
HasComplexRoot
TRUE when any root is genuinely complex (beyond the tolerance).
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.HasComplexRoot()
#--> 1
composé à partir de la signature, exécuté pour cette page
aucune extension
Plus
ARITHMETIC
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.Plus([ 2, 3 ]) )
#--> [ 1, -3, -5, 5, -4, 11 ]
composé à partir de la signature, exécuté pour cette page
QCSXTZZZIBWU
Minus
(sans commentaire dans la source : le nom se lit comme une phrase) minus
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.Minus([ 2, 3 ]) )
#--> [ 1, -3, -5, 5, -8, 5 ]
composé à partir de la signature, exécuté pour cette page
QCSXTZZZIBWU
Times
THE DOUBLE LOOP IS KEPT FOR SMALL DEGREES, and not out of caution: it is EXACT for integer coefficients, while the FFT route goes through irrational twiddle factors and comes back a few rounding errors away from a whole number. Below the crossover the direct method is both faster and more accurate, so preferring it is not a compromise. Above it, O(n log n) wins by enough that the rounding is worth paying.
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.Times([ 2, 3 ]) )
#--> [ 2, -3, -19, -5, 3, -2, 24 ]
composé à partir de la signature, exécuté pour cette page
QCSXTZZZIBWU
TimesViaTransform
The same product through the frequency domain -- exposed so the guard can compare the two routes on the SAME polynomials rather than having to grow one past the crossover to reach this code.
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? @@( o1.TimesViaTransform([ 2, 3 ]) )
#--> [ 2, -3, -19, -5.00, 3, -2, 24 ]
composé à partir de la signature, exécuté pour cette page
QCSXTZZZIBWU
Content
DISPLAYaucune extension
Show
(sans commentaire dans la source : le nom se lit comme une phrase) showaucune extension
ToString
(sans commentaire dans la source : le nom se lit comme une phrase) to string
exemple composé
o1 = new stzPolynomial([1, -3, -5, 5, -6, 8])
? o1.ToString()
#--> x^5 - 3x^4 - 5x^3 + 5x^2 - 6x + 8
composé à partir de la signature, exécuté pour cette page
aucune extension