]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[src] Fehler in den Achsenabfragen behoben (y wurde nicht abgerfragt)
authortreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Fri, 20 May 2011 22:04:07 +0000 (22:04 +0000)
committertreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Fri, 20 May 2011 22:04:07 +0000 (22:04 +0000)
[src] Alle parallelen Rechteecke sollten Laufen... wobei die erste Koo des Elements die "kleinste" Ecke sein muss

git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@28 26120e32-c555-405d-b3e1-1f783fb42516

src/SLPrecangle.hpp
src/build_A.cpp

index 0c915487957b94a8bcc4af575af596656c2408fe..418bf5ebc3a58f8581bc905de4d2526baccc5828 100644 (file)
@@ -18,10 +18,16 @@ double slpADLO(double, double, double, double, double);
 double compute_g0(double, double, double, double);
 double FLO_plane(double, double, double, double, double, double, double);
 
-// sol = quadInt((F_par/F_ort),s1,s2,k1,k2,t1,t2,l1,l2,d1,d2,d3);
+// sol = quadInt((F_par/F_ort),a,b,c,d,r,t,u,v,d1,d2,d3);
 double quadInt(
                double(*)(double, double, double, double, double, double, double),
                double, double, double, double, double, double, double, double, double,
                double, double);
 
+// sol = quad0Int((F_par/F_ort),b,d,t,v,d1,d2,d3);
+double quad0Int(
+               double(*)(double, double, double, double, double, double, double),
+               double, double, double, double, double, double, double);
+
+
 #endif
index ee198dbdd426f2d23b164c143b8f8a1a7f89492c..12b42b81d716461576fc9cd28a04f5d0f6746403 100644 (file)
@@ -144,38 +144,39 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
                        else\r
                                ry = 0;\r
 \r
-                       if (xa[2] != 0)\r
-                               rxa = 2;\r
-                       else if (xa[1] != 0)\r
-                               rxa = 1;\r
+                       if (ya[2] != 0)\r
+                               rya = 2;\r
+                       else if (ya[1] != 0)\r
+                               rya = 1;\r
                        else\r
-                               rxa = 0;\r
+                               rya = 0;\r
 \r
-                       if (xb[2] != 0)\r
-                               rxb = 2;\r
-                       else if (xb[1] != 0)\r
-                               rxb = 1;\r
+                       if (yb[2] != 0)\r
+                               ryb = 2;\r
+                       else if (yb[1] != 0)\r
+                               ryb = 1;\r
                        else\r
-                               rxb = 0;\r
+                               ryb = 0;\r
 \r
                        for (i = 0; i<3;++i)\r
-                               d[i] = y1[i] - x1[i];\r
+                               d[i] = y1[i] - x1[i];   // todo: Achtung -> geht davon aus das 1 die kleinste Ecke ist !\r
 \r
-                       printf("(%d,%d)",rx,ry);\r
+                       //printf("(%d,%d)",rx,ry);\r
                        if (rx == ry) {\r
+                               //printf("%d,%d@%d,%d",rxa,rxb,rya,ryb);\r
                                if (rxa == rya) {\r
                                        //printf("%d%d %.1f %.1f | %.1f %.1f || %.1f %.1f | %.1f %.1f || %.1f %.1f %.1f\n",j,k,x1[0], x2[0], x1[1], x3[1], y1[0],\r
                                        //              y2[0], y1[1], y3[1], d[0], d[1], d[2]);\r
                                        //printf("%d%d %.1f %.1f %.1f\n",j,k,d[0],d[1],d[2]);\r
-                                       tmp = quadInt(F_par, 0, xa[rxa], 0, xb[rxb], 0,\r
-                                                       ya[rxa], 0, yb[rxb], d[rxa], d[rxb], d[rx]);\r
+                                       tmp = quad0Int(F_par, fabs(xa[rxa]), fabs(xb[rxb]),\r
+                                                       fabs(ya[rxa]), fabs(yb[rxb]), d[rxa], d[rxb], d[rx]);\r
                                        //       printf("%d%d|%.2f\n",j,k,tmp);\r
                                } else{\r
                                        //printf("%d%d %.1f %.1f | %.1f %.1f || %.1f %.1f | %.1f %.1f || %.1f %.1f %.1f\n",j,k,x1[0], x2[0], x1[1], x3[1], y1[0],\r
                                        //              y2[0], y1[1], y3[1], d[0], d[1], d[2]);\r
                                        //printf("%d%d %.1f %.1f %.1f\n",j,k,d[0],d[1],d[2]);\r
-                                       tmp = quadInt(F_par, 0, xa[rxa], 0, xb[rxb], 0,\r
-                                                       yb[rxa], 0, ya[rxb], d[rxa], d[rxb], d[rx]);\r
+                                       tmp = quad0Int(F_par, fabs(xa[rxa]), fabs(xb[rxb]),\r
+                                                       fabs(yb[rxa]), fabs(ya[rxb]), d[rxa], d[rxb], d[rx]);\r
                                        //       printf("%d%d|%.2f\n",j,k,tmp);\r
                                }\r
                                A[(k * em) + j] = 1. / (4 * my_PI) * tmp;\r