Package edu.jas.arith

Class BigInteger

    • Field Detail

      • val

        public final java.math.BigInteger val
        The data structure.
      • random

        private static final java.util.Random random
      • ZERO

        public static final BigInteger ZERO
        The constant 0.
      • ONE

        public static final BigInteger ONE
        The constant 1.
      • TWO

        public static final BigInteger TWO
        The constant 2.
      • nonNegative

        private boolean nonNegative
    • Constructor Detail

      • BigInteger

        public BigInteger​(java.math.BigInteger a)
        Constructor for BigInteger from math.BigInteger.
        Parameters:
        a - java.math.BigInteger.
      • BigInteger

        public BigInteger​(long a)
        Constructor for BigInteger from long.
        Parameters:
        a - long.
      • BigInteger

        public BigInteger​(java.lang.String s)
        Constructor for BigInteger from String.
        Parameters:
        s - String.
      • BigInteger

        public BigInteger()
        Constructor for BigInteger without parameters.
    • Method Detail

      • getVal

        public java.math.BigInteger getVal()
        Get the value.
        Returns:
        val java.math.BigInteger.
      • longValue

        public long longValue()
        Get the value as long.
        Returns:
        val as long.
      • longValueExact

        public long longValueExact()
        Get the value as long.
        Returns:
        val as long if val fits in long.
      • copy

        public BigInteger copy()
        Clone this.
        Specified by:
        copy in interface Element<BigInteger>
        Returns:
        Creates and returns a copy of this Element.
        See Also:
        Object.clone()
      • isField

        public boolean isField()
        Query if this ring is a field.
        Specified by:
        isField in interface RingFactory<BigInteger>
        Returns:
        false.
      • characteristic

        public java.math.BigInteger characteristic()
        Characteristic of this ring.
        Specified by:
        characteristic in interface RingFactory<BigInteger>
        Returns:
        characteristic of this ring.
      • fromInteger

        public BigInteger fromInteger​(java.math.BigInteger a)
        Get a BigInteger element from a math.BigInteger.
        Specified by:
        fromInteger in interface ElemFactory<BigInteger>
        Parameters:
        a - math.BigInteger.
        Returns:
        a as BigInteger.
      • valueOf

        public static BigInteger valueOf​(java.math.BigInteger a)
        Get a BigInteger element from a math.BigInteger.
        Parameters:
        a - math.BigInteger.
        Returns:
        a as BigInteger.
      • valueOf

        public static BigInteger valueOf​(long a)
        Get a BigInteger element from long.
        Parameters:
        a - long.
        Returns:
        a as BigInteger.
      • toString

        public java.lang.String toString()
        Get the String representation.
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • toScriptFactory

        public java.lang.String toScriptFactory()
        Get a scripting compatible string representation of the factory.
        Specified by:
        toScriptFactory in interface Element<BigInteger>
        Returns:
        script compatible representation for this ElemFactory.
        See Also:
        Element.toScriptFactory()
      • compareTo

        public int compareTo​(BigInteger b)
        Compare to BigInteger b.
        Specified by:
        compareTo in interface java.lang.Comparable<BigInteger>
        Specified by:
        compareTo in interface Element<BigInteger>
        Parameters:
        b - BigInteger.
        Returns:
        0 if this == b, 1 if this > b, -1 if this < b.
      • ICOMP

        public static int ICOMP​(BigInteger A,
                                BigInteger B)
        Integer comparison.
        Parameters:
        A - BigInteger.
        B - BigInteger.
        Returns:
        0 if A == B, 1 if A > B, -1 if A < B.
      • equals

        public boolean equals​(java.lang.Object b)
        Comparison with any other object.
        Specified by:
        equals in interface Element<BigInteger>
        Overrides:
        equals in class java.lang.Object
        Returns:
        true if this is equal to b, else false.
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

        public int hashCode()
        Hash code for this BigInteger.
        Specified by:
        hashCode in interface Element<BigInteger>
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hashCode.
        See Also:
        Object.hashCode()
      • IABS

        public static BigInteger IABS​(BigInteger A)
        Absolute value.
        Parameters:
        A - BigInteger.
        Returns:
        abs(A).
      • INEG

        public static BigInteger INEG​(BigInteger A)
        Negative value.
        Parameters:
        A - BigInteger.
        Returns:
        -A.
      • ISIGN

        public static int ISIGN​(BigInteger A)
        Integer signum.
        Parameters:
        A - BigInteger.
        Returns:
        signum(A).
      • IDIF

        public static BigInteger IDIF​(BigInteger A,
                                      BigInteger B)
        BigInteger subtract.
        Parameters:
        A - BigInteger.
        B - BigInteger.
        Returns:
        A-B.
      • IREM

        public static BigInteger IREM​(BigInteger A,
                                      BigInteger B)
        BigInteger remainder.
        Parameters:
        A - BigInteger.
        B - BigInteger.
        Returns:
        A - (A/B)*B.
      • quotientRemainder

        public BigInteger[] quotientRemainder​(BigInteger S)
        BigInteger compute quotient and remainder. Throws an exception, if S == 0.
        Specified by:
        quotientRemainder in interface MonoidElem<BigInteger>
        Parameters:
        S - BigInteger.
        Returns:
        BigInteger[] { q, r } with this = q S + r and 0 ≤ r < |S|.
      • IQR

        public static BigInteger[] IQR​(BigInteger A,
                                       BigInteger B)
        Integer quotient and remainder. A and B are integers, B ne 0. Q is the quotient, integral part of A/B, and R is the remainder A-B*Q. Throws an exception, if B == 0.
        Parameters:
        A - BigInteger.
        B - BigInteger.
        Returns:
        BigInteger[] { q, r } with A = q B + r and 0 ≤ r < |B|
      • egcd

        public BigInteger[] egcd​(BigInteger S)
        BigInteger extended greatest common divisor.
        Specified by:
        egcd in interface RingElem<BigInteger>
        Parameters:
        S - BigInteger.
        Returns:
        [ gcd(this,S), a, b ] with a*this + b*S = gcd(this,S).
      • IGCD

        public static BigInteger IGCD​(BigInteger A,
                                      BigInteger B)
        BigInteger greatest common divisor.
        Parameters:
        A - BigInteger.
        B - BigInteger.
        Returns:
        gcd(A,B).
      • random

        public BigInteger random​(int n)
        BigInteger random.
        Specified by:
        random in interface ElemFactory<BigInteger>
        Parameters:
        n - such that 0 ≤ r ≤ (2n-1).
        Returns:
        r, a random BigInteger.
      • random

        public BigInteger random​(int n,
                                 java.util.Random rnd)
        BigInteger random.
        Specified by:
        random in interface ElemFactory<BigInteger>
        Parameters:
        n - such that 0 ≤ r ≤ (2n-1).
        rnd - is a source for random bits.
        Returns:
        r, a random BigInteger.
      • IRAND

        public static BigInteger IRAND​(int NL)
        BigInteger random.
        Parameters:
        NL - such that 0 ≤ r ≤ (2n-1).
        Returns:
        r, a random BigInteger.
      • shiftLeft

        public BigInteger shiftLeft​(int n)
        BigInteger shift left.
        Parameters:
        n - bits to shift.
        Returns:
        this << n.
      • IPROD

        public static BigInteger IPROD​(BigInteger A,
                                       BigInteger B)
        BigInteger multiply.
        Parameters:
        A - BigInteger.
        B - BigInteger.
        Returns:
        A*B.
      • ISUM

        public static BigInteger ISUM​(BigInteger A,
                                      BigInteger B)
        BigInteger addition.
        Parameters:
        A - BigInteger.
        B - BigInteger.
        Returns:
        A+B.
      • parse

        public BigInteger parse​(java.lang.String s)
        BigInteger parse from String.
        Specified by:
        parse in interface ElemFactory<BigInteger>
        Parameters:
        s - String.
        Returns:
        Biginteger from s.
      • parse

        public BigInteger parse​(java.io.Reader r)
        BigInteger parse from Reader.
        Specified by:
        parse in interface ElemFactory<BigInteger>
        Parameters:
        r - Reader.
        Returns:
        next Biginteger from r.
      • getDecimal

        public BigDecimal getDecimal()
        Get the decimal representation.
        Returns:
        decimal.
      • getRational

        public BigRational getRational()
        Return a BigRational approximation of this Element.
        Specified by:
        getRational in interface Rational
        Returns:
        a BigRational approximation of this.
      • bitLength

        public long bitLength()
        Returns the number of bits in the representation of this BigInteger, including a sign bit. For positive BigIntegers, this is equivalent to (ceil(log2(this+1))+1).)
        Returns:
        number of bits in the representation of this BigInteger, including a sign bit.
      • bitLength

        public static long bitLength​(long v)
        Returns the number of bits in the representation of a Long, including a sign bit.
        Parameters:
        v - value.
        Returns:
        number of bits in the representation of a Long, including a sign bit.
      • setAllIterator

        public void setAllIterator()
        Set the iteration algorithm to all elements.
      • setNonNegativeIterator

        public void setNonNegativeIterator()
        Set the iteration algorithm to non-negative elements.
      • iterator

        public java.util.Iterator<BigInteger> iterator()
        Get a BigInteger iterator.
        Specified by:
        iterator in interface java.lang.Iterable<BigInteger>
        Returns:
        a iterator over all integers.