History log of /haiku/headers/libs/linprog/LinearSpec.h
Revision Date Author Comments
# cf5eb5dd 31-Aug-2012 czeidler <haiku@clemens-zeidler.de>

Add a LinearSpec listener interface.


# c8b24e3e 29-Apr-2012 Alex Wilson <yourpalal2@gmail.com>

Fix BALMLayout archiving issues.

SharedSolver was archiving too many constraints, partly because of
multiple typos, also because it archived some which were just artifacts
of the layout process. These extra constraints are created when the
layout calls SetRange() on the left/top/right/bottom tabs during layout.

* LinearSpec/ActiveSetSolver had to be adjusted to get access to the
constraints added by the SetRange() calls.
* BALM::TabBase was adjusted to avoid a segfault during unarchiving,
caused by an unitialized member.
* ALMFriendLayoutTest was adjusted to include a more obvious custom
constraint for testing.


# 419fe0b8 22-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Introduce SharedSolver class to improve BALMLayout's friend feature.


# 7c380007 17-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Make LinearProgramming::LinearSpec BReferenceable.


# ef93b55d 13-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Areas with same tabs are put in a column/row automtically. Move preferred size constraint from Area to the column/row. This avoids a "spring" effect of the
quadratic solver if multiple Areas are in the same column/row.
- Replace GetString by ToString.
- some clean up



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40941 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82867791 08-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Make kp_solve interface work again.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40384 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0ad88e0 26-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix min/ max calculation by removing all soft constraints before doing so. Smaller fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40297 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7583db5a 24-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add an alternative solver to lp_solve. The solver based on Ingo's active set solver but is able to handle arbitrary hard and soft constraints. The advantage to lp_solve is that the active set solver can optimize variable in respect to a quadratic objective function. This makes it possible to minimise the quadratic derivation to a desired value e.g. \Sum_i(x_i - x_{i,pref})^2 -> min.

The solver part has been refactored in this way that both solver can be used with the same layout specifications. The active set solver is default now; the performance is not as good as lp_solve, though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40285 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f108cdbf 13-Dec-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Merge all linear programming types in one file an rename them.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39832 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5440f6fe 13-Dec-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Refactor the linear programming class to use a minimal solver interface class and implement the interface for lp_solve. As a result lp_solve is not visible to the outside any more. This interface could be used to use other solvers as well. Rename operator constants to no clash with lp_solve constants.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39829 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 067f47a3 29-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Move lp_solve dependency completely into LinearSpec. Clean up and some more memory allocation checks.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39681 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c2f0a314 12-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Rename ReplaceObjectiveFunction to SwapObjectiveFunction I think this makes it more clear that the old function is not deleted.
Cleanup Jamfile.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc691d7d 05-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Remove lp_solve dependencies form Variable class and put everything into LinearSpec. As a side effect Variable management is a bit more consistence now. We want to replace lp_solve soon so it will be easier to replace it just in LinearSpec.
- Update copyrights.
- Lot of small things related to the Variable refactoring.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38892 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cad0c434 04-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Refactor LinearSpec a bit, make it more difficult to leak the objective function.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38888 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd88ee00 20-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

More cleanup and BList -> BObjectList.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 601eded9 20-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Hide constraint header in Area file.
- Start to replace BList with BObjectList.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38741 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 44032741 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Some clean up (not complete).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38736 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 416aca7a 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix some memory leaks.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8ec67f4 06-Dec-2009 Stephan Aßmus <superstippi@gmx.de>

* Simplified and optimized a lot the "ToString()" debugging facilities.
* *::Index() is now const, thanks to the BList improvements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 676ef01b 15-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Hong Yul Yang to update linprog.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5bced18e 10-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

ALM/linprog patch by Christof Lutteroth:
* Got rid of class ObjFunctionSummand. Both the constraint summands and
the objective function summands are now stored using class Summand.
* Some method names are more BeOS compliant now: SetX instead of ChangeX.
* linprog test code now uses new AddConstraint methods.
* CalculateMinSize and CalculateMaxSize did not free the memory they
allocated.
* Removed inappropriate setter and getter methods.
* Memory allocated in class Constraint is freed now.
* Other small changes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 03069455 24-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Christof Lutteroth:
* copyright headers for the files of the libraries linprog and alm
* new class Summand for representing summands in a linear constraint
* merged class SoftConstraint into class Constraint; Constraint now
supports both soft and hard constraint functionality
* new AddConstraint methods in class LinearSpec for directly setting
constraints with 1 to 4 summands
* code cleanups by using aforementioned AddConstraint methods
* a new very simple test application for alm
* some style corrections


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24108 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a101e99a 06-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added libalm.so and its dependency liblinprog.so. libalm.so provides a
BLayout implementation (BALMLayout) using the Auckland Layout Model
(ALM). The original ALM was implemented by Christof Lutteroth, the
Haiku/C++ version by James Kim.
The code needs some review, but the test programs seem to work fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23889 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf5eb5dda1cbabf89bb14b9b497deefeb6351eb6 31-Aug-2012 czeidler <haiku@clemens-zeidler.de>

Add a LinearSpec listener interface.


# c8b24e3eb51bac128f5eeb0a5a22a60b69a1a53e 29-Apr-2012 Alex Wilson <yourpalal2@gmail.com>

Fix BALMLayout archiving issues.

SharedSolver was archiving too many constraints, partly because of
multiple typos, also because it archived some which were just artifacts
of the layout process. These extra constraints are created when the
layout calls SetRange() on the left/top/right/bottom tabs during layout.

* LinearSpec/ActiveSetSolver had to be adjusted to get access to the
constraints added by the SetRange() calls.
* BALM::TabBase was adjusted to avoid a segfault during unarchiving,
caused by an unitialized member.
* ALMFriendLayoutTest was adjusted to include a more obvious custom
constraint for testing.


# 419fe0b8ae0e16d798868eeebf0282978deb224d 22-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Introduce SharedSolver class to improve BALMLayout's friend feature.


# 7c3800078e96a5f45ee5d13863a49917ecf3fca0 17-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Make LinearProgramming::LinearSpec BReferenceable.


# ef93b55df49f5296bdb03867215cb1793596e845 13-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Areas with same tabs are put in a column/row automtically. Move preferred size constraint from Area to the column/row. This avoids a "spring" effect of the
quadratic solver if multiple Areas are in the same column/row.
- Replace GetString by ToString.
- some clean up



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40941 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8286779101e70df778f5f086dd5bb5a997e4dc6f 08-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Make kp_solve interface work again.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40384 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0ad88e0020787e69b41080af9d707db42aad924 26-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix min/ max calculation by removing all soft constraints before doing so. Smaller fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40297 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7583db5a1ec81636829331e5fc7cae81ca7a7ba7 24-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add an alternative solver to lp_solve. The solver based on Ingo's active set solver but is able to handle arbitrary hard and soft constraints. The advantage to lp_solve is that the active set solver can optimize variable in respect to a quadratic objective function. This makes it possible to minimise the quadratic derivation to a desired value e.g. \Sum_i(x_i - x_{i,pref})^2 -> min.

The solver part has been refactored in this way that both solver can be used with the same layout specifications. The active set solver is default now; the performance is not as good as lp_solve, though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40285 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f108cdbfab0a9d2aed098ea7a737b40baec04937 13-Dec-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Merge all linear programming types in one file an rename them.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39832 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5440f6fee398073e8359b992a17b0943d39e6ff0 13-Dec-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Refactor the linear programming class to use a minimal solver interface class and implement the interface for lp_solve. As a result lp_solve is not visible to the outside any more. This interface could be used to use other solvers as well. Rename operator constants to no clash with lp_solve constants.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39829 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 067f47a3eed22ed903463892f1a4fc81bc237563 29-Nov-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Move lp_solve dependency completely into LinearSpec. Clean up and some more memory allocation checks.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39681 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c2f0a314a012bea8e4ebb35b8ce9e1a85c798727 12-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Rename ReplaceObjectiveFunction to SwapObjectiveFunction I think this makes it more clear that the old function is not deleted.
Cleanup Jamfile.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc691d7de2182d23659b86d87c9c36b0feaa6b40 05-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Remove lp_solve dependencies form Variable class and put everything into LinearSpec. As a side effect Variable management is a bit more consistence now. We want to replace lp_solve soon so it will be easier to replace it just in LinearSpec.
- Update copyrights.
- Lot of small things related to the Variable refactoring.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38892 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cad0c434c7585bd21548499b2fcdf347c44b8074 04-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Refactor LinearSpec a bit, make it more difficult to leak the objective function.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38888 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd88ee006ddb309d3c0b96698d04a9a515c27aea 20-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

More cleanup and BList -> BObjectList.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 601eded950be7b7abf8fe5ce8c5b0064f631e10d 20-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Hide constraint header in Area file.
- Start to replace BList with BObjectList.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38741 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4403274117e9248a7c458e7705d8d9444a36df66 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Some clean up (not complete).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38736 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 416aca7ac966564036f3db68a9be33fe999edf35 19-Sep-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix some memory leaks.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38735 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b8ec67f491da3c6ddad3e1c55d70400fdab4961b 06-Dec-2009 Stephan Aßmus <superstippi@gmx.de>

* Simplified and optimized a lot the "ToString()" debugging facilities.
* *::Index() is now const, thanks to the BList improvements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 676ef01ba74e966b1ce7f4117372bbc5f1290cc4 15-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Hong Yul Yang to update linprog.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5bced18eab0b1318f3293c1c5c5b1a9d52fa3770 10-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

ALM/linprog patch by Christof Lutteroth:
* Got rid of class ObjFunctionSummand. Both the constraint summands and
the objective function summands are now stored using class Summand.
* Some method names are more BeOS compliant now: SetX instead of ChangeX.
* linprog test code now uses new AddConstraint methods.
* CalculateMinSize and CalculateMaxSize did not free the memory they
allocated.
* Removed inappropriate setter and getter methods.
* Memory allocated in class Constraint is freed now.
* Other small changes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0306945545b0fc20ec4da7cff2e99ac39f48d726 24-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Christof Lutteroth:
* copyright headers for the files of the libraries linprog and alm
* new class Summand for representing summands in a linear constraint
* merged class SoftConstraint into class Constraint; Constraint now
supports both soft and hard constraint functionality
* new AddConstraint methods in class LinearSpec for directly setting
constraints with 1 to 4 summands
* code cleanups by using aforementioned AddConstraint methods
* a new very simple test application for alm
* some style corrections


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24108 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a101e99aada54cf545bbf25e0cbb6329ad45535e 06-Feb-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added libalm.so and its dependency liblinprog.so. libalm.so provides a
BLayout implementation (BALMLayout) using the Auckland Layout Model
(ALM). The original ALM was implemented by Christof Lutteroth, the
Haiku/C++ version by James Kim.
The code needs some review, but the test programs seem to work fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23889 a95241bf-73f2-0310-859d-f6bbb57e9c96