## `normal` -- normalize an expression

#### Introduction

`normal``(f)` returns the normal form of the rational expression `f`. This is a rational expression with expanded numerator and denominator whose greatest common divisor is 1.

`normal``(object)` replaces the operands of `object` by their normalized form.

#### Call(s)

`normal(f)`
`normal(object)`

#### Parameters

`f` | - | an arithmetical expression
`object` | - | a polynomial of type `DOM_POLY`, a list, a set, a table, an array, an equation, an inequality, or a range

#### Returns

an object of the same type as the input object.

### Overloadable:

`object`

#### Further Documentation

Chapter ``Manipulating Expressions'' of the Tutorial.

#### Related Functions

`collect`, `combine`, `denom`, `expand`, `factor`, `gcd`, `indets`, `numer`, `partfrac`, `rationalize`, `rectform`, `rewrite`, `simplify`

#### Details

- If the argument `f` contains non-rational subexpressions such as `sin(x)`, `x^(-1/3)` etc., then these are replaced by auxiliary variables before normalization. After normalization, these variables are replaced by the normalization of the original subexpressions. Algebraic dependencies of the subexpressions are not taken into account. The operands of the non-rational subexpressions are normalized recursively.
- For special objects, `normal` is automatically mapped to its operands. In particular, if `object` is a polynomial of domain type `DOM_POLY`, then its coefficients are normalized. Further, if `object` is a set, a list, a table or an array, respectively, then `normal` is applied to all entries. Further, the left hand side and the right hand side of equations (type `"_equal"`), inequalities (type `"_unequal"`) and relations (type `"_less"` or `"_leequal"`) are normalized. Further, the operands of ranges (type `"_range"`) are normalized automatically.

#### Example 1

We compute the normal form of some rational expressions:

    >> normal(x^2 - (x + 1)*(x - 1))

                                         1

    >> normal((x^2 - 1)/(x + 1))

                                       x - 1

    >> normal(1/(x + 1) + 1/(y - 1))

                                       x + y
                                  ---------------
                                  y - x + x y - 1

The following expression should be regarded as a rational expression in the ``indeterminates'' `y` and `sin(x)`:

    >> normal(1/sin(x)^2 + y/sin(x))

                                   y sin(x) + 1
                                   ------------
                                           2
                                     sin(x)

#### Example 2

In the following, we give examples of non-rational expressions as argument. First, we normalize the entries of a list:

    >> [(x^2 - 1)/(x + 1), x^2 - (x + 1)*(x - 1)]

                        --  2                           --
                        |  x  - 1   2                    |
                        |  ------, x  - (x - 1) (x + 1)  |
                        -- x + 1                        --

    >> normal(%)

                                    [x - 1, 1]

The coefficients of polynomials are normalized:

    >> poly((x^2-1)/(x+1)*Y^2 + (x^2-(x+1)*(x-1))*Y - 1, [Y])

                 / /  2     \                                        \
                 | | x  - 1 |  2     2                               |
             poly| | ------ | Y  + (x  - (x - 1) (x + 1)) Y - 1, [Y] |
                 \ \ x + 1  /                                        /

    >> normal(%)

                                         2
                           poly((x - 1) Y  + Y - 1, [Y])

#### Changes

- no changes

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000