Expressions
A technical manual for variable expressions in InfiniteOpt. See the respective guide for more information.
Parameter Functions
Definition
InfiniteOpt.@parameter_function — Macro@parameter_function(model::InfiniteModel, func_expr, kwargs...)Add an anonymous parameter function to the model model described by the keyword arguments kw_args and returns the object reference.
@parameter_function(model::InfiniteModel, var_expr == func_expr, kwargs...)Add a parameter function to model described by the expression var_expr, the function expression func_expr, and the keyword arguments kwargs. The expression var_expr is used to define the parameter function references of the form varname[...] where the indexing matches the container syntax of other macros.
The expression func_expr determines the concrete Julia function that defines the behavior of parameter function and also specifies the infinite parameters it depends on. The accepted forms are:
func(params...): wherefuncis the function that takes supports of the infinite parametersparamsas input and outputs a scalar value.(params...) -> my_func_expr: whereparamsare the infinite parameters andmy_func_expris the source code of the anonymous function.
The recognized keyword arguments in kwargs are the following:
base_name: Sets the name prefix used to generate object names. It corresponds to the object name for scalar parameter function, otherwise, the object names are set tobase_name[...]for each index...of the axesaxes.container: Specify the container type. Defaults to:Auto.
Examples
julia> @parameter_function(model, sin(t))
sin(t)
julia> func_vect = [sin, cos];
julia> @parameter_function(model, [i = 1:2] == func_vect[i](t))
2-element Array{GeneralVariableRef,1}:
sin(t)
cos(t)
julia> f(t_val, x_vals) = t_val + sum(x_vals)
f (generic function with 1 method)
julia> @parameter_function(model, pf == f(t, x))
pf(t, x)
julia> g(t_val, a; b = 0) = t_val + a + b
g (generic function with 1 method)
julia> @parameter_function(model, pf2[i = 1:2] == t -> g(t, i, b = 2 * i ))
2-element Array{GeneralVariableRef,1}:
pf2[1](t)
pf2[2](t)InfiniteOpt.parameter_function — Functionparameter_function(func::Function,
pref_inputs::Union{GeneralVariableRef, AbstractArray{GeneralVariableRef}, Tuple};
[name::String = [the name of `func`]]
)::GeneralVariableRefMake a parameter function and return a GeneralVariableRef that can be embedded in InfiniteOpt expressions. This serves as a convenient wrapper for build_parameter_function and add_parameter_function. For an even more convenient definition method see @parameter_function.
Here func denotes the function that will take a support of infinite parameters as input (formatted like pref_inputs) and will return a scalar value. Specifically, func should be of the form:
func(paramvals...)::Float64where the formatting of paramvals is analagous to point variables (and will be based on the tuple of infinite parameter references given in parameter_refs). Moreover, func must be a function that returns a scalar numeric value.
Errors if func will not take a support formatted like pref_inputs in combination with the fargs and fkwargs specified. Also errors if pref_inputs follow an invalid input format.
Example
julia> p_func = parameter_function(sin, t)
sin(t)
julia> p_func3 = parameter_function((t_supp) -> 2 * sin(2 * t_supp), t, name = "mysin")
mysin(t)
julia> p_func4 = parameter_function(t, name = "mysin") do t_supp
if t_supp <= 5
return sin(t_supp)
else
return 2 * sin(2 * t_supp)
end
end
mysin(t)InfiniteOpt.build_parameter_function — Functionbuild_parameter_function(
_error::Function,
func::Function,
parameter_refs::Union{GeneralVariableRef, AbstractArray{<:GeneralVariableRef}, Tuple}
)::ParameterFunctionBuild an ParameterFunction object that employs a parameter function func that takes instances of the infinite parameter(s) as input. This can ultimately by incorporated into expressions to enable nonlinear infinite parameter behavior and/or incorporate data over infinite domains.
Here func should be of the form:
func(paramvals...)::Float64where the formatting of paramvals is analagous to point variables (and will be based on the tuple of infinite parameter references given in parameter_refs).
Errors if the infinite parameter tuple is formatted incorrectly. The allowed format follows that of infinite variables. Also errors if the function doesn't accept a support realization of the parameter_refs as input.
Example
julia> f = build_parameter_function(error, sin, t);InfiniteOpt.ParameterFunction — TypeParameterFunction{F <: Function, VT <: VectorTuple}A DataType for storing known functions of infinite parameters. These equate to arbitrary functions that take support instances of infinite parameters parameter_refs in as input and compute a scalar value as output via func. These can then can incorporated in expressions via ParameterFunctionRefs.
Fields
func::F: The function the takes infinite parameters as input and provide a scalar number as output.parameter_refs::VT: The infinite parameter references that serve as inputs tofunc. Their formatting is analagous to those of infinite variables.parameter_nums::Vector{Int}: The parameter numbers ofparameter_refs.object_nums::Vector{Int}: The parameter object numbers associated withparameter_refs.
InfiniteOpt.add_parameter_function — Functionadd_parameter_function(model::InfiniteModel, pfunc::ParameterFunction,
[name::String])::GeneralVariableRefAdd an ParameterFunction pfunc to the model using name for printing and return a GeneralVariableRef such that it can be embedded in expressions. Errors if the parameter function pfunc points to do not belong to model. Note that pfunc should be created using build_parameter_function.
Example
julia> f = build_parameter_function(error, sin, t);
julia> fref = add_parameter_function(model, f)
sin(t)InfiniteOpt.ParameterFunctionData — TypeParameterFunctionData{F <: ParameterFunction} <: AbstractDataObjectA mutable DataType for storing ParameterFunctions and their data.
Fields
func::F: The parameter function.name::String: The name used for printing.measure_indices::Vector{MeasureIndex}: Indices of dependent measures.constraint_indices::Vector{InfOptConstraintIndex}: Indices of dependent constraints.semi_infinite_var_indices::Vector{SemiInfiniteVariableIndex}: Indices of dependent semi-infinite variables.derivative_indices::Vector{DerivativeIndex}: Indices of dependent derivatives.
InfiniteOpt.ParameterFunctionIndex — TypeParameterFunctionIndex <: ObjectIndexA DataType for storing the index of a ParameterFunction.
Fields
value::Int64: The index value.
InfiniteOpt.ParameterFunctionRef — TypeParameterFunctionRef <: DispatchVariableRefA DataType for infinite parameter function references.
Fields
model::InfiniteModel: Infinite model.index::ParameterFunctionIndex: Index of the infinite parameter function.
Queries
JuMP.name — MethodJuMP.name(fref::ParameterFunctionRef)::StringExtend JuMP.name to return the base name of fref.
Example
julia> name(fref)
"func_name"InfiniteOpt.raw_function — Methodraw_function(fref::ParameterFunctionRef)::FunctionReturns the raw function behind fref that takes a particular support of fref's infinite parameters as input.
InfiniteOpt.call_function — Functioncall_function(fref::ParameterFunctionRef, support...)::Float64Safely evaluates the raw_function of fref at a particular support support point that matches the format of the infinite parameter tuple given when the fref was defined. This is essentially equivalent to raw_function(fref)(supps...).
call_function(fref::GeneralVariableRef, support...)::Float64Call the parameter function of fref at support. An ArgumentError is thrown if fref is not a parameter function.
InfiniteOpt.parameter_refs — Methodparameter_refs(fref::ParameterFunctionRef)::TupleReturn the parameter references associated with fref. This is formatted as a Tuple of containing the parameter references as they inputted to define fref.
Example
julia> parameter_refs(p_func)
(t,)InfiniteOpt.parameter_list — Methodparameter_list(fref::ParameterFunctionRef)::Vector{GeneralVariableRef}Return a vector of the parameter references that fref depends on. This is primarily an internal method where parameter_refs is intended as the preferred user function.
InfiniteOpt.raw_parameter_refs — Methodraw_parameter_refs(fref::ParameterFunctionRef)::VectorTupleReturn the raw VectorTuple of the parameter references that fref depends on. This is primarily an internal method where parameter_refs is intended as the preferred user function.
InfiniteOpt.is_used — Methodis_used(fref::ParameterFunctionRef)::BoolReturn a Bool indicating if fref is used in the model.
Example
julia> is_used(fref)
trueInfiniteOpt.used_by_semi_infinite_variable — Methodused_by_semi_infinite_variable(fref::ParameterFunctionRef)::BoolReturn a Bool indicating if fref is used by a semi-infinite infinite variable.
Example
julia> used_by_semi_infinite_variable(fref)
falseInfiniteOpt.used_by_derivative — Methodused_by_derivative(fref::ParameterFunctionRef)::BoolReturn a Bool indicating if fref is used by a derivative.
Example
julia> used_by_derivative(vref)
trueInfiniteOpt.used_by_measure — Methodused_by_measure(fref::ParameterFunctionRef)::BoolReturn a Bool indicating if fref is used by a measure.
Example
julia> used_by_measure(fref)
trueInfiniteOpt.used_by_constraint — Methodused_by_constraint(fref::ParameterFunctionRef)::BoolReturn a Bool indicating if fref is used by a constraint.
Example
julia> used_by_constraint(fref)
falseModification
JuMP.set_name — MethodJuMP.set_name(fref::ParameterFunctionRef, name::String)::NothingExtend JuMP.set_name to set the name of a parameter function.
Example
julia> set_name(fref, "func_name")
julia> name(fref)
"func_name"JuMP.delete — MethodJuMP.delete(model::InfiniteModel, fref::ParameterFunctionRef)::NothingExtend JuMP.delete to delete parameter functions and their dependencies. Errors if fref is invalid, meaning it has already been deleted or it belongs to another model.
Nonlinear Expressions
DataTypes
InfiniteOpt.NodeData — TypeNodeDataA DataType for storing values in an expression tree that is used in a NLPExpr. Acceptable value types include:
Real: ConstantsGeneralVariableRef: Optimization variablesJuMP.GenericAffExpr{Float64, GeneralVariableRef}: Affine expressionsJuMP.GenericQuadExpr{Float64, GeneralVariableRef}: Quadratic expressionsSymbol: Registered NLP function name.
Fields
value: The stored value.
InfiniteOpt.NLPExpr — TypeNLPExpr <: JuMP.AbstractJuMPScalarA DataType for storing scalar nonlinear expressions. It stores the expression algebraically via an expression tree where each node contains NodeData that can store one of the following:
- a registered function name (stored as a
Symbol) - a constant
- a variable
- an affine expression
- a quadratic expression.
Specifically, it employs a left-child right-sibling tree (from LeftChildRightSiblingTrees.jl) to represent the expression tree.
Fields
tree_root::LeftChildRightSiblingTrees.Node{NodeData}: The root node of the expression tree.
InfiniteOpt.RegisteredFunction — TypeRegisteredFunction{F <: Function, G <: Union{Function, Nothing},
H <: Union{Function, Nothing}}A type for storing used defined registered functions and their information that is needed by JuMP for build an NLPEvaluator. The constructor is of the form:
RegisteredFunction(name::Symbol, num_args::Int, func::Function,
[gradient::Function, hessian::Function])Fields
name::Symbol: The name of the function that is used inNLPExprs.num_args::Int: The number of function arguments.func::F: The function itself.gradient::G: The gradient function if one is given.hessian::H: The hessian function if one is given.
Methods/Macros
InfiniteOpt.@register — Macro@register(model::InfiniteModel, func_expr, [gradient::Function], [hessian::Function])Register a user-defined function in accordance with func_expr such that it can be used in NLPExprs that are used with model without being traced.
Argument Information Here func_expr is of the form: myfunc(a, b) where myfunc is the function name and the number of arguments are given symbolically. Note that the choice of argument symbols is arbitrary. Each function argument must support anything of type Real to specified.
Here we can also specify a gradient function gradient which for 1 argument functions must taken in the 1 argument and return its derivative. For multi-argument functions the gradient function must be of the form:
function gradient(g::AbstractVector{T}, args::T...) where {T <: Real}
# fill g vector with the gradient of the function
endFor 1 argument functions we can also specify a hessian function with takes that argument and return the 2nd derivative. Hessians can ge specified for multi-argument functions, but JuMP backends do not currently support this.
If no gradient and/or hessian is given, the automatic differentation capabilities of the backend (e.g., JuMP) will be used to determine them. Note that the JuMP backend does not use Hessian's for user-defined multi-argument functions.
Notes
- When possible, tracing is preferred over registering a function (see Function Tracing for more info).
- Only user-defined functions can be specified. If the function is used by a package then it can not be used directly. However, we can readily wrap it in a new function
newfunc(a) = pkgfunc(a). - We can only register functions in the same scope that they are defined in.
- Registered functions can only be used in or below the scope in which they are registered. For instance, if we register some function inside of another function then we can only use it inside that function (not outside of it).
- A function with a given name and number of arguments can only be registered once in a particular model.
Examples
julia> @variable(model, x)
x
julia> f(a) = a^3;
julia> f(x) # user-function gets traced
x^3
julia> @register(model, f(a)) # register function
f (generic function with 2 methods)
julia> f(x) # function is no longer traced and autodifferentiation will be used
f(x)
julia> f2(a) = a^2; g2(a) = 2 * a; h2(a) = 2;
julia> @register(model, f2(a), g2, h2) # register with explicit gradient and hessian
f2 (generic function with 2 methods)
julia> f2(x)
f2(x)
julia> f3(a, b) = a * b^2;
julia> function g3(v, a, b)
v[1] = b^2
v[2] = 2 * a * b
return
end;
julia> @register(model, f3(a, b), g3) # register multi-argument function
f3 (generic function with 4 methods)
julia> f3(42, x)
f3(42, x)InfiniteOpt.all_registered_functions — Functionall_registered_functions(model::InfiniteModel)::Vector{Function}Retrieve all the functions that are currently registered to model.
InfiniteOpt.name_to_function — Functionname_to_function(model::InfiniteModel, name::Symbol, num_args::Int)::Union{Function, Nothing}Return the registered function that corresponds to name with num_args. Returns nothing if no such registered function exists. This helps retrieve the functions of function names stored in NLPExprs.
InfiniteOpt.user_registered_functions — Functionuser_registered_functions(model::InfiniteModel)::Vector{RegisteredFunction}Return all the functions (and their associated information) that the user has registered to model. Each is stored as a RegisteredFunction.
InfiniteOpt.ifelse — FunctionInfiniteOpt.ifelse(cond::NLPExpr, v1::Union{AbstractInfOptExpr, Real},
v2::Union{AbstractInfOptExpr, Real})::NLPExprA symbolic version of Core.ifelse that can be used to establish symbolic expressions with logic conditions. Note that is must be written InfiniteOpt.ifelse since it conflicts with Core.ifelse.
Example
julia> InfiniteOpt.ifelse(x >= y, 0, y^3)
ifelse(x >= y, 0, y^3)InfiniteOpt.print_expression_tree — Methodprint_expression_tree(nlp::NLPExpr)Print a tree representation of the nonlinear expression nlp.
Example
julia> expr = (x * sin(x)^3) / 2
(x * sin(x)^3) / 2
julia> print_expression_tree(expr)
/
├─ *
│ ├─ x
│ └─ ^
│ ├─ sin
│ │ └─ x
│ └─ 3
└─ 2JuMP.drop_zeros! — MethodJuMP.drop_zeros!(nlp::NLPExpr)::NLPExprRemoves the zeros (possibly introduced by deletion) from an nonlinear expression. Note this only uses a few simple heuristics and will not remove more complex relationships like cos(π/2).
Example
julia> expr = x^2.3 * max(0, zero(NLPExpr)) - exp(1/x + 0)
x^2.3 * max(0, 0) - exp(1 / x + 0)
julia> drop_zeros!(expr)
-exp(1 / x)InfiniteOpt.map_nlp_to_ast — Functionmap_nlp_to_ast(map_func::Function, nlp::NLPExpr)::ExprMap the nonlinear expression nlp to a Julia AST expression where each variable is mapped via map_func and is directly interpolated into the AST expression. This is intended as an internal method that can be helpful for developers that wish to map a NLPExpr to a Julia AST expression that is compatible with JuMP.add_NL_expression.
InfiniteOpt.add_registered_to_jump — Functionadd_registered_to_jump(opt_model::JuMP.Model, inf_model::InfiniteModel)::NothingAdd the user registered functions in inf_model to a JuMP model opt_model. This is intended as an internal method, but it is provided for developers that extend InfiniteOpt to use other optimizer models.
Expression Methods
InfiniteOpt.parameter_refs — Methodparameter_refs(expr)::TupleReturn the tuple of parameter references that determine the infinite dependencies of expr.
Example
julia> parameter_refs(my_expr)
(t,)InfiniteOpt.map_expression — Functionmap_expression(transform::Function,
expr::JuMP.AbstractJuMPScalar)::JuMP.AbstractJuMPScalarMap and return a new expression of expr where each variable is transformed via transform. This can be helpful for writing user extensions.
GeneralVariableRef User Methods
InfiniteOpt.GeneralVariableRef — TypeGeneralVariableRef <: JuMP.AbstractVariableRefA DataType that serves as the principal variable reference in InfiniteOpt for building variable expressions. It contains the needed information to create a variable type specifc reference (e.g., InfiniteVariableRef) via dispatch_variable_ref to obtain the correct subtype of DispatchVariableRef based off of index_type. This allows us to construct expressions using concrete containers unlike previous versions of InfiniteOpt which provides us a significant performance boost.
Fields
model::InfiniteModel: Infinite model.raw_index::Int64: The raw index to be used in theindex_typeconstructor.index_type::DataType: The concreteAbstractInfOptIndextype/constructor.param_index::Int: The index of a parameter inDependentParameters. This is ignored for other variable types.
InfiniteOpt.DispatchVariableRef — TypeDispatchVariableRef <: JuMP.AbstractVariableRefAn abstract type for variable references that are created from GeneralVariableRefs and are used to dispatch to the appropriate methods for that particular variable/parameter/measure type.
InfiniteOpt.FiniteRef — TypeFiniteRef <: DispatchVariableRefAn abstract type for variable references that are finite.
JuMP.owner_model — MethodJuMP.owner_model(vref::GeneralVariableRef)::InfiniteModelExtend JuMP.owner_model to return the model where vref is stored.
Example
julia> owner_model(vref)
An InfiniteOpt Model
Feasibility problem with:
Finite Parameters: 0
Infinite Parameters: 0
Variable: 1
Derivatives: 0
Measures: 0
`FiniteVariableRef`-in-`MathOptInterface.GreaterThan{Float64}`: 1 constraint
`FiniteVariableRef`-in-`MathOptInterface.LessThan{Float64}`: 1 constraint
Names registered in the model: vref
Optimizer model backend information:
Model mode: AUTOMATIC
CachingOptimizer state: NO_OPTIMIZER
Solver name: No optimizer attached.JuMP.owner_model — MethodJuMP.owner_model(vref::DispatchVariableRef)::InfiniteModelExtend JuMP.owner_model to return the model where vref is stored.
JuMP.index — MethodJuMP.index(vref::GeneralVariableRef)::AbstractInfOptIndexExtend JuMP.index to return the appropriate index of vref.
Example
julia> index(vref)
FiniteVariableIndex(1)JuMP.index — MethodJuMP.index(vref::DispatchVariableRef)::AbstractInfOptIndexExtend JuMP.index to return the appropriate index of vref.
InfiniteOpt.dispatch_variable_ref — Methoddispatch_variable_ref(vef::GeneralVariableRef)::DispatchVariableRefReturn the concrete DispatchVariableRef this associated with vref. This relies on dispatch_variable_ref being extended for the index type, otherwise an MethodError is thrown.
InfiniteOpt.dispatch_variable_ref — Functiondispatch_variable_ref(model::InfiniteModel, index::AbstractInfOptIndex)Return the variable reference associated the type of index. This needs to be defined for each variable reference type.
JuMP.name — MethodJuMP.name(vref::GeneralVariableRef)::StringExtend JuMP.name to return the name of vref. It relies on JuMP.name being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown.
JuMP.set_name — MethodJuMP.set_name(vref::GeneralVariableRef, name::String)::NothingExtend JuMP.set_name to set the name of vref. It relies on JuMP.set_name being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown.
JuMP.is_valid — MethodJuMP.is_valid(model::InfiniteModel, vref::GeneralVariableRef)::BoolExtend JuMP.is_valid to return Bool if vref is a valid reference.
Example
julia> is_valid(model, vref)
trueJuMP.is_valid — MethodJuMP.is_valid(model::InfiniteModel, vref::DispatchVariableRef)::BoolExtend JuMP.is_valid to return Bool if vref is a valid reference.
InfiniteOpt.used_by_infinite_variable — Methodused_by_infinite_variable(vref::GeneralVariableRef)::BoolDefine used_by_infinite_variable for general variable references. It relies on used_by_infinite_variable being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.used_by_point_variable — Methodused_by_point_variable(vref::GeneralVariableRef)::BoolDefine used_by_point_variable for general variable references. It relies on used_by_point_variable being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.used_by_semi_infinite_variable — Methodused_by_semi_infinite_variable(vref::GeneralVariableRef)::BoolDefine used_by_semi_infinite_variable for general variable references. It relies on used_by_semi_infinite_variable being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.used_by_derivative — Methodused_by_derivative(vref::GeneralVariableRef)::BoolDefine used_by_derivative for general variable references. It relies on used_by_derivative being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.used_by_measure — Methodused_by_measure(vref::GeneralVariableRef)::BoolDefine used_by_measure for general variable references. It relies on used_by_measure being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.used_by_objective — Methodused_by_objective(vref::GeneralVariableRef)::BoolDefine used_by_objective for general variable references. It relies on used_by_objective being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.used_by_constraint — Methodused_by_constraint(vref::GeneralVariableRef)::BoolDefine used_by_constraint for general variable references. It relies on used_by_constraint being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.is_used — Methodis_used(vref::GeneralVariableRef)::BoolDefine is_used for general variable references. It relies on is_used being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.has_derivative_constraints — Methodhas_derivative_constraints(vref::GeneralVariableRef)::BoolDefine has_derivative_constraints for general variable references. It relies on has_derivative_constraints being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.parameter_value — Methodparameter_value(prefs; [kwargs...])Define parameter_value for general variable references. It relies on parameter_value being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
JuMP.set_value — MethodJuMP.set_value(vref::DispatchVariableRef, value::Real)::NothingExtend JuMP.set_value to set the value of vref. It relies on JuMP.set_value being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown.
InfiniteOpt.infinite_domain — Methodinfinite_domain(prefs; [kwargs...])Define infinite_domain for general variable references. It relies on infinite_domain being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.infinite_domain — Methodinfinite_domain(prefs; [kwargs...])Define infinite_domain for general variable references. It relies on infinite_domain being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.set_infinite_domain — Methodset_infinite_domain(pref::GeneralVariableRef, domain::InfiniteScalarDomain)::NothingSpecify the scalar infinite domain of the infinite parameter pref to domain. Note this will reset/delete all the supports contained in the underlying parameter object. Also, errors if pref is used by a measure. An ArgumentError is thrown if pref is not an infinite parameter.
InfiniteOpt.set_infinite_domain — Methodset_infinite_domain(prefs::AbstractArray{<:GeneralVariableRef},
domain::InfiniteArrayDomain)::NothingSpecify the multi-dimensional infinite domain of the dependent infinite parameters prefs to domain. Note this will reset/delete all the supports contained in the underlying DependentParameters object. This will error if the not all of the dependent infinite parameters are included or if any of them are used by measures. An ArgumentError is thrown if prefs are not dependent infinite parameters.
InfiniteOpt.num_supports — Methodnum_supports(prefs; [kwargs...])Define num_supports for general variable references. It relies on num_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.num_supports — Methodnum_supports(prefs; [kwargs...])Define num_supports for general variable references. It relies on num_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.has_supports — Methodhas_supports(prefs; [kwargs...])Define has_supports for general variable references. It relies on has_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.has_supports — Methodhas_supports(prefs; [kwargs...])Define has_supports for general variable references. It relies on has_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.supports — Methodsupports(expr::JuMP.AbstractJuMPScalar;
[label::Type{<:AbstractSupportLabel} = PublicLabel,
ndarray::Bool = false,
kwargs...])Return the support associated with expr. Errors if expr is not associated with the constraint mappings stored in optimizer_model.
The keyword arugments label and ndarray are what TranscriptionOpt employ and kwargs denote extra ones that user extensions may employ in accordance with their implementation of expression_supports. Errors if such an extension has not been written.
By default only the public supports are returned, the full set can be accessed via label = All. Moreover, the supports of infinite expressions are returned as a list. However, a n-dimensional array can be obtained via ndarray = true which is handy when the expression has multiple infinite parameter dependencies.
Example
julia> supports(cref)
2-element Array{Tuple{Float64},1}:
(0.0,)
(1.0,)supports(prefs; [kwargs...])Define supports for general variable references. It relies on supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.supports — Methodsupports(prefs; [kwargs...])Define supports for general variable references. It relies on supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.set_supports — Methodset_supports(pref::GeneralVariableRef, supports::Union{Real, Vector{<:Real}};
[force::Bool = false])::NothingSet the support points associated with a single infinite parameter pref. An ArgumentError is thrown if pref is not an independent infinite parameter.
InfiniteOpt.set_supports — Methodset_supports(
prefs::Union{Vector{GeneralVariableRef}, AbstractArray{<:GeneralVariableRef}},
supports::Union{Array{<:Real, 2}, Vector{<:AbstractArray{<:Real}}};
[force::Bool = false]
)::NothingSet the support points associated with dependent infinite parameters prefs. An ArgumentError is thrown if prefs is are not dependent infinite parameters.
InfiniteOpt.add_supports — Methodadd_supports(pref::GeneralVariableRef,
supports::Union{Real, Vector{<:Real}})::NothingAdd the support points supports to a single infinite parameter pref. An ArgumentError is thrown if pref is not an independent infinite parameter.
InfiniteOpt.add_supports — Methodadd_supports(
prefs::Union{Vector{GeneralVariableRef}, AbstractArray{<:GeneralVariableRef}},
supports::Union{Array{<:Real, 2}, Vector{<:AbstractArray{<:Real}}}
)::NothingAdd the support points supports to the dependent infinite parameters prefs. An ArgumentError is thrown if prefs is are not dependent infinite parameters.
InfiniteOpt.delete_supports — Methoddelete_supports(prefs; [kwargs...])Define delete_supports for general variable references. It relies on delete_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.delete_supports — Methoddelete_supports(prefs; [kwargs...])Define delete_supports for general variable references. It relies on delete_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.fill_in_supports! — Methodfill_in_supports!(prefs; [kwargs...])Define fill_in_supports! for general variable references. It relies on fill_in_supports! being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.fill_in_supports! — Methodfill_in_supports!(prefs; [kwargs...])Define fill_in_supports! for general variable references. It relies on fill_in_supports! being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.raw_parameter_refs — Methodraw_parameter_refsc(vref::GeneralVariableRef)Define raw_parameter_refs for general variable references. It relies on raw_parameter_refs being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.parameter_refs — Methodparameter_refsc(vref::GeneralVariableRef)Define parameter_refs for general variable references. It relies on parameter_refs being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.parameter_list — Methodparameter_listc(vref::GeneralVariableRef)Define parameter_list for general variable references. It relies on parameter_list being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.raw_function — Methodraw_function(prefs; [kwargs...])Define raw_function for general variable references. It relies on raw_function being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.infinite_variable_ref — Methodinfinite_variable_refc(vref::GeneralVariableRef)Define infinite_variable_ref for general variable references. It relies on infinite_variable_ref being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.eval_supports — Methodeval_supportsc(vref::GeneralVariableRef)Define eval_supports for general variable references. It relies on eval_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.raw_parameter_values — Methodraw_parameter_valuesc(vref::GeneralVariableRef)Define raw_parameter_values for general variable references. It relies on raw_parameter_values being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.parameter_values — Methodparameter_valuesc(vref::GeneralVariableRef)Define parameter_values for general variable references. It relies on parameter_values being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.significant_digits — Methodsignificant_digits(prefs; [kwargs...])Define significant_digits for general variable references. It relies on significant_digits being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.measure_function — Methodmeasure_function(mref::GeneralVariableRef)Define measure_function for general variable references. Errors if mref does not correspond to a MeasureRef. See the underlying docstrings for more information.
InfiniteOpt.measure_data — Methodmeasure_data(mref::GeneralVariableRef)Define measure_data for general variable references. Errors if mref does not correspond to a MeasureRef. See the underlying docstrings for more information.
InfiniteOpt.is_analytic — Methodis_analytic(mref::GeneralVariableRef)Define is_analytic for general variable references. Errors if mref does not correspond to a MeasureRef. See the underlying docstrings for more information.
InfiniteOpt.derivative_argument — Methodderivative_argument(dref::GeneralVariableRef)Define derivative_argument for general variable references. Errors if dref does not correspond to a DerivativeRef. See the underlying docstrings for more information.
InfiniteOpt.operator_parameter — Methodoperator_parameter(dref::GeneralVariableRef)Define operator_parameter for general variable references. Errors if dref does not correspond to a DerivativeRef. See the underlying docstrings for more information.
InfiniteOpt.derivative_method — Methodderivative_method(prefs; [kwargs...])Define derivative_method for general variable references. It relies on derivative_method being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.evaluate — Methodevaluate(dref::GeneralVariableRef)Define evaluate for general variable references. Errors if dref does not correspond to a DerivativeRef. See the underlying docstrings for more information.
InfiniteOpt.derivative_constraints — Methodderivative_constraints(dref::GeneralVariableRef)Define derivative_constraints for general variable references. Errors if dref does not correspond to a DerivativeRef. See the underlying docstrings for more information.
InfiniteOpt.delete_derivative_constraints — Methoddelete_derivative_constraints(dref::GeneralVariableRef)Define delete_derivative_constraints for general variable references. Errors if dref does not correspond to a DerivativeRef. See the underlying docstrings for more information.
InfiniteOpt.add_generative_supports — Methodadd_generative_supports(prefs; [kwargs...])Define add_generative_supports for general variable references. It relies on add_generative_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.set_derivative_method — Methodset_derivative_method(pref::GeneralVariableRef,
method::AbstractDerivativeMethod
)::NothingSpecify the numerical derivative evaluation technique associated with pref. An ArgumentError is thrown if pref is not an infinite parameter.
InfiniteOpt.has_generative_supports — Methodhas_generative_supports(prefs; [kwargs...])Define has_generative_supports for general variable references. It relies on has_generative_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
InfiniteOpt.has_internal_supports — Methodhas_internal_supports(prefs; [kwargs...])Define has_internal_supports for general variable references. It relies on has_internal_supports being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information. Note that this is a auto generated wrapper and the underlying method may or may not use kwargs.
JuMP.delete — MethodJuMP.delete(model::InfiniteModel, vref::GeneralVariableRef)::NothingExtend JuMP.delete to delete vref and its dependencies. It relies on JuMP.delete being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown.
JuMP.delete — MethodJuMP.delete(model::InfiniteModel,
prefs::AbstractArray{<:GeneralVariableRef})::NothingExtend JuMP.delete to delete a group of dependent infinite parameters and their dependencies. An ArgumentError is thrown if prefs are not dependent infinite parameters.
JuMP.has_lower_bound — MethodJuMP.has_lower_bound(vref::GeneralVariableRef)Define JuMP.has_lower_bound for general variable references. It relies on JuMP.has_lower_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.lower_bound — MethodJuMP.lower_bound(vref::GeneralVariableRef)Define JuMP.lower_bound for general variable references. It relies on JuMP.lower_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.set_lower_bound — MethodJuMP.set_lower_bound(vref::GeneralVariableRef, value::Real)::NothingDefine JuMP.set_lower_bound for general variable references. It relies on JuMP.set_lower_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.LowerBoundRef — MethodJuMP.LowerBoundRef(vref::GeneralVariableRef)Define JuMP.LowerBoundRef for general variable references. It relies on JuMP.LowerBoundRef being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.delete_lower_bound — MethodJuMP.delete_lower_bound(vref::GeneralVariableRef)Define JuMP.delete_lower_bound for general variable references. It relies on JuMP.delete_lower_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.has_upper_bound — MethodJuMP.has_upper_bound(vref::GeneralVariableRef)Define JuMP.has_upper_bound for general variable references. It relies on JuMP.has_upper_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.upper_bound — MethodJuMP.upper_bound(vref::GeneralVariableRef)Define JuMP.upper_bound for general variable references. It relies on JuMP.upper_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.set_upper_bound — MethodJuMP.set_upper_bound(vref::GeneralVariableRef, value::Real)::NothingDefine JuMP.set_upper_bound for general variable references. It relies on JuMP.set_upper_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.UpperBoundRef — MethodJuMP.UpperBoundRef(vref::GeneralVariableRef)Define JuMP.UpperBoundRef for general variable references. It relies on JuMP.UpperBoundRef being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.delete_upper_bound — MethodJuMP.delete_upper_bound(vref::GeneralVariableRef)Define JuMP.delete_upper_bound for general variable references. It relies on JuMP.delete_upper_bound being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.is_fixed — MethodJuMP.is_fixed(vref::GeneralVariableRef)Define JuMP.is_fixed for general variable references. It relies on JuMP.is_fixed being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.fix_value — MethodJuMP.fix_value(vref::GeneralVariableRef)Define JuMP.fix_value for general variable references. It relies on JuMP.fix_value being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.fix — MethodJuMP.fix(vref::GeneralVariableRef, value::Real; force::Bool = false)::NothingDefine JuMP.fix for general variable references. It relies on JuMP.fix being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.FixRef — MethodJuMP.FixRef(vref::GeneralVariableRef)Define JuMP.FixRef for general variable references. It relies on JuMP.FixRef being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.unfix — MethodJuMP.unfix(vref::GeneralVariableRef)Define JuMP.unfix for general variable references. It relies on JuMP.unfix being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.start_value — MethodJuMP.start_value(vref::GeneralVariableRef)Define JuMP.start_value for general variable references. It relies on JuMP.start_value being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.set_start_value — MethodJuMP.set_start_value(vref::GeneralVariableRef, value::Real)::NothingDefine JuMP.set_start_value for general variable references. It relies on JuMP.set_start_value being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.start_value_function — Methodstart_value_functionc(vref::GeneralVariableRef)Define start_value_function for general variable references. It relies on start_value_function being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
InfiniteOpt.set_start_value_function — Methodset_start_value_function(vref::GeneralVariableRef, start::Union{Real, Function})::NothingSet the start value function of vref. It relies on set_start_value_function being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown.
InfiniteOpt.reset_start_value_function — Methodreset_start_value_functionc(vref::GeneralVariableRef)Define reset_start_value_function for general variable references. It relies on reset_start_value_function being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.is_binary — MethodJuMP.is_binary(vref::GeneralVariableRef)Define JuMP.is_binary for general variable references. It relies on JuMP.is_binary being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.set_binary — MethodJuMP.set_binary(vref::GeneralVariableRef)Define JuMP.set_binary for general variable references. It relies on JuMP.set_binary being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.BinaryRef — MethodJuMP.BinaryRef(vref::GeneralVariableRef)Define JuMP.BinaryRef for general variable references. It relies on JuMP.BinaryRef being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.unset_binary — MethodJuMP.unset_binary(vref::GeneralVariableRef)Define JuMP.unset_binary for general variable references. It relies on JuMP.unset_binary being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.is_integer — MethodJuMP.is_integer(vref::GeneralVariableRef)Define JuMP.is_integer for general variable references. It relies on JuMP.is_integer being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.set_integer — MethodJuMP.set_integer(vref::GeneralVariableRef)Define JuMP.set_integer for general variable references. It relies on JuMP.set_integer being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.IntegerRef — MethodJuMP.IntegerRef(vref::GeneralVariableRef)Define JuMP.IntegerRef for general variable references. It relies on JuMP.IntegerRef being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
JuMP.unset_integer — MethodJuMP.unset_integer(vref::GeneralVariableRef)Define JuMP.unset_integer for general variable references. It relies on JuMP.unset_integer being defined for the underlying DispatchVariableRef, otherwise an ArgumentError is thrown. See the underlying docstrings for more information.
Developer Internal Methods
InfiniteOpt._add_data_object — Function_add_data_object(model::InfiniteModel, object::AbstractDataObject)::ObjectIndexAdd object to the appropriate CleverDict in model and return the its index. This needs to be defined for the type of object. These definitions need to use MOIUC.add_item to add the object to the CleverDict.
InfiniteOpt._data_dictionary — Function_data_dictionary(vref::DispatchVariableRef)::MOIUC.CleverDictReturn the CleverDict that stores data objects for the type of vref. This needs to be defined for the type of vref.
InfiniteOpt._data_object — Function_data_object(vref::DispatchVariableRef)::AbstractDataObjectReturn the data object associated with vref, in other words the object its index points to in the InfiniteModel. This needs to be defined for the type of vref. This should use _data_dictionary to access the CleverDict that the object is stored in.
InfiniteOpt._delete_data_object — Function_delete_data_object(vref::DispatchVariableRef)::NothingDelete the concrete AbstractDataObject associated with vref.
InfiniteOpt._core_variable_object — Function_core_variable_object(vref::DispatchVariableRef)::Union{InfOptParameter, InfOptVariable, Measure}Return the core object that vref points to. This needs to be extended for type of vref. This should use _data_object to access the data object where the variable object is stored.
InfiniteOpt._core_variable_object — Method_core_variable_object(vref::GeneralVariableRef)::Union{InfOptParameter, InfOptVariable, Measure}Return the core object that vref points to. This is enabled with appropriate definitions of _core_variable_object for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._set_core_variable_object — Function_set_core_variable_object(vref::DispatchVariableRef, object)::NothingSets the core object that vref points to object. This needs to be extended for types of vref and object. This should use _data_object to access the data object where the variable object is stored.
InfiniteOpt._infinite_variable_dependencies — Function_infinite_variable_dependencies(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._infinite_variable_dependencies — Method_infinite_variable_dependencies(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _infinite_variable_dependencies for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._semi_infinite_variable_dependencies — Function_semi_infinite_variable_dependencies(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._semi_infinite_variable_dependencies — Method_semi_infinite_variable_dependencies(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _semi_infinite_variable_dependencies for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._point_variable_dependencies — Function_point_variable_dependencies(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._point_variable_dependencies — Method_point_variable_dependencies(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _point_variable_dependencies for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._derivative_dependencies — Function_derivative_dependencies(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._derivative_dependencies — Method_derivative_dependencies(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _derivative_dependencies for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._measure_dependencies — Function_measure_dependencies(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._measure_dependencies — Method_measure_dependencies(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _measure_dependencies for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._generative_measures — Function_generative_measures(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._generative_measures — Method_generative_measures(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _generative_measures for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._constraint_dependencies — Function_constraint_dependencies(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._constraint_dependencies — Method_constraint_dependencies(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _constraint_dependencies for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._derivative_constraint_dependencies — Function_derivative_constraint_dependencies(vref::DispatchVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This needs to be extended for type of vref. This should use _data_object to access the data object where the name is stored if appropriate.
InfiniteOpt._derivative_constraint_dependencies — Method_derivative_constraint_dependencies(vref::GeneralVariableRef)::Vector{AbstractInfOptIndex}Return the indices of these entities that depend on vref. This is enabled with appropriate definitions of _derivative_constraint_dependencies for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._parameter_number — Function_parameter_number(pref::DispatchVariableRef)::IntReturn the parameter creation number for pref assuming it is an infinite parameter. This needs to be defined for the type of pref. This should use the _data_object to get the number.
InfiniteOpt._parameter_number — Method_parameter_number(pref::GeneralVariableRef)::IntReturn the parameter creation number for pref assuming it is an infinite parameter. It relies on _parameter_number being properly defined for the underlying DispatchVariableRef, otherwise an MethodError is thrown.
InfiniteOpt._object_number — Function_object_number(pref::DispatchVariableRef)::IntReturn the object number for pref assuming it is an infinite parameter. This needs to be defined for the type of pref. This should use the _data_object to get the number.
InfiniteOpt._object_number — Method_object_number(pref::GeneralVariableRef)::IntReturn the object number for pref assuming it is an infinite parameter. It relies on _object_number being properly defined for the underlying DispatchVariableRef, otherwise an MethodError is thrown.