EMSOL Task Stack
Urgent
- Complete PWL
Fix bug when LP from SLP has BP variables.
- ems_reset_1_non_bc_pwl_vr_st needs to be completed
- ems_g_lp_ph uses its own code to handle BP variables---should call
generic code.
- Sort out assembler version
- Add option to move nonbasic variables onto their bounds at optimality
- Prevent reset loops
- Look at Jan's CHUZC bug
- Change tl_pr_ifs rather than use small pivots.
Developments
- Maintain n_pwl_vr_in_bs n_bp_vr_in_bs and use them to determine which
CHUZR to do.
- Add dual facility. Remember ems_un_bd_aux_sol. Use n_struc_vr/n_lg_vr to
refer to number of columns/rows in rsmi and n_c/n_r to refer to number of
columns/rows in model---same in primal but swapped in dual.
- Cheap FTRAN
- See how much faster the code is with shifted/swapped bounds so every
non-free variable has a lower bound of zero.
- Dense block in INVERT?
- Check consistency of sparse matrix definition passed to ems_lmdl
- Schur complement updating (and switch from PF when numerical going gets
tough).
- Comprehensive test routines (a la HSL).
Not critical
- Use current section numbers 0 and n_sn+1 to indicate PWL variables
violating bounds
- Code to test for infinte values in PWL data, non-convexities or
non-monotone breakpoints and eliminate duplicate breakpoints/costs is
written but not checked.
- L1-CHUZC for DANTZIG
- L1-CHUZC for U_STPST_ED_WT
- Although MPS read is give half of the available space for fixed
proportions of rows, cols and elements, it fails if the limit is reached
rather than re-allocating space more intelligently: use more or increase
proportion for data type whose limit has been reached.
- Crash when problem has BP/PWL variables
- Prevent overflow when MPS file contains discrete variables.
- Is the MPS default for rows to have RHS=0 and RANGES=inf
- May try to read/write a basis for a model without names.
- May try to write a basis for a model without names.
- ems_prts prints status PWL for non-basic PWL variables: ems_wr_st_t_ch4
can't tell if they are at LB/BP/UB.
- ems_reset_1_(non_)bc_bp_vr_st updates rsmi_lb, rsmi_co, rsmi_ub by
forming costs by adding delta causing (unlikely) unnecessary rounding error
if upper/lower costs differ greatly in magnitude.
- ems_reset_1_bc_bp_vr_st
- Sort out hot start with scaling and when rsmi_bd are there or not.
- Revise Add-row, Add-column for new basis scheme and when additional
block of new values is needed.
- Complete NW_MTX when several blocks of new of new values are
needed. Can't extend space for matrix if mx_n_a_el is exceeded. Scaling?
- Look at GEMV with scaling (and new blocks of values?)
Can wait
- Is mod guaranteed to be >=0 on IBM, SGI or PENTIUM?
- Is ems_iz_sos needed?
- Update ems_se_com_undn
- Error message when trying to add mx_n_r+1st row is opaque: what does
OSL do? Ditto for mx_n_c+1st column.
- In ems_nget, what pointers should be returned if no user copy of the
matrix has been made?
- ems_iz_btran_eta_fi_p is coded for multiple eta groups containing
multiple eta sets for an INVERT but not tested since INVERT only returns one
eta group containing a single set.
- BTRAN/FTRAN coded for eta groups containing multiple eta sets but not
tested.
- Bounds on primal infeasibility tolerance changed from [1d-12, 1d-1] to
[0,inf) to allow experiments.
- ems_ope_u_eta_grp should be able to see if any data such as other
INVERTs can be deleted and the memory manager re-compressed rather than
returning a serious error.
Unimportant
- ems_irand for IBM---ems_irand is not used anywhere!
- The tests for error in ems_ck_inv should exploit knowledge of indices
of non-zeros.
Last modified: