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

Function orient2dslow

tools/Predicates/predicates.c:1492–1534  ·  view source on GitHub ↗
(pa, pb, pc)

Source from the content-addressed store, hash-verified

1490}
1491
1492REAL orient2dslow(pa, pb, pc)
1493REAL *pa;
1494REAL *pb;
1495REAL *pc;
1496{
1497 INEXACT REAL acx, acy, bcx, bcy;
1498 REAL acxtail, acytail;
1499 REAL bcxtail, bcytail;
1500 REAL negate, negatetail;
1501 REAL axby[8], bxay[8];
1502 INEXACT REAL axby7, bxay7;
1503 REAL deter[16];
1504 int deterlen;
1505
1506 INEXACT REAL bvirt;
1507 REAL avirt, bround, around;
1508 INEXACT REAL c;
1509 INEXACT REAL abig;
1510 REAL a0hi, a0lo, a1hi, a1lo, bhi, blo;
1511 REAL err1, err2, err3;
1512 INEXACT REAL _i, _j, _k, _l, _m, _n;
1513 REAL _0, _1, _2;
1514
1515 Two_Diff(pa[0], pc[0], acx, acxtail);
1516 Two_Diff(pa[1], pc[1], acy, acytail);
1517 Two_Diff(pb[0], pc[0], bcx, bcxtail);
1518 Two_Diff(pb[1], pc[1], bcy, bcytail);
1519
1520 Two_Two_Product(acx, acxtail, bcy, bcytail,
1521 axby7, axby[6], axby[5], axby[4],
1522 axby[3], axby[2], axby[1], axby[0]);
1523 axby[7] = axby7;
1524 negate = -acy;
1525 negatetail = -acytail;
1526 Two_Two_Product(bcx, bcxtail, negate, negatetail,
1527 bxay7, bxay[6], bxay[5], bxay[4],
1528 bxay[3], bxay[2], bxay[1], bxay[0]);
1529 bxay[7] = bxay7;
1530
1531 deterlen = fast_expansion_sum_zeroelim(8, axby, 8, bxay, deter);
1532
1533 return deter[deterlen - 1];
1534}
1535
1536REAL orient2dadapt(pa, pb, pc, detsum)
1537REAL *pa;

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected