---
name: "rational_funcs"
section: "3tcl"
platform: "linux"
package: "tcllib"
version: "2.0+dfsg-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rational_funcs"
---

# rational\_funcs(3tcl)

Polynomial functions

```

```

## NAME

math::rationalfunctions - Polynomial functions

## SYNOPSIS

package require **Tcl ?8.5 9?**

package require **math::rationalfunctions ?1.0.2?**

**::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* \[http://core.tcl.tk/tcllib/reportlist\]. 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

math, rational functions

## CATEGORY

Mathematics

## COPYRIGHT

```
Copyright (c) 2005 Arjen Markus <arjenmarkus@users.sourceforge.net>
```
