public static class Arithmetic.Polynomial extends Object implements Comparable<Arithmetic.Polynomial>
| Modifier and Type | Class and Description |
|---|---|
static class |
Arithmetic.Polynomial.Term |
| Modifier and Type | Field and Description |
|---|---|
static Arithmetic.Polynomial |
ZERO |
| Modifier and Type | Method and Description |
|---|---|
Arithmetic.Polynomial |
add(Arithmetic.Polynomial.Term p) |
Arithmetic.Polynomial |
add(Arithmetic.Polynomial p)
Add two polynomials together, producing a polynomial in normal form.
|
int |
compareTo(Arithmetic.Polynomial p) |
boolean |
equals(Object o) |
Arithmetic.Polynomial |
factorise()
Factorise a given polynomial.
|
Arithmetic.Polynomial.Term |
getTerm(int i) |
int |
hashCode() |
boolean |
isConstant() |
Arithmetic.Polynomial |
multiply(Arithmetic.Polynomial.Term rhs) |
Arithmetic.Polynomial |
multiply(Arithmetic.Polynomial p)
Multiply two polynomials together.
|
Arithmetic.Polynomial |
multiply(BigInteger rhs) |
Arithmetic.Polynomial |
negate() |
int |
size() |
Arithmetic.Polynomial |
subtract(Arithmetic.Polynomial.Term p) |
Arithmetic.Polynomial |
subtract(Arithmetic.Polynomial p) |
BigInteger |
toConstant() |
WyalFile.Expr |
toExpression() |
String |
toString() |
public static final Arithmetic.Polynomial ZERO
public int size()
public boolean isConstant()
public BigInteger toConstant()
public Arithmetic.Polynomial.Term getTerm(int i)
public Arithmetic.Polynomial negate()
public Arithmetic.Polynomial add(Arithmetic.Polynomial p)
Add two polynomials together, producing a polynomial in normal form.
To do this, we must add the coefficients for terms which have the
same set of atoms, whilst other terms are incorporated as is. For
example, consider adding 2+2x with 1+3x+4y.
In this case, we have some terms in common, so the result becomes
(2+1) + (2x+3x) + 4y which is simplified to
3 + 5x + 4y.
poly - public Arithmetic.Polynomial add(Arithmetic.Polynomial.Term p)
public Arithmetic.Polynomial subtract(Arithmetic.Polynomial p)
public Arithmetic.Polynomial subtract(Arithmetic.Polynomial.Term p)
public Arithmetic.Polynomial multiply(Arithmetic.Polynomial p)
2+2x) by another (e.g.1+3x+4y) it breaks it
down into a series of multiplications over terms and additions. That
is, we multiply each term from the first polynomial by the second
(e.g. 2*(1+3x+4y) and 2x*(1+3x+4y)). Then,
we add the results together (e.g.
(2+6x+8y) + (2x+6x2+8xy)).p - public Arithmetic.Polynomial multiply(Arithmetic.Polynomial.Term rhs)
public Arithmetic.Polynomial multiply(BigInteger rhs)
public Arithmetic.Polynomial factorise()
2x+2 is
factorised to be x+1. Observe that this does not preseve the
result of the polynomial. However, it is safe to do when simplifying
equations. For example, 2x == 2y can be safely factorised to
x == y.p - public int compareTo(Arithmetic.Polynomial p)
compareTo in interface Comparable<Arithmetic.Polynomial>public WyalFile.Expr toExpression()
Copyright © 2017. All rights reserved.