# fractions: Rational Approximation In MASS: Support Functions and Datasets for Venables and Ripley's MASS

## Description

Find rational approximations to the components of a real numeric object using a standard continued fraction method.

## Usage

 `1` ```fractions(x, cycles = 10, max.denominator = 2000, ...) ```

## Arguments

 `x` Any object of mode numeric. Missing values are now allowed. `cycles` The maximum number of steps to be used in the continued fraction approximation process. `max.denominator` An early termination criterion. If any partial denominator exceeds `max.denominator` the continued fraction stops at that point. `...` arguments passed to or from other methods.

## Details

Each component is first expanded in a continued fraction of the form

`x = floor(x) + 1/(p1 + 1/(p2 + ...)))`

where `p1`, `p2`, ... are positive integers, terminating either at `cycles` terms or when a `pj > max.denominator`. The continued fraction is then re-arranged to retrieve the numerator and denominator as integers.

The numerators and denominators are then combined into a character vector that becomes the `"fracs"` attribute and used in printed representations.

Arithmetic operations on `"fractions"` objects have full floating point accuracy, but the character representation printed out may not.

## Value

An object of class `"fractions"`. A structure with `.Data` component the same as the input numeric `x`, but with the rational approximations held as a character vector attribute, `"fracs"`. Arithmetic operations on `"fractions"` objects are possible.

## References

Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth Edition. Springer.

## See Also

`rational`

## Examples

 ```1 2 3 4``` ```X <- matrix(runif(25), 5, 5) zapsmall(solve(X, X/5)) # print near-zeroes as zero fractions(solve(X, X/5)) fractions(solve(X, X/5)) + 1 ```

### Example output

```     [,1] [,2] [,3] [,4] [,5]
[1,]  0.2  0.0  0.0  0.0  0.0
[2,]  0.0  0.2  0.0  0.0  0.0
[3,]  0.0  0.0  0.2  0.0  0.0
[4,]  0.0  0.0  0.0  0.2  0.0
[5,]  0.0  0.0  0.0  0.0  0.2
[,1] [,2] [,3] [,4] [,5]
[1,] 1/5    0    0    0    0
[2,]   0  1/5    0    0    0
[3,]   0    0  1/5    0    0
[4,]   0    0    0  1/5    0
[5,]   0    0    0    0  1/5
[,1] [,2] [,3] [,4] [,5]
[1,] 6/5    1    1    1    1
[2,]   1  6/5    1    1    1
[3,]   1    1  6/5    1    1
[4,]   1    1    1  6/5    1
[5,]   1    1    1    1  6/5
```

MASS documentation built on May 3, 2021, 5:08 p.m.