help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-glpk] API documentation suggestions


From: Robbie Morrison
Subject: [Help-glpk] API documentation suggestions
Date: Thu, 29 May 2008 20:22:29 +0200
User-agent: Thunderbird 1.5.0.14ubu (X11/20080306)

Dear Andrew

Many thanks for the information about column bounds
(posting "non-negativity and structural vars").

Here are some suggestions regarding documentation in
the version 4.28 API reference.  If my understanding is
incorrect, perhaps you could indicate the mistake.

---------------------------------
 page 59
---------------------------------

"LPX_E_FAULT

  the solver can't start the search because either the
  problem has no rows and/or no columns, or some row
  has non-zero objective coefficient."

Is the second part of the explanation correct?  Can a
row have an objective coefficient?  Should this be
".. or some row has no non-zero constraint coefficients
specified."

---------------------------------
 page 61
---------------------------------

section 2.9.1
glp_set_col_kind documentation

It could be useful to add (I believe this is correct):

"If a column is set to 'GLP_BV', any default, prior, or
subsequent bounds set on that variable will be ignored.
If the column is later set to 'GLP_CV' or 'GLP_IV', then
such bounds will apply.

  If a column is set to 'GLP_IV', its bounds must be
exact integer numbers with no tolerance, such that the
condition 'bnd == floor(bnd)' would hold."

---------------------------------
 pages 23-24
---------------------------------

section 2.2.10
glp_set_col_bnds documentation

It could be useful to add:

"If a particular column bound is not set, then the
solver behaves as if 'glp_set_col_bnds(lp, j, GLP_FX,
0.0, 0.0)' had been called."

---------------------------------
 page 61
---------------------------------

section 2.9.1
glp_set_col_kind documentation

section 2.9.2
glp_get_col_kind documentation

It could be useful to add (2 places):

"Note that these column kinds are mutually exclusive."

The reason for this comment is that this situation
contrasts with the behavior of 'glp_get_num_ints', for
instance.

---------------------------------
 page 129
---------------------------------

section 3.3.4
glp_term_hook documentation

It could be useful to add:

"Note that 'glp_term_out' applies only to terminal
output and not to intercepted output."

---------------------------------
 pages 12-13
---------------------------------

This one is just for consideration -- I can understand
if you decide to keep the manual short and simple.
However it might improve the appeal of GLPK to offer
some sample code without C arrays!

"C++ programmers can substitute the static C arrays
'ia', 'ja', and 'ar' in 'sample.c' as follows:

  #include <vector>    // Standard Template Library sequence container

  const int offset = 1;              // GLPK ignores element zero
  std::vector<int>    via(offset);   // index i vector
  std::vector<int>    vja(offset);   // index j vector
  std::vector<double> var(offset);   // coefficient a_ij vector

  via.push_back(1); via.push_back(1); via.push_back(1.0);  // a[1,1] = 1.0
  via.push_back(1); via.push_back(2); via.push_back(1.0);  // a[1,2] = 1.0
  // etc

  glp_load_matrix(lp, via.size() - offset, &via[0], &vja[0], &var[0]);

The call to 'glp_load_matrix' is passed the first
element addresses of the three vectors, which then, in
this context, behave exactly like C arrays."


with best wishes
Robbie Morrison
PhD student -- policy-oriented energy system simulation
Technical University of Berlin (TU-Berlin), Germany
University email (redirected) : address@hidden
Webmail (preferred)           : address@hidden
[from IMAP client]







reply via email to

[Prev in Thread] Current Thread [Next in Thread]