Learn R Programming

gmp (version 0.7-5)

modulus: Modulus of a Big Integer

Description

The modulus of a bigz number \(a\) is “unset” when \(a\) is a regular integer, \(a \in Z\)). Or the modulus can be set to \(m\) which means \(a \in Z/\,m\cdot Z\)), i.e., all arithmetic with \(a\) is performed ‘modulo m’.

Usage

modulus(a)
modulus(a) <- value

Arguments

a

R object of class "bigz"

value

integer number or object of class "bigz".

Examples

Run this code
x <- as.bigz(24)
modulus(x) # NULL, i.e. none

# x element of Z/31Z :
modulus(x) <- 31
x+x  #  48 |-> (17 %% 31)
10*x # 240 |-> (23 %% 31)
x31 <- x

# reset modulus to "none":
modulus(x) <- NA; x; x. <- x
x <- x31
modulus(x) <- NULL; x

stopifnot(identical(x,            as.bigz(24)), identical(x, x.),
          identical(modulus(x31), as.bigz(31)))

Run the code above in your browser using DataLab