ts-data-forge
    Preparing search index...
    NonNegativeFiniteNumber: {
        add: (
            x: NonNegativeFiniteNumber,
            y: NonNegativeFiniteNumber,
        ) => NonNegativeFiniteNumber;
        ceil: (x: NonNegativeFiniteNumber) => ToInt<NonNegativeFiniteNumber>;
        clamp: (x: number) => NonNegativeFiniteNumber;
        div: (
            x: NonNegativeFiniteNumber,
            y: ToNonZero<NonNegativeFiniteNumber>,
        ) => NonNegativeFiniteNumber;
        floor: (x: NonNegativeFiniteNumber) => ToInt<NonNegativeFiniteNumber>;
        is: (a: number) => a is NonNegativeFiniteNumber;
        max: (
            ...values: readonly NonNegativeFiniteNumber[],
        ) => NonNegativeFiniteNumber;
        min: (
            ...values: readonly NonNegativeFiniteNumber[],
        ) => NonNegativeFiniteNumber;
        MIN_VALUE: 0;
        mul: (
            x: NonNegativeFiniteNumber,
            y: NonNegativeFiniteNumber,
        ) => NonNegativeFiniteNumber;
        pow: (
            x: NonNegativeFiniteNumber,
            y: NonNegativeFiniteNumber,
        ) => NonNegativeFiniteNumber;
        random: (
            min?: NonNegativeFiniteNumber,
            max?: NonNegativeFiniteNumber,
        ) => NonNegativeFiniteNumber;
        round: (x: NonNegativeFiniteNumber) => ToInt<NonNegativeFiniteNumber>;
        sub: (
            x: NonNegativeFiniteNumber,
            y: NonNegativeFiniteNumber,
        ) => NonNegativeFiniteNumber;
    } = ...

    Namespace providing type-safe arithmetic operations for non-negative finite numbers.

    All operations maintain the non-negative constraint by clamping negative results to 0, while ensuring results remain finite (excluding NaN and Infinity). This type is useful for representing measurements, distances, weights, and other inherently non-negative values.

    Type Declaration

    • add: (
          x: NonNegativeFiniteNumber,
          y: NonNegativeFiniteNumber,
      ) => NonNegativeFiniteNumber

      Adds two NonNegativeFiniteNumber values.

    • ceil: (x: NonNegativeFiniteNumber) => ToInt<NonNegativeFiniteNumber>

      Rounds up a NonNegativeFiniteNumber to the nearest integer.

    • clamp: (x: number) => NonNegativeFiniteNumber

      Clamps a number to the non-negative finite range.

    • div: (
          x: NonNegativeFiniteNumber,
          y: ToNonZero<NonNegativeFiniteNumber>,
      ) => NonNegativeFiniteNumber

      Divides one NonNegativeFiniteNumber by another.

    • floor: (x: NonNegativeFiniteNumber) => ToInt<NonNegativeFiniteNumber>

      Rounds down a NonNegativeFiniteNumber to the nearest integer.

    • is: (a: number) => a is NonNegativeFiniteNumber

      Type guard to check if a value is a NonNegativeFiniteNumber.

    • Readonlymax: (...values: readonly NonNegativeFiniteNumber[]) => NonNegativeFiniteNumber

      Returns the larger of two NonNegativeFiniteNumber values.

    • Readonlymin: (...values: readonly NonNegativeFiniteNumber[]) => NonNegativeFiniteNumber

      Returns the smaller of two NonNegativeFiniteNumber values.

    • ReadonlyMIN_VALUE: 0

      The minimum value for a non-negative finite number.

    • mul: (
          x: NonNegativeFiniteNumber,
          y: NonNegativeFiniteNumber,
      ) => NonNegativeFiniteNumber

      Multiplies two NonNegativeFiniteNumber values.

    • pow: (
          x: NonNegativeFiniteNumber,
          y: NonNegativeFiniteNumber,
      ) => NonNegativeFiniteNumber

      Raises a NonNegativeFiniteNumber to the power of another NonNegativeFiniteNumber.

    • random: (
          min?: NonNegativeFiniteNumber,
          max?: NonNegativeFiniteNumber,
      ) => NonNegativeFiniteNumber

      Generates a random NonNegativeFiniteNumber value.

    • round: (x: NonNegativeFiniteNumber) => ToInt<NonNegativeFiniteNumber>

      Rounds a NonNegativeFiniteNumber to the nearest integer.

    • sub: (
          x: NonNegativeFiniteNumber,
          y: NonNegativeFiniteNumber,
      ) => NonNegativeFiniteNumber

      Subtracts one NonNegativeFiniteNumber from another.