Bernd Gärtner
62f0ca4473
- manual:
...
- added QP_solution page (the fat one)
- added package description and image
- some minor revisions
- code:
- renamed some QP_solution methods to make them more accessible
2007-04-12 14:50:16 +00:00
Bernd Gärtner
4214cf44b4
- simplification: some redundant models removed
2007-04-12 07:48:28 +00:00
Bernd Gärtner
a2712eb429
- various refactorings:
...
- mps reader is now derived from a model that allows to set
up and manipulate a program entrywise
- old copying models removed
- free models removed (they are utterly useless)
- a() -> get_a() etc.
- the solver can now solve problems with no variables :-)
- manual:
- added maker pages
- adapted to above changes
2007-04-11 15:48:19 +00:00
Bernd Gärtner
8e41774983
- added performance note to solving functions doc
...
- changed unbounded direction w so that x + tw is the unbounded ray
- aded certificate iterators to QP_solution
- added example programs that demonstrate the certificates
- fixed examples so that 2D instead of D is given
2007-04-03 14:54:38 +00:00
Bernd Gärtner
4cbbedf839
- missing const added
...
- first_qp fixed to provide 2D instead of D
2007-04-03 10:05:43 +00:00
Bernd Gärtner
a971b7db8a
- sparse mps readers added
...
- minor fix in print routine
- output for mps instances deleted (it's replaced by the general template)
2007-04-03 07:14:06 +00:00
Bernd Gärtner
9f5e838e6f
- added a farkas-Lemma proof of infeasibility
...
- added test with random small QP's
- fixed some bugs discovered by this:
- output routine for programs is now printing symmetric D
- internal comparison routine is now ignoring bound value if it
was specified as infinite
- fixed sign error in subrotuine of ratio_test
- removed constant term from consideration in phase I
2007-04-02 10:01:50 +00:00
Andreas Fabri
c7e831b9ac
Removed unused arguments
2007-03-27 07:49:33 +00:00
Bernd Gärtner
290d0e7e1f
- fixed all occurrences of qp_A[i][j], qp_D[i][j] (qp_A[i], qp_D[i] are in
...
general only convertible to the appropriate iterator types, and so the
above will not work. The fix is to use (*(qp_A + i))[j]
2007-03-23 10:57:07 +00:00
Bernd Gärtner
51b3b30f78
- copying models now have default/copy-constructors and assignment ops
...
- test (and fixed) access to upper-diagonal entries in D
- MPS read/write disagreement now only triggers warning (small differences
may be ok if floating point numbers are used)
2007-03-23 10:20:03 +00:00
Bernd Gärtner
8a7a6a899e
- internal qp_D now represents 2*D
2007-03-22 13:45:07 +00:00
Bernd Gärtner
a82ea6875e
Is_in_standard_form -> Is_nonnegative (like in interface)
2007-03-22 10:10:57 +00:00
Bernd Gärtner
00657e993b
- is_valid made private and integrated into QP_solver constructor (it may use
...
QP data that are no longer available after the constructor call)
- fixed copying models to only copy entries of D on/below the diagonal
- fixed are_equal_qp function to only access entries of D on/below the diagonal
2007-03-22 09:41:04 +00:00
Bernd Gärtner
5d9a94c31a
- uninitialized variable fix
2007-03-20 10:38:39 +00:00
Bernd Gärtner
48b08c927a
- added new models that copy the data and integrated them into testsuite
2007-03-19 17:02:50 +00:00
Bernd Gärtner
3992a4840c
- integrated MPS print function into test suite
...
- cleaned up QP_functions by putting internal stuff into nested namespace
2007-03-19 14:46:14 +00:00
Bernd Gärtner
e527fa4c0a
- U_iterator::value_type -> iterator_traits<U_iterator>:value_type
...
- various warnings fixed
2007-03-17 23:18:53 +00:00
Michael Hemmer
854ea80b4b
rm use of CGALi::Is_field etc
...
replaced by use of Algebraic_category tag
2007-03-12 17:34:47 +00:00
Bernd Gärtner
1475ebf022
functor moved from dependent classes to QP_solver
2007-03-05 14:44:06 +00:00
Bernd Gärtner
6b5aaed1a0
- fixed "changes meaning" error
2007-03-01 19:26:54 +00:00
Bernd Gärtner
d03d1ccaf4
- avoid division by zero gcd in Quotient_normalizer
2007-03-01 16:47:18 +00:00
Bernd Gärtner
f3d98caccb
- some further warning fixes
2007-02-23 09:08:12 +00:00
Bernd Gärtner
513678a4a6
- some more warning fixes
2007-02-22 10:15:03 +00:00
Bernd Gärtner
b59d73c78f
- fixed warnings (mainly unused variables in functions overloaded by tags)
2007-02-22 10:07:00 +00:00
Bernd Gärtner
5a76699d6d
- removed C-files under include/CGAL
2007-02-16 15:40:25 +00:00
Bernd Gärtner
6039e402f1
- some warning fixes, plus minimal testfile that breaks debugged platform
2007-02-16 11:56:15 +00:00
Bernd Gärtner
010463a038
- went from a[i] to *(a+i) to please debugged g++, but don't understand
...
the actual problem
2007-02-15 14:21:44 +00:00
Bernd Gärtner
1ecc6a24f2
- redundant friend removed; iterators now returned as "const Iterator" in the
...
hope of pleasing Menelaos' debugged g++ platform
2007-02-13 12:18:05 +00:00
Bernd Gärtner
7bbcbc2f31
fixes of small errors detected on various platforms
2007-02-12 08:41:50 +00:00
Bernd Gärtner
0a4fa9fa15
examples cleaned up and fixed
2007-02-08 17:57:45 +00:00
Bernd Gärtner
29bb3bfa24
QP_solver testsuite improved and adapted to Algebraic_foundations
2007-02-08 15:45:01 +00:00
Sylvain Pion
fb8595b94e
Cleanup : remove ancient CGAL_PROTECT_* macros.
...
It's the compiler's job to optimize preprocessing time.
2007-01-24 17:16:05 +00:00
Laurent Saboret
9d0d302a87
Fixed svn properties of whole trunk
2006-12-18 09:37:55 +00:00
Michael Hemmer
0257a65d7b
replaced:
...
CGAL::exact_division(..) -> CGAL::integral_division
2006-11-17 08:56:52 +00:00
Michael Hemmer
085f9c5144
CGAL::exact_division -> CGAL::integral_division
2006-11-06 15:51:58 +00:00
Bernd Gärtner
a949180978
introduced cast of qp_A[j] to A_column for cases where we get a proxy only
2006-11-01 11:57:09 +00:00
Bernd Gärtner
aeb1213f4c
- Free models added;
...
- figures/program for closest point in intersection of halfspaces
2006-10-27 14:07:45 +00:00
Bernd Gärtner
43d3e1b6bc
important variables doc
2006-10-21 17:02:31 +00:00
Bernd Gärtner
503940b105
point in convex hull example added (examples+doc)
2006-10-21 15:25:32 +00:00
Bernd Gärtner
d1c7c0d1f0
next user manual round
2006-10-19 20:07:04 +00:00
Bernd Gärtner
b1994690c6
first part of usr manual; renamed functionality (QP->Quadratic_program...)
2006-10-19 17:47:58 +00:00
Bernd Gärtner
100bed9764
- minor documentation fix (c -> c_aux in is_sol_opt_for_aux_problem())
2006-09-28 18:32:44 +00:00
Bernd Gärtner
af94b11eb7
- ET/Quotient<ET> access to variable values/certicficates
2006-09-28 17:32:25 +00:00
Bernd Gärtner
561f2650f3
- introduced iterator for optimality certificate; the validity check
...
is using it now
2006-09-28 16:50:59 +00:00
Bernd Gärtner
6a05b09d69
- Unbounded_direction_iterator refactored; it now uses the
...
Transform_diff_const_iterator
2006-09-28 16:04:06 +00:00
Bernd Gärtner
68fc833cb5
- Is-symmetric tag removed; now all input is assumed to be symmetric.
...
Reason: the tag is unecessary, and allowing non-symmetric input only
allows the user to enter redundant information
2006-09-28 14:29:33 +00:00
Bernd Gärtner
a52c3881b6
- tag "Has_equalities_only_and_full_rank" removed; this is now handled
...
dynamically in the code. Reason: this tag is difficult to explain to
the user, does not have any effect on the interface, and is not very
costly to dispatch dynamically
2006-09-28 10:30:04 +00:00
Bernd Gärtner
631f1560f2
- vector O (original variable indices) removed and replaced by
...
proper iterator
2006-09-26 11:43:15 +00:00
Bernd Gärtner
cb9694e886
- old internal type Double removed (Gmpzf takes over)
2006-09-26 10:07:07 +00:00
Bernd Gärtner
191f397d13
- basic interface for QP_solution enhanced; interface types and names
...
are now consistently only introduced in QP_solution, while the virtual
functions in QP_solver_base are implementation-centered
2006-09-26 09:54:39 +00:00
Bernd Gärtner
49cac0da8b
- removed special handling of Gmpq from QP_models, since the read-from-float
...
capability is now available in Gmpq.h
2006-09-19 14:30:56 +00:00
Bernd Gärtner
6a21496393
- added sparse representation and handling of LP to MPS reader; make_zero_D is removed
2006-09-16 19:12:07 +00:00
Bernd Gärtner
aff6bd05a5
- made first version of QP_solution
...
- refactored QP_solver to have missing types / iterators from QP generated
- added normalization of variable values / solution
2006-09-14 16:46:51 +00:00
Bernd Gärtner
f9ff2cfb36
- added make_qp function (more will follow: make_lp, make_nonnegative_lp,...)
...
- moved write_MPS out of QP_from_mps and made general
- introduced QP_solution as ref-counted wrapper for QP_solver pointers
2006-09-13 21:10:11 +00:00
Bernd Gärtner
7464866235
- added QP models
...
- refactored QP_solver to separate the QP, the ET and the Tags
- got rid of MPS.h, MPS.C (integrated into QP_models)
- added QP_functions.h to test full rank of QP
- added QP_solver diagnostics for friends to access
- removed ET type from MPS reader (was only needed for rank test, and now
I'm using the new QP function for that -> faster and cleaner)
2006-09-09 14:58:32 +00:00
Bernd Gärtner
d0a6a430ce
removed configurable row type, now CGAL::Comparison must be used
2006-09-05 12:32:25 +00:00
Bernd Gärtner
6d9fb3278d
- adapted all pricing strategies to deal with nonstandard form
...
- made pricing of a single variable a method in base class QP_pricing_strategy
- added missing pricing strategy notification in enter_and_leave_variable()
2006-09-05 11:45:44 +00:00
Bernd Gärtner
33cdafd438
- adapted to new type Gmpzf
...
- fixed some possible sources of ambiguity: all arithmetic ops now
have both operands of the same type
2006-08-31 11:27:31 +00:00
Bernd Gärtner
0bd5d53953
replaced CGAL::Double by CGAL::MP_Float and removed all includes of Double
2006-08-25 14:06:31 +00:00
Bernd Gärtner
02144270f0
minor fix (initialization of constant term c0 was missing)
2006-08-25 08:34:32 +00:00
Bernd Gärtner
1d057b9e59
enhanced MPS parser. It can now handle
...
- NAMEs with spaces
- RANGES
- RHS entry for objective row (means: constant term in obj func)
enhanced QP_solver. It can now handle a constant term in obj func
2006-08-24 14:12:24 +00:00
Bernd Gärtner
b8b1810b58
- added some additional assertions
...
- in write_MPS, 0's are now omitted
- added routine to read floating-point number in decimal format from MPS
- fixed two bugs that didn't have any effect (yet)
- commented out some expensive checks / long outputs in example programs
2006-08-24 07:45:02 +00:00
Bernd Gärtner
4b97123f03
replace bad previous commit by correct fix (just comment out expensive check)
2006-08-17 13:41:20 +00:00
Bernd Gärtner
0839e8a90c
added flag to suppress rank checking in MPS-reader (might be very slow)
2006-08-17 12:49:19 +00:00
Bernd Gärtner
4f7ee400d5
fixed MPS reader so that it can handle empty bound label
2006-08-17 11:31:47 +00:00
Andreas Fabri
e3d2f8a410
fixed min/max problem
2006-08-17 08:56:49 +00:00
Bernd Gärtner
84141f531b
added missing resize of dependent containers in z_replace_variable()
2006-08-15 15:00:59 +00:00
Bernd Gärtner
2f86e14527
bug fixed in removal of slack variable from basis
2006-08-14 12:55:21 +00:00
Andreas Fabri
10bebd9e5a
Fixed min max problem
2006-07-31 22:26:40 +00:00
Bernd Gärtner
ffff51ec51
quadobj format fix + nerw test case added
2006-07-18 14:35:27 +00:00
Bernd Gärtner
6a114b6533
some remaining AUTOMATIC macros removed; minor testsuite fix
2006-07-11 14:18:59 +00:00
Bernd Gärtner
820a11c82d
QP_solver.C -> QP_solver_impl.h
2006-07-11 12:08:37 +00:00
Bernd Gärtner
6579a4c658
internal h-files moved to include/CGAL/QP_solver
2006-07-11 11:19:55 +00:00
Bernd Gärtner
708b5a07a0
added Bland pricing rule; fixed sign bug in unbounded direction
2006-07-11 10:08:37 +00:00
Bernd Gärtner
5ca47b2aee
fixed bug that led to wrong objective function values
2006-05-30 14:31:16 +00:00
Laurent Saboret
87d65f75e3
Fixed svn properties of ASCII files (as defined by Maintenance/svn_client/config)
2006-04-18 12:42:52 +00:00
Sylvain Pion
209e525fb4
Force initialization of data members to prevent warning.
2006-03-25 12:23:10 +00:00
Bernd Gärtner
9f2fb1444f
- beautified output of test_MPS
...
- changed linear time index -> var_name mapping to constant time (MPS.C)
2006-03-16 11:44:46 +00:00
Bernd Gärtner
0aa2469e6c
warning fix
2006-03-10 12:29:00 +00:00
Bernd Gärtner
e1005296e6
- fixed bugs in Value_by_index:
...
- avoid using bounds in standard form
- included denominator handling
- included new Variable_numerator_iterator in feasibility test
2006-03-06 14:22:18 +00:00
Bernd Gärtner
e520a96fa3
- removed old (not useful) variable iterators that go over the whole
...
set of working variables; instead, the same iterators now only go
over the original variables
2006-03-03 18:56:43 +00:00
Bernd Gärtner
27289d34c0
- added original_variables_numerator_iterator
...
and original_variables_value_iterator
- tested this new functionality as part of test_MPS.C
- adapted Trung's example to work with it and checked it in
2006-03-03 18:32:37 +00:00
Bernd Gärtner
2586165bee
- fixed bug in ratio test for positive mu
...
- derivative generation is suppressed upon comment in mps-file
- warnings seen in -o3 fixed
2006-03-02 15:57:23 +00:00
Kaspar Fischer
6c0479c7e0
- added some internal routines which are currently used by
...
master_mps_to_derivatives.C only
2006-02-28 19:55:14 +00:00
Kaspar Fischer
d7691f1dd6
- now only nonzero entries of the D matrix are output to MPS-files
2006-02-28 12:21:11 +00:00
Kaspar Fischer
f924ba1920
- added master_mps_to_derivatives.C
...
- added CGAL header to data_to_mps.C
- QMATRIX section is only output if D is nonzero
- added function problem_name() to MPS.h
2006-02-24 15:16:30 +00:00
Kaspar Fischer
0da3b304c6
- fixed bug in MPS-output where "COLUMNS" was missing in the output
2006-02-24 10:19:34 +00:00
Kaspar Fischer
7dd4a84585
- finished MPS-output routine (and with this also data2mps)
2006-02-23 17:36:59 +00:00
Kaspar Fischer
69117c5acf
- is_linear() now only returns true if D is nonzero; so far, whenever D was
...
present, is_linear() returned false
2006-02-23 15:35:05 +00:00
Kaspar Fischer
3364166411
- added feature to test_MPS to output the names of the variables as they occur
...
in the MPS file
2006-02-23 15:17:22 +00:00
Kaspar Fischer
e184d87ec1
- reverted unintended removal of assertion
2006-02-21 17:44:59 +00:00
Kaspar Fischer
fff7f6a07e
- fixed validity check (unboundedness)
2006-02-21 17:37:34 +00:00
Kaspar Fischer
662b8e87aa
- solver now provides routine mu_j(int j) to the pricing strategies which
...
computes the exact mu_j in both the standard form and nonstandard form case
- fixed bug in ratio_test_1__t_j() where mu_j was not correctly computed for
problems in nonstandard form
2006-02-21 13:27:43 +00:00
Kaspar Fischer
7a42e51754
- fixed some typos in commentes
2006-02-20 15:26:07 +00:00
Kaspar Fischer
6fae29186c
- moved QP_solver.C from CGAL/ to CGAL/QP_solver/
2006-02-20 14:55:55 +00:00
Kaspar Fischer
1b666993c1
- fixed bug in validity check (optimality of auxiliary problem): the previous
...
revision only checked the KKT conditions for the problem in standard form
- added simple (and inefficient) class Bnd that represents a possibly infinite
bound; the class is used in the validity check
2006-02-20 14:00:28 +00:00
Kaspar Fischer
2fe2afb760
- (uups, dropped some statement in the previous commit...)
2006-02-16 15:10:36 +00:00
Kaspar Fischer
e3abce195b
- fixed bug: the upper-bounding mu_j(j) should do a LP-like mu_j(j) if j is a
...
slack variable
- fixed bug in which the partial pricing called mu_j(j) for a variable j which
is basic (the reason is that the active set MAY contain basic variables;
these were priced in previous revisions)
2006-02-16 14:59:56 +00:00
Laurent Saboret
db6a8f948c
Change CVS keywords to SVN style
2006-02-16 14:30:13 +00:00
Kaspar Fischer
c731057bbd
- fixed bug in which the upper-bounded version of mu_j() was never called
...
- fixed issue where the feasiblity check in update_1() was called at moments
where it need not hold
2006-02-16 13:26:41 +00:00
Kaspar Fischer
f98be94d6d
- prefixed atoi and exit with "std::"
2006-02-15 12:21:14 +00:00
Kaspar Fischer
71434b8c47
- fixed headers to new CGAL header format
2006-02-15 11:54:47 +00:00
Kaspar Fischer
ca07866bae
- fixed several occurrences of cos/sin/etc. to std::cos/std::sin/etc.
2006-02-15 11:41:19 +00:00
Kaspar Fischer
7266163a62
- changed encodeProblem to output shifted instances of the QP's, too
...
- fixed bug in is_solution_optimal_for_auxiliary_problem() where in case of
a slack variable tau_aux was not incremented but set (= instead of +=)
- fixed bug in is_solution_optimal_for_auxiliary_problem() in which the special
artificial variable was not ignored even if it droped down to zero (and
therefore MUST be ignored)
- fixed bug in update_1() where feasibiliy does not always hold (in theory, it
does, but as documented, is_solution_feasible() need not return true); now
the assertion is only checked at certain times
- fixed several typos in comments
2006-02-14 17:55:52 +00:00
Laurent Saboret
1aad55d4cb
Change CVS keywords to SVN style
2006-02-14 10:08:15 +00:00
Laurent Saboret
11745bfa53
Move packages to trunk root
2006-02-14 08:58:18 +00:00