From 1d5873486697f6cbdee8575c595146fd18698108 Mon Sep 17 00:00:00 2001
From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk>
Date: Thu, 15 Feb 2024 17:24:52 +0000
Subject: [PATCH] Allow setting of start value

---
 src/variables.jl | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/variables.jl b/src/variables.jl
index 8242893..bc6422a 100644
--- a/src/variables.jl
+++ b/src/variables.jl
@@ -112,24 +112,24 @@ const VariableType = Union{Number, AbstractJuMPScalar}
 
 
 """
-    get_free_variable(value; integer=false)
+    get_free_variable(value; integer=false, start=0.01)
 
 Get a representation of a given `variable` given a user-defined constraint.
 
 The result is guaranteed to be a [`VariableType`](@ref).
 """
-get_free_variable(value::Number; integer=false) = integer ? Int(value) : Float64(value)
-get_free_variable(value::VariableType; integer=false) = value
-get_free_variable(::Nothing; integer=false) = @variable(global_model(), start=0.01, integer=integer)
-get_free_variable(value::Symbol; integer=false) = integer ? error("Cannot maximise or minimise an integer variable") : get_free_variable(Val(value))
-function get_free_variable(::Val{:min})
-    var = get_free_variable(nothing)
+get_free_variable(value::Number; integer=false, kwargs...) = integer ? Int(value) : Float64(value)
+get_free_variable(value::VariableType; kwargs...) = value
+get_free_variable(::Nothing; integer=false, start=0.01) = @variable(global_model(), start=start, integer=integer)
+get_free_variable(value::Symbol; kwargs...) = integer ? error("Cannot maximise or minimise an integer variable") : get_free_variable(Val(value); kwargs...)
+function get_free_variable(::Val{:min}; kwargs...)
+    var = get_free_variable(nothing; kwargs...)
     model = global_model()
     @objective model Min objective_function(model) + var
     return var
 end
-function get_free_variable(::Val{:max})
-    var = get_free_variable(nothing)
+function get_free_variable(::Val{:max}; kwargs...)
+    var = get_free_variable(nothing; kwargs...)
     model = global_model()
     @objective model Min objective_function(model) - var
     return var
-- 
GitLab