simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

isNumeric.js (1727B)


      1 import { deepMap } from '../../utils/collection.js';
      2 import { factory } from '../../utils/factory.js';
      3 var name = 'isNumeric';
      4 var dependencies = ['typed'];
      5 export var createIsNumeric = /* #__PURE__ */factory(name, dependencies, _ref => {
      6   var {
      7     typed
      8   } = _ref;
      9 
     10   /**
     11    * Test whether a value is an numeric value.
     12    *
     13    * The function is evaluated element-wise in case of Array or Matrix input.
     14    *
     15    * Syntax:
     16    *
     17    *     math.isNumeric(x)
     18    *
     19    * Examples:
     20    *
     21    *    math.isNumeric(2)                     // returns true
     22    *    math.isNumeric('2')                   // returns false
     23    *    math.hasNumericValue('2')             // returns true
     24    *    math.isNumeric(0)                     // returns true
     25    *    math.isNumeric(math.bignumber(500))   // returns true
     26    *    math.isNumeric(math.fraction(4))      // returns true
     27    *    math.isNumeric(math.complex('2-4i')   // returns false
     28    *    math.isNumeric([2.3, 'foo', false])   // returns [true, false, true]
     29    *
     30    * See also:
     31    *
     32    *    isZero, isPositive, isNegative, isInteger, hasNumericValue
     33    *
     34    * @param {*} x       Value to be tested
     35    * @return {boolean}  Returns true when `x` is a `number`, `BigNumber`,
     36    *                    `Fraction`, or `boolean`. Returns false for other types.
     37    *                    Throws an error in case of unknown types.
     38    */
     39   return typed(name, {
     40     'number | BigNumber | Fraction | boolean': function numberBigNumberFractionBoolean() {
     41       return true;
     42     },
     43     'Complex | Unit | string | null | undefined | Node': function ComplexUnitStringNullUndefinedNode() {
     44       return false;
     45     },
     46     'Array | Matrix': function ArrayMatrix(x) {
     47       return deepMap(x, this);
     48     }
     49   });
     50 });