math::polynomials -
Polynomial functions
package require Tcl ? 8.3 ?
package require math::polynomials ? 1.0.1 ?
::math::polynomials::polynomial coeffs
::math::polynomials::polynCmd coeffs
::math::polynomials::evalPolyn polynomial x
::math::polynomials::addPolyn polyn1 polyn2
::math::polynomials::subPolyn polyn1 polyn2
::math::polynomials::multPolyn polyn1 polyn2
::math::polynomials::divPolyn polyn1 polyn2
::math::polynomials::remainderPolyn polyn1 polyn2
::math::polynomials::derivPolyn polyn
::math::polynomials::primitivePolyn polyn
::math::polynomials::degreePolyn polyn
::math::polynomials::coeffPolyn polyn index
::math::polynomials::allCoeffsPolyn polyn
This package deals with polynomial functions of one variable:
-
the basic arithmetic operations are extended to polynomials
-
computing the derivatives and primitives of these functions
-
evaluation through a general procedure or via specific procedures)
The package defines the following public procedures:
-
::math::polynomials::polynomial coeffs
-
Return an (encoded) list that defines the polynomial. A polynomial
f(x) = a + b.x + c.x**2 + d.x**3
can be defined via:
set f [::math::polynomials::polynomial [list $a $b $c $d]
| Type | Name | Mode |
| list | coeffs | |
| | Coefficients of the polynomial (in ascending
order)
|
-
::math::polynomials::polynCmd coeffs
-
Create a new procedure that evaluates the polynomial. The name of the
polynomial is automatically generated. Useful if you need to evualuate
the polynomial many times, as the procedure consists of a single
[expr] command.
| Type | Name | Mode |
| list | coeffs | |
| | Coefficients of the polynomial (in ascending
order) or the polynomial definition returned by the polynomial
command.
|
-
::math::polynomials::evalPolyn polynomial x
-
Evaluate the polynomial at x.
| Type | Name | Mode |
| list | polynomial | |
| | The polynomial's definition (as returned by
the polynomial command).
order)
|
| float | x | |
| | The coordinate at which to evaluate the polynomial
|
-
::math::polynomials::addPolyn polyn1 polyn2
-
Return a new polynomial which is the sum of the two others.
| Type | Name | Mode |
| list | polyn1 | |
| | The first polynomial operand
|
| list | polyn2 | |
| | The second polynomial operand
|
-
::math::polynomials::subPolyn polyn1 polyn2
-
Return a new polynomial which is the difference of the two others.
| Type | Name | Mode |
| list | polyn1 | |
| | The first polynomial operand
|
| list | polyn2 | |
| | The second polynomial operand
|
-
::math::polynomials::multPolyn polyn1 polyn2
-
Return a new polynomial which is the product of the two others. If one
of the arguments is a scalar value, the other polynomial is simply
scaled.
| Type | Name | Mode |
| list | polyn1 | |
| | The first polynomial operand or a scalar
|
| list | polyn2 | |
| | The second polynomial operand or a scalar
|
-
::math::polynomials::divPolyn polyn1 polyn2
-
Divide the first polynomial by the second polynomial and return the
result. The remainder is dropped
| Type | Name | Mode |
| list | polyn1 | |
| | The first polynomial operand
|
| list | polyn2 | |
| | The second polynomial operand
|
-
::math::polynomials::remainderPolyn polyn1 polyn2
-
Divide the first polynomial by the second polynomial and return the
remainder.
| Type | Name | Mode |
| list | polyn1 | |
| | The first polynomial operand
|
| list | polyn2 | |
| | The second polynomial operand
|
-
::math::polynomials::derivPolyn polyn
-
Differentiate the polynomial and return the result.
| Type | Name | Mode |
| list | polyn | |
| | The polynomial to be differentiated
|
-
::math::polynomials::primitivePolyn polyn
-
Integrate the polynomial and return the result. The integration
constant is set to zero.
| Type | Name | Mode |
| list | polyn | |
| | The polynomial to be integrated
|
-
::math::polynomials::degreePolyn polyn
-
Return the degree of the polynomial.
| Type | Name | Mode |
| list | polyn | |
| | The polynomial to be examined
|
-
::math::polynomials::coeffPolyn polyn index
-
Return the coefficient of the term of the index'th degree of the
polynomial.
| Type | Name | Mode |
| list | polyn | |
| | The polynomial to be examined
|
| int | index | |
| | The degree of the term
|
-
::math::polynomials::allCoeffsPolyn polyn
-
Return the coefficients of the polynomial (in ascending order).
| Type | Name | Mode |
| list | polyn | |
| | The polynomial in question
|
The implementation for evaluating the polynomials at some point uses
Horn's rule, which guarantees numerical stability and a minimum of
arithmetic operations.
To recognise that a polynomial definition is indeed a correct
definition, it consists of a list of two elements: the keyword
"POLYNOMIAL" and the list of coefficients in descending order. The
latter makes it easier to implement Horner's rule.
math, polynomial functions