There seems not to be a method for that in Sage. Those values are not returned but printed by the method .print_ranges()
, but you can still get the lines by doing:
sage: s = open(SAGE_TMP+"/ranges.tmp").readlines()
and then try to parse the list of strings s
.
For example, if you want to extract the values of the "Slack Marginal" field, you can do:
sage: L = []
sage: interesting = False
sage: for line in s:
sage: try:
sage: if line[45:50] == 'Slack':
sage: interesting = True
sage: except IndexError:
sage: pass
sage: if line.startswith('GLPK'):
sage: interesting = False
sage: if interesting:
sage: try:
sage: L.append(RR(line[37:50]))
sage: except TypeError:
sage: pass
Note that i do not know the meaning of the isolated dots in this column (perhaps they mean 0
or something else), so you may have to adapt this.
It would help if you post a small working example of how you are using GLPK.