[ Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]

# NAME

math::rationalfunctions - Polynomial functions

# Table Of Contents

# SYNOPSIS

package require Tcl ?8.4?

package require math::rationalfunctions ?1.0.1?

**::math::rationalfunctions::rationalFunction** *num* *den*

**::math::rationalfunctions::ratioCmd** *num* *den*

**::math::rationalfunctions::evalRatio** *rational* *x*

**::math::rationalfunctions::addRatio** *ratio1* *ratio2*

**::math::rationalfunctions::subRatio** *ratio1* *ratio2*

**::math::rationalfunctions::multRatio** *ratio1* *ratio2*

**::math::rationalfunctions::divRatio** *ratio1* *ratio2*

**::math::rationalfunctions::derivPolyn** *ratio*

**::math::rationalfunctions::coeffsNumerator** *ratio*

**::math::rationalfunctions::coeffsDenominator** *ratio*

# DESCRIPTION

This package deals with rational functions of one variable:

the basic arithmetic operations are extended to rational functions

computing the derivatives of these functions

evaluation through a general procedure or via specific procedures)

# PROCEDURES

The package defines the following public procedures:

**::math::rationalfunctions::rationalFunction***num**den*Return an (encoded) list that defines the rational function. A rational function

`1 + x^3 f(x) = ------------ 1 + 2x + x^2`

can be defined via:

`set f [::math::rationalfunctions::rationalFunction [list 1 0 0 1] [list 1 2 1]]`

list

*num*Coefficients of the numerator of the rational function (in ascending order)

list

*den*Coefficients of the denominator of the rational function (in ascending order)

**::math::rationalfunctions::ratioCmd***num**den*Create a new procedure that evaluates the rational function. The name of the function is automatically generated. Useful if you need to evaluate the function many times, as the procedure consists of a single [expr] command.

list

*num*Coefficients of the numerator of the rational function (in ascending order)

list

*den*Coefficients of the denominator of the rational function (in ascending order)

**::math::rationalfunctions::evalRatio***rational**x*Evaluate the rational function at x.

list

*rational*The rational function's definition (as returned by the rationalFunction command). order)

float

*x*The coordinate at which to evaluate the function

**::math::rationalfunctions::addRatio***ratio1**ratio2*Return a new rational function which is the sum of the two others.

list

*ratio1*The first rational function operand

list

*ratio2*The second rational function operand

**::math::rationalfunctions::subRatio***ratio1**ratio2*Return a new rational function which is the difference of the two others.

list

*ratio1*The first rational function operand

list

*ratio2*The second rational function operand

**::math::rationalfunctions::multRatio***ratio1**ratio2*Return a new rational function which is the product of the two others. If one of the arguments is a scalar value, the other rational function is simply scaled.

list

*ratio1*The first rational function operand or a scalar

list

*ratio2*The second rational function operand or a scalar

**::math::rationalfunctions::divRatio***ratio1**ratio2*Divide the first rational function by the second rational function and return the result. The remainder is dropped

list

*ratio1*The first rational function operand

list

*ratio2*The second rational function operand

**::math::rationalfunctions::derivPolyn***ratio*Differentiate the rational function and return the result.

list

*ratio*The rational function to be differentiated

**::math::rationalfunctions::coeffsNumerator***ratio*Return the coefficients of the numerator of the rational function.

list

*ratio*The rational function to be examined

**::math::rationalfunctions::coeffsDenominator***ratio*Return the coefficients of the denominator of the rational function.

list

*ratio*The rational function to be examined

# REMARKS ON THE IMPLEMENTATION

The implementation of the rational functions relies on the math::polynomials package. For further remarks see the documentation on that package.

# Bugs, Ideas, Feedback

This document, and the package it describes, will undoubtedly contain bugs and
other problems. Please report such in the category *math :: rationalfunctions*
of the Tcllib Trackers. Please also
report any ideas for enhancements you may have for either package and/or
documentation.

When proposing code changes, please provide *unified diffs*, i.e the output of
**diff -u**.

Note further that *attachments* are strongly preferred over inlined patches.
Attachments can be made by going to the **Edit** form of the ticket
immediately after its creation, and then using the left-most button in the
secondary navigation bar.

# KEYWORDS

# CATEGORY

Mathematics

# COPYRIGHT

Copyright © 2005 Arjen Markus