Learn R Programming

gmp (version 0.5-4)

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
Robject 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