[haiku-commits] r40339 - haiku/trunk/src/libs/linprog

  • From: clemens.zeidler@xxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 1 Feb 2011 04:25:49 +0100 (CET)

Author: czeidler
Date: 2011-02-01 04:25:48 +0100 (Tue, 01 Feb 2011)
New Revision: 40339
Changeset: http://dev.haiku-os.org/changeset/40339

Modified:
   haiku/trunk/src/libs/linprog/ActiveSetSolver.cpp
   haiku/trunk/src/libs/linprog/LayoutOptimizer.cpp
Log:
Don't add soft constraints to the active constraints. Fix some smaller stuff.



Modified: haiku/trunk/src/libs/linprog/ActiveSetSolver.cpp
===================================================================
--- haiku/trunk/src/libs/linprog/ActiveSetSolver.cpp    2011-01-31 23:43:22 UTC 
(rev 40338)
+++ haiku/trunk/src/libs/linprog/ActiveSetSolver.cpp    2011-02-01 03:25:48 UTC 
(rev 40339)
@@ -369,7 +369,7 @@
                system.B(rowIndex) = constraint->RightSide();
                for (int32 sIndex = 0; sIndex < leftSide->CountItems(); 
sIndex++ ) {
                        Summand* summand = leftSide->ItemAt(sIndex);
-                       int32 coefficient = summand->Coeff();
+                       double coefficient = summand->Coeff();
                        system.A(rowIndex, summand->VariableIndex()) = 
coefficient;
                }
                if (constraint->Op() == kLE) {

Modified: haiku/trunk/src/libs/linprog/LayoutOptimizer.cpp
===================================================================
--- haiku/trunk/src/libs/linprog/LayoutOptimizer.cpp    2011-01-31 23:43:22 UTC 
(rev 40338)
+++ haiku/trunk/src/libs/linprog/LayoutOptimizer.cpp    2011-02-01 03:25:48 UTC 
(rev 40339)
@@ -498,6 +498,7 @@
 LayoutOptimizer::LayoutOptimizer(const ConstraintList& list,
        int32 variableCount)
        :
+       fVariableCount(0),
        fTemp1(NULL),
        fTemp2(NULL),
        fZtrans(NULL),
@@ -693,7 +694,7 @@
        ConstraintList activeConstraints(constraintCount);
 
        for (int32 i = 0; i < constraintCount; i++) {
-               Constraint* constraint = (Constraint*)fConstraints.ItemAt(i);
+               Constraint* constraint = fConstraints.ItemAt(i);
                if (constraint->IsSoft())
                        continue;
                double actualValue = _ActualValue(constraint, x);
@@ -739,6 +740,8 @@
 
                for (int32 i = 0; i < activeCount; i++) {
                        Constraint* constraint = activeConstraints.ItemAt(i);
+                       if (constraint->IsSoft())
+                               continue;
                        SummandList* summands = constraint->LeftSide();
                        for (int32 s = 0; s < summands->CountItems(); s++) {
                                Summand* summand = summands->ItemAt(s);
@@ -811,8 +814,7 @@
                        index = 0;
                        for (int i = 0; i < activeCount; i++) {
                                if (independentRows[i]) {
-                                       Constraint* constraint
-                                               = 
(Constraint*)activeConstraints.ItemAt(i);
+                                       Constraint* constraint = 
activeConstraints.ItemAt(i);
                                        if (constraint->Op() != 
LinearProgramming::kEQ) {
                                                if (lambda[index] < minLambda) {
                                                        minLambda = 
lambda[index];
@@ -838,7 +840,7 @@
                        int barrier = -1;
                        // if alpha_k < 1, add a barrier constraint to W^k
                        for (int32 i = 0; i < constraintCount; i++) {
-                               Constraint* constraint = 
(Constraint*)fConstraints.ItemAt(i);
+                               Constraint* constraint = fConstraints.ItemAt(i);
                                if (activeConstraints.HasItem(constraint))
                                        continue;
 


Other related posts:

  • » [haiku-commits] r40339 - haiku/trunk/src/libs/linprog - clemens . zeidler