]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[src] weitere Versuche
authortreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sun, 28 Aug 2011 14:58:42 +0000 (14:58 +0000)
committertreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sun, 28 Aug 2011 14:58:42 +0000 (14:58 +0000)
git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@37 26120e32-c555-405d-b3e1-1f783fb42516

src/mex_build_As1.cpp
src/test_solveErrorS1.m

index ec82bee0089710060999e382fe44bb34348a6e2f..d54e5126b103f17b7fe30ced6058419502bd5c26 100644 (file)
 \r
 using namespace std;\r
 \r
+inline int dimOfVec(double * vec)\r
+{\r
+       if (vec[2] != 0)\r
+               return 2;\r
+       else if (vec[1] != 0)\r
+               return 1;\r
+       else\r
+               return 0;\r
+}\r
+\r
+\r
 void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {\r
 \r
        int i, j, k;\r
@@ -98,26 +109,13 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
 \r
                // Lageeigenschaften des Flaechenstuecks\r
                //if(xn[0]*xn[0]+xn[1]*xn[1]<xn[2]*xn[2])\r
-               if (xn[2] != 0)\r
-                       rx = 2;\r
-               else if (xn[1] != 0)\r
-                       rx = 1;\r
-               else\r
-                       rx = 0;\r
-\r
-               if (xa[2] != 0)\r
-                       rxa = 2;\r
-               else if (xa[1] != 0)\r
-                       rxa = 1;\r
-               else\r
-                       rxa = 0;\r
-\r
-               if (xb[2] != 0)\r
-                       rxb = 2;\r
-               else if (xb[1] != 0)\r
-                       rxb = 1;\r
-               else\r
-                       rxb = 0;\r
+\r
+               rx = dimOfVec(xn);\r
+\r
+               rxa = dimOfVec(xa);\r
+\r
+               rxb = dimOfVec(xb);\r
+\r
 \r
                //kleinste Ecke finden und fuer \delta verwenden\r
 \r
@@ -173,26 +171,11 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                        yn[1] = (ya[2]) * (yb[0]) - (ya[0]) * (yb[2]);\r
                        yn[2] = (ya[0]) * (yb[1]) - (ya[1]) * (yb[0]);\r
 \r
-                       if (yn[2] != 0)\r
-                               ry = 2;\r
-                       else if (yn[1] != 0)\r
-                               ry = 1;\r
-                       else\r
-                               ry = 0;\r
-\r
-                       if (ya[2] != 0)\r
-                               rya = 2;\r
-                       else if (ya[1] != 0)\r
-                               rya = 1;\r
-                       else\r
-                               rya = 0;\r
-\r
-                       if (yb[2] != 0)\r
-                               ryb = 2;\r
-                       else if (yb[1] != 0)\r
-                               ryb = 1;\r
-                       else\r
-                               ryb = 0;\r
+                       ry = dimOfVec(yn);\r
+\r
+                       rya = dimOfVec(ya);\r
+\r
+                       ryb = dimOfVec(yb);\r
 \r
                        //kleinste Ecke finden und fuer \delta verwenden\r
 \r
@@ -219,7 +202,7 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                        //              d[i] = y0[i]-x0[i];\r
 \r
 \r
-                       if(ry = rx){\r
+                       if(ry == rx){\r
 \r
                                if(xa[rxa]*xa[rxa]+xb[rxb]*xb[rxb]>ya[rya]*ya[rya]+yb[ryb]*yb[ryb]){\r
 \r
@@ -229,14 +212,11 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                                        printf(" | ");\r
 */\r
 \r
-                                       printf("(%3.d %3.d)",j,k);\r
-\r
                                        vtmp = xa; xa = ya; ya = vtmp;\r
                                        vtmp = xb; xb = yb; yb = vtmp;\r
 \r
                                        itmp = rxa; rxa = rya; rya = itmp;\r
                                        itmp = rxb; rxb = ryb; ryb = itmp;\r
-\r
                                        itmp = rx; rx = ry; ry = itmp;\r
 \r
                                        for (i = 0; i<3;++i)\r
@@ -313,7 +293,7 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                }\r
 \r
        }\r
-       printf("\n");\r
+       //printf("\n");\r
        //Rueckgabe (eventuell zurueck schreiben)\r
        //   mxFree(x0);\r
        //mxFree(x1);\r
index 4143f9c5f373f5565f04f27737529c48171060a1..c367bb2e107fc67b71df613a97ee4648deeca192 100755 (executable)
@@ -1,4 +1,6 @@
 \r
+mex mex_build_As1.cpp slpRectangle.cpp\r
+\r
 dataIso =[];\r
 dataAniso =[];\r
 maxSize = 10^2;\r
@@ -45,11 +47,20 @@ while size(elements,1)<maxSize
   \r
   %Matrix mit feinem Netz berechnen\r
   A_fine = mex_build_As1(coordinates_fine,elements_fine);\r
-  eh = A_fine-mex_build_A(coordinates_fine,elements_fine);\r
-  figure (3)\r
+  A2 = mex_build_A(coordinates_fine,elements_fine);\r
+  \r
+%   figure(1)\r
+%   spy(A_fine-A_fine')\r
+%   \r
+%   figure (2)\r
+%   spy(A2-A2')\r
+  eh = A_fine - A2;\r
+%   sum(sum(abs(A2-A2')))\r
+%   sum(sum(abs(A_fine-A_fine')))\r
+  \r
   spy(eh)\r
  \r
-  sum(sum(eh))\r
+  sum(sum(abs(eh)))\r
   if(eh.^2)\r
     disp 'hä'\r
   end\r