MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / scale_expansion_zeroelim

Function scale_expansion_zeroelim

tools/Predicates/predicates.c:1293–1334  ·  view source on GitHub ↗
(elen, e, b, h)

Source from the content-addressed store, hash-verified

1291/*****************************************************************************/
1292
1293int scale_expansion_zeroelim(elen, e, b, h) /* e and h cannot be the same. */
1294int elen;
1295REAL *e;
1296REAL b;
1297REAL *h;
1298{
1299 INEXACT REAL Q, sum;
1300 REAL hh;
1301 INEXACT REAL product1;
1302 REAL product0;
1303 int eindex, hindex;
1304 REAL enow;
1305 INEXACT REAL bvirt;
1306 REAL avirt, bround, around;
1307 INEXACT REAL c;
1308 INEXACT REAL abig;
1309 REAL ahi, alo, bhi, blo;
1310 REAL err1, err2, err3;
1311
1312 Split(b, bhi, blo);
1313 Two_Product_Presplit(e[0], b, bhi, blo, Q, hh);
1314 hindex = 0;
1315 if (hh != 0) {
1316 h[hindex++] = hh;
1317 }
1318 for (eindex = 1; eindex < elen; eindex++) {
1319 enow = e[eindex];
1320 Two_Product_Presplit(enow, b, bhi, blo, product1, product0);
1321 Two_Sum(Q, product0, sum, hh);
1322 if (hh != 0) {
1323 h[hindex++] = hh;
1324 }
1325 Fast_Two_Sum(product1, sum, Q, hh);
1326 if (hh != 0) {
1327 h[hindex++] = hh;
1328 }
1329 }
1330 if ((Q != 0.0) || (hindex == 0)) {
1331 h[hindex++] = Q;
1332 }
1333 return hindex;
1334}
1335
1336/*****************************************************************************/
1337/* */

Callers 9

orient3dexactFunction · 0.85
orient3dslowFunction · 0.85
orient3dadaptFunction · 0.85
incircleexactFunction · 0.85
incircleslowFunction · 0.85
incircleadaptFunction · 0.85
insphereexactFunction · 0.85
insphereslowFunction · 0.85
insphereadaptFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected