rational: Rational numbers

View source: R/Rational.R

rationalR Documentation

Rational numbers

Description

R has no built in rational number representation; humdrumR defines one.

Usage

rational(numerator, denominator = as.integer64(1L))

e1 %R% e2

numerator(x)

denominator(x)

## S4 method for signature 'rational'
numerator(x)

## S4 method for signature 'rational'
denominator(x)

is.rational(x)

## S4 method for signature 'rational'
is.numeric(x)

## S4 method for signature 'rational'
rank(x, na.last = TRUE, ties.method = "average")

## S4 method for signature 'rational,rational'
Compare(e1, e2)

## S4 method for signature 'rational,ANY'
Compare(e1, e2)

## S4 method for signature 'ANY,rational'
Compare(e1, e2)

## S4 method for signature 'rational'
Summary(x)

## S4 method for signature 'rational'
prod(x, ..., na.rm = FALSE)

## S4 method for signature 'rational'
abs(x)

## S4 method for signature 'rational'
sign(x)

## S4 method for signature 'rational'
max(x, ..., na.rm = FALSE)

## S4 method for signature 'rational'
min(x, ..., na.rm = FALSE)

## S4 method for signature 'rational'
mean(x)

## S4 method for signature 'rational'
round(x)

## S4 method for signature 'rational'
floor(x)

## S4 method for signature 'rational'
ceiling(x)

## S4 method for signature 'rational'
trunc(x)

## S4 method for signature 'rational'
expand(x)

## S4 method for signature 'rational'
sum(x, ..., na.rm = FALSE)

## S4 method for signature 'rational'
cumsum(x)

as.rational(x, ...)

## S4 method for signature 'rational'
as.rational(x, ...)

## S4 method for signature 'matrix'
as.rational(x)

## S4 method for signature 'integer'
as.rational(x)

## S4 method for signature 'numeric'
as.rational(x)

## S4 method for signature 'logical'
as.rational(x)

## S4 method for signature 'character'
as.rational(x, sep = "/|%")

## S4 method for signature 'fraction'
as.rational(x, sep = "/|%")

fraction(numerator, denominator, sep = "/")

as.fraction(x, sep = "/")

## S3 method for class 'fraction'
as.double(x)

## S3 method for class 'fraction'
as.integer(x)

Details

Using rational numbers, we can represent numbers like 1/3 without any numeric inaccuracies. In other words, 1/3 * 3 = 3, never .999999999. On the other hand, if our rational numbers start to have numerators or demoninators that are too large, we can run into integer overflow problems. Since the rational numbers we'll be using in the context of music analysis are relatively simple, we can safely use such numbers without any numeric inaccuracy.

fraction is a class (and associated constructor) which represents rational numbers as character strings. Unlike rational, the fraction class is not numeric and thus cannot do arithmetic. However, fraction can be converted to/from rational.

See Also

as.real() as.numeric()


Computational-Cognitive-Musicology-Lab/humdrumR documentation built on Oct. 22, 2024, 9:28 a.m.