LinExpression
- java.lang.Object
-
- com.dashoptimization.objects.Expression
-
- com.dashoptimization.objects.AbstractExpression
-
- com.dashoptimization.objects.LinExpression
-
- Direct Known Subclasses:
-
LinTermList
,LinTermMap
public abstract class LinExpression extends AbstractExpression
A linear 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 LinExpression()
-
Method Summary
Modifier and Type Method Description abstract LinExpression
addConstant(double c)
Add a value to the constant term of this expression.abstract LinExpression
addTerm(double coefficient, Variable variable)
Add a term to this expression.LinExpression
addTerm(LinTerm term)
Addterm
term to this expression.abstract LinExpression
addTerm(Variable x)
Add term1*x
to this expression.abstract LinExpression
addTerm(Variable variable, double coefficient)
Add a term to this expression.abstract LinExpression
addTerms(LinExpression expr)
Add another linear expression to this expression.abstract LinExpression
addTerms(LinExpression expr, double factor)
Add another linear expression to this expression.LinExpression
addTerms(Variable[] variables, double[] coefficients)
Add multiple terms to this expression.LinExpression
addTerms(java.lang.Iterable<Variable> variables, java.lang.Iterable<java.lang.Double> coefficients)
Add multiple terms to this expression.LinExpression
addTerms(java.util.stream.Stream<Variable> variables, java.util.stream.Stream<java.lang.Double> coefficients)
Add multiple terms to this expression.static LinExpression
create()
Create an empty linear expression.static LinExpression
create(double constant)
Create a linear expression with the specified constant term.abstract LinExpression
deepCopy()
Get a deep copy of this expression.abstract LinExpression
deepCopy(double factor)
Get a deep copy of this expression multiplied by a constantabstract double
getConstant()
Get the constant value in this expression.abstract LinExpression
reset()
Clear this expression.abstract LinExpression
setConstant(double c)
Set the constant term in this expression.Expression
square()
Create aQuadExpression
by multiplying this expression by itself.-
Methods inherited from class com.dashoptimization.objects.AbstractExpression
eq, eq, geq, geq, in, leq, leq
-
-
-
-
Method Detail
-
deepCopy
public abstract LinExpression deepCopy()
Get a deep copy of this expression.- Returns:
- A deep copy of this expression.
- Since:
- 43.00
-
deepCopy
public abstract LinExpression 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 LinExpression 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 LinExpression 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 LinExpression reset()
Clear this expression. Removes all terms and sets the constant to 0.- Returns:
-
Always returns
this
. - Since:
- 43.00
-
addTerms
public LinExpression addTerms(java.util.stream.Stream<Variable> variables, java.util.stream.Stream<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 LinExpression 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 LinExpression 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
-
addTerm
public abstract LinExpression 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 LinExpression 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 LinExpression addTerm(LinTerm term)
Addterm
term to this expression.- Parameters:
-
term
- The term to add. - Returns:
-
Always returns
this
. - Since:
- 43.00
-
addTerm
public abstract LinExpression addTerm(Variable x)
Add term1*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
-
addTerms
public abstract LinExpression 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 LinExpression 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
-
square
public Expression square()
Create aQuadExpression
by multiplying this expression by itself.- Returns:
-
New expression that represents the product of
this
with itself. - Since:
- 43.00
-
create
public static LinExpression create()
Create an empty linear expression.- Returns:
- The new linear expression.
- Since:
- 43.00
-
create
public static LinExpression create(double constant)
Create a linear 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.