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

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

    All operations maintain the non-positive constraint by clamping positive results to MAX_VALUE (0), while ensuring results remain finite (excluding NaN and Infinity). This type is useful for representing quantities that must always be non-positive, such as debts, penalties, and negative offsets.

    Type Declaration

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

      Adds two NonPositiveFiniteNumber values.

    • ceil: (
          x: NonPositiveFiniteNumber,
      ) => RemoveNonZeroBrandKey<ToInt<NonPositiveFiniteNumber>>

      Rounds up a NonPositiveFiniteNumber to the nearest integer.

    • clamp: (x: number) => NonPositiveFiniteNumber

      Clamps a number to the non-positive finite range.

    • floor: (
          x: NonPositiveFiniteNumber,
      ) => RemoveNonZeroBrandKey<ToInt<NonPositiveFiniteNumber>>

      Rounds down a NonPositiveFiniteNumber to the nearest integer.

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

      Type guard to check if a value is a NonPositiveFiniteNumber.

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

      Returns the larger of two NonPositiveFiniteNumber values.

    • ReadonlyMAX_VALUE: 0

      The maximum value for a non-positive finite number.

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

      Returns the smaller of two NonPositiveFiniteNumber values.

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

      Raises a NonPositiveFiniteNumber to the power of another NonPositiveFiniteNumber.

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

      Generates a random NonPositiveFiniteNumber value.

    • round: (
          x: NonPositiveFiniteNumber,
      ) => RemoveNonZeroBrandKey<ToInt<NonPositiveFiniteNumber>>

      Rounds a NonPositiveFiniteNumber to the nearest integer.

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

      Subtracts one NonPositiveFiniteNumber from another.