Graphite Version 3
An experimental 3D geometry processing program
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
det3d.h
1/* Automatically generated code, do not edit */
2/* Generated from source file: det3d.pck */
3
4inline int det_3d_filter( const double* p0, const double* p1, const double* p2) {
5 double Delta;
6 Delta = (((p0[0] * ((p1[1] * p2[2]) - (p1[2] * p2[1]))) - (p1[0] * ((p0[1] * p2[2]) - (p0[2] * p2[1])))) + (p2[0] * ((p0[1] * p1[2]) - (p0[2] * p1[1]))));
7 int int_tmp_result;
8 double eps;
9 double max1 = fabs(p0[0]);
10 if( (max1 < fabs(p1[0])) )
11 {
12 max1 = fabs(p1[0]);
13 }
14 if( (max1 < fabs(p2[0])) )
15 {
16 max1 = fabs(p2[0]);
17 }
18 double max2 = fabs(p0[1]);
19 if( (max2 < fabs(p0[2])) )
20 {
21 max2 = fabs(p0[2]);
22 }
23 if( (max2 < fabs(p1[1])) )
24 {
25 max2 = fabs(p1[1]);
26 }
27 if( (max2 < fabs(p1[2])) )
28 {
29 max2 = fabs(p1[2]);
30 }
31 double max3 = fabs(p1[1]);
32 if( (max3 < fabs(p1[2])) )
33 {
34 max3 = fabs(p1[2]);
35 }
36 if( (max3 < fabs(p2[1])) )
37 {
38 max3 = fabs(p2[1]);
39 }
40 if( (max3 < fabs(p2[2])) )
41 {
42 max3 = fabs(p2[2]);
43 }
44 double lower_bound_1;
45 double upper_bound_1;
46 lower_bound_1 = max1;
47 upper_bound_1 = max1;
48 if( (max2 < lower_bound_1) )
49 {
50 lower_bound_1 = max2;
51 }
52 else
53 {
54 if( (max2 > upper_bound_1) )
55 {
56 upper_bound_1 = max2;
57 }
58 }
59 if( (max3 < lower_bound_1) )
60 {
61 lower_bound_1 = max3;
62 }
63 else
64 {
65 if( (max3 > upper_bound_1) )
66 {
67 upper_bound_1 = max3;
68 }
69 }
70 if( (lower_bound_1 < 1.92663387981871579179e-98) )
71 {
72 return FPG_UNCERTAIN_VALUE;
73 }
74 else
75 {
76 if( (upper_bound_1 > 1.11987237108890185662e+102) )
77 {
78 return FPG_UNCERTAIN_VALUE;
79 }
80 eps = (3.11133555671680765034e-15 * ((max2 * max3) * max1));
81 if( (Delta > eps) )
82 {
83 int_tmp_result = 1;
84 }
85 else
86 {
87 if( (Delta < -eps) )
88 {
89 int_tmp_result = -1;
90 }
91 else
92 {
93 return FPG_UNCERTAIN_VALUE;
94 }
95 }
96 }
97 return int_tmp_result;
98}