kleines bugfix

This commit is contained in:
Armin Wolf 2017-07-27 16:59:23 +02:00
parent 71a853c781
commit e2a684a9ce
7 changed files with 24 additions and 11 deletions

View File

@ -0,0 +1,9 @@
0,2,3
1,4,4
2,5,2
3,6,4
4,7,2
5,7,5
6,8,7
7,9,5
8,11,6
1 0 2 3
2 1 4 4
3 2 5 2
4 3 6 4
5 4 7 2
6 5 7 5
7 6 8 7
8 7 9 5
9 8 11 6

View File

@ -353,8 +353,8 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit
public void getResult() {
if (presenter != null) {
setChanged();
double m = (getSigmaMin().getX2() + getSigmaMin().getX1()) * -0.5;
double b = (getSigmaMin().getY2() + getSigmaMin().getY1()) * 0.5;
double m = (getSigmaMin().getX2() + getSigmaMin().getX1()) * 0.5;
double b = (getSigmaMin().getY2() + getSigmaMin().getY1()) * -0.5;
String[] result = {"lms", m+"", b+""};
notifyObservers(result);
}

View File

@ -267,8 +267,8 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm {
public void getResult() {
if (presenter != null) {
setChanged();
double m = thetaLow * (-1);
double b = (
double m = thetaLow;
double b = (-1)*(
(linesInCenterSlab.get(0).getM() * (thetaLow)) + linesInCenterSlab.get(0)
.getB());

View File

@ -244,8 +244,7 @@ public class TheilSenEstimator extends Observable implements Algorithm {
m = resultSt.get(((size + 1) / 2) - 1).getX();
}
b = y - (x * m);
m *= -1;
b = (x * m) - y;
String[] result = new String[]{"ts", m + "", b + ""};
notifyObservers(result);

View File

@ -54,7 +54,7 @@ public class DataImporter extends Observable{
for(String[] nextLine : lines) {
// nextLine[] is an array of values from the line
Double x = Double.parseDouble(nextLine[1]);
Double y = Double.parseDouble(nextLine[2]);
Double y = Double.parseDouble(nextLine[2]) * (-1);
Line line = new Line(x,y);
line.setId(counter+"");
this.presenter.getModel().addLine(line);

View File

@ -132,7 +132,7 @@ public class IntersectionCounter {
* @param a Eingabefeld mit den Elementen die überprüft werden sollen.
* @param start Startpunkt des Eingabefeldes.
* @param end Endpunkt des Eingabefeldes.
* @param aux Groundtruth Ordnung um die Anzahl der Inversionen zu bestimmen.
* @param aux Temporäres Array das beim Mergen eine Kopie des original Arrays ist.
* @return Anzahl der inversionen zwischen a und aux.
*/
public int countInversions(List<Integer> a, int start, int end, List<Integer> aux) {
@ -150,11 +150,16 @@ public class IntersectionCounter {
int left = start;
int right = mid + 1;
int index = start;
//hier beginnt das merging
//iteriere über die Teillisten
//Two-way Merge - Knuth Vol 3 The Art of Computer Programming -
while (left <= mid && right <= end) {
//wenn die linke Teilliste das kleinere Element besitzt kopiere
//das Element in das neue Array
if (aux.get(left) < aux.get(right)) {
a.set(index++, aux.get(left++));
} else {
//merke die inversionspaare
for (int i = left; i <= mid; i++) {
// System.out.println(aux.get(i)+" -- "+ aux.get(right));
inversions.add(new Pair(aux.get(i), aux.get(right)));
@ -227,7 +232,7 @@ public class IntersectionCounter {
for (int i = 0; i < inversions.size(); i++) {
result.add(new Pair(dictionaryBACK.get(inversions.get(i).getP1()),
dictionaryBACK.get(inversions.get(i).getP2())));
dictionaryBACK.get(inversions.get(i).getP2())));
}
for (Pair p : result) {

View File

@ -113,7 +113,7 @@ public class PlotDialog extends JPanel {
ArrayList<Double> coordinates = new ArrayList<>();
series = new XYSeries("points");
for (Line p : points) {
series.add(p.getM(), p.getB());
series.add(p.getM(), p.getB()* (-1));
coordinates.add(p.getM());
}