@eagleoutice/flowr - v2.13.14
    Preparing search index...
    NumericFns: {
        "-": {
            fold: (a: number, b?: number) => number;
            params: readonly ["e1", "e2"];
        };
        "*": {
            fold: (a: number, b: number) => number;
            params: readonly ["e1", "e2"];
        };
        "**": {
            fold: (a: number, b: number) => number;
            params: readonly ["e1", "e2"];
        };
        "/": {
            fold: (a: number, b: number) => number;
            params: readonly ["e1", "e2"];
        };
        "%/%": {
            fold: (a: number, b: number) => number;
            params: readonly ["e1", "e2"];
        };
        "%%": {
            fold: (a: number, b: number) => number;
            params: readonly ["e1", "e2"];
        };
        "^": {
            fold: (a: number, b: number) => number;
            params: readonly ["e1", "e2"];
        };
        "+": {
            fold: (a: number, b?: number) => number;
            params: readonly ["e1", "e2"];
        };
        abs: { fold: (x: number) => number; params: readonly ["x"] };
        acos: { fold: (x: number) => number; params: readonly ["x"] };
        acosh: { fold: (x: number) => number; params: readonly ["x"] };
        asin: { fold: (x: number) => number; params: readonly ["x"] };
        asinh: { fold: (x: number) => number; params: readonly ["x"] };
        atan: { fold: (x: number) => number; params: readonly ["x"] };
        atan2: {
            fold: (y: number, x: number) => number;
            params: readonly ["y", "x"];
        };
        atanh: { fold: (x: number) => number; params: readonly ["x"] };
        bitwAnd: {
            fold: (a: number, b: number) => number;
            params: readonly ["a", "b"];
        };
        bitwNot: { fold: (a: number) => number; params: readonly ["a"] };
        bitwOr: {
            fold: (a: number, b: number) => number;
            params: readonly ["a", "b"];
        };
        bitwShiftL: {
            fold: (a: number, n: number) => number;
            params: readonly ["a", "n"];
        };
        bitwShiftR: {
            fold: (a: number, n: number) => number;
            params: readonly ["a", "n"];
        };
        bitwXor: {
            fold: (a: number, b: number) => number;
            params: readonly ["a", "b"];
        };
        ceiling: { fold: (x: number) => number; params: readonly ["x"] };
        cos: { fold: (x: number) => number; params: readonly ["x"] };
        cosh: { fold: (x: number) => number; params: readonly ["x"] };
        exp: { fold: (x: number) => number; params: readonly ["x"] };
        expm1: { fold: (x: number) => number; params: readonly ["x"] };
        floor: { fold: (x: number) => number; params: readonly ["x"] };
        log: {
            fold: (x: number, base?: number) => number;
            params: readonly ["x", "base"];
        };
        log10: { fold: (x: number) => number; params: readonly ["x"] };
        log1p: { fold: (x: number) => number; params: readonly ["x"] };
        log2: { fold: (x: number) => number; params: readonly ["x"] };
        round: {
            fold: (x: number, digits?: number) => number;
            params: readonly ["x", "digits"];
        };
        sign: { fold: (x: number) => number; params: readonly ["x"] };
        signif: {
            fold: (x: number, digits?: number) => number | undefined;
            params: readonly ["x", "digits"];
        };
        sin: { fold: (x: number) => number; params: readonly ["x"] };
        sinh: { fold: (x: number) => number; params: readonly ["x"] };
        sqrt: { fold: (x: number) => number; params: readonly ["x"] };
        tan: { fold: (x: number) => number; params: readonly ["x"] };
        tanh: { fold: (x: number) => number; params: readonly ["x"] };
        trunc: { fold: (x: number) => number; params: readonly ["x"] };
    } = ...

    Every numeric built-in the value solver folds, operators included: - is an entry like sqrt is, and both are reached through resolveAsNumeric. Teaching flowR one more is a line here plus the matching evalHandler in the built-in configuration -- a test checks that the two agree.

    An operator gets its operands under the names R gives them (e1, e2), and the ones that also exist as a unary form declare e2 as optional. Anything the fold hands back that is not a finite number stays Top, so sqrt(-1) or 1/0 need no special case here.

    Type Declaration

    • Readonly-: { fold: (a: number, b?: number) => number; params: readonly ["e1", "e2"] }
    • Readonly*: { fold: (a: number, b: number) => number; params: readonly ["e1", "e2"] }
    • Readonly**: { fold: (a: number, b: number) => number; params: readonly ["e1", "e2"] }
    • Readonly/: { fold: (a: number, b: number) => number; params: readonly ["e1", "e2"] }
    • Readonly%/%: { fold: (a: number, b: number) => number; params: readonly ["e1", "e2"] }
    • Readonly%%: { fold: (a: number, b: number) => number; params: readonly ["e1", "e2"] }
      • Readonlyfold: (a: number, b: number) => number
      • Readonlyparams: readonly ["e1", "e2"]
    • Readonly^: { fold: (a: number, b: number) => number; params: readonly ["e1", "e2"] }
    • Readonly+: { fold: (a: number, b?: number) => number; params: readonly ["e1", "e2"] }
    • Readonlyabs: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyacos: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyacosh: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyasin: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyasinh: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyatan: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyatan2: { fold: (y: number, x: number) => number; params: readonly ["y", "x"] }
      • Readonlyfold: (y: number, x: number) => number
      • Readonlyparams: readonly ["y", "x"]
    • Readonlyatanh: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • ReadonlybitwAnd: { fold: (a: number, b: number) => number; params: readonly ["a", "b"] }
    • ReadonlybitwNot: { fold: (a: number) => number; params: readonly ["a"] }
    • ReadonlybitwOr: { fold: (a: number, b: number) => number; params: readonly ["a", "b"] }
    • ReadonlybitwShiftL: { fold: (a: number, n: number) => number; params: readonly ["a", "n"] }
    • ReadonlybitwShiftR: { fold: (a: number, n: number) => number; params: readonly ["a", "n"] }
    • ReadonlybitwXor: { fold: (a: number, b: number) => number; params: readonly ["a", "b"] }
    • Readonlyceiling: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlycos: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlycosh: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyexp: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyexpm1: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyfloor: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlylog: { fold: (x: number, base?: number) => number; params: readonly ["x", "base"] }
    • Readonlylog10: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlylog1p: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlylog2: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlyround: {
          fold: (x: number, digits?: number) => number;
          params: readonly ["x", "digits"];
      }
      • Readonlyfold: (x: number, digits?: number) => number
      • Readonlyparams: readonly ["x", "digits"]
    • Readonlysign: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlysignif: {
          fold: (x: number, digits?: number) => number | undefined;
          params: readonly ["x", "digits"];
      }
    • Readonlysin: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlysinh: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlysqrt: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlytan: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlytanh: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]
    • Readonlytrunc: { fold: (x: number) => number; params: readonly ["x"] }
      • Readonlyfold: (x: number) => number
      • Readonlyparams: readonly ["x"]