MCPcopy Create free account
hub / github.com/cortex-js/compute-engine / intPow

Function intPow

src/compute-engine/interval/elementary.ts:82–103  ·  view source on GitHub ↗

* Integer power helper for non-negative integer exponents.

(base: Interval, n: number)

Source from the content-addressed store, hash-verified

80function isNaNInterval(x: Interval): boolean {
81 return Number.isNaN(x.lo) || Number.isNaN(x.hi);
82}
83const NAN_INTERVAL: Interval = { lo: NaN, hi: NaN };
84
85function sqrtRaw(x: Interval | IntervalResult): IntervalResult {
86 const unwrapped = unwrapOrPropagate(x);
87 if (!Array.isArray(unwrapped)) return unwrapped;
88 const [xVal] = unwrapped;
89 if (isNaNInterval(xVal)) return ok(NAN_INTERVAL);
90 return _sqrt(xVal);
91}
92
93function _sqrt(x: Interval): IntervalResult {
94 // Case 1: Entirely negative - no valid values
95 if (x.hi < 0) {
96 return { kind: 'empty' };
97 }
98
99 // Case 2: Entirely non-negative - straightforward
100 if (x.lo >= 0) {
101 return ok({ lo: Math.sqrt(x.lo), hi: Math.sqrt(x.hi) });
102 }
103
104 // Case 3: Straddles zero - valid for [0, x.hi], invalid for [x.lo, 0)
105 return {
106 kind: 'partial',

Callers 1

powFunction · 0.85

Calls 1

powMethod · 0.65

Tested by

no test coverage detected