<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#ffffff">
<br>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<font face="sans-serif">Dear Osi developers,<br>
<br>
the Osi interface seems to lack setters for row or matrix coefficients
and, as a consequence, row coefficients must be specified when rows are
added to the model, not after. Is there any plan for adding those
methods in the next versions?<br>
AFAIK Clp, Cbc, Gurobi, Cplex and Glpk already support that
functionality, and others probably do too, so it shouldn't be hard to
implement them in Osi.<br>
<br>
In my limited experience I found the ability to specify
matrix/row/column coefficients separately from (i.e. after) column/row
addition quite useful because it allows to achieve separation of
concerns. In particular, I can construct the "skeleton" of the problem,
i.e. number of rows and columns, and map it to high-level concepts as
families of variables/constraints, i.e. to each "family" object a set
of row or column indexes, that I can use afterwards to easily handle
the problem.<br>
Without the setters mentioned above I could still build the mapping
when the model gets constructed the first time, at the price of
reducing modularity, but it would break as soon as I need to change a
coefficient, having to delete the old row and add a new one with that
value changed, and it would force me to have every coefficient known
before building the model, an assumption that needs not to be true and
that may prevent further modularization in the calling code.<br>
<br>
best regards,<br>
<br>
A.T.<br>
<br>
</font>
</body>
</html>