2006-08-03  Tor Lillqvist  <tml@novell.com>

	* source/inc/solvemodel.hxx
	* source/inc/unohelper.hxx
	* source/ui/unohelper.cxx: Remove extra CRs.

2006-08-02  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/numeric/nlpqnewton.cxx: slightly more code cleanup.

2006-08-02  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/numeric/nlpqnewton.cxx: moved method definitions into class declaration,
	plus some code cleanup.

2006-08-02  Tor Lillqvist  <tml@novell.com>

	* source/numeric/makefile.mk
	* source/service/makefile.mk
	* source/ui/makefile.mk
	* util/makefile.mk: Set EXTERNAL_WARNINGS_NOT_ERRORS to TRUE.

2006-08-01  Tor Lillqvist  <tml@novell.com>

	* source/numeric/diff.cxx (Tm): Remove unused variable.

2006-07-30  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* docs/class_diagram.odg: modified to reflect latest codebase.

	* idl/org/openoffice/sc/solver/makefile.mk: added.

	* source/inc/lpbuilder.hxx: header cleanup.

	* source/inc/nlpbuilder.hxx:
	* source/numeric/nlpbuilder.cxx: added.

	* source/inc/solvemodel.hxx (SolveModel): edited javadoc comment.

	* source/inc/numeric/cellfuncobj.hxx:
	* source/numeric/cellfunc.obj.cxx: added.

	* source/inc/numeric/funcobj.hxx (BaseFuncObj): edited javadoc comment.

	* source/inc/numeric/nlpbase.hxx:
	* source/inc/numeric/nlpbase.cxx: header cleanup & moved implementation
	into its own class.

	* source/inc/numeric/nlpmodel.hxx:
	* source/numeric/nlpmodel.cxx:
	* source/numeric/nlpqnewton.cxx (pushVar, getVars): renamed.

	* source/numeric/makefile.mk: removed diff_test.obj and added cellfunc.obj.

	* source/numeric/nlp_test.cxx: removed.

	* source/ui/makefile.mk: spaces -> tabs.

	* source/ui/solvemodel.cxx: added hook for solving NLP models & made inline
	some method definitions of implementation class.

	* workben/Makefile: modified to make compilation of nlptest easier.

	* workben/nlptest.cxx: added.

2006-07-26  Tor Lillqvist  <tml@novell.com>

	* prj/d.lst: DLLs are in bin, not lib.

2006-07-10  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/option.hxx,
	* source/inc/optiondlg.hxx,
	* source/ui/option.cxx,
	* source/ui/optiondlg.cxx: added.

	* source/inc/basedlg.hxx: modified javadoc comments.

	* source/inc/baselistener.hxx,
	* source/ui/baselistener.cxx (ActionObject, ActionListener): modified
	for general purpose use.

	* source/inc/dialog.hxx,
	* source/ui/dialog.cxx (SolverDialog): bits for OptionDialog added.

	* source/inc/listener.hxx,
	* source/ui/listener.cxx (OptionBtnListener): added.  some code cleanup.

	* source/inc/solver.hxx,
	* source/service/service.cxx: pointer to OptionData added.

	* source/numeric/lpsolve.cxx: added stuff for positive variable setting.
    
	* source/ui/makefile.mk: new object files added.
	* source/ui/solvemodel.cxx: query the options settings and set the positive
	non-positive constraint to the model.

2006-07-01  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/unoglobal.hxx,
	* source/ui/unoglobal.cxx (RuntimeError): refactored.

	* source/numeric/makefile.mk: removed lpsimplex.obj.

	* source/ui/scsolver.hrc,
	* source/ui/scsolver.src: added a new string, and fixed
	a typo.

	* source/ui/solvemodel.cxx (CellGemometriesDiffer): removed.

2006-06-24  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/solver.hxx,
	* source/service/service.cxx,
	* source/inc/basedlg.hxx,
	* source/ui/basedlg.cxx: changed return type of getResMgr(), and added 
	getResStr() method for easy retrieval of localized string.

	* source/ui/dialog.cxx,
	* source/ui/scsolver.hrc,
	* source/ui/scsolver.src: localized dialog strings.

2006-06-20  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/xcalc.hxx,
	* source/ui/xcalc.cxx (disableCellUpdates, enableCellUpdates): added.

	* source/service/service.cxx (solveModel): removed unused using statement.

	* source/ui/solvemodel.cxx (parseConstraints, lcl_isNumeric): disabling and
	enabling of cell updates before and after the model transform.  Slightly better
	way of detecting a numerical String whose value is 0.

2006-06-15  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* prj/build.lst: added missing dependencies to fix build failure.

	* prj/d.lst: fixed typos that prevented resource files from being delivered.

	* source/inc/lpbuilder.hxx:
	* source/ui/lpbuilder.cxx (ConstraintAddress): encapsulated data members, and
	added some new members to handle a numerical RHS value directly given in the
	constraint dialog, instead of requiring it to be always a cell address.

	* source/inc/unoglobal.hxx (getMessage): removed virtual keyword.

	* source/service/service.cxx (solve): added try-catch block to prevent unlikely
	crash.

	* source/ui/solvemodel.cxx: made CellGeometriesDiffer exception class localizable.
	properly handle cases where the RHS value is numerical.

2006-06-13  Michael Meeks  <michael.meeks@novell.com>

	* source/inc/unoglobal.hxx: define ascii_i18n to
	help markup.

	* source/service/service.cxx (setLocale, getLocale),
	* source/inc/solver.hxx: impl. XLocalizable

	* source/service/service.cxx (initLocale, getResMgr): impl.

2006-06-14  Kohei Yoshida  <kohei.yoshida@gmail.com>
	
	* source/inc/unoglobal.hxx:
	* source/ui/unoglobal.cxx: added localizable RuntimError class.

	* source/inc/numeric/lpmodel.hxx:
	* source/numeric/lpmodel.cxx: added two new methods that return the number of 
	constraints and decision variables, respectively.  Renamed getEqualityByRowId
	to getEquality for ease of typing.

	* source/numeric/lpsimplex.cxx:
	* source/numeric/lpuno.cxx: affected by renaming of lp::Modell::getEquality().

	* source/numeric/lpsolve.cxx: implemented solve().

	* source/ui/lpbuilder.cxx: disabled stripping of zero constraint rows and 
	columns, since they seem to do more harm than good.

	* source/ui/solvemodel.cxx: switched to LpSolve as the default LP optimizer.

	* util/makefile.mk: added linker flag for linking to lpsolve.

	* workben/addon_pkg/Makefile_build: modified compiler flags, and changed 
	location of liblpsolve55.a.

2006-06-06  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* docs/README.txt: removed old content, added directions for building separate
	UNO packages.

	* source/numeric/lpuno.cxx (UnoAlgorithmImpl::solve): added catch block to
	catch potential RuntimeException coming from UNO algorithm component.

	* workben/external/lpsolve_uno/lpsolve_uno.cxx (LpSolveImpl::solve): fixed
	mis-calculation of model geometry, added exception throwing blocks when 
	a vector is accessed out-of-range (hopefully never happens again), and when
	a solution is not found.

2006-05-30  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/numeric/lpsolve.hxx
	* source/numeric/lpsolve.cxx: added new files for lp_solve front-end.

	* source/inc/xcalc.hxx: edited comment for class CalcInterface.

	* source/inc/numeric/lpuno.hxx
	* source/numeric/lpuno.cxx: added implementation.  These files are only used 
	for the separate scsolver UNO package for the time being.

	* source/numeric/makefile.mk: added entry for lpsolve.obj and removed lpuno.obj.

	* source/ui/solvemodel.cxx: made inclusion of lpuno.hxx header conditional.
	Added getLpAlgorithm() method.

	* workben/*_test.cxx: modified test cases.

	* workben/addon_pkg/Makefile_build: added IDL files and changed var names.

2006-05-25  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/numeric/lpuno.hxx:
	* source/numeric/lpuno.cxx: added new files for external UNO algorithm(s).

	* source/inc/numeric/lpmodel.hxx:
	* source/numeric/lpmodel.cxx: 
	* source/numeric/lpsimplex.cxx: solve(), getSolution() and setSolution removed
	from the model class.  So, instead of the model class taking an algorithm object 
	to find a solution, we now set the model object to the algorithm object, then 
	have the algorithm object find a solution.  It's simpler this way, and is 
	consistent with the way the UNO models work.

	* source/ui/solvemodel.cxx: altered code due to the above change.
	
2006-05-22  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* idl/org/openoffice/sc/solver/XLpAlgorithm.idl: added getVar(s) methods.

	* workben/external/lpsolve_uno/lpsolve_uno.?xx: added new variable to hold
	decision variables locally, added getVar & getVars methods.

2006-05-21  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* idl/org/openoffice/sc/solver/Equality.idl: removed '_THAN_' from two enum 
	elements to make them shorter (and easider to type).

	* idl/org/openoffice/sc/solver/XLpAlgorithm.idl: removed run().

	* idl/org/openoffice/sc/solver/XLpModel.idl: added set/getEquality methods.

	* workben/external/lpsolve_uno/Makefile: renamed TestModel -> LpModel.

	* workben/external/lpsolve_uno/lpsolve_uno.?xx: added code to map model's 
	properties passed via UNO to lp_solve's.  Removed demo() and run();

	* workben/external/lpsolve_uno/testmodel.?xx: renamed to lpmodel_uno.?xx.
	
	* workben/external/lpsolve_uno/TestModel.idl: renamed to LpModel.idl.

2006-05-17  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/solver.hxx: changed the service name of the main Solver component to 
	match the rest of the entities under org.openoffice.sc.solver module namespace.
	
	* source/ui/dialog.cxx: (finally) disabled the Options button for now.
	
	* workben/external/lpsolve_uno/*: added LpSolve.idl, TestModel.idl, demo.cxx,
	testmodel.?xx, and removed XLpAlgorithm.idl.  The TestModel service is used only 
	to test lp_solve connectivity via UNO framework.
	
	* workben/external/lpsolve_uno/Makefile: quite a bit of reorganization.
	
	* workben/external/lpsolve_uno/lpsolve_uno.?xx: added new methods and a structure
	to hold private data members.
	
	* idl/org/openoffice/sc/solver/*.idl: added new IDL files (Bound.idl, Equality.idl,
        Goal.idl, XLpAlgorithm.idl and XLpModel.idl).

2006-05-05  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* workben/external/lpsolve_uno/*: initial upload of source files for exporting
	lp_solve library as UNO service.  Note that the source files of lp_solve library
	are not included.

2006-04-27  Michael Meeks  <michael.meeks@novell.com>

	* source/ui/scsolver.hrc, source/ui/scsolver.src: add
	dummy strings for translation.
	
	* prj/d.lst, source/ui/makefile.mk, util/makefile.mk:
	compile & install resource file.

2006-04-23  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/numeric/lpbase.hxx,
	* source/numeric/lpbase.cxx: split the BaseAlgorithm class into envelope
	and implementation classes, added getCanonicalModel and setCanonicalSolution
	to encapsulate removal of constant equivalent variables.

	* source/inc/numeric/lpmodel.hxx,
	* source/numeric/lpmodel.cxx: switched from map to vector for storing variable
	ranges, and made necesssary changes due to this switch.  Consolidated delete*
	methods into single deleteVariables() method.

	* source/inc/numeric/lpsimplex.hxx,
	* source/numeric/lpsimplex.cxx: added throw() to destructors.  Made changes
	to use the *Canonical* methods of BaseAlgorithm.  Removed old code.

	* source/numeric/matrix.cxx: removed unused local variable.

2006-04-04  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/numeric/lpsimplex.cxx (queryEnteringNBVar): Added new code to 
	check for constant equivalent boundary condition, without which we may
	reach an "optimum" solution only to realize that that solution is not
	really feasible.  Also did some trivial code cleanup.

	* source/numeric/lpsimplex.cxx (buildInitialVars): Switched to using a
	temporary model instead of an original one.  The temporary model has
	additional constraints for slack variables which the original model
	lacks.

2006-04-03  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/global.hxx (toVector): new function added.

	* source/inc/numeric/lpmodel.hxx
	* source/numeric/lpmodel.cxx: changed argument types of several variable
	boundary related functions from unsigned long to size_t.

	* source/inc/numeric/type.hxx: added javadoc comments to 2 enums.

	* source/numeric/lpsimplex.cxx: removed unused header include.  Did a
	major rewrite of the initial solution search algorithm for bounded
	revised simplex method (BoundedRevisedSimplexImpl).  Extracted iteration
	variable initialization part into its own method to make it easier to
	follow.

2006-03-26  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/numeric/lpsimplex.cxx: worked on fixing initial solution 
	search algorithm, and did some code cleanup.  Moved two structs inside
	BoundedRevisedSimplexImpl class since they are only used in that class.

2006-03-16  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/numeric/lpmodel.hxx
	* source/numeric/lpmodel.cxx: added a bunch of new methods to 
	lp::Model to deal with manipulation of temporary model object during
	solver run.

	* source/numeric/lpsimplex.cxx: added pre- and post-run process
	routines to reduce the size of temporary model object in order to 
	improve the chance of finding a solution.  Not sure whether this is
	truly effective.

	* workben/Makefile
	* workben/addon_pkg/Makefile_build: changed CPP to CXX.

	* workben/simplex_test.cxx: modified test case.

2006-02-16  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/numeric/lpsimplex.cxx: fixed incorrect way to access element
	in the first column of RHS matrix.  This error caused the two-phase 
	search to go into an infinite loop.

2006-02-15  Tor Lillqvist  <tml@novell.com>

	Enable building of scsolver with MSVC7.1:
	
	* source/inc/baselistener.hxx: Include cppu/macros.hxx to get
	SAL_CALL definition.

	* source/inc/baselistener.hxx
	* source/inc/listener.hxx: Add SAL_CALL to those methods which
	override methods that have the SAL_CALL decoration.

	* source/numeric/matrix.cxx: No #warning in MSVC. Use #warning
	only with gcc.

	* source/numeric/nlpqnewton.cxx: Use ::sqrt() instead of
	std::sqrt() with MSVC, where std::sqrt() causes compilation errors
	related to the complex sqrt() functions in STL.

2006-02-13  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/numeric/lpsimplex.hxx:
	* source/numeric/lpsimplex.cxx: added a new method to disable
	two-phase intial search to prevent nested infinite two-phase
	search loop.

	* workben/simplex_test.cxx: minor tweak.

	* workben/addon_pkg/Makefile_build: changed variable names.


2006-02-09  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/inc/numeric/type.hxx: added descriptions for
	Equality enum.

	* source/numeric/lpmodel.cxx: added function comment for
	Model::getCostVector().

	* source/numeric/lpsimplex.cxx: modified to use temporary
	model object instead of the original one.  Also added new
	function (convertVarRange) to convert variable ranges into 
	constraint matrix so that the algirithm can make use of 
	the variable ranges which were previously just ignored
	(note: this function is not totally done yet!)


2006-01-30  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/numeric/*_test.cxx: moved to workben.

	* source/numeric/makefile.mk: declaration of TESTFILES
	removed.
	
	* source/inc/numeric/lpmodel.hxx:
	* source/numeric/lpmodel.cxx: added setCostVector() method
	for settings multiple cost variables all at once.

	* workben/*_test.cxx: moved from source/numeric.

	* workben/Makefile: initial version added.
	
	* workben/addon_pkg/Makefile: removed unused DFLAG 
	variable.  Removed the copy source tree bit as it was
	suboptimal.
	
	* workben/addon_pkg/Makefile_build: modified BASEDIR to
	point to the original source directory.
	
	* workben/matrix_test.cxx: replaced setValue() calls
	with operator().
	
	* workben/simplex_test.cxx: worked on making a yet unsolvable
	linear model from Ludovic.


2006-01-28  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* workben/addon_pkg: added new directory and files
	underneath it for building a separate scsolver package.


2006-01-16  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* matrix.[ch]xx: added new method resize() to resize
	matrix without boost's resize call.  boost 1.30.2 doesn't 
	preserve element values when resizing.
	
	* lpbuilder.[ch]xx: added new method to set initial 
	constraint matrix size.
	
	* source/ui/solvemodel.cxx: call to set initial 
	constraint matrix size.
	
	* source/ui/xcalc.cxx (getCellRangeAddress): set #ifdef
	DEBUG block.


2006-01-13  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/numeric/matrix.cxx: reimplemented boost's
	string::replace_first() function with std::string
	methods only.


2006-01-11  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* source/numeric/*.cxx: replaced all occurrences of
	matrix's get/setValue calls with operator().

	* source/inc/matrix.hxx: removed get/setValue public 
	methods due to redundancy.
	
	* source/numeric/matrix.cxx: fixed return type of 
	MatrixImpl::getValue() to avoid returning reference
	to temporary.


2006-01-09  Michael Meeks  <michael.meeks@novell.com>

	* source/service/*.xcu: remove - obsolete.

	* source/ui/solver.cxx: remove, now
	source/service/service.cxx.

	* source/numeric/matrix.cxx: re-work boost / stl bits
	a little.

	* */makefile.mk: add build bits.

	* *.cxx: s/assert/OSL_ASSERT/g

	* service.cxx: switch to XExecutableDialog instead of
	more complex custom XSolver interface.

