summaryrefslogtreecommitdiff
path: root/scratch/scsolver/ChangeLog
blob: 8b8efc9250abb1a48a1f2a9578c5a571c1bf1a8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
2006-08-19  Kohei Yoshida  <kohei.yoshida@gmail.com>

	* prj/build.lst: 
	* util/makefile.mk: added tool subdirectory.

	* source/inc/tool/timer.hxx:
	* source/tool/timer.cxx: Timer class added.

	* source/inc/basedlg.hxx:
	* source/ui/basedlg.cxx (addCheckBox): added.

	* source/inc/baselistener.hxx:
	* source/ui/baselistener.cxx: modified ActionObject and ActionListener to 
	eliminate slicing problem in derived classes.

	* source/inc/listener.hxx:
	* source/ui/listener.cxx: fixed unused parameter warnings and added listener
	to the Option button.

	* source/numeric/lpsolve.cxx:
	* source/inc/numeric/lpbase.hxx:
	* source/numeric/lpbase.cxx:
	* source/inc/numeric/exception.hxx:
	* source/numeric/exception.cxx: moved exception classes from lpbase.?xx 
	into their own source files.

	* source/inc/option.hxx:
	* source/ui/option.cxx: added model type option.

	* source/inc/optiondlg.hxx:
	* source/ui/optiondlg.cxx: added check box for model type option.

	* source/numeric/makefile.mk: whitespace -> tab for indenting.

	* source/numeric/nlpqnewton.cxx: set the maximum iteration value and the
	maximum duration to prevent infinite loops (values hard-coded for now).

	* source/ui/scsolver.hrc:
	* source/ui/scsolver.src: added more strings for error message dialogs.

	* source/ui/solvemodel.cxx (solve): use the option setting to differentiate
	LP-solving from NLP-solving.

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.