@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
41 lines • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ValueIntegerBottom = exports.ValueIntegerTop = exports.ValueNumberOneHalf = exports.ValueNumberEpsilon = exports.ValueIntegerNegativeInfinity = exports.ValueNumberPositiveInfinity = exports.ValueIntegerPositiveInfinity = exports.ValueIntegerNegativeOne = exports.ValueIntegerZero = exports.ValueNumberComplexOne = exports.ValueIntegerOne = void 0;
exports.getScalarFromInteger = getScalarFromInteger;
exports.liftScalar = liftScalar;
const r_value_1 = require("../r-value");
/**
* Given a (ts) number, return a scalar R number value.
*/
function getScalarFromInteger(num, markedAsInt = Number.isInteger(num), complexNumber = false) {
return {
type: 'number',
value: {
markedAsInt,
num,
complexNumber
}
};
}
/**
* Take a lifted R number value and wrap it into a ValueNumber.
*/
function liftScalar(value) {
return {
type: 'number',
value: value
};
}
const epsilon = 1e-7;
exports.ValueIntegerOne = getScalarFromInteger(1);
exports.ValueNumberComplexOne = getScalarFromInteger(1, false, true);
exports.ValueIntegerZero = getScalarFromInteger(0);
exports.ValueIntegerNegativeOne = getScalarFromInteger(-1);
exports.ValueIntegerPositiveInfinity = getScalarFromInteger(Number.POSITIVE_INFINITY);
exports.ValueNumberPositiveInfinity = getScalarFromInteger(Number.POSITIVE_INFINITY, false);
exports.ValueIntegerNegativeInfinity = getScalarFromInteger(Number.NEGATIVE_INFINITY);
exports.ValueNumberEpsilon = getScalarFromInteger(epsilon, false);
exports.ValueNumberOneHalf = getScalarFromInteger(0.5, false);
exports.ValueIntegerTop = liftScalar(r_value_1.Top);
exports.ValueIntegerBottom = liftScalar(r_value_1.Bottom);
//# sourceMappingURL=scalar-constants.js.map