Team Ai
Datasetpublic

Brunobkr/llama.cpp_AlgMor24_github

ΩFFFΣLLIa • llama.cpp • AlgMor24 ██████╗ ███████╗███████╗███████╗██╗ ██╗ ██╗ █████╗ ██╔═══██╗██╔════╝██╔════╝██╔════╝██║ ██║ ██║██╔══██╗ ██║ ██║█████╗ █████╗ █████╗ ██║ ██║ ██║███████║ ██║ ██║██╔══╝ ██╔══╝ ██╔══╝ ██║ ██║ ██║██╔══██║ ╚██████╔╝██║ ██║ ███████╗███████╗███████╗██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ High-Performance LLM / VLM Inference & Autonomous Agentic Ecosystem… See the full description on the dataset page: https://huggingface.co/datasets/Brunobkr/llama.cpp_AlgMor24_github.

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes3.1kdownloads
insphere.js915 linesDownload Raw Back to umd
1(function (global, factory) {2typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :3typeof define === 'function' && define.amd ? define(['exports'], factory) :4(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.predicates = {}));5})(this, (function (exports) { 'use strict';6 7const epsilon = 1.1102230246251565e-16;8const splitter = 134217729;9const resulterrbound = (3 + 8 * epsilon) * epsilon;10 11// fast_expansion_sum_zeroelim routine from original code12function sum(elen, e, flen, f, h) {13    let Q, Qnew, hh, bvirt;14    let enow = e[0];15    let fnow = f[0];16    let eindex = 0;17    let findex = 0;18    if ((fnow > enow) === (fnow > -enow)) {19        Q = enow;20        enow = e[++eindex];21    } else {22        Q = fnow;23        fnow = f[++findex];24    }25    let hindex = 0;26    if (eindex < elen && findex < flen) {27        if ((fnow > enow) === (fnow > -enow)) {28            Qnew = enow + Q;29            hh = Q - (Qnew - enow);30            enow = e[++eindex];31        } else {32            Qnew = fnow + Q;33            hh = Q - (Qnew - fnow);34            fnow = f[++findex];35        }36        Q = Qnew;37        if (hh !== 0) {38            h[hindex++] = hh;39        }40        while (eindex < elen && findex < flen) {41            if ((fnow > enow) === (fnow > -enow)) {42                Qnew = Q + enow;43                bvirt = Qnew - Q;44                hh = Q - (Qnew - bvirt) + (enow - bvirt);45                enow = e[++eindex];46            } else {47                Qnew = Q + fnow;48                bvirt = Qnew - Q;49                hh = Q - (Qnew - bvirt) + (fnow - bvirt);50                fnow = f[++findex];51            }52            Q = Qnew;53            if (hh !== 0) {54                h[hindex++] = hh;55            }56        }57    }58    while (eindex < elen) {59        Qnew = Q + enow;60        bvirt = Qnew - Q;61        hh = Q - (Qnew - bvirt) + (enow - bvirt);62        enow = e[++eindex];63        Q = Qnew;64        if (hh !== 0) {65            h[hindex++] = hh;66        }67    }68    while (findex < flen) {69        Qnew = Q + fnow;70        bvirt = Qnew - Q;71        hh = Q - (Qnew - bvirt) + (fnow - bvirt);72        fnow = f[++findex];73        Q = Qnew;74        if (hh !== 0) {75            h[hindex++] = hh;76        }77    }78    if (Q !== 0 || hindex === 0) {79        h[hindex++] = Q;80    }81    return hindex;82}83 84function sum_three(alen, a, blen, b, clen, c, tmp, out) {85    return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);86}87 88// scale_expansion_zeroelim routine from oritinal code89function scale(elen, e, b, h) {90    let Q, sum, hh, product1, product0;91    let bvirt, c, ahi, alo, bhi, blo;92 93    c = splitter * b;94    bhi = c - (c - b);95    blo = b - bhi;96    let enow = e[0];97    Q = enow * b;98    c = splitter * enow;99    ahi = c - (c - enow);100    alo = enow - ahi;101    hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);102    let hindex = 0;103    if (hh !== 0) {104        h[hindex++] = hh;105    }106    for (let i = 1; i < elen; i++) {107        enow = e[i];108        product1 = enow * b;109        c = splitter * enow;110        ahi = c - (c - enow);111        alo = enow - ahi;112        product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);113        sum = Q + product0;114        bvirt = sum - Q;115        hh = Q - (sum - bvirt) + (product0 - bvirt);116        if (hh !== 0) {117            h[hindex++] = hh;118        }119        Q = product1 + sum;120        hh = sum - (Q - product1);121        if (hh !== 0) {122            h[hindex++] = hh;123        }124    }125    if (Q !== 0 || hindex === 0) {126        h[hindex++] = Q;127    }128    return hindex;129}130 131function negate(elen, e) {132    for (let i = 0; i < elen; i++) e[i] = -e[i];133    return elen;134}135 136function estimate(elen, e) {137    let Q = e[0];138    for (let i = 1; i < elen; i++) Q += e[i];139    return Q;140}141 142function vec(n) {143    return new Float64Array(n);144}145 146const isperrboundA = (16 + 224 * epsilon) * epsilon;147const isperrboundB = (5 + 72 * epsilon) * epsilon;148const isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon;149 150const ab = vec(4);151const bc = vec(4);152const cd = vec(4);153const de = vec(4);154const ea = vec(4);155const ac = vec(4);156const bd = vec(4);157const ce = vec(4);158const da = vec(4);159const eb = vec(4);160 161const abc = vec(24);162const bcd = vec(24);163const cde = vec(24);164const dea = vec(24);165const eab = vec(24);166const abd = vec(24);167const bce = vec(24);168const cda = vec(24);169const deb = vec(24);170const eac = vec(24);171 172const adet = vec(1152);173const bdet = vec(1152);174const cdet = vec(1152);175const ddet = vec(1152);176const edet = vec(1152);177const abdet = vec(2304);178const cddet = vec(2304);179const cdedet = vec(3456);180const deter = vec(5760);181 182const _8 = vec(8);183const _8b = vec(8);184const _8c = vec(8);185const _16 = vec(16);186const _24 = vec(24);187const _48 = vec(48);188const _48b = vec(48);189const _96 = vec(96);190const _192 = vec(192);191const _384x = vec(384);192const _384y = vec(384);193const _384z = vec(384);194const _768 = vec(768);195 196function sum_three_scale(a, b, c, az, bz, cz, out) {197    return sum_three(198        scale(4, a, az, _8), _8,199        scale(4, b, bz, _8b), _8b,200        scale(4, c, cz, _8c), _8c, _16, out);201}202 203function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {204    const len = sum(205        sum(alen, a, blen, b, _48), _48,206        negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96);207 208    return sum_three(209        scale(scale(len, _96, x, _192), _192, x, _384x), _384x,210        scale(scale(len, _96, y, _192), _192, y, _384y), _384y,211        scale(scale(len, _96, z, _192), _192, z, _384z), _384z, _768, out);212}213 214function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {215    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;216 217    s1 = ax * by;218    c = splitter * ax;219    ahi = c - (c - ax);220    alo = ax - ahi;221    c = splitter * by;222    bhi = c - (c - by);223    blo = by - bhi;224    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);225    t1 = bx * ay;226    c = splitter * bx;227    ahi = c - (c - bx);228    alo = bx - ahi;229    c = splitter * ay;230    bhi = c - (c - ay);231    blo = ay - bhi;232    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);233    _i = s0 - t0;234    bvirt = s0 - _i;235    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);236    _j = s1 + _i;237    bvirt = _j - s1;238    _0 = s1 - (_j - bvirt) + (_i - bvirt);239    _i = _0 - t1;240    bvirt = _0 - _i;241    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);242    u3 = _j + _i;243    bvirt = u3 - _j;244    ab[2] = _j - (u3 - bvirt) + (_i - bvirt);245    ab[3] = u3;246    s1 = bx * cy;247    c = splitter * bx;248    ahi = c - (c - bx);249    alo = bx - ahi;250    c = splitter * cy;251    bhi = c - (c - cy);252    blo = cy - bhi;253    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);254    t1 = cx * by;255    c = splitter * cx;256    ahi = c - (c - cx);257    alo = cx - ahi;258    c = splitter * by;259    bhi = c - (c - by);260    blo = by - bhi;261    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);262    _i = s0 - t0;263    bvirt = s0 - _i;264    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);265    _j = s1 + _i;266    bvirt = _j - s1;267    _0 = s1 - (_j - bvirt) + (_i - bvirt);268    _i = _0 - t1;269    bvirt = _0 - _i;270    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);271    u3 = _j + _i;272    bvirt = u3 - _j;273    bc[2] = _j - (u3 - bvirt) + (_i - bvirt);274    bc[3] = u3;275    s1 = cx * dy;276    c = splitter * cx;277    ahi = c - (c - cx);278    alo = cx - ahi;279    c = splitter * dy;280    bhi = c - (c - dy);281    blo = dy - bhi;282    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);283    t1 = dx * cy;284    c = splitter * dx;285    ahi = c - (c - dx);286    alo = dx - ahi;287    c = splitter * cy;288    bhi = c - (c - cy);289    blo = cy - bhi;290    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);291    _i = s0 - t0;292    bvirt = s0 - _i;293    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);294    _j = s1 + _i;295    bvirt = _j - s1;296    _0 = s1 - (_j - bvirt) + (_i - bvirt);297    _i = _0 - t1;298    bvirt = _0 - _i;299    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);300    u3 = _j + _i;301    bvirt = u3 - _j;302    cd[2] = _j - (u3 - bvirt) + (_i - bvirt);303    cd[3] = u3;304    s1 = dx * ey;305    c = splitter * dx;306    ahi = c - (c - dx);307    alo = dx - ahi;308    c = splitter * ey;309    bhi = c - (c - ey);310    blo = ey - bhi;311    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);312    t1 = ex * dy;313    c = splitter * ex;314    ahi = c - (c - ex);315    alo = ex - ahi;316    c = splitter * dy;317    bhi = c - (c - dy);318    blo = dy - bhi;319    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);320    _i = s0 - t0;321    bvirt = s0 - _i;322    de[0] = s0 - (_i + bvirt) + (bvirt - t0);323    _j = s1 + _i;324    bvirt = _j - s1;325    _0 = s1 - (_j - bvirt) + (_i - bvirt);326    _i = _0 - t1;327    bvirt = _0 - _i;328    de[1] = _0 - (_i + bvirt) + (bvirt - t1);329    u3 = _j + _i;330    bvirt = u3 - _j;331    de[2] = _j - (u3 - bvirt) + (_i - bvirt);332    de[3] = u3;333    s1 = ex * ay;334    c = splitter * ex;335    ahi = c - (c - ex);336    alo = ex - ahi;337    c = splitter * ay;338    bhi = c - (c - ay);339    blo = ay - bhi;340    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);341    t1 = ax * ey;342    c = splitter * ax;343    ahi = c - (c - ax);344    alo = ax - ahi;345    c = splitter * ey;346    bhi = c - (c - ey);347    blo = ey - bhi;348    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);349    _i = s0 - t0;350    bvirt = s0 - _i;351    ea[0] = s0 - (_i + bvirt) + (bvirt - t0);352    _j = s1 + _i;353    bvirt = _j - s1;354    _0 = s1 - (_j - bvirt) + (_i - bvirt);355    _i = _0 - t1;356    bvirt = _0 - _i;357    ea[1] = _0 - (_i + bvirt) + (bvirt - t1);358    u3 = _j + _i;359    bvirt = u3 - _j;360    ea[2] = _j - (u3 - bvirt) + (_i - bvirt);361    ea[3] = u3;362    s1 = ax * cy;363    c = splitter * ax;364    ahi = c - (c - ax);365    alo = ax - ahi;366    c = splitter * cy;367    bhi = c - (c - cy);368    blo = cy - bhi;369    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);370    t1 = cx * ay;371    c = splitter * cx;372    ahi = c - (c - cx);373    alo = cx - ahi;374    c = splitter * ay;375    bhi = c - (c - ay);376    blo = ay - bhi;377    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);378    _i = s0 - t0;379    bvirt = s0 - _i;380    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);381    _j = s1 + _i;382    bvirt = _j - s1;383    _0 = s1 - (_j - bvirt) + (_i - bvirt);384    _i = _0 - t1;385    bvirt = _0 - _i;386    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);387    u3 = _j + _i;388    bvirt = u3 - _j;389    ac[2] = _j - (u3 - bvirt) + (_i - bvirt);390    ac[3] = u3;391    s1 = bx * dy;392    c = splitter * bx;393    ahi = c - (c - bx);394    alo = bx - ahi;395    c = splitter * dy;396    bhi = c - (c - dy);397    blo = dy - bhi;398    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);399    t1 = dx * by;400    c = splitter * dx;401    ahi = c - (c - dx);402    alo = dx - ahi;403    c = splitter * by;404    bhi = c - (c - by);405    blo = by - bhi;406    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);407    _i = s0 - t0;408    bvirt = s0 - _i;409    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);410    _j = s1 + _i;411    bvirt = _j - s1;412    _0 = s1 - (_j - bvirt) + (_i - bvirt);413    _i = _0 - t1;414    bvirt = _0 - _i;415    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);416    u3 = _j + _i;417    bvirt = u3 - _j;418    bd[2] = _j - (u3 - bvirt) + (_i - bvirt);419    bd[3] = u3;420    s1 = cx * ey;421    c = splitter * cx;422    ahi = c - (c - cx);423    alo = cx - ahi;424    c = splitter * ey;425    bhi = c - (c - ey);426    blo = ey - bhi;427    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);428    t1 = ex * cy;429    c = splitter * ex;430    ahi = c - (c - ex);431    alo = ex - ahi;432    c = splitter * cy;433    bhi = c - (c - cy);434    blo = cy - bhi;435    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);436    _i = s0 - t0;437    bvirt = s0 - _i;438    ce[0] = s0 - (_i + bvirt) + (bvirt - t0);439    _j = s1 + _i;440    bvirt = _j - s1;441    _0 = s1 - (_j - bvirt) + (_i - bvirt);442    _i = _0 - t1;443    bvirt = _0 - _i;444    ce[1] = _0 - (_i + bvirt) + (bvirt - t1);445    u3 = _j + _i;446    bvirt = u3 - _j;447    ce[2] = _j - (u3 - bvirt) + (_i - bvirt);448    ce[3] = u3;449    s1 = dx * ay;450    c = splitter * dx;451    ahi = c - (c - dx);452    alo = dx - ahi;453    c = splitter * ay;454    bhi = c - (c - ay);455    blo = ay - bhi;456    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);457    t1 = ax * dy;458    c = splitter * ax;459    ahi = c - (c - ax);460    alo = ax - ahi;461    c = splitter * dy;462    bhi = c - (c - dy);463    blo = dy - bhi;464    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);465    _i = s0 - t0;466    bvirt = s0 - _i;467    da[0] = s0 - (_i + bvirt) + (bvirt - t0);468    _j = s1 + _i;469    bvirt = _j - s1;470    _0 = s1 - (_j - bvirt) + (_i - bvirt);471    _i = _0 - t1;472    bvirt = _0 - _i;473    da[1] = _0 - (_i + bvirt) + (bvirt - t1);474    u3 = _j + _i;475    bvirt = u3 - _j;476    da[2] = _j - (u3 - bvirt) + (_i - bvirt);477    da[3] = u3;478    s1 = ex * by;479    c = splitter * ex;480    ahi = c - (c - ex);481    alo = ex - ahi;482    c = splitter * by;483    bhi = c - (c - by);484    blo = by - bhi;485    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);486    t1 = bx * ey;487    c = splitter * bx;488    ahi = c - (c - bx);489    alo = bx - ahi;490    c = splitter * ey;491    bhi = c - (c - ey);492    blo = ey - bhi;493    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);494    _i = s0 - t0;495    bvirt = s0 - _i;496    eb[0] = s0 - (_i + bvirt) + (bvirt - t0);497    _j = s1 + _i;498    bvirt = _j - s1;499    _0 = s1 - (_j - bvirt) + (_i - bvirt);500    _i = _0 - t1;501    bvirt = _0 - _i;502    eb[1] = _0 - (_i + bvirt) + (bvirt - t1);503    u3 = _j + _i;504    bvirt = u3 - _j;505    eb[2] = _j - (u3 - bvirt) + (_i - bvirt);506    eb[3] = u3;507 508    const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);509    const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);510    const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);511    const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);512    const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);513    const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);514    const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);515    const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);516    const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);517    const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);518 519    const deterlen = sum_three(520        liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet,521        liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet,522        sum_three(523            liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet,524            liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet,525            liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter);526 527    return deter[deterlen - 1];528}529 530const xdet = vec(96);531const ydet = vec(96);532const zdet = vec(96);533const fin = vec(1152);534 535function liftadapt(a, b, c, az, bz, cz, x, y, z, out) {536    const len = sum_three_scale(a, b, c, az, bz, cz, _24);537    return sum_three(538        scale(scale(len, _24, x, _48), _48, x, xdet), xdet,539        scale(scale(len, _24, y, _48), _48, y, ydet), ydet,540        scale(scale(len, _24, z, _48), _48, z, zdet), zdet, _192, out);541}542 543function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {544    let ab3, bc3, cd3, da3, ac3, bd3;545 546    let aextail, bextail, cextail, dextail;547    let aeytail, beytail, ceytail, deytail;548    let aeztail, beztail, ceztail, deztail;549 550    let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0;551 552    const aex = ax - ex;553    const bex = bx - ex;554    const cex = cx - ex;555    const dex = dx - ex;556    const aey = ay - ey;557    const bey = by - ey;558    const cey = cy - ey;559    const dey = dy - ey;560    const aez = az - ez;561    const bez = bz - ez;562    const cez = cz - ez;563    const dez = dz - ez;564 565    s1 = aex * bey;566    c = splitter * aex;567    ahi = c - (c - aex);568    alo = aex - ahi;569    c = splitter * bey;570    bhi = c - (c - bey);571    blo = bey - bhi;572    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);573    t1 = bex * aey;574    c = splitter * bex;575    ahi = c - (c - bex);576    alo = bex - ahi;577    c = splitter * aey;578    bhi = c - (c - aey);579    blo = aey - bhi;580    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);581    _i = s0 - t0;582    bvirt = s0 - _i;583    ab[0] = s0 - (_i + bvirt) + (bvirt - t0);584    _j = s1 + _i;585    bvirt = _j - s1;586    _0 = s1 - (_j - bvirt) + (_i - bvirt);587    _i = _0 - t1;588    bvirt = _0 - _i;589    ab[1] = _0 - (_i + bvirt) + (bvirt - t1);590    ab3 = _j + _i;591    bvirt = ab3 - _j;592    ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);593    ab[3] = ab3;594    s1 = bex * cey;595    c = splitter * bex;596    ahi = c - (c - bex);597    alo = bex - ahi;598    c = splitter * cey;599    bhi = c - (c - cey);600    blo = cey - bhi;601    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);602    t1 = cex * bey;603    c = splitter * cex;604    ahi = c - (c - cex);605    alo = cex - ahi;606    c = splitter * bey;607    bhi = c - (c - bey);608    blo = bey - bhi;609    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);610    _i = s0 - t0;611    bvirt = s0 - _i;612    bc[0] = s0 - (_i + bvirt) + (bvirt - t0);613    _j = s1 + _i;614    bvirt = _j - s1;615    _0 = s1 - (_j - bvirt) + (_i - bvirt);616    _i = _0 - t1;617    bvirt = _0 - _i;618    bc[1] = _0 - (_i + bvirt) + (bvirt - t1);619    bc3 = _j + _i;620    bvirt = bc3 - _j;621    bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);622    bc[3] = bc3;623    s1 = cex * dey;624    c = splitter * cex;625    ahi = c - (c - cex);626    alo = cex - ahi;627    c = splitter * dey;628    bhi = c - (c - dey);629    blo = dey - bhi;630    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);631    t1 = dex * cey;632    c = splitter * dex;633    ahi = c - (c - dex);634    alo = dex - ahi;635    c = splitter * cey;636    bhi = c - (c - cey);637    blo = cey - bhi;638    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);639    _i = s0 - t0;640    bvirt = s0 - _i;641    cd[0] = s0 - (_i + bvirt) + (bvirt - t0);642    _j = s1 + _i;643    bvirt = _j - s1;644    _0 = s1 - (_j - bvirt) + (_i - bvirt);645    _i = _0 - t1;646    bvirt = _0 - _i;647    cd[1] = _0 - (_i + bvirt) + (bvirt - t1);648    cd3 = _j + _i;649    bvirt = cd3 - _j;650    cd[2] = _j - (cd3 - bvirt) + (_i - bvirt);651    cd[3] = cd3;652    s1 = dex * aey;653    c = splitter * dex;654    ahi = c - (c - dex);655    alo = dex - ahi;656    c = splitter * aey;657    bhi = c - (c - aey);658    blo = aey - bhi;659    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);660    t1 = aex * dey;661    c = splitter * aex;662    ahi = c - (c - aex);663    alo = aex - ahi;664    c = splitter * dey;665    bhi = c - (c - dey);666    blo = dey - bhi;667    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);668    _i = s0 - t0;669    bvirt = s0 - _i;670    da[0] = s0 - (_i + bvirt) + (bvirt - t0);671    _j = s1 + _i;672    bvirt = _j - s1;673    _0 = s1 - (_j - bvirt) + (_i - bvirt);674    _i = _0 - t1;675    bvirt = _0 - _i;676    da[1] = _0 - (_i + bvirt) + (bvirt - t1);677    da3 = _j + _i;678    bvirt = da3 - _j;679    da[2] = _j - (da3 - bvirt) + (_i - bvirt);680    da[3] = da3;681    s1 = aex * cey;682    c = splitter * aex;683    ahi = c - (c - aex);684    alo = aex - ahi;685    c = splitter * cey;686    bhi = c - (c - cey);687    blo = cey - bhi;688    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);689    t1 = cex * aey;690    c = splitter * cex;691    ahi = c - (c - cex);692    alo = cex - ahi;693    c = splitter * aey;694    bhi = c - (c - aey);695    blo = aey - bhi;696    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);697    _i = s0 - t0;698    bvirt = s0 - _i;699    ac[0] = s0 - (_i + bvirt) + (bvirt - t0);700    _j = s1 + _i;701    bvirt = _j - s1;702    _0 = s1 - (_j - bvirt) + (_i - bvirt);703    _i = _0 - t1;704    bvirt = _0 - _i;705    ac[1] = _0 - (_i + bvirt) + (bvirt - t1);706    ac3 = _j + _i;707    bvirt = ac3 - _j;708    ac[2] = _j - (ac3 - bvirt) + (_i - bvirt);709    ac[3] = ac3;710    s1 = bex * dey;711    c = splitter * bex;712    ahi = c - (c - bex);713    alo = bex - ahi;714    c = splitter * dey;715    bhi = c - (c - dey);716    blo = dey - bhi;717    s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);718    t1 = dex * bey;719    c = splitter * dex;720    ahi = c - (c - dex);721    alo = dex - ahi;722    c = splitter * bey;723    bhi = c - (c - bey);724    blo = bey - bhi;725    t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);726    _i = s0 - t0;727    bvirt = s0 - _i;728    bd[0] = s0 - (_i + bvirt) + (bvirt - t0);729    _j = s1 + _i;730    bvirt = _j - s1;731    _0 = s1 - (_j - bvirt) + (_i - bvirt);732    _i = _0 - t1;733    bvirt = _0 - _i;734    bd[1] = _0 - (_i + bvirt) + (bvirt - t1);735    bd3 = _j + _i;736    bvirt = bd3 - _j;737    bd[2] = _j - (bd3 - bvirt) + (_i - bvirt);738    bd[3] = bd3;739 740    const finlen = sum(741        sum(742            negate(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet,743            liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet,744        sum(745            negate(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet,746            liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);747 748    let det = estimate(finlen, fin);749    let errbound = isperrboundB * permanent;750    if (det >= errbound || -det >= errbound) {751        return det;752    }753 754    bvirt = ax - aex;755    aextail = ax - (aex + bvirt) + (bvirt - ex);756    bvirt = ay - aey;757    aeytail = ay - (aey + bvirt) + (bvirt - ey);758    bvirt = az - aez;759    aeztail = az - (aez + bvirt) + (bvirt - ez);760    bvirt = bx - bex;761    bextail = bx - (bex + bvirt) + (bvirt - ex);762    bvirt = by - bey;763    beytail = by - (bey + bvirt) + (bvirt - ey);764    bvirt = bz - bez;765    beztail = bz - (bez + bvirt) + (bvirt - ez);766    bvirt = cx - cex;767    cextail = cx - (cex + bvirt) + (bvirt - ex);768    bvirt = cy - cey;769    ceytail = cy - (cey + bvirt) + (bvirt - ey);770    bvirt = cz - cez;771    ceztail = cz - (cez + bvirt) + (bvirt - ez);772    bvirt = dx - dex;773    dextail = dx - (dex + bvirt) + (bvirt - ex);774    bvirt = dy - dey;775    deytail = dy - (dey + bvirt) + (bvirt - ey);776    bvirt = dz - dez;777    deztail = dz - (dez + bvirt) + (bvirt - ez);778    if (aextail === 0 && aeytail === 0 && aeztail === 0 &&779        bextail === 0 && beytail === 0 && beztail === 0 &&780        cextail === 0 && ceytail === 0 && ceztail === 0 &&781        dextail === 0 && deytail === 0 && deztail === 0) {782        return det;783    }784 785    errbound = isperrboundC * permanent + resulterrbound * Math.abs(det);786 787    const abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail);788    const bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail);789    const cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail);790    const daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail);791    const aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail);792    const bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail);793    det +=794        (((bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) +795        (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) *796        ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3))) -797        ((aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) +798        (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) *799        ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)))) +800        2 * (((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) +801        (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) -802        ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) +803        (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3)));804 805    if (det >= errbound || -det >= errbound) {806        return det;807    }808 809    return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez);810}811 812function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {813    const aex = ax - ex;814    const bex = bx - ex;815    const cex = cx - ex;816    const dex = dx - ex;817    const aey = ay - ey;818    const bey = by - ey;819    const cey = cy - ey;820    const dey = dy - ey;821    const aez = az - ez;822    const bez = bz - ez;823    const cez = cz - ez;824    const dez = dz - ez;825 826    const aexbey = aex * bey;827    const bexaey = bex * aey;828    const ab = aexbey - bexaey;829    const bexcey = bex * cey;830    const cexbey = cex * bey;831    const bc = bexcey - cexbey;832    const cexdey = cex * dey;833    const dexcey = dex * cey;834    const cd = cexdey - dexcey;835    const dexaey = dex * aey;836    const aexdey = aex * dey;837    const da = dexaey - aexdey;838    const aexcey = aex * cey;839    const cexaey = cex * aey;840    const ac = aexcey - cexaey;841    const bexdey = bex * dey;842    const dexbey = dex * bey;843    const bd = bexdey - dexbey;844 845    const alift = aex * aex + aey * aey + aez * aez;846    const blift = bex * bex + bey * bey + bez * bez;847    const clift = cex * cex + cey * cey + cez * cez;848    const dlift = dex * dex + dey * dey + dez * dez;849 850    const det =851        (clift * (dez * ab + aez * bd + bez * da) - dlift * (aez * bc - bez * ac + cez * ab)) +852        (alift * (bez * cd - cez * bd + dez * bc) - blift * (cez * da + dez * ac + aez * cd));853 854    const aezplus = Math.abs(aez);855    const bezplus = Math.abs(bez);856    const cezplus = Math.abs(cez);857    const dezplus = Math.abs(dez);858    const aexbeyplus = Math.abs(aexbey) + Math.abs(bexaey);859    const bexceyplus = Math.abs(bexcey) + Math.abs(cexbey);860    const cexdeyplus = Math.abs(cexdey) + Math.abs(dexcey);861    const dexaeyplus = Math.abs(dexaey) + Math.abs(aexdey);862    const aexceyplus = Math.abs(aexcey) + Math.abs(cexaey);863    const bexdeyplus = Math.abs(bexdey) + Math.abs(dexbey);864    const permanent =865        (cexdeyplus * bezplus + bexdeyplus * cezplus + bexceyplus * dezplus) * alift +866        (dexaeyplus * cezplus + aexceyplus * dezplus + cexdeyplus * aezplus) * blift +867        (aexbeyplus * dezplus + bexdeyplus * aezplus + dexaeyplus * bezplus) * clift +868        (bexceyplus * aezplus + aexceyplus * bezplus + aexbeyplus * cezplus) * dlift;869 870    const errbound = isperrboundA * permanent;871    if (det > errbound || -det > errbound) {872        return det;873    }874    return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent);875}876 877function inspherefast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {878    const aex = ax - ex;879    const bex = bx - ex;880    const cex = cx - ex;881    const dex = dx - ex;882    const aey = ay - ey;883    const bey = by - ey;884    const cey = cy - ey;885    const dey = dy - ey;886    const aez = az - ez;887    const bez = bz - ez;888    const cez = cz - ez;889    const dez = dz - ez;890 891    const ab = aex * bey - bex * aey;892    const bc = bex * cey - cex * bey;893    const cd = cex * dey - dex * cey;894    const da = dex * aey - aex * dey;895    const ac = aex * cey - cex * aey;896    const bd = bex * dey - dex * bey;897 898    const abc = aez * bc - bez * ac + cez * ab;899    const bcd = bez * cd - cez * bd + dez * bc;900    const cda = cez * da + dez * ac + aez * cd;901    const dab = dez * ab + aez * bd + bez * da;902 903    const alift = aex * aex + aey * aey + aez * aez;904    const blift = bex * bex + bey * bey + bez * bez;905    const clift = cex * cex + cey * cey + cez * cez;906    const dlift = dex * dex + dey * dey + dez * dez;907 908    return (clift * dab - dlift * abc) + (alift * bcd - blift * cda);909}910 911exports.insphere = insphere;912exports.inspherefast = inspherefast;913 914}));915 
Brunobkr/llama.cpp_AlgMor24_github · Team Ai