Commit Graph

47 Commits

Author SHA1 Message Date
Bernd Gärtner 4559516680 - user manual rewritten and almost complete
- added class Quadratic_program_options to customize behavior, still
  need to document it
2007-04-15 16:49:56 +00:00
Bernd Gärtner 8bf9b65886 - QP_status -> Quadratic_program_status 2007-04-14 18:32:37 +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 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
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 6b5aaed1a0 - fixed "changes meaning" error 2007-03-01 19:26:54 +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 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
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
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 43d3e1b6bc important variables doc 2006-10-21 17:02:31 +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 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 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 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 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 5ca47b2aee fixed bug that led to wrong objective function values 2006-05-30 14:31:16 +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 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 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 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 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 71434b8c47 - fixed headers to new CGAL header format 2006-02-15 11:54:47 +00:00
Laurent Saboret 11745bfa53 Move packages to trunk root 2006-02-14 08:58:18 +00:00