public abstract class ExpVector extends java.lang.Object implements AbelianGroupElem<ExpVector>
ExpVectorLong
ExpVectorInteger
,
ExpVectorShort
and ExpVectorByte
. The static
factory methods create()
of ExpVector
select the
respective storage unit. The selection of the desired storage unit is
internally done via the static variable storunit
. This varaible
should not be changed dynamically.Modifier and Type | Class and Description |
---|---|
static class |
ExpVector.StorUnit
Storage representation of exponent arrays.
|
Modifier and Type | Field and Description |
---|---|
protected long |
blen
Stored bitLength.
|
protected int |
hash
Stored hash code.
|
static ExpVector.StorUnit |
storunit
Used storage representation of exponent arrays.
|
Constructor and Description |
---|
ExpVector()
Constructor for ExpVector.
|
Modifier and Type | Method and Description |
---|---|
abstract ExpVector |
abs()
ExpVector absolute value.
|
long |
bitLength()
Returns the number of bits in the representation of this exponent vector.
|
abstract ExpVector |
combine(ExpVector V)
Combine with ExpVector.
|
int |
compareTo(ExpVector V)
ExpVector compareTo.
|
abstract ExpVector |
contract(int i,
int len)
Contract variables.
|
abstract ExpVector |
copy()
Clone this.
|
static ExpVector |
create(java.util.Collection<java.lang.Long> v)
Factory constructor for ExpVector.
|
static ExpVector |
create(int n)
Factory constructor for ExpVector.
|
static ExpVector |
create(int n,
int i,
long e)
Factory constructor for ExpVector.
|
static ExpVector |
create(long[] v)
Internal factory constructor for ExpVector.
|
static ExpVector |
create(java.lang.String s)
Factory constructor for ExpVector.
|
long |
degree()
ExpVector degree.
|
abstract int[] |
dependencyOnVariables()
ExpVector dependency on variables.
|
abstract int |
dependentVariables()
ExpVector dependent variables.
|
boolean |
divides(ExpVector V)
ExpVector divides test.
|
boolean |
equals(java.lang.Object B)
Comparison with any other object.
|
static ExpVector |
EVABS(ExpVector U)
ExpVector absolute value.
|
<C extends RingElem<C>> |
evaluate(RingFactory<C> cf,
java.util.List<C> a)
Evaluate.
|
static ExpVector |
EVDIF(ExpVector U,
ExpVector V)
ExpVector difference.
|
static int[] |
EVDOV(ExpVector U)
ExpVector dependency on variables.
|
static ExpVector |
EVGCD(ExpVector U,
ExpVector V)
ExpVector greatest common divisor.
|
static int |
EVIGLC(ExpVector U,
ExpVector V)
Inverse graded lexicographical compare.
|
static int |
EVIGLC(ExpVector U,
ExpVector V,
int begin,
int end)
Inverse graded lexicographical compare part.
|
static int |
EVILCP(ExpVector U,
ExpVector V)
Inverse lexicographical compare.
|
static int |
EVILCP(ExpVector U,
ExpVector V,
int begin,
int end)
Inverse lexicographical compare part.
|
static int |
EVITDEGLC(ExpVector U,
ExpVector V)
Inverse total degree lexicographical compare.
|
static int |
EVIWLC(long[][] w,
ExpVector U,
ExpVector V)
Inverse weighted lexicographical compare.
|
static int |
EVIWLC(long[][] w,
ExpVector U,
ExpVector V,
int begin,
int end)
Inverse weighted lexicographical compare part.
|
static ExpVector |
EVLCM(ExpVector U,
ExpVector V)
ExpVector least common multiple.
|
static long |
EVMDEG(ExpVector U)
ExpVector maximal degree.
|
static long |
EVMINDEG(ExpVector U)
ExpVector minimal degree.
|
static boolean |
EVMT(ExpVector U,
ExpVector V)
ExpVector multiple test.
|
static ExpVector |
EVNEG(ExpVector U)
ExpVector negate.
|
static ExpVector |
EVRAND(int r,
long k,
float q)
Generate a random ExpVector.
|
static ExpVector |
EVRAND(int r,
long k,
float q,
java.util.Random rnd)
Generate a random ExpVector.
|
static int |
EVRIGLC(ExpVector U,
ExpVector V)
Reverse inverse graded lexicographical compare.
|
static int |
EVRIGLC(ExpVector U,
ExpVector V,
int begin,
int end)
Reverse inverse graded lexicographical compare part.
|
static int |
EVRILCP(ExpVector U,
ExpVector V)
Reverse inverse lexicographical compare.
|
static int |
EVRILCP(ExpVector U,
ExpVector V,
int begin,
int end)
Reverse inverse lexicographical compare part.
|
static int |
EVRLITDEGC(ExpVector U,
ExpVector V)
Reverse lexicographical inverse total degree compare.
|
static int |
EVSIGN(ExpVector U)
ExpVector sign.
|
static ExpVector |
EVSU(ExpVector U,
int i,
long d)
ExpVector substitution.
|
static ExpVector |
EVSUM(ExpVector U,
ExpVector V)
ExpVector summation.
|
static long |
EVTDEG(ExpVector U)
ExpVector total degree.
|
static long |
EVWDEG(long[][] w,
ExpVector U)
ExpVector weighted degree.
|
abstract ExpVector |
extend(int i,
int j,
long e)
Extend variables.
|
abstract ExpVector |
extendLower(int i,
int j,
long e)
Extend lower variables.
|
AbelianGroupFactory<ExpVector> |
factory()
Get the corresponding element factory.
|
abstract ExpVector |
gcd(ExpVector V)
ExpVector greatest common divisor.
|
abstract long[] |
getVal()
Get the exponent vector.
|
abstract long |
getVal(int i)
Get the exponent at position i.
|
int |
hashCode()
hashCode.
|
int |
indexVar(java.lang.String x,
java.lang.String... vars)
Get the index of a variable.
|
java.lang.String |
indexVarName(int idx,
java.lang.String... vars)
Get the variable name at index.
|
abstract int |
invGradCompareTo(ExpVector V)
ExpVector inverse graded lexicographical compareTo.
|
abstract int |
invGradCompareTo(ExpVector V,
int begin,
int end)
ExpVector inverse graded lexicographical compareTo.
|
abstract int |
invLexCompareTo(ExpVector V)
ExpVector inverse lexicographical compareTo.
|
abstract int |
invLexCompareTo(ExpVector V,
int begin,
int end)
ExpVector inverse lexicographical compareTo.
|
abstract int |
invTdegCompareTo(ExpVector V)
ExpVector inverse total degree lexicographical compareTo.
|
abstract int |
invWeightCompareTo(long[][] w,
ExpVector V)
ExpVector inverse weighted lexicographical compareTo.
|
abstract int |
invWeightCompareTo(long[][] w,
ExpVector V,
int begin,
int end)
ExpVector inverse weighted lexicographical compareTo.
|
boolean |
isFinite()
Is this structure finite or infinite.
|
boolean |
isZERO()
Is ExpVector zero.
|
abstract ExpVector |
lcm(ExpVector V)
ExpVector least common multiple.
|
abstract int |
length()
Get the length of this exponent vector.
|
abstract long |
maxDeg()
ExpVector maximal degree.
|
abstract long |
minDeg()
ExpVector minimal degree.
|
abstract boolean |
multipleOf(ExpVector V)
ExpVector multiple test.
|
abstract ExpVector |
negate()
ExpVector negate.
|
abstract ExpVector |
permutation(java.util.List<java.lang.Integer> P)
Permutation of exponent vector.
|
static ExpVector |
random(int r,
long k,
float q)
Generate a random ExpVector.
|
static ExpVector |
random(int r,
long k,
float q,
java.util.Random rnd)
Generate a random ExpVector.
|
abstract ExpVector |
reverse()
Reverse variables.
|
abstract ExpVector |
reverse(int j)
Reverse lower j variables.
|
abstract int |
revInvGradCompareTo(ExpVector V)
ExpVector reverse inverse graded compareTo.
|
abstract int |
revInvGradCompareTo(ExpVector V,
int begin,
int end)
ExpVector reverse inverse graded compareTo.
|
abstract int |
revInvLexCompareTo(ExpVector V)
ExpVector reverse inverse lexicographical compareTo.
|
abstract int |
revInvLexCompareTo(ExpVector V,
int begin,
int end)
ExpVector reverse inverse lexicographical compareTo.
|
abstract int |
revLexInvTdegCompareTo(ExpVector V)
ExpVector reverse lexicographical inverse total degree compareTo.
|
abstract ExpVector |
scalarMultiply(long s)
ExpVector multiply by scalar.
|
protected abstract long |
setVal(int i,
long e)
Set the exponent at position i to e.
|
abstract int |
signum()
ExpVector signum.
|
java.lang.String[] |
stdVars()
Standard variable names.
|
static java.lang.String[] |
STDVARS(int n)
Standard variable names.
|
java.lang.String[] |
stdVars(java.lang.String prefix)
Generate variable names.
|
static java.lang.String[] |
STDVARS(java.lang.String prefix,
int n)
Generate variable names.
|
ExpVector |
subst(int i,
long d)
ExpVector substitution.
|
abstract ExpVector |
subtract(ExpVector V)
ExpVector subtract.
|
abstract ExpVector |
sum(ExpVector V)
ExpVector summation.
|
java.lang.String |
toScript()
Get a scripting compatible string representation.
|
java.lang.String |
toScript(java.lang.String[] vars)
Get a scripting compatible string representation.
|
java.lang.String |
toScriptFactory()
Get a scripting compatible string representation of the factory.
|
java.lang.String |
toString()
Get the string representation.
|
java.lang.String |
toString(java.lang.String[] vars)
Get the string representation with variable names.
|
abstract long |
totalDeg()
ExpVector total degree.
|
int |
varIndex(int idx)
Get the array index of a variable at index.
|
static java.lang.String |
varsToString(java.lang.String[] vars)
Get the string representation of the variables.
|
abstract long |
weightDeg(long[] w)
ExpVector weighted degree.
|
abstract long |
weightDeg(long[][] w)
ExpVector weighted degree.
|
protected transient int hash
protected transient long blen
public static final ExpVector.StorUnit storunit
public ExpVector()
public static final ExpVector create(int n)
n
- length of exponent vector.public static final ExpVector create(int n, int i, long e)
n
- length of exponent vector.i
- index of exponent to be set.e
- exponent to be set.public static final ExpVector create(long[] v)
v
- internal representation array.public static final ExpVector create(java.lang.String s)
s
- String representation.public static final ExpVector create(java.util.Collection<java.lang.Long> v)
v
- collection of exponents.public AbelianGroupFactory<ExpVector> factory()
factory
in interface Element<ExpVector>
Element.factory()
public boolean isFinite()
Note: returns true
because of finite set of values in each index.
public abstract long[] getVal()
public abstract long getVal(int i)
i
- position.protected abstract long setVal(int i, long e)
i
- e
- public abstract int length()
public abstract ExpVector extend(int i, int j, long e)
i
- number of elements to extend.j
- index of element to be set.e
- new exponent for val[j].public abstract ExpVector extendLower(int i, int j, long e)
i
- number of elements to extend.j
- index of element to be set.e
- new exponent for val[j].public abstract ExpVector contract(int i, int len)
i
- position of first element to be copied.len
- new length.public abstract ExpVector reverse()
public abstract ExpVector reverse(int j)
j
- index of first variable reversed.public abstract ExpVector combine(ExpVector V)
V
- the other exponent vector.public abstract ExpVector permutation(java.util.List<java.lang.Integer> P)
P
- permutation.public java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
public java.lang.String toString(java.lang.String[] vars)
vars
- names of variables.Object.toString()
public static final java.lang.String varsToString(java.lang.String[] vars)
vars
- names of variables.Object.toString()
public java.lang.String toScript()
toScript
in interface Element<ExpVector>
Element.toScript()
public java.lang.String toScript(java.lang.String[] vars)
Element.toScript()
public java.lang.String toScriptFactory()
toScriptFactory
in interface Element<ExpVector>
Element.toScriptFactory()
public java.lang.String indexVarName(int idx, java.lang.String... vars)
idx
- index of the variablevars
- array of names of variablespublic int varIndex(int idx)
idx
- index of the variablepublic int indexVar(java.lang.String x, java.lang.String... vars)
x
- variable name to be searched.vars
- array of names of variablespublic <C extends RingElem<C>> C evaluate(RingFactory<C> cf, java.util.List<C> a)
cf
- ring factory for elements of a.a
- list of values.public boolean equals(java.lang.Object B)
public int hashCode()
public long bitLength()
public boolean isZERO()
isZERO
in interface AbelianGroupElem<ExpVector>
public java.lang.String[] stdVars()
public java.lang.String[] stdVars(java.lang.String prefix)
prefix
- name prefix.public static final java.lang.String[] STDVARS(int n)
n
- size of names arraypublic static final java.lang.String[] STDVARS(java.lang.String prefix, int n)
n
- size of names array.prefix
- name prefix.public static final ExpVector EVABS(ExpVector U)
U
- public abstract ExpVector abs()
abs
in interface AbelianGroupElem<ExpVector>
public static final ExpVector EVNEG(ExpVector U)
U
- public abstract ExpVector negate()
negate
in interface AbelianGroupElem<ExpVector>
public static final ExpVector EVSUM(ExpVector U, ExpVector V)
U
- V
- public abstract ExpVector sum(ExpVector V)
sum
in interface AbelianGroupElem<ExpVector>
V
- public static final ExpVector EVDIF(ExpVector U, ExpVector V)
U
- V
- public abstract ExpVector subtract(ExpVector V)
subtract
in interface AbelianGroupElem<ExpVector>
V
- public abstract ExpVector scalarMultiply(long s)
s
- scalarpublic static final ExpVector EVSU(ExpVector U, int i, long d)
U
- i
- position.d
- new exponent.public ExpVector subst(int i, long d)
i
- position.d
- new exponent.public static final ExpVector EVRAND(int r, long k, float q)
r
- length of new ExpVector.k
- maximal degree in each exponent.q
- density of nozero exponents.public static final ExpVector EVRAND(int r, long k, float q, java.util.Random rnd)
r
- length of new ExpVector.k
- maximal degree in each exponent.q
- density of nozero exponents.rnd
- is a source for random bits.public static final ExpVector random(int r, long k, float q)
r
- length of new ExpVector.k
- maximal degree in each exponent.q
- density of nozero exponents.public static final ExpVector random(int r, long k, float q, java.util.Random rnd)
r
- length of new ExpVector.k
- maximal degree in each exponent.q
- density of nozero exponents.rnd
- is a source for random bits.public static final int EVSIGN(ExpVector U)
U
- public abstract int signum()
signum
in interface AbelianGroupElem<ExpVector>
public static final long EVTDEG(ExpVector U)
U
- public long degree()
public abstract long totalDeg()
public static final long EVMDEG(ExpVector U)
U
- public abstract long maxDeg()
public static final long EVMINDEG(ExpVector U)
U
- public abstract long minDeg()
public static final long EVWDEG(long[][] w, ExpVector U)
w
- weights.U
- public abstract long weightDeg(long[][] w)
w
- weights.public abstract long weightDeg(long[] w)
w
- weights.public static final ExpVector EVLCM(ExpVector U, ExpVector V)
U
- V
- public abstract ExpVector lcm(ExpVector V)
V
- public static final ExpVector EVGCD(ExpVector U, ExpVector V)
U
- V
- public abstract ExpVector gcd(ExpVector V)
V
- public static final int[] EVDOV(ExpVector U)
U
- public abstract int dependentVariables()
public abstract int[] dependencyOnVariables()
public static final boolean EVMT(ExpVector U, ExpVector V)
U
- V
- public abstract boolean multipleOf(ExpVector V)
V
- public boolean divides(ExpVector V)
V
- public static final int EVILCP(ExpVector U, ExpVector V)
U
- V
- public abstract int invLexCompareTo(ExpVector V)
V
- public static final int EVILCP(ExpVector U, ExpVector V, int begin, int end)
U
- V
- begin
- end
- public abstract int invLexCompareTo(ExpVector V, int begin, int end)
V
- begin
- end
- public static final int EVIGLC(ExpVector U, ExpVector V)
U
- V
- public abstract int invGradCompareTo(ExpVector V)
V
- public static final int EVIGLC(ExpVector U, ExpVector V, int begin, int end)
U
- V
- begin
- end
- public abstract int invGradCompareTo(ExpVector V, int begin, int end)
V
- begin
- end
- public static final int EVRILCP(ExpVector U, ExpVector V)
U
- V
- public abstract int revInvLexCompareTo(ExpVector V)
V
- public static final int EVRILCP(ExpVector U, ExpVector V, int begin, int end)
U
- V
- begin
- end
- public abstract int revInvLexCompareTo(ExpVector V, int begin, int end)
V
- begin
- end
- public static final int EVRIGLC(ExpVector U, ExpVector V)
U
- V
- public abstract int revInvGradCompareTo(ExpVector V)
V
- public static final int EVRIGLC(ExpVector U, ExpVector V, int begin, int end)
U
- V
- begin
- end
- public abstract int revInvGradCompareTo(ExpVector V, int begin, int end)
V
- begin
- end
- public static final int EVITDEGLC(ExpVector U, ExpVector V)
U
- V
- public abstract int invTdegCompareTo(ExpVector V)
V
- public static final int EVRLITDEGC(ExpVector U, ExpVector V)
U
- V
- public abstract int revLexInvTdegCompareTo(ExpVector V)
V
- public static final int EVIWLC(long[][] w, ExpVector U, ExpVector V)
w
- weight array.U
- V
- public abstract int invWeightCompareTo(long[][] w, ExpVector V)
w
- weight array.V
- public static final int EVIWLC(long[][] w, ExpVector U, ExpVector V, int begin, int end)
w
- weight array.U
- V
- begin
- end
- public abstract int invWeightCompareTo(long[][] w, ExpVector V, int begin, int end)
w
- weight array.V
- begin
- end
-