4inline int det_4d_filter(
const double* p0,
const double* p1,
const double* p2,
const double* p3) {
6 m12 = ((p1[0] * p0[1]) - (p0[0] * p1[1]));
8 m13 = ((p2[0] * p0[1]) - (p0[0] * p2[1]));
10 m14 = ((p3[0] * p0[1]) - (p0[0] * p3[1]));
12 m23 = ((p2[0] * p1[1]) - (p1[0] * p2[1]));
14 m24 = ((p3[0] * p1[1]) - (p1[0] * p3[1]));
16 m34 = ((p3[0] * p2[1]) - (p2[0] * p3[1]));
18 m123 = (((m23 * p0[2]) - (m13 * p1[2])) + (m12 * p2[2]));
20 m124 = (((m24 * p0[2]) - (m14 * p1[2])) + (m12 * p3[2]));
22 m134 = (((m34 * p0[2]) - (m14 * p2[2])) + (m13 * p3[2]));
24 m234 = (((m34 * p1[2]) - (m24 * p2[2])) + (m23 * p3[2]));
26 Delta = ((((m234 * p0[3]) - (m134 * p1[3])) + (m124 * p2[3])) - (m123 * p3[3]));
29 double max1 = fabs(p0[0]);
30 if( (max1 < fabs(p1[0])) )
34 if( (max1 < fabs(p2[0])) )
38 if( (max1 < fabs(p3[0])) )
42 double max2 = fabs(p0[1]);
43 if( (max2 < fabs(p1[1])) )
47 if( (max2 < fabs(p2[1])) )
51 if( (max2 < fabs(p3[1])) )
55 double max3 = fabs(p0[2]);
56 if( (max3 < fabs(p1[2])) )
60 if( (max3 < fabs(p2[2])) )
64 if( (max3 < fabs(p3[2])) )
68 double max4 = fabs(p0[3]);
69 if( (max4 < fabs(p1[3])) )
73 if( (max4 < fabs(p2[3])) )
77 if( (max4 < fabs(p3[3])) )
85 if( (max2 < lower_bound_1) )
91 if( (max2 > upper_bound_1) )
96 if( (max3 < lower_bound_1) )
102 if( (max3 > upper_bound_1) )
104 upper_bound_1 = max3;
107 if( (max4 < lower_bound_1) )
109 lower_bound_1 = max4;
113 if( (max4 > upper_bound_1) )
115 upper_bound_1 = max4;
118 if( (lower_bound_1 < 3.20402459074399025456e-74) )
120 return FPG_UNCERTAIN_VALUE;
124 if( (upper_bound_1 > 1.44740111546645196071e+76) )
126 return FPG_UNCERTAIN_VALUE;
128 eps = (2.11135406605316806158e-14 * (((max1 * max2) * max3) * max4));
141 return FPG_UNCERTAIN_VALUE;
145 return int_tmp_result;