ArithmeticGMP {rcdd}R Documentation

GMP Rational Arithmetic

Description

Add, subtract, multiply, or divide one object to/from/by another using GMP (GNU multiple precision) rational arithmetic. Any size integers in the numerator and denominator are allowed.

Usage

qpq(x, y)
qmq(x, y)
qxq(x, y)
qdq(x, y)
qmatmult(x, y)
qsum(x)
qprod(x)
qsign(x)
qneg(x)
qabs(x)
qinv(x)

Arguments

x,y objects of type "numeric" or "character". If "numeric" are converted to rational using d2q. Objects must have the same length.

Details

qpq is “plus”, qmq is “minus”, qxq is “times”, qdq is “divide”. Divide by zero is an error. There are no rational NA, NaN, Inf. qsum is vectorizing summation like sum for ordinary numeric. qprod is vectorizing product like prod for ordinary numeric. qsign is vectorizing sign like sign for ordinary numeric. qmatmult is matrix multiplication like %*% for ordinary numeric; both arguments must be matrices. qneg is vectorizing negation like unary minus for ordinary numeric. qabs is vectorizing negation like abs for ordinary numeric. qinv is vectorizing inversion like 1 / x for ordinary numeric.

Value

an object of the same form as x that is the sum, difference, product, quotient, or sign or (for qsum and qprod) a scalar that is the sum or product.

See Also

ConvertGMP

Examples

qmq("1/3", "1/2")
# note inexactness of floating point representations
qmq("1/5", 1/5)
qdq("1/5", 1/5)
qsum(c("1", "1/2", "1/4", "1/8"))
qprod(c("1", "1/2", "1/4", "1/8"))
qsign(c("-1", "1/2", "1/-4", "1/8"))
qmatmult(matrix(c("1", "2", "3", "4"), 2, 2),
    matrix(c("1/1", "1/2", "1/3", "1/4"), 2, 2))
qneg(seq(-3, 3))

[Package rcdd version 1.1 Index]