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 QuadExpression
addConstant(double c)
Add a value to the constant term of this expression.abstract QuadExpression
addTerm(double coefficient, Variable variable)
Add a term to this expression.abstract QuadExpression
addTerm(double coefficient, Variable variable1, Variable variable2)
Add a term to this expression.QuadExpression
addTerm(LinTerm term)
Addterm
to this expression.QuadExpression
addTerm(QuadTerm term)
Addterm
to this expression.abstract QuadExpression
addTerm(Variable x)
Add term1.0*x
to this expression.abstract QuadExpression
addTerm(Variable variable, double coefficient)
Add a term to this expression.abstract QuadExpression
addTerm(Variable x1, Variable x2)
Add term1.0*x1*x2
to this expression.abstract QuadExpression
addTerm(Variable variable1, Variable variable2, double coefficient)
Add a term to this expression.abstract QuadExpression
addTerms(LinExpression expr)
Add another linear expression to this expression.abstract QuadExpression
addTerms(LinExpression expr, double factor)
Add another linear expression to this expression.abstract QuadExpression
addTerms(QuadExpression expr)
Add another quadratic expression to this expression.abstract QuadExpression
addTerms(QuadExpression expr, double factor)
Add another quadratic expression to this expression.QuadExpression
addTerms(Variable[] variables, double[] coefficients)
Add multiple terms to this expression.QuadExpression
addTerms(Variable[] variables, double[] coefficients, int offset, int count)
Add multiple terms to this expression.QuadExpression
addTerms(Variable[] variables1, Variable[] variables2, double[] coefficients)
Add multiple terms to this expression.QuadExpression
addTerms(Variable[] variables1, Variable[] variables2, double[] coefficients, int offset, int count)
Add multiple terms to this expression.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.QuadExpression
addTerms(java.lang.Iterable<Variable> variables, java.lang.Iterable<java.lang.Double> coefficients)
Add multiple terms to this expression.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.QuadExpression
addTerms(java.util.stream.Stream<Variable> variables, java.util.stream.Stream<java.lang.Double> coefficients)
Add multiple linear terms to this expression.static QuadExpression
create()
Create a new empty quadratic expression.static QuadExpression
create(double constant)
Create a new quadratic expression with the specified constant term.abstract QuadExpression
deepCopy()
Get a deep copy of this expression.abstract QuadExpression
deepCopy(double factor)
Get a deep copy of this expression multiplied by a constantabstract double
getConstant()
Get the constant value in this expression.abstract QuadExpression
reset()
Clear this expression.abstract QuadExpression
setConstant(double c)
Set the constant term in this expression.-
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 scalethis
with. - 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 ofvariables
andcoefficients
.- 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
,variables2
andcoefficients
.- 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 ofvariables
andcoefficients
.- 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
,variables2
andcoefficients
.- 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 ofvariables
andcoefficients
.- 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
,variables2
andcoefficients
.- 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 ofvariables
andcoefficients
usingcount
elements 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
,variables2
andcoefficients
usingcount
elements 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 forvariable
then the old and the new coefficients will be added.- 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 forvariable
then the old and the new coefficients will be added.- 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*x
to this expression. If the expression already has a coefficient forx
then the old and the new coefficients will be added.- Parameters:
-
x
- Variable. - Returns:
-
Always returns
this
. - Since:
- 43.00
-
addTerm
public QuadExpression addTerm(LinTerm term)
Addterm
to this expression.- Parameters:
-
term
- The term to add. - Returns:
-
Always returns
this
. - Since:
- 43.00
-
addTerm
public QuadExpression addTerm(QuadTerm term)
Addterm
to this expression.- 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*variable2
then the old and the new coefficients will be added.- 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*variable2
then the old and the new coefficients will be added.- 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*x2
to this expression. If the expression already has a coefficient forx
then the old and the new coefficients will be added.- 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 inexpr
before 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 inexpr
before adding. - Returns:
-
Always returns
this
. - Since:
- 43.00
-
create
public static QuadExpression create()
Create a new empty quadratic expression.- 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.- Parameters:
-
constant
- The constant term to which the expression is initialized. - Returns:
- The new quadratic expression.
- Since:
- 43.00
-
-
© 2001-2024 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.