QuadExpression
- java.lang.Object
-
- com.dashoptimization.objects.Expression
-
- com.dashoptimization.objects.AbstractExpression
-
- com.dashoptimization.objects.QuadExpression
-
- Direct Known Subclasses:
-
QuadTermList,QuadTermMap
public abstract class QuadExpression extends AbstractExpression
A quadratic expression that represents its data by a collection of terms. This is an abstract base class that is implement by different subclasses which use different data types to actually store the various terms in the expression.- Since:
- 43.00
-
-
Constructor Summary
Constructor Description QuadExpression()
-
Method Summary
Modifier and Type Method Description abstract QuadExpressionaddConstant(double c)Add a value to the constant term of this expression.abstract QuadExpressionaddTerm(double coefficient, Variable variable)Add a term to this expression.abstract QuadExpressionaddTerm(double coefficient, Variable variable1, Variable variable2)Add a term to this expression.QuadExpressionaddTerm(LinTerm term)Addtermto this expression.QuadExpressionaddTerm(QuadTerm term)Addtermto this expression.abstract QuadExpressionaddTerm(Variable x)Add term1.0*xto this expression.abstract QuadExpressionaddTerm(Variable variable, double coefficient)Add a term to this expression.abstract QuadExpressionaddTerm(Variable x1, Variable x2)Add term1.0*x1*x2to this expression.abstract QuadExpressionaddTerm(Variable variable1, Variable variable2, double coefficient)Add a term to this expression.abstract QuadExpressionaddTerms(LinExpression expr)Add another linear expression to this expression.abstract QuadExpressionaddTerms(LinExpression expr, double factor)Add another linear expression to this expression.abstract QuadExpressionaddTerms(QuadExpression expr)Add another quadratic expression to this expression.abstract QuadExpressionaddTerms(QuadExpression expr, double factor)Add another quadratic expression to this expression.QuadExpressionaddTerms(Variable[] variables, double[] coefficients)Add multiple terms to this expression.QuadExpressionaddTerms(Variable[] variables, double[] coefficients, int offset, int count)Add multiple terms to this expression.QuadExpressionaddTerms(Variable[] variables1, Variable[] variables2, double[] coefficients)Add multiple terms to this expression.QuadExpressionaddTerms(Variable[] variables1, Variable[] variables2, double[] coefficients, int offset, int count)Add multiple terms to this expression.QuadExpressionaddTerms(java.lang.Iterable<Variable> variables1, java.lang.Iterable<Variable> variables2, java.lang.Iterable<java.lang.Double> coefficients)Add multiple terms to this expression.QuadExpressionaddTerms(java.lang.Iterable<Variable> variables, java.lang.Iterable<java.lang.Double> coefficients)Add multiple terms to this expression.QuadExpressionaddTerms(java.util.stream.Stream<Variable> variables1, java.util.stream.Stream<Variable> variables2, java.util.stream.Stream<java.lang.Double> coefficients)Add multiple quadratic terms to this expression.QuadExpressionaddTerms(java.util.stream.Stream<Variable> variables, java.util.stream.Stream<java.lang.Double> coefficients)Add multiple linear terms to this expression.static QuadExpressioncreate()Create a new empty quadratic expression.static QuadExpressioncreate(double constant)Create a new quadratic expression with the specified constant term.static QuadExpressioncreate(double constant, int reserve)Create a quadratic expression with the specified constant term and prepare for adding the specified number of terms.abstract QuadExpressiondeepCopy()Get a deep copy of this expression.abstract QuadExpressiondeepCopy(double factor)Get a deep copy of this expression multiplied by a constantabstract doublegetConstant()Get the constant value in this expression.abstract QuadExpressionreset()Clear this expression.abstract QuadExpressionsetConstant(double c)Set the constant term in this expression.static booleansetCreateLists(boolean newValue)Configures whether thecreate()functions should return instances ofQuadTermList(ifnewValueis true) orQuadTermMap(ifnewValueis false).-
Methods inherited from class com.dashoptimization.objects.AbstractExpression
eq, eq, geq, geq, in, leq, leq
-
-
-
-
Method Detail
-
deepCopy
public abstract QuadExpression deepCopy()
Get a deep copy of this expression.- Returns:
- A deep copy of this expression.
- Since:
- 43.00
-
deepCopy
public abstract QuadExpression deepCopy(double factor)
Get a deep copy of this expression multiplied by a constant- Parameters:
-
factor- Factor to scalethiswith. - Returns:
-
A deep copy of this expression multiplied by
factor. - Since:
- 43.00
-
getConstant
public abstract double getConstant()
Get the constant value in this expression.- Returns:
- The constant value in this expression.
- Since:
- 43.00
-
addConstant
public abstract QuadExpression addConstant(double c)
Add a value to the constant term of this expression.- Parameters:
-
c- The constant to add. - Returns:
-
Always returns
this. - Since:
- 43.00
-
setConstant
public abstract QuadExpression setConstant(double c)
Set the constant term in this expression. Any existing constant term will be overwritten.- Parameters:
-
c- New constant term for this expression - Returns:
-
Always returns
this. - Since:
- 43.00
-
reset
public abstract QuadExpression reset()
Clear this expression. Removes all terms and sets the constant to 0.- Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(java.util.stream.Stream<Variable> variables, java.util.stream.Stream<java.lang.Double> coefficients)
Add multiple linear terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariablesandcoefficients.- Parameters:
-
variables- Variables. -
coefficients- Coefficients. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(java.util.stream.Stream<Variable> variables1, java.util.stream.Stream<Variable> variables2, java.util.stream.Stream<java.lang.Double> coefficients)
Add multiple quadratic terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariables1,variables2andcoefficients.- Parameters:
-
variables1- First variables. -
variables2- Second variables. -
coefficients- Coefficients. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(java.lang.Iterable<Variable> variables, java.lang.Iterable<java.lang.Double> coefficients)
Add multiple terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariablesandcoefficients.- Parameters:
-
variables- Variables -
coefficients- Coefficients - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(java.lang.Iterable<Variable> variables1, java.lang.Iterable<Variable> variables2, java.lang.Iterable<java.lang.Double> coefficients)
Add multiple terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariables1,variables2andcoefficients.- Parameters:
-
variables1- First variables -
variables2- Second variables -
coefficients- Coefficients - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(Variable[] variables, double[] coefficients)
Add multiple terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariablesandcoefficients.- Parameters:
-
variables- Variables -
coefficients- Coefficients - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(Variable[] variables1, Variable[] variables2, double[] coefficients)
Add multiple terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariables1,variables2andcoefficients.- Parameters:
-
variables1- First variables -
variables2- Second variables -
coefficients- Coefficients - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(Variable[] variables, double[] coefficients, int offset, int count)
Add multiple terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariablesandcoefficientsusingcountelements starting fromoffset.- Parameters:
-
variables- Variables -
coefficients- Coefficients -
offset- Offset into arrays. -
count- Number of elements to use from each array. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public QuadExpression addTerms(Variable[] variables1, Variable[] variables2, double[] coefficients, int offset, int count)
Add multiple terms to this expression. Adds the scalar product defined by the element-wise multiplication ofvariables1,variables2andcoefficientsusingcountelements starting fromoffset.- Parameters:
-
variables1- First variables -
variables2- Second variables -
coefficients- Coefficients -
offset- Offset into arrays. -
count- Number of elements to use from each array. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public abstract QuadExpression addTerm(Variable variable, double coefficient)
Add a term to this expression. If the expression already has a coefficient forvariablethen the old and the new coefficients will be added.Examples using
addTerm:- Parameters:
-
variable- Variable. -
coefficient- Coefficient to add forvariable. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public abstract QuadExpression addTerm(double coefficient, Variable variable)
Add a term to this expression. If the expression already has a coefficient forvariablethen the old and the new coefficients will be added.Examples using
addTerm:- Parameters:
-
coefficient- Coefficient to add forvariable. -
variable- Variable. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public abstract QuadExpression addTerm(Variable x)
Add term1.0*xto this expression. If the expression already has a coefficient forxthen the old and the new coefficients will be added.Examples using
addTerm:- Parameters:
-
x- Variable. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public QuadExpression addTerm(LinTerm term)
Addtermto this expression.Examples using
addTerm:- Parameters:
-
term- The term to add. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public QuadExpression addTerm(QuadTerm term)
Addtermto this expression.Examples using
addTerm:- Parameters:
-
term- The term to add. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public abstract QuadExpression addTerm(Variable variable1, Variable variable2, double coefficient)
Add a term to this expression. If the expression already has a coefficient forvariable1*variable2then the old and the new coefficients will be added.Examples using
addTerm:- Parameters:
-
variable1- First variable. -
variable2- Second variable. -
coefficient- Coefficient to add forvariable1*variable2. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public abstract QuadExpression addTerm(double coefficient, Variable variable1, Variable variable2)
Add a term to this expression. If the expression already has a coefficient forvariable1*variable2then the old and the new coefficients will be added.Examples using
addTerm:- Parameters:
-
coefficient- Coefficient to add forvariable1*variable2. -
variable1- First variable. -
variable2- Second variable. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerm
public abstract QuadExpression addTerm(Variable x1, Variable x2)
Add term1.0*x1*x2to this expression. If the expression already has a coefficient forxthen the old and the new coefficients will be added.Examples using
addTerm:- Parameters:
-
x1- First variable. -
x2- Second variable. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public abstract QuadExpression addTerms(LinExpression expr)
Add another linear expression to this expression.- Parameters:
-
expr- The expression to add - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public abstract QuadExpression addTerms(QuadExpression expr)
Add another quadratic expression to this expression.- Parameters:
-
expr- The expression to add - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public abstract QuadExpression addTerms(LinExpression expr, double factor)
Add another linear expression to this expression.- Parameters:
-
expr- The expression to add. -
factor- Factor by which to multiply elements inexprbefore adding. - Returns:
-
Always returns
this. - Since:
- 43.00
-
addTerms
public abstract QuadExpression addTerms(QuadExpression expr, double factor)
Add another quadratic expression to this expression.- Parameters:
-
expr- The expression to add. -
factor- Factor by which to multiply elements inexprbefore adding. - Returns:
-
Always returns
this. - Since:
- 43.00
-
setCreateLists
public static boolean setCreateLists(boolean newValue)
Configures whether thecreate()functions should return instances ofQuadTermList(ifnewValueis true) orQuadTermMap(ifnewValueis false).- Parameters:
-
newValue- The new value. - Returns:
- The old value.
- Since:
- 46.00
-
create
public static QuadExpression create()
Create a new empty quadratic expression.Examples using
create:- Returns:
- The new quadratic expression.
- Since:
- 43.00
-
create
public static QuadExpression create(double constant)
Create a new quadratic expression with the specified constant term.Examples using
create:- Parameters:
-
constant- The constant term to which the expression is initialized. - Returns:
- The new quadratic expression.
- Since:
- 43.00
-
create
public static QuadExpression create(double constant, int reserve)
Create a quadratic expression with the specified constant term and prepare for adding the specified number of terms.Examples using
create:- Parameters:
-
constant- The constant term to which the expression is initialized. -
reserve- Prepare for this many terms to add. - Returns:
- The new quadratic expression.
- Since:
- 43.00
-
-
© 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.
