import { kValue } from '../../../../../util/constants.js';
import { FP } from '../../../../../util/floating_point.js';
import { biasedRange, linearRange } from '../../../../../util/math.js';
import { makeCaseCache } from '../../case_cache.js';
const f32_inputs = [
0,
-89,
kValue.f32.negative.min,
...biasedRange(kValue.f32.negative.max, -88, 100),
...biasedRange(kValue.f32.positive.min, 88, 100),
...linearRange(89, 709, 10),
];
const f16_inputs = [
0,
-12,
kValue.f16.negative.min,
...biasedRange(kValue.f16.negative.max, -11, 100),
...biasedRange(kValue.f16.positive.min, 11, 100),
...linearRange(12, 709, 10),
];
export const d = makeCaseCache('exp', {
f32_const: () => {
return FP.f32.generateScalarToIntervalCases(f32_inputs, 'finite', FP.f32.expInterval);
},
f32_non_const: () => {
return FP.f32.generateScalarToIntervalCases(f32_inputs, 'unfiltered', FP.f32.expInterval);
},
f16_const: () => {
return FP.f16.generateScalarToIntervalCases(f16_inputs, 'finite', FP.f16.expInterval);
},
f16_non_const: () => {
return FP.f16.generateScalarToIntervalCases(f16_inputs, 'unfiltered', FP.f16.expInterval);
},
abstract: () => {
return FP.abstract.generateScalarToIntervalCases(f32_inputs, 'finite', FP.f32.expInterval);
},
});