Skip to content

Commit 6abd566

Browse files
committed
Cleanup old nlp code
1 parent 9dbcbf9 commit 6abd566

File tree

2 files changed

+0
-118
lines changed

2 files changed

+0
-118
lines changed

src/pyoptinterface/_src/ipopt.py

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@
1414
from .nlfunc import (
1515
ExpressionGraphContext,
1616
convert_to_expressionhandle,
17-
trace_function,
18-
FunctionTracingResult,
19-
Vars,
20-
Params,
2117
)
2218

2319
from .core_ext import (
@@ -212,42 +208,6 @@ def get_constraint_dual(model, constraint):
212208
constraint_attribute_set_func_map = {}
213209

214210

215-
def match_variable_values(
216-
tracing_result: FunctionTracingResult, vars_dict: Dict[str, any]
217-
):
218-
nx = tracing_result.n_variables()
219-
variable_indices_map = tracing_result.variable_indices_map
220-
var_values = [None for _ in range(nx)]
221-
for v_name, value in vars_dict.items():
222-
index = variable_indices_map.get(v_name, None)
223-
if index is None:
224-
raise ValueError(f"Unknown variable name: {v_name}")
225-
var_values[index] = value
226-
for i, value in enumerate(var_values):
227-
if value is None:
228-
missing_name = tracing_result.variable_names[i]
229-
raise ValueError(f"Missing initial value for variable {missing_name}")
230-
return var_values
231-
232-
233-
def match_parameter_values(
234-
tracing_result: FunctionTracingResult, params_dict: Dict[str, any]
235-
):
236-
np = tracing_result.n_parameters()
237-
parameter_indices_map = tracing_result.parameter_indices_map
238-
param_values = [None for _ in range(np)]
239-
for p_name, value in params_dict.items():
240-
index = parameter_indices_map.get(p_name, None)
241-
if index is None:
242-
raise ValueError(f"Unknown parameter name: {p_name}")
243-
param_values[index] = value
244-
for i, value in enumerate(param_values):
245-
if value is None:
246-
missing_name = tracing_result.parameter_names[i]
247-
raise ValueError(f"Missing initial value for parameter {missing_name}")
248-
return param_values
249-
250-
251211
class Model(RawModel):
252212
def __init__(self, jit: str = "LLVM"):
253213
super().__init__()

src/pyoptinterface/_src/nlfunc.py

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -184,81 +184,3 @@ def ifelse(condition, true_expr, false_expr):
184184
TernaryOperator.IfThenElse, condition, true_expr, false_expr
185185
)
186186
return new_expression
187-
188-
189-
class DynamicTable:
190-
def __init__(self):
191-
self._data = {}
192-
193-
def __getattr__(self, name):
194-
if name not in self._data:
195-
self._data[name] = self._create()
196-
return self._data[name]
197-
198-
def __len__(self):
199-
return len(self._data)
200-
201-
def _names(self):
202-
return list(self._data.keys())
203-
204-
def _create(self):
205-
pass
206-
207-
208-
class VariableTable(DynamicTable):
209-
def _create(self):
210-
graph = ExpressionGraphContext.current_graph()
211-
variable = graph.add_variable(len(self))
212-
return variable
213-
214-
215-
class ParameterTable(DynamicTable):
216-
def _create(self):
217-
graph = ExpressionGraphContext.current_graph()
218-
parameter = graph.add_parameter(len(self))
219-
return parameter
220-
221-
222-
class FunctionTracingResult:
223-
def __init__(self, graph, results, variable_names, parameter_names):
224-
self.graph = graph
225-
self.results = results
226-
self.variable_names = variable_names
227-
self.parameter_names = parameter_names
228-
229-
# record the inverse mapping from name to index
230-
self.variable_indices_map = {name: i for i, name in enumerate(variable_names)}
231-
self.parameter_indices_map = {name: i for i, name in enumerate(parameter_names)}
232-
233-
def n_variables(self):
234-
return len(self.variable_names)
235-
236-
def n_parameters(self):
237-
return len(self.parameter_names)
238-
239-
def n_outputs(self):
240-
return len(self.results)
241-
242-
243-
def trace_function(f):
244-
with ExpressionGraphContext() as graph:
245-
vars = VariableTable()
246-
params = ParameterTable()
247-
248-
# detect the number of arguments f receives
249-
# 1: f(vars)
250-
# 2: f(vars, params)
251-
# >2: error
252-
n_args = len(inspect.signature(f).parameters)
253-
if n_args == 1:
254-
results = f(vars)
255-
elif n_args == 2:
256-
results = f(vars, params)
257-
else:
258-
raise ValueError("Function to trace must receive either 1 or 2 arguments")
259-
260-
# The results might be a scalar expressions or a list of scalar expressions
261-
if isinstance(results, ExpressionHandle):
262-
results = [results]
263-
264-
return FunctionTracingResult(graph, results, vars._names(), params._names())

0 commit comments

Comments
 (0)