Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
93 lines
No EOL
1.7 KiB
Text
93 lines
No EOL
1.7 KiB
Text
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.Adder = void 0;
|
|
exports.fcumsum = fcumsum;
|
|
exports.fsum = fsum;
|
|
|
|
// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
|
|
class Adder {
|
|
constructor() {
|
|
this._partials = new Float64Array(32);
|
|
this._n = 0;
|
|
}
|
|
|
|
add(x) {
|
|
const p = this._partials;
|
|
let i = 0;
|
|
|
|
for (let j = 0; j < this._n && j < 32; j++) {
|
|
const y = p[j],
|
|
hi = x + y,
|
|
lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
|
|
if (lo) p[i++] = lo;
|
|
x = hi;
|
|
}
|
|
|
|
p[i] = x;
|
|
this._n = i + 1;
|
|
return this;
|
|
}
|
|
|
|
valueOf() {
|
|
const p = this._partials;
|
|
let n = this._n,
|
|
x,
|
|
y,
|
|
lo,
|
|
hi = 0;
|
|
|
|
if (n > 0) {
|
|
hi = p[--n];
|
|
|
|
while (n > 0) {
|
|
x = hi;
|
|
y = p[--n];
|
|
hi = x + y;
|
|
lo = y - (hi - x);
|
|
if (lo) break;
|
|
}
|
|
|
|
if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {
|
|
y = lo * 2;
|
|
x = hi + y;
|
|
if (y == x - hi) hi = x;
|
|
}
|
|
}
|
|
|
|
return hi;
|
|
}
|
|
|
|
}
|
|
|
|
exports.Adder = Adder;
|
|
|
|
function fsum(values, valueof) {
|
|
const adder = new Adder();
|
|
|
|
if (valueof === undefined) {
|
|
for (let value of values) {
|
|
if (value = +value) {
|
|
adder.add(value);
|
|
}
|
|
}
|
|
} else {
|
|
let index = -1;
|
|
|
|
for (let value of values) {
|
|
if (value = +valueof(value, ++index, values)) {
|
|
adder.add(value);
|
|
}
|
|
}
|
|
}
|
|
|
|
return +adder;
|
|
}
|
|
|
|
function fcumsum(values, valueof) {
|
|
const adder = new Adder();
|
|
let index = -1;
|
|
return Float64Array.from(values, valueof === undefined ? v => adder.add(+v || 0) : v => adder.add(+valueof(v, ++index, values) || 0));
|
|
} |