package org.matheclipse.core.interfaces;

import java.math.BigInteger;

/**
 * An expression representing a big integer number
 * 
 */
public interface IInteger extends IRational {

	public IInteger add(IInteger val);

	public boolean isEven();

	public boolean isOdd();

	/**
	 * Returns the numerator of this Rational.
	 * 
	 * @return numerator
	 */
	public BigInteger getBigNumerator();

	/**
	 * Multiply this integer with value
	 * 
	 * @param value
	 * @return
	 */
	public IInteger multiply(IInteger value);

	public IInteger subtract(IInteger value);

	public IInteger pow(int exponent);

	/**
	 * Converts this large integer to int; unlike {@link #toInt} this
	 * method raises no exception, if this integer cannot be represented by an
	 * int type.
	 * 
	 * @return the numeric value represented by this integer after conversion to
	 *         type int.
	 */
	public int intValue();

	public long longValue();

	/**
	 * Returns the greatest common divisor of this large integer and the one
	 * specified.
	 * 
	 */
	public IInteger gcd(IInteger val);

	/**
	 * Returns the least common multiple of this large integer and the one
	 * specified.
	 * 
	 */
	public IInteger lcm(IInteger val);

	/**
	 * Returns the n-th integer root
	 * 
	 * @param n
	 * @return
	 * @throws ArithmeticException
	 */
	public IInteger nthRoot(int n) throws ArithmeticException;

	/**
	 * Split this integer into the nth-root (with prime factors less equal 1021)
	 * and the "rest factor"
	 * 
	 * @return {nth-root, rest factor}
	 */
	public IInteger[] nthRootSplit(int n);
}

 

Ads help maintain this website.