Package cc.redberry.rings.poly.multivar
Class DegreeVector
- java.lang.Object
-
- cc.redberry.rings.poly.multivar.DegreeVector
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
AMonomial
public class DegreeVector extends Object implements Serializable
Degree vector. This is parent class for all monomials. Instances are immutable. AllDegreeVectormethods are prefixed with "dv" (which expands to "degree vector"), which means that they affect only exponents (not the coefficients).- Since:
- 1.0
- See Also:
AMonomial, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description int[]exponentsexponentsinttotalDegreeSum of all exponents (total degree)
-
Constructor Summary
Constructors Constructor Description DegreeVector(int[] exponents)DegreeVector(int[] exponents, int totalDegree)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DegreeVectordv()DegreeVectordvDivideExact(int[] divider)Gives quotientthis / othor throwsArithmeticExceptionif exact division is not possible (e.g.DegreeVectordvDivideExact(DegreeVector divider)Gives quotientthis / othor throwsArithmeticExceptionif exact division is not possible (e.g.DegreeVectordvDivideOrNull(int[] divider)Gives quotientthis / othor null if exact division is not possible (e.g.DegreeVectordvDivideOrNull(int variable, int exponent)Divides this by variable^exponentDegreeVectordvDivideOrNull(DegreeVector divider)Gives quotientthis / othor null if exact division is not possible (e.g.booleandvDivisibleBy(int[] oth)Tests whether this can be divided byothdegree vectorbooleandvDivisibleBy(DegreeVector oth)Tests whether this can be divided byothdegree vectorDegreeVectordvDropSelect(int[] variables)Picks only specified exponentsbooleandvEquals(DegreeVector dVector)DegreeVectordvInsert(int variable)Inserts new variableDegreeVectordvInsert(int variable, int count)Inserts new variablesDegreeVectordvJoinNewVariable()Joins new variable (with zero exponent) to degree vectorDegreeVectordvJoinNewVariables(int n)Joins new variables (with zero exponents) to degree vectorDegreeVectordvJoinNewVariables(int newNVariables, int[] mapping)internal APIDegreeVectordvMap(int nVariables, int[] mapping)Creates degree vector with old variables renamed to specified mapping variablesDegreeVectordvMultiply(int[] oth)Multiplies this by othDegreeVectordvMultiply(int variable, int exponent)Multiplies this by variable^exponentDegreeVectordvMultiply(DegreeVector oth)Multiplies this by othDegreeVectordvRange(int from, int to)Selects range from thisDegreeVectordvSelect(int var)Sets exponents of all variables except the specified variable to zeroDegreeVectordvSelect(int[] variables)Set's exponents of all variables except specified variables to zeroDegreeVectordvSet(int variable, int exponent)Set's exponent of specified variable to specified valueDegreeVectordvSetNVariables(int n)Sets the number of variablesDegreeVectordvSetZero(int var)Set exponent of specifiedvarto zeroDegreeVectordvSetZero(int[] variables)Set exponents of specified variables to zerointdvTotalDegree(int... variables)Returns the total degree in specified variablesDegreeVectordvWithout(int variable)Drops specified variable (number of variables will be reduced)DegreeVectordvWithout(int[] variables)Drops specified variables (number of variables will be reduced)booleanequals(Object o)inthashCode()booleanisZeroVector()Returns whether all exponents are zerointnVariables()Returns number of variablesStringtoString()StringtoString(String[] vars)String representation of this monomial with specified string names for variablesStringtoStringArray()
-
-
-
Method Detail
-
nVariables
public final int nVariables()
Returns number of variables
-
isZeroVector
public final boolean isZeroVector()
Returns whether all exponents are zero
-
dv
public DegreeVector dv()
-
dvTotalDegree
public final int dvTotalDegree(int... variables)
Returns the total degree in specified variables
-
dvMultiply
public final DegreeVector dvMultiply(DegreeVector oth)
Multiplies this by oth
-
dvMultiply
public final DegreeVector dvMultiply(int[] oth)
Multiplies this by oth
-
dvMultiply
public final DegreeVector dvMultiply(int variable, int exponent)
Multiplies this by variable^exponent
-
dvDivideOrNull
public final DegreeVector dvDivideOrNull(int variable, int exponent)
Divides this by variable^exponent
-
dvDivideOrNull
public final DegreeVector dvDivideOrNull(DegreeVector divider)
Gives quotientthis / othor null if exact division is not possible (e.g. a^2*b^3 / a^3*b^5)
-
dvDivideOrNull
public final DegreeVector dvDivideOrNull(int[] divider)
Gives quotientthis / othor null if exact division is not possible (e.g. a^2*b^3 / a^3*b^5)
-
dvDivideExact
public final DegreeVector dvDivideExact(DegreeVector divider)
Gives quotientthis / othor throwsArithmeticExceptionif exact division is not possible (e.g. a^2*b^3 / a^3*b^5)
-
dvDivideExact
public final DegreeVector dvDivideExact(int[] divider)
Gives quotientthis / othor throwsArithmeticExceptionif exact division is not possible (e.g. a^2*b^3 / a^3*b^5)
-
dvDivisibleBy
public final boolean dvDivisibleBy(int[] oth)
Tests whether this can be divided byothdegree vector
-
dvDivisibleBy
public final boolean dvDivisibleBy(DegreeVector oth)
Tests whether this can be divided byothdegree vector
-
dvJoinNewVariable
public final DegreeVector dvJoinNewVariable()
Joins new variable (with zero exponent) to degree vector
-
dvJoinNewVariables
public final DegreeVector dvJoinNewVariables(int n)
Joins new variables (with zero exponents) to degree vector
-
dvJoinNewVariables
public final DegreeVector dvJoinNewVariables(int newNVariables, int[] mapping)
internal API
-
dvSetNVariables
public final DegreeVector dvSetNVariables(int n)
Sets the number of variables
-
dvSelect
public final DegreeVector dvSelect(int var)
Sets exponents of all variables except the specified variable to zero
-
dvSelect
public final DegreeVector dvSelect(int[] variables)
Set's exponents of all variables except specified variables to zero
-
dvDropSelect
public final DegreeVector dvDropSelect(int[] variables)
Picks only specified exponents
-
dvRange
public final DegreeVector dvRange(int from, int to)
Selects range from this- Parameters:
from- from inclusiveto- to exclusive
-
dvSetZero
public final DegreeVector dvSetZero(int var)
Set exponent of specifiedvarto zero
-
dvSetZero
public final DegreeVector dvSetZero(int[] variables)
Set exponents of specified variables to zero
-
dvWithout
public final DegreeVector dvWithout(int variable)
Drops specified variable (number of variables will be reduced)
-
dvWithout
public final DegreeVector dvWithout(int[] variables)
Drops specified variables (number of variables will be reduced)
-
dvInsert
public final DegreeVector dvInsert(int variable)
Inserts new variable
-
dvInsert
public final DegreeVector dvInsert(int variable, int count)
Inserts new variables
-
dvSet
public final DegreeVector dvSet(int variable, int exponent)
Set's exponent of specified variable to specified value- Parameters:
variable- the variableexponent- new exponent
-
dvMap
public final DegreeVector dvMap(int nVariables, int[] mapping)
Creates degree vector with old variables renamed to specified mapping variables- Parameters:
nVariables- new total number of variablesmapping- mapping from old variables to new variables
-
toString
public final String toString(String[] vars)
String representation of this monomial with specified string names for variables- Parameters:
vars- string names of variables
-
toStringArray
public final String toStringArray()
-
dvEquals
public final boolean dvEquals(DegreeVector dVector)
-
-