Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: spatial/qhull: add convex hull + voronoi qhull wrappers, improve docs, add tutorial #377

Merged
merged 63 commits into from Dec 17, 2012

Conversation

pv
Copy link
Member

@pv pv commented Dec 7, 2012

This PR completes the Qhull wrappers in scipy.spatial, and adds a tutorial plus some plotting routines.

@jakevdp
Copy link
Member

jakevdp commented Dec 7, 2012

Looks very nice! The main thing I was hoping for -- easy access to the points comprising the simplices of the Delaunay tesselation -- seems to be present. Very nice work!

@rgommers
Copy link
Member

rgommers commented Dec 8, 2012

All OK with 2.7, about 45 of these with 3.2:

======================================================================
ERROR: test_interpnd.TestCloughTocher2DInterpolator.test_dense
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/rgommers/.tox/scipy/py32/lib/python3.2/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/home/rgommers/.tox/scipy/py32/lib/python3.2/site-packages/scipy/interpolate/tests/test_interpnd.py", line 196, in test_dense
    err_msg="Function %d" % j)
  File "/home/rgommers/.tox/scipy/py32/lib/python3.2/site-packages/scipy/interpolate/tests/test_interpnd.py", line 130, in _check_accuracy
    tol=1e-6)
  File "interpnd.pyx", line 1051, in scipy.interpolate.interpnd.CloughTocher2DInterpolator.__init__ (scipy/interpolate/interpnd.c:5554)
  File "qhull.pyx", line 1307, in scipy.spatial.qhull.Delaunay.__init__ (scipy/spatial/qhull.c:9034)
TypeError: Argument 'options' has incorrect type (expected bytes, got str)

======================================================================
ERROR: test_qhull.TestVoronoi.test_ridges('random-2d',)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/rgommers/.tox/scipy/py32/lib/python3.2/site-packages/nose/case.py", line 198, in runTest
    self.test(*self.arg)
  File "/home/rgommers/.tox/scipy/py32/lib/python3.2/site-packages/scipy/spatial/tests/test_qhull.py", line 553, in check
    vor = qhull.Voronoi(points)
  File "qhull.pyx", line 1777, in scipy.spatial.qhull.Voronoi.__init__ (scipy/spatial/qhull.c:13520)
TypeError: Argument 'required_options' has incorrect type (expected bytes, got str)

@rgommers
Copy link
Member

rgommers commented Dec 8, 2012

Looks very good to me too!

@@ -39,6 +39,17 @@ count_neighbors and sparse_distance_matrix) are between 200 and 1000 times
faster in cKDTree than in KDTree. With very minor caveats, cKDTree has
exactly the same interface as KDTree, and can be used as a drop-in replacement.

Voronoi diagrams and convex hulls
---------------------------------
`scipy.spatial` contains now functionality for computing Voronoi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"contains now" --> "now contains"

@rgommers
Copy link
Member

rgommers commented Dec 8, 2012

The first sentence on qhull.org, which summarizes Qhull functionality, mentions furthest-site Delaunay triangulation and furthest-site Voronoi diagrams. Those seem to have some applications, and seem to be the main thing missing in these wrappers. I don't know anything about that functionality beyond what I just read; do you think that would be useful?

equations[j,ndim+1] = facet.offset
i = qh_pointid(point)
j = qh_pointid(vertex.point)
print i, j
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

print statement left in

@pv
Copy link
Member Author

pv commented Dec 8, 2012

The furthest-site triang & voronoi could be added. AFAIK, this is simply flipping the upperdelaunay checks.

@rgommers
Copy link
Member

rgommers commented Dec 8, 2012

There seems to be an issue with recovering from errors:

In [10]: tri = Delaunay(points, qhull_options="Qj Pp")  # lower-case j is incorrect
QH7023 qhull warning: unknown 'Q' qhull option j, rest ignored
QH6154 qhull precision error: initial facet 1 is coplanar with the interior point
ERRONEOUS FACET:
....
RuntimeError: Qhull error

In [11]: tri = Delaunay(points, qhull_options="QJ Pp")  # this works without the previous line
...
/home/rgommers/Code/bldscipy/scipy/spatial/qhull.so in scipy.spatial.qhull.Delaunay.__init__ (scipy/spatial/qhull.c:9261)()

/home/rgommers/Code/bldscipy/scipy/spatial/qhull.so in scipy.spatial.qhull._Qhull.close (scipy/spatial/qhull.c:2442)()

RuntimeError: qhull: did not free 96 bytes (1 pieces)


Parameters
----------
tri : scipy.spatial.Delaunay
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

append instance. same for other plot docstrings.

@rgommers
Copy link
Member

rgommers commented Dec 8, 2012

For the plot functions, I suggest to add an ax=None parameter and return the figure instance. The same as done in https://github.com/statsmodels/statsmodels/blob/master/statsmodels/graphics.


plt.plot([vor.vertices[i,0], far_point[0]],
[vor.vertices[i,1], far_point[1]], 'k--')
plt.xlim(vor.points[:,0].min() - 0.1*ptp_bound[0],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PEP8 nitpick: blank line

@rgommers
Copy link
Member

rgommers commented Dec 8, 2012

This is already failing in master (32-bit 2.7, spatial.test('full'):

======================================================================
FAIL: test_qhull.TestUtilities.test_more_barycentric_transforms
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/usr/lib/python2.7/dist-packages/numpy/testing/decorators.py", line 146, in skipper_func
    return f(*args, **kwargs)
  File "/home/rgommers/Code/scipy/scipy/spatial/tests/test_qhull.py", line 199, in test_more_barycentric_transforms
    unit_cube_tol=1.5e6*eps)
  File "/home/rgommers/Code/scipy/scipy/spatial/tests/test_qhull.py", line 124, in _check_barycentric_transforms
    assert_(ok.all(), "%s %s" % (err_msg, np.where(~ok)))
  File "/usr/lib/python2.7/dist-packages/numpy/testing/utils.py", line 34, in assert_
    raise AssertionError(msg)
AssertionError: ndim=4 (array([10627]),)

Maybe can be taken along?

@rgommers
Copy link
Member

rgommers commented Dec 8, 2012

Plotting functions need a test.

@pv
Copy link
Member Author

pv commented Dec 8, 2012

This should address all the above comments, and fix a few remaining bugs.

@pv
Copy link
Member Author

pv commented Dec 9, 2012

And added support for incremental construction. My comment on the mailing list was in error --- I had an off-by-one bug in the code in the other branch. After that was fixed, everything seems to work...

@rgommers
Copy link
Member

rgommers commented Dec 9, 2012

Crashes for me (32-bit python 2.7, linux):

test_qhull.TestVoronoi.test_incremental('pathological-2', 1) ... Segmentation fault (core dumped)

@pv
Copy link
Member Author

pv commented Dec 9, 2012

Backtrace? Valgrind shows nothing for me (32-bit python2.7 on Linux). I'll try it in a VM once more.

@rgommers
Copy link
Member

rgommers commented Dec 9, 2012

$ gdb python
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /usr/bin/python...(no debugging symbols found)...done.
(gdb) run -c "import scipy.spatial as s; s.test()"
Starting program: /usr/bin/python -c "import scipy.spatial as s; s.test()"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Running unit tests for scipy.spatial
NumPy version 1.6.1
NumPy is installed in /usr/lib/python2.7/dist-packages/numpy
SciPy version 0.12.0.dev-efa125d
SciPy is installed in /home/rgommers/Code/bldscipy/scipy
Python version 2.7.3 (default, Aug  1 2012, 05:16:07) [GCC 4.6.3]
nose version 1.1.2
......................................................................................................................................................................................................................................................................................................................................................................................((0, 1), (-1, 0))
((0, 2), (-1, 1))
((0, 4), (0, 1))
((1, 4), (-1, 0))
((2, 4), (-1, 1))
--
((0, 1), (-1, 0))
((0, 2), (-1, 1))
((0, 4), (0, 1))
((1, 4), (-1, 0))
((2, 4), (-1, 1))
.
Program received signal SIGSEGV, Segmentation fault.
qh_mergecycle_all (facetlist=0xa2f9ce0, wasmerge=0xbfffa5ec) at scipy/spatial/qhull/src/merge.c:1857
1857              vertex->delridge= True;
(gdb) bt
#0  qh_mergecycle_all (facetlist=0xa2f9ce0, wasmerge=0xbfffa5ec) at scipy/spatial/qhull/src/merge.c:1857
#1  0xb6439a7e in qh_premerge (apex=0x9cdbe60, maxcentrum=5.5494399714938845e-15, 
    maxangle=1.7976931348623157e+308) at scipy/spatial/qhull/src/merge.c:72
#2  0xb642f355 in qh_addpoint (furthest=0x99ac7d0, facet=<optimized out>, checkdist=0)
    at scipy/spatial/qhull/src/libqhull.c:237
#3  0xb640075c in __pyx_pf_5scipy_7spatial_5qhull_6_Qhull_8add_points (__pyx_v_self=0x994966c, 
    __pyx_v_points=0x96669a0) at scipy/spatial/qhull.c:4179
#4  0x081287ef in PyObject_Call ()
#5  0xb63ff199 in __pyx_pf_5scipy_7spatial_5qhull_10_QhullUser_8add_points (__pyx_v_restart=<optimized out>, 
    __pyx_v_points=0x96669a0, __pyx_v_self=0x9934eec, __pyx_self=<optimized out>)
    at scipy/spatial/qhull.c:12446
#6  __pyx_pw_5scipy_7spatial_5qhull_10_QhullUser_9add_points (__pyx_self=0x87df39c, __pyx_args=0x992cbac, 
    __pyx_kwds=0x0) at scipy/spatial/qhull.c:12140
#7  0x081287ef in PyObject_Call ()
#8  0x081951e6 in PyEval_EvalFrameEx ()
#9  0x0819af70 in PyEval_EvalCodeEx ()
#10 0x0819c82e in ?? ()
#11 0x081287ef in PyObject_Call ()
#12 0x081964bb in PyEval_EvalFrameEx ()
#13 0x08194eec in PyEval_EvalFrameEx ()
#14 0x0819af70 in PyEval_EvalCodeEx ()
#15 0x0819c972 in ?? ()
#16 0x081287ef in PyObject_Call ()
#17 0x081964bb in PyEval_EvalFrameEx ()
#18 0x0819af70 in PyEval_EvalCodeEx ()
#19 0x0819c82e in ?? ()

@pv
Copy link
Member Author

pv commented Dec 9, 2012

This should fix the crash.

@pv
Copy link
Member Author

pv commented Dec 17, 2012

Rebased. I'll go ahead and merge it.

pv added a commit that referenced this pull request Dec 17, 2012
ENH: spatial/qhull: add convex hull + voronoi qhull wrappers, improve docs, add tutorial

This PR completes the Qhull wrappers in scipy.spatial, adding support
for convex hulls and Voronoi diagrams, and the incremental construction
and furthest-site modes.

A tutorial plus convenience 2D plotting routines are also added.
@pv pv merged commit d0ddf54 into scipy:master Dec 17, 2012
mckib2 added a commit to mckib2/scipy that referenced this pull request Jun 7, 2020
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: eb7aad4ec7ea6a9e788074de8fcd46081d77ab11
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Jun 8, 2020
* Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..eb7aad4ec

eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: eb7aad4ec7ea6a9e788074de8fcd46081d77ab11

* Use scipy gitignore convention

* Squashed 'scipy/optimize/_highs/' changes from eb7aad4ec..afae7bbaa

afae7bbaa remove uneeded interface

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: afae7bbaa54d958d321d7b9514af14390ffd7426

* Squashed 'scipy/optimize/_highs/' changes from afae7bbaa..fb29edf67

fb29edf67 Comment out openmp pragma statments

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: fb29edf679b183e2221201e4be826316ed1f450f
mckib2 added a commit to mckib2/scipy that referenced this pull request Jun 13, 2020
c5e736e4a Return fun=None when solution is unavailable
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: c5e736e4a6bab95ee9a43d945d0ff4ef09907b3c
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Jun 13, 2020
* Removed references to CONST_I_INF and CONST_INF; Added notes about HiGHS constants; made note that *_feasibility_tolerance doesn't apply to ipm

* Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..c5e736e4a

c5e736e4a Return fun=None when solution is unavailable
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: c5e736e4a6bab95ee9a43d945d0ff4ef09907b3c

* Squashed 'scipy/optimize/_highs/' changes from c5e736e4a..6a0f8f69c

6a0f8f69c Add integer checks for integer options

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 6a0f8f69c8a9f7305cbc074f70c49858402dda8c

* Squashed 'scipy/optimize/_highs/' changes from 6a0f8f69c..bb9407835

bb9407835 Merge pull request #46 from ERGO-Code/master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: bb94078352096f77300bb070e4cf46a7ef050e62
mckib2 added a commit to mckib2/scipy that referenced this pull request Jun 14, 2020
f2846b676 Merge pull request scipy#47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request scipy#46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: f2846b676c49119cd0b6504a43faa6c9cd80ccb0
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Jun 19, 2020
* add ipm_optimality_tolerance; improve docs for message_level and primal/dual_feasibility_tolerance

* Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..f2846b676

f2846b676 Merge pull request #47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request #46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: f2846b676c49119cd0b6504a43faa6c9cd80ccb0

* Clarify some message_level docs
mckib2 added a commit to mckib2/scipy that referenced this pull request Jul 8, 2020
f5a28af16 Merge remote-tracking branch 'upstream/master'
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
bada2022e link
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
9c9ff0992 unchanged perf
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request scipy#47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request scipy#46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: f5a28af16bfbe39a5f1a86f211ed286ce5a3d7ac
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Jul 9, 2020
* Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..f5a28af16

f5a28af16 Merge remote-tracking branch 'upstream/master'
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
bada2022e link
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
9c9ff0992 unchanged perf
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request #47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request #46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: f5a28af16bfbe39a5f1a86f211ed286ce5a3d7ac

* clean up _high dir

* Squashed 'scipy/optimize/_highs/' content from commit f5a28af16

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: f5a28af16bfbe39a5f1a86f211ed286ce5a3d7ac

* Squashed 'scipy/optimize/_highs/' changes from f5a28af16..e6ca5175d

e6ca5175d Add simple coverage tests and fixes for bad input

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: e6ca5175dcd045150f6d1b793efc55633de81c67

* Squashed 'scipy/optimize/_highs/' changes from e6ca5175d..4085669c3

4085669c3 flake8-ify

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 4085669c3e40d0a3dd26e1a1d60a6467404b7252
mckib2 added a commit to mckib2/scipy that referenced this pull request Jul 10, 2020
06fefa884 fix test import from within scipy
4085669c3 flake8-ify
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
bada2022e link
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
9c9ff0992 unchanged perf
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request scipy#47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request scipy#46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 06fefa88440e71486fef28025c30fde444c04ed8
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Jul 10, 2020
* Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..06fefa884

06fefa884 fix test import from within scipy
4085669c3 flake8-ify
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
bada2022e link
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
9c9ff0992 unchanged perf
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request #47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request #46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 06fefa88440e71486fef28025c30fde444c04ed8

* Squashed 'scipy/optimize/_highs/' changes from 06fefa884..c06941986

c06941986 Remove module status from tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: c06941986e23e7a4bf4b3738581fdd4ff3cf2a7e

* Squashed 'scipy/optimize/_highs/' changes from c06941986..f3d5fa6b2

f3d5fa6b2 dummy function for testing in case module is not compiled

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: f3d5fa6b2117a2e2803e93d36d98406916150b06

* Squashed 'scipy/optimize/_highs/' changes from f3d5fa6b2..046bf9f4e

046bf9f4e use correct num of args in dummy function

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 046bf9f4ea6b2114dffa5a48eb6864f69f3a09f3
mckib2 added a commit to mckib2/scipy that referenced this pull request Jul 11, 2020
d1efa46a6 Rename pyHiGHS -> cython; remove uneeded coverage tests
046bf9f4e use correct num of args in dummy function
f3d5fa6b2 dummy function for testing in case module is not compiled
c06941986 Remove module status from tests
06fefa884 fix test import from within scipy
4085669c3 flake8-ify
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
bada2022e link
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
9c9ff0992 unchanged perf
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request scipy#47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request scipy#46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: d1efa46a6950cdbefdeb39960f22f2e1849e2468
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Jul 12, 2020
* Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..d1efa46a6

d1efa46a6 Rename pyHiGHS -> cython; remove uneeded coverage tests
046bf9f4e use correct num of args in dummy function
f3d5fa6b2 dummy function for testing in case module is not compiled
c06941986 Remove module status from tests
06fefa884 fix test import from within scipy
4085669c3 flake8-ify
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
bada2022e link
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
9c9ff0992 unchanged perf
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request #47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request #46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: d1efa46a6950cdbefdeb39960f22f2e1849e2468

* Responses to ilayn review

* Change up dictionary membership tests
mckib2 added a commit to mckib2/scipy that referenced this pull request Jul 29, 2020
65f382011 Merge remote-tracking branch 'upstream/master'
981c85fec Merge pull request scipy#387 from ERGO-Code/restore_getObjectiveValue_getIterationCount
811f617f1 Restored getObjectiveValue and getIterationCount to the C API. Also added (equivalent, but unambiguous) getSimplexIterationCount
0b4cb7f88 Merge pull request scipy#386 from ERGO-Code/tidyHFactor
4423919f8 Passes unit test with singular initial basis: formatted
387a98532 Reintroduced handling of rank deficiency
40c822043 Refined the debug level required for post-solve error analysis
0d8087722 AnIterNumCostlyDseIt now always initialsed to zero
8c4a090a8 Corrected check for primal infeasibilities after Phase 2 primal simplex clean-up
3f392a67c Added fix if  Phase 2 primal simplex solver creates primal infeasibilities - and formatted
5f71a0ce5 Fixed error in assert and reformatted
969edfddf Removed debug check and formatting
edadd1083 Fixed bug in transition after postsolve
d27a1f0cc Introduced correctDual to shift minor dual infeasibilities in transition()
df687891d Merge pull request scipy#384 from ERGO-Code/createDebugHighsSolve
74cc2064a Merge pull request scipy#385 from ERGO-Code/fix-install
d811de1a1 Removed redundant identifier from HSimplex
d45bf1c57 Removed a load of analysis code from HSimplex that is now redundant due to HSimplexDebug
171fd1fb2 About to remove analyseSimplexBasicSolution
9cc382ae0 Ctest passes and formatted
b330c837e Moved isSimplexInfoOk and its printfs from HSimplex to HSimplexDebug
2863c1c4b Introduced debugSimplexBasicSolution into HighsSolutionDebug, but needs to be in HighsSimplexDebug
1c4874553 missing header added
d1efa46a6 Rename pyHiGHS -> cython; remove uneeded coverage tests
046bf9f4e use correct num of args in dummy function
f3d5fa6b2 dummy function for testing in case module is not compiled
c06941986 Remove module status from tests
06fefa884 fix test import from within scipy
eef5c75a7 Merge branch 'master' into createDebugHighsSolve
7cdeb4603 Tidied up comments and formatted
017fbae9e Reduced getPrimalDualInfeasibilities in HighsSolution by not finding errors
88fee4dc0 Now stripping error detection from getPrimalDualInfeasibilitiesFromHighsBasicSolution in HighsSolution.cpp
cb4262834 About to remove analyseHighsBasicSolution from HighsSolution
4085669c3 flake8-ify
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
39eed8cf4 Testing all models for errors after postsolve
54997e1fb Now analysing PrimalDualErrors
77321f18d EqualSolutionParams now replaced by debugEqualSolutionParams and returns HighsDebugStatus
df0662aea Introduced debugHighsBasicSolution
fcd5db4da Removed change_update_method
b47673c03 Set up HighsSolutionDebug with equalSolutionParams checks
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
6ac1d1267 Merge branch 'kkt-chk' into tidyHFactor
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
7f4b90798 Eliminated highs.run() from singularStartingBasis Unit test
bada2022e link
2109f2463 Deleted .travis.yml
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
4c46cf8d6 Removed commented-out (unused) int* hint entries in update* parameter lists, but too scared to replace the integer pointers to references
1a3556289 Started debugging rank deficiency
48b1b58a4 Frigged singularStartingBasis unit test for now and formatted
ed60be7b5 Removed getNoPv* from HFactor.h
834add0cc Uncovered inability to handle rank deficiency
9c9ff0992 unchanged perf
7b6202764 Reporting checkInvert errors as HSimplexDebug
d7628c1a4 Added random solution test to debugCheckInvert and just working with inf-norm
36834d827 Created HFactorDebug.cpp
7bf5cf3f1 Removed HiGHSDEV from HFactor - completely!
c810dad05 Removed HiGHSDEV from HFactor
7df64d320 Moved checkInvert to HFactorDebug.h, after creating getBaseIndex, getAstart/index/value
d80fb6df5 Removed more printf statements from HFactor.cpp
5b07b013a Removed major printf statments from HFactor
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request scipy#47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request scipy#46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 65f382011b368bf2da0839775db79c6bea5c4fc0
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Jul 29, 2020
)

65f382011 Merge remote-tracking branch 'upstream/master'
981c85fec Merge pull request scipy#387 from ERGO-Code/restore_getObjectiveValue_getIterationCount
811f617f1 Restored getObjectiveValue and getIterationCount to the C API. Also added (equivalent, but unambiguous) getSimplexIterationCount
0b4cb7f88 Merge pull request scipy#386 from ERGO-Code/tidyHFactor
4423919f8 Passes unit test with singular initial basis: formatted
387a98532 Reintroduced handling of rank deficiency
40c822043 Refined the debug level required for post-solve error analysis
0d8087722 AnIterNumCostlyDseIt now always initialsed to zero
8c4a090a8 Corrected check for primal infeasibilities after Phase 2 primal simplex clean-up
3f392a67c Added fix if  Phase 2 primal simplex solver creates primal infeasibilities - and formatted
5f71a0ce5 Fixed error in assert and reformatted
969edfddf Removed debug check and formatting
edadd1083 Fixed bug in transition after postsolve
d27a1f0cc Introduced correctDual to shift minor dual infeasibilities in transition()
df687891d Merge pull request scipy#384 from ERGO-Code/createDebugHighsSolve
74cc2064a Merge pull request scipy#385 from ERGO-Code/fix-install
d811de1a1 Removed redundant identifier from HSimplex
d45bf1c57 Removed a load of analysis code from HSimplex that is now redundant due to HSimplexDebug
171fd1fb2 About to remove analyseSimplexBasicSolution
9cc382ae0 Ctest passes and formatted
b330c837e Moved isSimplexInfoOk and its printfs from HSimplex to HSimplexDebug
2863c1c4b Introduced debugSimplexBasicSolution into HighsSolutionDebug, but needs to be in HighsSimplexDebug
1c4874553 missing header added
d1efa46a6 Rename pyHiGHS -> cython; remove uneeded coverage tests
046bf9f4e use correct num of args in dummy function
f3d5fa6b2 dummy function for testing in case module is not compiled
c06941986 Remove module status from tests
06fefa884 fix test import from within scipy
eef5c75a7 Merge branch 'master' into createDebugHighsSolve
7cdeb4603 Tidied up comments and formatted
017fbae9e Reduced getPrimalDualInfeasibilities in HighsSolution by not finding errors
88fee4dc0 Now stripping error detection from getPrimalDualInfeasibilitiesFromHighsBasicSolution in HighsSolution.cpp
cb4262834 About to remove analyseHighsBasicSolution from HighsSolution
4085669c3 flake8-ify
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
39eed8cf4 Testing all models for errors after postsolve
54997e1fb Now analysing PrimalDualErrors
77321f18d EqualSolutionParams now replaced by debugEqualSolutionParams and returns HighsDebugStatus
df0662aea Introduced debugHighsBasicSolution
fcd5db4da Removed change_update_method
b47673c03 Set up HighsSolutionDebug with equalSolutionParams checks
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
6ac1d1267 Merge branch 'kkt-chk' into tidyHFactor
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
7f4b90798 Eliminated highs.run() from singularStartingBasis Unit test
bada2022e link
2109f2463 Deleted .travis.yml
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
4c46cf8d6 Removed commented-out (unused) int* hint entries in update* parameter lists, but too scared to replace the integer pointers to references
1a3556289 Started debugging rank deficiency
48b1b58a4 Frigged singularStartingBasis unit test for now and formatted
ed60be7b5 Removed getNoPv* from HFactor.h
834add0cc Uncovered inability to handle rank deficiency
9c9ff0992 unchanged perf
7b6202764 Reporting checkInvert errors as HSimplexDebug
d7628c1a4 Added random solution test to debugCheckInvert and just working with inf-norm
36834d827 Created HFactorDebug.cpp
7bf5cf3f1 Removed HiGHSDEV from HFactor - completely!
c810dad05 Removed HiGHSDEV from HFactor
7df64d320 Moved checkInvert to HFactorDebug.h, after creating getBaseIndex, getAstart/index/value
d80fb6df5 Removed more printf statements from HFactor.cpp
5b07b013a Removed major printf statments from HFactor
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
6c5d72a80 doubleton eq off
f2846b676 Merge pull request #47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request #46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 65f382011b368bf2da0839775db79c6bea5c4fc0
mckib2 added a commit to mckib2/scipy that referenced this pull request Aug 20, 2020
342b79a32 Remove define breaking python36 build
42c5689b5 Fix HighsIO cimport
8df4d12ec Message enum relocation; cleanup setup.py
179e8c232 Merge remote-tracking branch 'upstream/master'
5efeb4c83 Merge pull request scipy#393 from ERGO-Code/LpModificationBasis
8bc52aaf8 Fixed simplex_lp_status.has(_fresh)_invert error after rank deficiency
f5f005e35 Ready to try SCIP interface!
c67060ce3 Merge pull request scipy#392 from ERGO-Code/LpModificationScaling
45c824dcd Formatted
3b5b4e4cc Now checking any INVERT in debugSimplexLp
fa6dd0b05 Successfully split setNonbasicMove
804edf85d Now to change from using original setNonbasicMove
ae4ade239 About to split setNonbasicMove
02bd69983 Force scaling off and formatted
aa93710a8 Fromatted
0f0f0bbd8 Removed redundant code from HSimplex and simplified other methods
237234f2a Changed a lot of bald var to iVar in HSimplex.cpp
384688f73 Changed a lot of bals col and row to iCol and iRow in HSimplex.cpp
e501db713 Now checking simplex basis correct at start of transition and in returnFromHighs
7f4ef7d34 Only invalidate BasisArtifacts for addRows/Cols
2360fa0ba Switched off forced scaling to enable build
9bba2015b Corrected bug in appendNonbasicColsToBasis and use of bool valid* to bool& valid*; formatted
afe80c6ae Cleaned up TestLpModification
ef06a3a2b Fixed bug introduced due to overlooking two values of simplex_strategy: thanks valgrind!
fae5419ad Even neater after transition() and formatted
ac6f1c051 runSimplexSolver now avois unnecessary code when optimal
3bdabf184 Added all the timing imaginable to transition()
ba4ce0d9a transition() timing - only accounted for 75%
9d496c5a9 About to insert timing clocks for transition() components()
453efad02 Passes unit test: formatted
442aeb556 nonbasicFlagOk and basisOk replaced by debug methods
3ed2c9928 Created debugBasisConsistent for HiGHS basis
2590f9ec3 debugOkForSolve had been written! some gardening done
a9f242225 debugBasisConsistent now checks numbers of basic and nonbasicvariables
075ee408d Now have is/debug + Basis/Solution + RightSize OK
1256d5d38 Put in debugBasisConsistent
52d70f6b3 Created more rightSize methods, but not all can be given logfile
341f28153 Before demerge creating solutionRightSize and basisRightSize
a82415621 Formatted
6b3c8b2a9 After formatting
277cc50b9 After merging master into this branch and fixing minor conflict
29be9fe7b Fixed bug when highs_debug_level = 1 - only shown up when HiGHSDEV=ON
47f6834f7 Moved expensive simplex checks into HSimplexDebug
bfd5c5059 Now gets timing info for transition() in case no simplex solve is required
52655c426 Added #include <algorithm> to HighsDebug.cpp and reformatted
7fc296d14 Added src/lp_data/HighsDebug
cd8b56189 tidied up rightSizeVector and using it more: about to complete debugBasisConsistent
0d927655e About to create HighsDebug for general debug utilities
3b0f5f1cb Renamed isSolutionConsistent and isBasisConsistent is*SizeConsistent to be more readable and pave way for debugBasisConsistent that does more
316160aaa Renamed HighsSort methods to conform to Google standard
7988dce52 Now checking scaling vector sizes in debugSimplexLp
003b3d10b Force scaling off: formatted
5b14049e2 Formatted
325a0380e ctest passes for forced scaling of avgas
4aa851dc6 deleteRows now handles scale factor, and only uses HighsIndexCollection
f19a89529 Need to resize LP when deleting rows and columns
bb52f4dbd Working on deleteScale
b949c7d62 About to forcs scaling so TestLpModificaiton checks scaling for avgas
753979a65 Merge branch 'master' into LpModificationScaling
0d839e1d6 Merge pull request scipy#391 from ERGO-Code/kkt-4
65f382011 Merge remote-tracking branch 'upstream/master'
35a25098c Now updating simplex LP scaling for addCols and addRows
a85527b91 deleted files added by accident
d6488b821 formatting
ccff236eb revert debug config
0cabec98e yes.
a58b9a115 single wrong num var
27114cf52 Formatted
f544f32f4 Changed pointers to vectors in calls to change cost/bounds
825162179 row/column costs/bounds not passed as pointers in HighsLpUtils
c3a5ec0b0 ctest fixed again
2260fdac1 assessBounds now has vectors in parameter list
0cc23b678 Removed from_ix and to_ix from assessMatrix
05ea09e5d About to remove from... to in parameter list for assessMatrix since they are sure to be 0 and num_vec-1
211ca89ad About to remove num_nz from parameter list of assessMatrix
ab303580c Removed run_as_hsol and hsol scaling option since former unachievable and latter is (thus) redundant
5f1c16f43 Fromatted
ac8f14bd8 Introduced doubleUserDataNotNull and intUserDataNotNull to remove duplicated code
718bdbc76 Removed utilities for non-HighsIndexCollection data
2fd3756fd Removed assessIntervalSetMask
ea094bbe6 modified postsolve rule: ctest clear
e8307c1d5 check passing
f738328de changeRowBounds now only uses HighsIndexCollection
bb779a653 changeColBounds now only uses HighsIndexCollection
1bdfb2cf2 assessBounds only uses HighsIndexCollection and version with with normalise logical deleted
0bbdadbfb changeCosts now only uses HighsIndexCollection
972de26b5 Modified sortSetData to permute set
0b43df25a About to modify sortSetData so that the original entries are permuted
ea385500c HighsIndexCollection set is no longer const: now to remove local_index_collection since original set can be changed
070e87390 About to create local set so that it can be ordered
de137af88 Formatted
2ca5be896 AssessCosts now only uses HighsIndexCollection
1d6d21d67 deleteRow/Col now ony using HighsIndexCollection. local_mask now needed for non-delete case
1179ddd1c deleteLpRows uses only HighsIndexCollection
4de869b57 deleteColsFromLpMatrix now only uses HighsIndexCollection
98a758e00 Formatted
3a5e4255d deleteColsFromLpVectors uses only index_collection and struct HighsIndexCollection sets pointers to NULL
8e35f8417 Now checking check_lp == simplex_lp
63fb1fef0 Removed scalars from applyScalingtoLp* calls and created applyScalingToLp
839ad3282 debugSimplexLp compares simplex LP with freshly-scaled original LP and OK for plain solve
331a883c2 Added test/ htdocs/ and HighsRunModel.mps to .gitignore
9b73cd1e3 Merge branch 'master' into unifyIndexSpec
e8072cb38 Removed spurios bool return from updateHighsSolutionBasis
3e6faf1dd master + check+
5a93fe703 Merge branch 'master' into kkt-fix-2
971292231 special case excluded
981c85fec Merge pull request scipy#387 from ERGO-Code/restore_getObjectiveValue_getIterationCount
7c1724b8b Formatted
ae3060df5 Adapted updateHighsSolutionBasis to be called from returnFromHighs
bd509d33f Inserted returnFromHighs into all HiGHS methods that modify the incumbent model or solver infomation associated with it
57ad89a4c Restored all of TestLpModification and reformatted
26cc04ce1 Fixed error in interpretCallStatus in HSI
ab4b15c4c Updated change costs and bounds
b6d0327f4 Simplified use of interpretCallStatus in Highs.cpp and about to remove General in HSI to make methods overloaded
f1fc5e82b Tidied up addRows/Cols
811f617f1 Restored getObjectiveValue and getIterationCount to the C API. Also added (equivalent, but unambiguous) getSimplexIterationCount
13630a323 New addCol/Row code passes unit tests
e60235aa4 Eliminated appendLpCols  and appendLpRows
81761481c Now rewritten HSI.AddRows so it's like HSI.AddCols - why was it ever not?
0b4cb7f88 Merge pull request scipy#386 from ERGO-Code/tidyHFactor
d79d4c106 Merge branch 'tidyHFactor' into unifyIndexSpec
4423919f8 Passes unit test with singular initial basis: formatted
387a98532 Reintroduced handling of rank deficiency
40c822043 Refined the debug level required for post-solve error analysis
0d8087722 AnIterNumCostlyDseIt now always initialsed to zero
8c4a090a8 Corrected check for primal infeasibilities after Phase 2 primal simplex clean-up
3f392a67c Added fix if  Phase 2 primal simplex solver creates primal infeasibilities - and formatted
5f71a0ce5 Fixed error in assert and reformatted
969edfddf Removed debug check and formatting
edadd1083 Fixed bug in transition after postsolve
d27a1f0cc Introduced correctDual to shift minor dual infeasibilities in transition()
7cf01b147 modified
db754e556 Merge branch 'master' into bug-fix-kkt-presolve
df687891d Merge pull request scipy#384 from ERGO-Code/createDebugHighsSolve
74cc2064a Merge pull request scipy#385 from ERGO-Code/fix-install
d811de1a1 Removed redundant identifier from HSimplex
d45bf1c57 Removed a load of analysis code from HSimplex that is now redundant due to HSimplexDebug
171fd1fb2 About to remove analyseSimplexBasicSolution
9cc382ae0 Ctest passes and formatted
b330c837e Moved isSimplexInfoOk and its printfs from HSimplex to HSimplexDebug
2863c1c4b Introduced debugSimplexBasicSolution into HighsSolutionDebug, but needs to be in HighsSimplexDebug
1c4874553 missing header added
7e6a807e6 comments
913f538d1 cmake fix install
5e4c4c2e6 printing off
afc437206 presolvers on, fixed bug
2f5ed6bcf just doubleton eq clean ctest
d1efa46a6 Rename pyHiGHS -> cython; remove uneeded coverage tests
046bf9f4e use correct num of args in dummy function
f3d5fa6b2 dummy function for testing in case module is not compiled
c06941986 Remove module status from tests
06fefa884 fix test import from within scipy
eef5c75a7 Merge branch 'master' into createDebugHighsSolve
7cdeb4603 Tidied up comments and formatted
017fbae9e Reduced getPrimalDualInfeasibilities in HighsSolution by not finding errors
88fee4dc0 Now stripping error detection from getPrimalDualInfeasibilitiesFromHighsBasicSolution in HighsSolution.cpp
cb4262834 About to remove analyseHighsBasicSolution from HighsSolution
c290990e6 single fail
55e15235a more sp cases
565a4b1f1 etamacro fixed
98cee52a3 fixed first fail on etamacro
ed572daaa only 2 failing
4085669c3 flake8-ify
ccaaa461b etamacro and greenbea fixed
34b434195 wip maths
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
39eed8cf4 Testing all models for errors after postsolve
54997e1fb Now analysing PrimalDualErrors
77321f18d EqualSolutionParams now replaced by debugEqualSolutionParams and returns HighsDebugStatus
df0662aea Introduced debugHighsBasicSolution
fcd5db4da Removed change_update_method
b47673c03 Set up HighsSolutionDebug with equalSolutionParams checks
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
6ac1d1267 Merge branch 'kkt-chk' into tidyHFactor
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
7f4b90798 Eliminated highs.run() from singularStartingBasis Unit test
bada2022e link
2109f2463 Deleted .travis.yml
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
4c46cf8d6 Removed commented-out (unused) int* hint entries in update* parameter lists, but too scared to replace the integer pointers to references
1a3556289 Started debugging rank deficiency
48b1b58a4 Frigged singularStartingBasis unit test for now and formatted
ed60be7b5 Removed getNoPv* from HFactor.h
834add0cc Uncovered inability to handle rank deficiency
9c9ff0992 unchanged perf
7b6202764 Reporting checkInvert errors as HSimplexDebug
d7628c1a4 Added random solution test to debugCheckInvert and just working with inf-norm
36834d827 Created HFactorDebug.cpp
7bf5cf3f1 Removed HiGHSDEV from HFactor - completely!
c810dad05 Removed HiGHSDEV from HFactor
7df64d320 Moved checkInvert to HFactorDebug.h, after creating getBaseIndex, getAstart/index/value
d80fb6df5 Removed more printf statements from HFactor.cpp
5b07b013a Removed major printf statments from HFactor
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
9020ec177 Removed references to normalise from assessLp and formatted
f498e92ca Added assessBounds and assessMatrix with forced normalisation
6c5d72a80 doubleton eq off
f2846b676 Merge pull request scipy#47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
254343b41 Merge branch 'master' into unifyIndexSpec
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request scipy#46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref scipy#105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
a97f950be Need to do some simplification of the use of assessCosts/Bounds, but have to mark LPMS first!
550108fa6 Spotted that addCols doesn't assess costs or bounds
4f0028a47 Added index_collection to change costs and bounds
0f055b7d9 Merge branch 'master' into unifyIndexSpec
f18f74d58 Formatted
d562f3f13 Converted getRows/Cols to work from HighsIndexCollection
55e154d9b Converted deleteRows to work from HighsIndexCollection
f005f6e97 Converted deleteCols to work from HighsIndexCollection
de5ef1112 Created updateIndexCollectionOutInIndex
6b9016c75 Created testAllDeleteKeep in ../check/TestLpModification.cpp
098171454 Set up assessIndexCollection and limitsForIndexCollection
3b400c515 Set up assessIndexCollection and limitsForIndexCollection
52862abcb Finished faffing with headers, but HiGHSIO.h now simpler
ff28841e9 Removed HighsIO.h from HighsInfo.h
14279da75 Removed <vector> from HiGHSIO.h by adding it to HighsInfo.h
b11efb82f Moved HighsPrintMessageLevel from HConst.h to HighsIO.h
cfbec5eb6 Removed HighsLp.h from HighsIO.h: now to move HighsPrintMessageLevel to HighsIO.h
ed9e00870 Try to work out why HighsIO.h needs to include HighsLp.h
10a085544 Created debugSimplexLp, but need to unify the three ways of specifying indices into a struct before proceeding
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 342b79a32d4f61deab0379a2151c6fa37852f077
mdhaber pushed a commit to mdhaber/scipy that referenced this pull request Aug 20, 2020
)

342b79a32 Remove define breaking python36 build
42c5689b5 Fix HighsIO cimport
8df4d12ec Message enum relocation; cleanup setup.py
179e8c232 Merge remote-tracking branch 'upstream/master'
5efeb4c83 Merge pull request scipy#393 from ERGO-Code/LpModificationBasis
8bc52aaf8 Fixed simplex_lp_status.has(_fresh)_invert error after rank deficiency
f5f005e35 Ready to try SCIP interface!
c67060ce3 Merge pull request scipy#392 from ERGO-Code/LpModificationScaling
45c824dcd Formatted
3b5b4e4cc Now checking any INVERT in debugSimplexLp
fa6dd0b05 Successfully split setNonbasicMove
804edf85d Now to change from using original setNonbasicMove
ae4ade239 About to split setNonbasicMove
02bd69983 Force scaling off and formatted
aa93710a8 Fromatted
0f0f0bbd8 Removed redundant code from HSimplex and simplified other methods
237234f2a Changed a lot of bald var to iVar in HSimplex.cpp
384688f73 Changed a lot of bals col and row to iCol and iRow in HSimplex.cpp
e501db713 Now checking simplex basis correct at start of transition and in returnFromHighs
7f4ef7d34 Only invalidate BasisArtifacts for addRows/Cols
2360fa0ba Switched off forced scaling to enable build
9bba2015b Corrected bug in appendNonbasicColsToBasis and use of bool valid* to bool& valid*; formatted
afe80c6ae Cleaned up TestLpModification
ef06a3a2b Fixed bug introduced due to overlooking two values of simplex_strategy: thanks valgrind!
fae5419ad Even neater after transition() and formatted
ac6f1c051 runSimplexSolver now avois unnecessary code when optimal
3bdabf184 Added all the timing imaginable to transition()
ba4ce0d9a transition() timing - only accounted for 75%
9d496c5a9 About to insert timing clocks for transition() components()
453efad02 Passes unit test: formatted
442aeb556 nonbasicFlagOk and basisOk replaced by debug methods
3ed2c9928 Created debugBasisConsistent for HiGHS basis
2590f9ec3 debugOkForSolve had been written! some gardening done
a9f242225 debugBasisConsistent now checks numbers of basic and nonbasicvariables
075ee408d Now have is/debug + Basis/Solution + RightSize OK
1256d5d38 Put in debugBasisConsistent
52d70f6b3 Created more rightSize methods, but not all can be given logfile
341f28153 Before demerge creating solutionRightSize and basisRightSize
a82415621 Formatted
6b3c8b2a9 After formatting
277cc50b9 After merging master into this branch and fixing minor conflict
29be9fe7b Fixed bug when highs_debug_level = 1 - only shown up when HiGHSDEV=ON
47f6834f7 Moved expensive simplex checks into HSimplexDebug
bfd5c5059 Now gets timing info for transition() in case no simplex solve is required
52655c426 Added #include <algorithm> to HighsDebug.cpp and reformatted
7fc296d14 Added src/lp_data/HighsDebug
cd8b56189 tidied up rightSizeVector and using it more: about to complete debugBasisConsistent
0d927655e About to create HighsDebug for general debug utilities
3b0f5f1cb Renamed isSolutionConsistent and isBasisConsistent is*SizeConsistent to be more readable and pave way for debugBasisConsistent that does more
316160aaa Renamed HighsSort methods to conform to Google standard
7988dce52 Now checking scaling vector sizes in debugSimplexLp
003b3d10b Force scaling off: formatted
5b14049e2 Formatted
325a0380e ctest passes for forced scaling of avgas
4aa851dc6 deleteRows now handles scale factor, and only uses HighsIndexCollection
f19a89529 Need to resize LP when deleting rows and columns
bb52f4dbd Working on deleteScale
b949c7d62 About to forcs scaling so TestLpModificaiton checks scaling for avgas
753979a65 Merge branch 'master' into LpModificationScaling
0d839e1d6 Merge pull request scipy#391 from ERGO-Code/kkt-4
65f382011 Merge remote-tracking branch 'upstream/master'
35a25098c Now updating simplex LP scaling for addCols and addRows
a85527b91 deleted files added by accident
d6488b821 formatting
ccff236eb revert debug config
0cabec98e yes.
a58b9a115 single wrong num var
27114cf52 Formatted
f544f32f4 Changed pointers to vectors in calls to change cost/bounds
825162179 row/column costs/bounds not passed as pointers in HighsLpUtils
c3a5ec0b0 ctest fixed again
2260fdac1 assessBounds now has vectors in parameter list
0cc23b678 Removed from_ix and to_ix from assessMatrix
05ea09e5d About to remove from... to in parameter list for assessMatrix since they are sure to be 0 and num_vec-1
211ca89ad About to remove num_nz from parameter list of assessMatrix
ab303580c Removed run_as_hsol and hsol scaling option since former unachievable and latter is (thus) redundant
5f1c16f43 Fromatted
ac8f14bd8 Introduced doubleUserDataNotNull and intUserDataNotNull to remove duplicated code
718bdbc76 Removed utilities for non-HighsIndexCollection data
2fd3756fd Removed assessIntervalSetMask
ea094bbe6 modified postsolve rule: ctest clear
e8307c1d5 check passing
f738328de changeRowBounds now only uses HighsIndexCollection
bb779a653 changeColBounds now only uses HighsIndexCollection
1bdfb2cf2 assessBounds only uses HighsIndexCollection and version with with normalise logical deleted
0bbdadbfb changeCosts now only uses HighsIndexCollection
972de26b5 Modified sortSetData to permute set
0b43df25a About to modify sortSetData so that the original entries are permuted
ea385500c HighsIndexCollection set is no longer const: now to remove local_index_collection since original set can be changed
070e87390 About to create local set so that it can be ordered
de137af88 Formatted
2ca5be896 AssessCosts now only uses HighsIndexCollection
1d6d21d67 deleteRow/Col now ony using HighsIndexCollection. local_mask now needed for non-delete case
1179ddd1c deleteLpRows uses only HighsIndexCollection
4de869b57 deleteColsFromLpMatrix now only uses HighsIndexCollection
98a758e00 Formatted
3a5e4255d deleteColsFromLpVectors uses only index_collection and struct HighsIndexCollection sets pointers to NULL
8e35f8417 Now checking check_lp == simplex_lp
63fb1fef0 Removed scalars from applyScalingtoLp* calls and created applyScalingToLp
839ad3282 debugSimplexLp compares simplex LP with freshly-scaled original LP and OK for plain solve
331a883c2 Added test/ htdocs/ and HighsRunModel.mps to .gitignore
9b73cd1e3 Merge branch 'master' into unifyIndexSpec
e8072cb38 Removed spurios bool return from updateHighsSolutionBasis
3e6faf1dd master + check+
5a93fe703 Merge branch 'master' into kkt-fix-2
971292231 special case excluded
981c85fec Merge pull request scipy#387 from ERGO-Code/restore_getObjectiveValue_getIterationCount
7c1724b8b Formatted
ae3060df5 Adapted updateHighsSolutionBasis to be called from returnFromHighs
bd509d33f Inserted returnFromHighs into all HiGHS methods that modify the incumbent model or solver infomation associated with it
57ad89a4c Restored all of TestLpModification and reformatted
26cc04ce1 Fixed error in interpretCallStatus in HSI
ab4b15c4c Updated change costs and bounds
b6d0327f4 Simplified use of interpretCallStatus in Highs.cpp and about to remove General in HSI to make methods overloaded
f1fc5e82b Tidied up addRows/Cols
811f617f1 Restored getObjectiveValue and getIterationCount to the C API. Also added (equivalent, but unambiguous) getSimplexIterationCount
13630a323 New addCol/Row code passes unit tests
e60235aa4 Eliminated appendLpCols  and appendLpRows
81761481c Now rewritten HSI.AddRows so it's like HSI.AddCols - why was it ever not?
0b4cb7f88 Merge pull request scipy#386 from ERGO-Code/tidyHFactor
d79d4c106 Merge branch 'tidyHFactor' into unifyIndexSpec
4423919f8 Passes unit test with singular initial basis: formatted
387a98532 Reintroduced handling of rank deficiency
40c822043 Refined the debug level required for post-solve error analysis
0d8087722 AnIterNumCostlyDseIt now always initialsed to zero
8c4a090a8 Corrected check for primal infeasibilities after Phase 2 primal simplex clean-up
3f392a67c Added fix if  Phase 2 primal simplex solver creates primal infeasibilities - and formatted
5f71a0ce5 Fixed error in assert and reformatted
969edfddf Removed debug check and formatting
edadd1083 Fixed bug in transition after postsolve
d27a1f0cc Introduced correctDual to shift minor dual infeasibilities in transition()
7cf01b147 modified
db754e556 Merge branch 'master' into bug-fix-kkt-presolve
df687891d Merge pull request scipy#384 from ERGO-Code/createDebugHighsSolve
74cc2064a Merge pull request scipy#385 from ERGO-Code/fix-install
d811de1a1 Removed redundant identifier from HSimplex
d45bf1c57 Removed a load of analysis code from HSimplex that is now redundant due to HSimplexDebug
171fd1fb2 About to remove analyseSimplexBasicSolution
9cc382ae0 Ctest passes and formatted
b330c837e Moved isSimplexInfoOk and its printfs from HSimplex to HSimplexDebug
2863c1c4b Introduced debugSimplexBasicSolution into HighsSolutionDebug, but needs to be in HighsSimplexDebug
1c4874553 missing header added
7e6a807e6 comments
913f538d1 cmake fix install
5e4c4c2e6 printing off
afc437206 presolvers on, fixed bug
2f5ed6bcf just doubleton eq clean ctest
d1efa46a6 Rename pyHiGHS -> cython; remove uneeded coverage tests
046bf9f4e use correct num of args in dummy function
f3d5fa6b2 dummy function for testing in case module is not compiled
c06941986 Remove module status from tests
06fefa884 fix test import from within scipy
eef5c75a7 Merge branch 'master' into createDebugHighsSolve
7cdeb4603 Tidied up comments and formatted
017fbae9e Reduced getPrimalDualInfeasibilities in HighsSolution by not finding errors
88fee4dc0 Now stripping error detection from getPrimalDualInfeasibilitiesFromHighsBasicSolution in HighsSolution.cpp
cb4262834 About to remove analyseHighsBasicSolution from HighsSolution
c290990e6 single fail
55e15235a more sp cases
565a4b1f1 etamacro fixed
98cee52a3 fixed first fail on etamacro
ed572daaa only 2 failing
4085669c3 flake8-ify
ccaaa461b etamacro and greenbea fixed
34b434195 wip maths
e6ca5175d Add simple coverage tests and fixes for bad input
f5a28af16 Merge remote-tracking branch 'upstream/master'
39eed8cf4 Testing all models for errors after postsolve
54997e1fb Now analysing PrimalDualErrors
77321f18d EqualSolutionParams now replaced by debugEqualSolutionParams and returns HighsDebugStatus
df0662aea Introduced debugHighsBasicSolution
fcd5db4da Removed change_update_method
b47673c03 Set up HighsSolutionDebug with equalSolutionParams checks
115ab4857 Merge pull request scipy#383 from ERGO-Code/kkt-chk
6ac1d1267 Merge branch 'kkt-chk' into tidyHFactor
c973a530e Update README.md
79809a51d Update README.md
3d65abe0a build GA
74722b409 ga fix
ac1d070e1 GA name
7f4b90798 Eliminated highs.run() from singularStartingBasis Unit test
bada2022e link
2109f2463 Deleted .travis.yml
18aa77c71 removed travis
8b55a0725 formatting
377a5a94d fix bug
1718c94c8 as before, kxx to be added again
f45ee71f6 only greenbea failing one rule of kkt check
19b528a55 old checker removed
f5ea69a86 Merge branch 'master' into kkt-new
64d357722 checkers identical on small
d8ed22799 presolvers on
f8c435186 fixed bug afiro
4c46cf8d6 Removed commented-out (unused) int* hint entries in update* parameter lists, but too scared to replace the integer pointers to references
1a3556289 Started debugging rank deficiency
48b1b58a4 Frigged singularStartingBasis unit test for now and formatted
ed60be7b5 Removed getNoPv* from HFactor.h
834add0cc Uncovered inability to handle rank deficiency
9c9ff0992 unchanged perf
7b6202764 Reporting checkInvert errors as HSimplexDebug
d7628c1a4 Added random solution test to debugCheckInvert and just working with inf-norm
36834d827 Created HFactorDebug.cpp
7bf5cf3f1 Removed HiGHSDEV from HFactor - completely!
c810dad05 Removed HiGHSDEV from HFactor
7df64d320 Moved checkInvert to HFactorDebug.h, after creating getBaseIndex, getAstart/index/value
d80fb6df5 Removed more printf statements from HFactor.cpp
5b07b013a Removed major printf statments from HFactor
476d257c5 compare master
ee311c9a6 clean up
b5cbe2fa4 fixed checker bug
3764178ee bug fix in checkKkt() @
0628eff1c printRow working OK, ctest passing with it in checker, see particular row 61 for e226 now
c35e9a817 calling print row from postsolve fail spot
bf19ff809 clean up and print row / col presolve util methods added
bf35fce39 debug e226 single failure isolated
dfeb091b6 both checkers in, leave them both until consistent
1bff3b4ba old checker bug fix, now failing new checker on 25fv
3d8762f86 more rLowes
7eb779ec9 kk
d7218e41c both checkers: old one working
80244523e rs-only
9020ec177 Removed references to normalise from assessLp and formatted
f498e92ca Added assessBounds and assessMatrix with forced normalisation
6c5d72a80 doubleton eq off
f2846b676 Merge pull request #47 from ERGO-Code/master
7d93d001a Add ipm_optimality_tolerance; improve message_level and primal/dual_feasibility_tolerance docs
254343b41 Merge branch 'master' into unifyIndexSpec
d38efc9a9 ctest passing
058ef6c0e bug on 80bau fixed dual postsolve of singleton row triggered by very special case (4+ rules in order)
09bc02a2a triggering bug: single occurrence after a combination of at least four rules
654970cf3 next rule 80bau
08608d670 reordered col sing a bit
853bb421a Merge pull request scipy#381 from ERGO-Code/minorModsForUsers
f714be3a9 Added ipm_optimality_tolerance to allow IPX to be run approximately when crossover is not used
4961bb148 Added Highs_runQuiet to C  API
bb9407835 Merge pull request #46 from ERGO-Code/master
6a0f8f69c Add integer checks for integer options
c5e736e4a Return fun=None when solution is unavailable
9a6219c80 fixed, tricky
57a4d0f32 removed last of stray ijs
694cd4353 one more bug fixed but still get the same error
074aac212 a few fixed but none fixed the St of L error message
1e9e226ec mix up with Julia branch, debugging 80bau
f47c12ec1 checker tol set to 1e-7, not so relevant but needs to be consistent. first look into small ctest and 80bau3b issues, then extended ctest
f1b1f0f7d merge with master
a3c6c364b Merge pull request scipy#380 from ERGO-Code/presolveNumerics
a82b3bd6a Merge pull request scipy#379 from ERGO-Code/kkt-check
58c9dee0d Reinstated the iPrint condition for reporting clocks and numerics
9636520d6 Removed two print statements in HMPSIO.cpp; tidied compiler warning in HighsLp::equalButForNames - which was useless; renamed reportAllNumericsRecord reportNumericsRecords; Formatted
2e77d5c7d Formatted
09fd31bcb Removed commented-out code and comments for discussion, plus implemented conclusions
e5e2dc050 wip
fb29edf67 Comment out openmp pragma statments
afae7bbaa remove uneeded interface
eb7aad4ec Fix merge conflicts
f67d678ff Merge remote-tracking branch 'upstream/master'
b8535efc1 Assigning eps tolerance to fixed_column_tolerance to avoid positive tolerance assert
415c44a51 Added analysis of fixed column numerics in presolve
798b84cee Merged kkt-check into this branch
1259aaa9c Merge branch 'master' into presolveNumerics
c7335db52 Added model name to results summary
23662ad92 formatting
62fccfb11 Merge branch 'master' into kkt-check
ed73f349d bug in new checker fixed. PR before dev of presolve
4c3f6f999 removeFixed* methods in Presolve class
0fac66922 removeFixed method and new checker bug fix. inconsistency in Fixed Cols rule
dbf663603 checkKkt() method added to the Presolve class@
2a7c0630b merge with master
5a6b5b422 Merge pull request scipy#377 from ERGO-Code/bug-presolve
50a8dbd3b Merge pull request scipy#378 from ERGO-Code/parser
c7c7b729a empty mps file
ef70118f6 formatting
4287eb3a8 fix
d1a1069a8 formatting
6404d5aef Fixed Windows build error :-)
36d09bfed Formatted
9bfba4856 Added analysis of inconsistent bounds test in removeRowSingletons
b5aea5a5f Generalised presolve numerics records as enum of indices into vector of records
b7cb195bb Removed duplicate rule definitions due to merge
619468ac6 Resolved conflicts after merging master into this branch
d8802a91d Formatted
5ee66483b Added analysis of two more numerical tolerances in presolve
4687bd5e4 Analysing and reporting the first four uses of tol in presolve
c1d62c651 Split the if-statement in removeDoubletonEquations
82695b7ec Formatted
b7526e770 Restored protection of call to timer.reportClocks();
31093c2e3 regular ctest pass with both kkt checks enabled.
694959bd4 Looked at first few uses of tol in Presolve.cpp. Substituted specific identifiers in each case, and considered what the value should be
48af287ca compiling, segfaulting
22cc24f18 second half of checker, problems cleared
493d9196f Merge pull request scipy#375 from ERGO-Code/gams-interface-fixup
beef381c6 negate row duals obtained from HiGHS
3285bdd62 do not pass invalid basis to HiGHS anymore
2dd53313c update copyright year
d103672c8 use gmoCompleteSolution instead of gmoCompleteObjective
c180bfe59 need to call HighsSetIO now to make it actually use callbacks, ref #105
710fdff3c make the GAMS interface compile again
9dadda21a fix checks in assert
51e6b31d5 fix one of the compiler warnings
d9f28507f Merge pull request scipy#374 from ERGO-Code/presolveTimerEfficiency
7a4ee97eb Added  timer.recordFinish(SING_ROW); before status return
6d4ef9a96 Formatted
352d76917 Removed (redundant) start_time from HighsTimer.h
bc22fffa6 Reduced frequency of timeout test
42446efed Removed high-volume clock start/finish calls from presolve
4956678be With high-call clocks commented out
02dac71b7 Added timing locks to start looking for missing 40% of presolve
27341ae9d halfway through checks, new checker
d37e582b7 all of ctest passing within tolerances (0 simplex iter). Old checker identifies failures wrong
d2e31361c old checker printing pass vs fail on postsolved solution before passing back to HiGHS.
773e9afc8 test files reverted
f35dc7574 clean up
85b515994 ctest passes with and without check
51595fb04 ctest passing
fca847451 fail. debug adlittle
f6e8a1f60 clearing and basis in postsolve
eb7e53883 destuctors added, one more special LP passing check
f9c073325 bug in tests fixed, now unit test fails as expected in checker where clock has not been finished. New KKT checker class test/DevKkt added.
c73683cef leak fixed, double free still failing
eebe3471b 280 passing, valgrind next fal
56017e817 issue 280 special case
8ef4409cf valgrind OK plus tidy up
b8b771115 valgrind
982a0dc4a Revert back to earlier upstream commit
a600b38e4 Add note about cmake files; change single ticks to double back ticks in cython docstring; change byte-strings to python strings; remove uneeded commented-out code; clarify some comments
3dc432a10 Merge remote-tracking branch 'upstream/master'
69739a8a5 Remove unneeded files
46640196d More unneeded files
dc701d7d8 Remove uneeded files
dd7c8b480 Merge pull request scipy#371 from ERGO-Code/no-delete-JAJH
c008b7760 Refined timing reporting
85db78f6d Added some missing timer.recordFinish(rule) calls
0c9699aa0 deleted dev print
d17510e0a hw solving
e07521ea8 ctest passing
3eeac3c46 Merge pull request scipy#370 from ERGO-Code/matrix-copy
260643015 small ctest passing
dd6ef0551 formatting
aaf1aacf2 formatting
9f4b9fe82 previous
c6d26cfd6 back to list
ded0248f1 Merge branch 'master' into matrix-copy
7c9639bfa ctest passing but presolve reduction counts changed
adfbbb02c Merge pull request scipy#369 from ERGO-Code/openmp-version-cmake
94da4a2ac valgrind etamacro
837c5de2c presolve singleton lists changed into hash maps
04db154ce Merge branch 'master' into matrix-copy
01fa72dd1 Merge branch 'master' into matrix-copy
cf38c6074 newline of
184c2ff59 reverted typo in comment
086b075aa target_link_libraries
addd1f281 linking after defining lib cmake
6bb52c385 Merge pull request scipy#368 from ERGO-Code/dev-option
1c66fc894 setting OPENMP value
ba25299b8 cmake openmp version required: more modern cmake
75215f320 openmp only using if available
eebb4a7df update with master
53b4ace91 Merge branch 'master' into dev-option
6fed11c1f Merge pull request scipy#366 from ERGO-Code/dev-presolve
2c7e5b05e matrix-copy
3c0b5ee21 CMakeLists commented out scaffold subdir add
4b0ebee53 scaffold out
b7e7a23cc adding dev-presolve to scaffold GA
a53ff1b70 Merge pull request scipy#367 from ERGO-Code/CHUZC3
a9ed1c640 CHUZC sort strategy now controlled by option dual_chuzc_sort_strategy
fb1ef5de2 Adding CHUZC3 option
228f8d0a3 Tidied up HDualRow and reformatted
8b22df683 Moved debug code from HDualRow to HSimplexDebug
d08a669ee Moving the debug code from HDualRow
5d0eeebe0 experiments linux
5eacc5071 About to allow heap or quad
68432bdd4 Created metods for chooseFinalWorkGroupQuad() and chooseFinalLargeAlpha
e9e827252 After cleaning up printing and commenting out checking
7ea716b16 Before cleaning up after identifying why groups have different sizes with quad and heap
3ad48e421 formatting
4f899821d scaffold out
87bb623a9 dev option and other working as expected
177b910de About to add array for checking group equivalence
b733f091b boost po exception commented out
40f3352a5 Heap identification of breakpoint groups may be correct
92caf3e4c option dev added
962ca1891 Recognised that groups have to be filled using inner loop, but too tired to debug
0c82c9f9b Same workData and workGroup for adlittle with both methods
63f16f637 Found workGroup discrepancy
68a3e2a1c About to rename some new identifiers
d6497317b Memory proboem: ask Ivet
66516d76d About to create chooseWorkGroupHeap
e6928afac formatting
0fb9da3ad presolve time_limit works
46c3790f8 Fixed bug in permuteSimplexLp when LP is not scaled
538f2efcf debugDualChuzcFail now analyses and reports on dual CHUZC failure
88d8eb356 formatting
414998743 timeout returning
03e07cdeb Added timing and reporting to identify inefficiency in CHUZC3
d30f93867 Added analyse_lp = true with HiGHSDEV=on
f992d54ee removed function: do in separate CL since this one has grown
034fa18af added chrono
56c75804d unit test fixed
9ad6fa14f clean up
430b45331 scaffold out
338af92c9 options tests pass
453eb30f6 mps parser timeout works:
1e2ef6728 parser stopping on timeout but simplex running anyway
2d6e70f71 ctest passing, now add timeout and iteration tests to dev-presolve
257b62632 CL growing, added timeout to parser, linking dev with call backs
8153e9489 Switched on full reporting when HiGHSDEV=on, and eliminates time reporting when no calls have been made
1365960c2 time limit added, not tested yet
a97f950be Need to do some simplification of the use of assessCosts/Bounds, but have to mark LPMS first!
550108fa6 Spotted that addCols doesn't assess costs or bounds
4f0028a47 Added index_collection to change costs and bounds
0f055b7d9 Merge branch 'master' into unifyIndexSpec
f18f74d58 Formatted
d562f3f13 Converted getRows/Cols to work from HighsIndexCollection
55e154d9b Converted deleteRows to work from HighsIndexCollection
f005f6e97 Converted deleteCols to work from HighsIndexCollection
de5ef1112 Created updateIndexCollectionOutInIndex
6b9016c75 Created testAllDeleteKeep in ../check/TestLpModification.cpp
098171454 Set up assessIndexCollection and limitsForIndexCollection
3b400c515 Set up assessIndexCollection and limitsForIndexCollection
52862abcb Finished faffing with headers, but HiGHSIO.h now simpler
ff28841e9 Removed HighsIO.h from HighsInfo.h
14279da75 Removed <vector> from HiGHSIO.h by adding it to HighsInfo.h
b11efb82f Moved HighsPrintMessageLevel from HConst.h to HighsIO.h
cfbec5eb6 Removed HighsLp.h from HighsIO.h: now to move HighsPrintMessageLevel to HighsIO.h
ed9e00870 Try to work out why HighsIO.h needs to include HighsLp.h
10a085544 Created debugSimplexLp, but need to unify the three ways of specifying indices into a struct before proceeding
6e69c6635 link the modern cmake way
118c46ef4 enabled openmp in windows tests

git-subtree-dir: scipy/optimize/_highs
git-subtree-split: 342b79a32d4f61deab0379a2151c6fa37852f077
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants