splitup is mistaken

This commit is contained in:
Val Erastov 2014-10-01 01:21:54 -07:00
parent 4f914c19c7
commit b95ad3dfd2
3 changed files with 46 additions and 6 deletions

View file

@ -5,6 +5,7 @@ import cad.gcs.GlobalSolver;
import cad.gcs.Param;
import cad.gcs.Solver;
import cad.gcs.constr.Equal;
import cad.gcs.constr.EqualsTo;
import cad.gcs.constr.Parallel;
import cad.gcs.constr.Perpendicular;
import gnu.trove.map.TIntObjectMap;
@ -37,7 +38,7 @@ public class SolveServer {
ResourceHandler rh = new ResourceHandler();
rh.setDirectoriesListed(true);
rh.setResourceBase("/home/verastov/Dropbox/project/cadit/web");
rh.setResourceBase("/home/xibyte/Dropbox/project/cadit/web");
handlers.addHandler(rh);
server.setHandler(handlers);
@ -118,7 +119,9 @@ class SolveHandler extends AbstractHandler {
}
for (int i = 0; i < locked.length(); i++) {
// paramsDict.get(locked.getInt(i)).setLocked(true);
Param param = paramsDict.get(locked.getInt(i));
// param.setLocked(true);
constraints.add(new EqualsTo(param, param.get()));
}
Solver.SubSystem subSystem = new Solver.SubSystem(constraints);

View file

@ -18,7 +18,7 @@ import java.util.List;
public class GlobalSolver {
public static void globalSolve2(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
public static void globalSolve(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
// for (Constraint c : subSystem.constraints) {
// if (c instanceof Reconcilable) {
@ -44,7 +44,7 @@ public class GlobalSolver {
}
}
public static void globalSolve(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
public static void globalSolve2(Solver.SubSystem subSystem, Runnable linearSolvedCallback) {
double eps = 0.0001;
@ -55,12 +55,14 @@ public class GlobalSolver {
for (Solver.SubSystem system : subSystems) {
java.lang.System.out.println("Solve subsystem: " + subSystem.value());
solveLM_COMMONS(system);
Solver.solve_BFGS(subSystem, false);
Solver.solve_LM(subSystem);
// Solver.solve_BFGS(system, false);
// Solver.solve_LM(system);
java.lang.System.out.println("Subsystem solved: " + subSystem.value());
linearSolvedCallback.run();
}
linearSolvedCallback.run();
// globalSolve2(subSystem, linearSolvedCallback);
}

View file

@ -0,0 +1,35 @@
package cad.gcs.constr;
import cad.gcs.Constraint;
import cad.gcs.Param;
public class EqualsTo implements Constraint {
private final Param[] params;
private final double value;
public EqualsTo(Param p, double value) {
this.value = value;
this.params = new Param[]{p};
}
@Override
public double error() {
return params[0].get() - value;
}
@Override
public Param[] getParams() {
return params;
}
@Override
public void gradient(double[] out) {
out[0] = 1;
}
@Override
public int pSize() {
return params.length;
}
}