ts-data-forge 6.13.1 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/array/impl/array-utils-iterators.mjs +6 -0
- package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
- package/dist/array/impl/array-utils-modification.mjs +6 -0
- package/dist/array/impl/array-utils-modification.mjs.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.mjs +6 -0
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-search.mjs +6 -0
- package/dist/array/impl/array-utils-search.mjs.map +1 -1
- package/dist/array/impl/array-utils-slice-clamped.mjs +6 -0
- package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
- package/dist/array/impl/array-utils-slicing.mjs +6 -0
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs +6 -0
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/array/impl/array-utils-validation.mjs +6 -0
- package/dist/array/impl/array-utils-validation.mjs.map +1 -1
- package/dist/collections/imap-mapped.mjs +6 -0
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.mjs +6 -0
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/iset-mapped.mjs +6 -0
- package/dist/collections/iset-mapped.mjs.map +1 -1
- package/dist/collections/iset.mjs +6 -0
- package/dist/collections/iset.mjs.map +1 -1
- package/dist/collections/queue.mjs +6 -0
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.mjs +6 -0
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/entry-point.mjs +6 -0
- package/dist/entry-point.mjs.map +1 -1
- package/dist/index.mjs +6 -0
- package/dist/index.mjs.map +1 -1
- package/dist/iterator/range.mjs +6 -0
- package/dist/iterator/range.mjs.map +1 -1
- package/dist/json/json.mjs +6 -0
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +1 -1
- package/dist/number/branded-types/index.d.mts +6 -0
- package/dist/number/branded-types/index.d.mts.map +1 -1
- package/dist/number/branded-types/index.mjs +6 -0
- package/dist/number/branded-types/index.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +1 -2
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int16.d.mts +2 -3
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int32.d.mts +2 -3
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +143 -0
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -0
- package/dist/number/branded-types/negative-finite-number.mjs +156 -0
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -0
- package/dist/number/branded-types/negative-int.d.mts +120 -0
- package/dist/number/branded-types/negative-int.d.mts.map +1 -0
- package/dist/number/branded-types/negative-int.mjs +125 -0
- package/dist/number/branded-types/negative-int.mjs.map +1 -0
- package/dist/number/branded-types/negative-safe-int.d.mts +132 -0
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -0
- package/dist/number/branded-types/negative-safe-int.mjs +136 -0
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -0
- package/dist/number/branded-types/non-negative-finite-number.d.mts +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +130 -0
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -0
- package/dist/number/branded-types/non-positive-finite-number.mjs +134 -0
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -0
- package/dist/number/branded-types/non-positive-int.d.mts +224 -0
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -0
- package/dist/number/branded-types/non-positive-int.mjs +222 -0
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -0
- package/dist/number/branded-types/non-positive-safe-int.d.mts +119 -0
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -0
- package/dist/number/branded-types/non-positive-safe-int.mjs +116 -0
- package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -0
- package/dist/number/branded-types/non-zero-finite-number.d.mts +5 -17
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +5 -17
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +5 -33
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +5 -25
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +6 -43
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +5 -25
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +6 -39
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +5 -25
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +5 -37
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +5 -28
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +6 -33
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +5 -17
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +6 -31
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +5 -17
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +4 -2
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +4 -2
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +4 -2
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +4 -2
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +4 -2
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +4 -2
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +4 -2
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +1 -2
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +1 -1
- package/dist/number/branded-types/uint.d.mts +1 -1
- package/dist/number/branded-types/uint16.d.mts +1 -1
- package/dist/number/branded-types/uint32.d.mts +1 -1
- package/dist/number/index.d.mts +1 -0
- package/dist/number/index.d.mts.map +1 -1
- package/dist/number/index.mjs +6 -0
- package/dist/number/index.mjs.map +1 -1
- package/dist/number/num-arithmetic-types.d.mts +74 -0
- package/dist/number/num-arithmetic-types.d.mts.map +1 -0
- package/dist/number/num-arithmetic-types.mjs +2 -0
- package/dist/number/num-arithmetic-types.mjs.map +1 -0
- package/dist/number/num.d.mts +53 -9
- package/dist/number/num.d.mts.map +1 -1
- package/dist/number/num.mjs +64 -12
- package/dist/number/num.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +12 -9
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/object/object.mjs +6 -0
- package/dist/object/object.mjs.map +1 -1
- package/package.json +2 -2
- package/src/number/branded-types/index.mts +6 -0
- package/src/number/branded-types/negative-finite-number.mts +210 -0
- package/src/number/branded-types/negative-finite-number.test.mts +172 -0
- package/src/number/branded-types/negative-int.mts +160 -0
- package/src/number/branded-types/negative-int.test.mts +146 -0
- package/src/number/branded-types/negative-safe-int.mts +173 -0
- package/src/number/branded-types/negative-safe-int.test.mts +120 -0
- package/src/number/branded-types/non-positive-finite-number.mts +191 -0
- package/src/number/branded-types/non-positive-finite-number.test.mts +286 -0
- package/src/number/branded-types/non-positive-int.mts +251 -0
- package/src/number/branded-types/non-positive-int.test.mts +197 -0
- package/src/number/branded-types/non-positive-safe-int.mts +147 -0
- package/src/number/branded-types/non-positive-safe-int.test.mts +223 -0
- package/src/number/branded-types/non-zero-finite-number.mts +14 -22
- package/src/number/branded-types/non-zero-finite-number.test.mts +0 -12
- package/src/number/branded-types/non-zero-int.mts +10 -32
- package/src/number/branded-types/non-zero-int.test.mts +0 -20
- package/src/number/branded-types/non-zero-int16.mts +8 -32
- package/src/number/branded-types/non-zero-int16.test.mts +0 -30
- package/src/number/branded-types/non-zero-int32.mts +8 -32
- package/src/number/branded-types/non-zero-int32.test.mts +0 -30
- package/src/number/branded-types/non-zero-safe-int.mts +8 -35
- package/src/number/branded-types/non-zero-safe-int.test.mts +0 -32
- package/src/number/branded-types/non-zero-uint16.mts +8 -22
- package/src/number/branded-types/non-zero-uint16.test.mts +0 -16
- package/src/number/branded-types/non-zero-uint32.mts +8 -22
- package/src/number/branded-types/non-zero-uint32.test.mts +0 -16
- package/src/number/index.mts +1 -0
- package/src/number/num-arithmetic-types.mts +269 -0
- package/src/number/num-arithmetic-types.test.mts +130 -0
- package/src/number/num-arithmetic.test.mts +102 -0
- package/src/number/num.mts +96 -15
- package/src/number/refined-number-utils.mts +19 -9
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
2
|
+
import { PositiveInt } from './positive-int.mjs';
|
|
3
|
+
|
|
4
|
+
const typeNameInMessage = 'a negative integer';
|
|
5
|
+
const { MAX_VALUE, add, castType, clamp, is, max: max_, min: min_, pow, random, sub, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
|
|
6
|
+
integerOrSafeInteger: 'Integer',
|
|
7
|
+
nonZero: true,
|
|
8
|
+
MIN_VALUE: -Number.MAX_VALUE,
|
|
9
|
+
MAX_VALUE: -1,
|
|
10
|
+
typeNameInMessage,
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Returns the absolute value of a negative integer.
|
|
14
|
+
*
|
|
15
|
+
* The absolute value of a negative integer is always a positive integer
|
|
16
|
+
* (`>= 1`), so the result is typed as a {@link PositiveInt}.
|
|
17
|
+
*
|
|
18
|
+
* @param x - The negative integer.
|
|
19
|
+
* @returns `|x|` as a PositiveInt.
|
|
20
|
+
*/
|
|
21
|
+
const abs = (x) => PositiveInt.clamp(Math.abs(x));
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a number is a NegativeInt (a negative integer `<= -1`).
|
|
24
|
+
*
|
|
25
|
+
* @param value The value to check.
|
|
26
|
+
* @returns `true` if the value is a NegativeInt, `false` otherwise.
|
|
27
|
+
*/
|
|
28
|
+
const isNegativeInt = is;
|
|
29
|
+
/**
|
|
30
|
+
* Casts a number to a NegativeInt type.
|
|
31
|
+
*
|
|
32
|
+
* @param value The value to cast.
|
|
33
|
+
* @returns The value as a NegativeInt type.
|
|
34
|
+
* @throws {TypeError} If the value is not a negative integer.
|
|
35
|
+
*/
|
|
36
|
+
const asNegativeInt = castType;
|
|
37
|
+
/**
|
|
38
|
+
* Namespace providing type-safe arithmetic operations for negative integers.
|
|
39
|
+
*
|
|
40
|
+
* NegativeInt represents integers that are strictly less than zero (`<= -1`).
|
|
41
|
+
* Operations that stay within the negative integers (such as `add`) clamp their
|
|
42
|
+
* results to the valid range, while operations whose result leaves the set
|
|
43
|
+
* (`mul`, `div`, `abs`) are typed to reflect the actual sign of the result.
|
|
44
|
+
*/
|
|
45
|
+
const NegativeInt = {
|
|
46
|
+
/**
|
|
47
|
+
* Type guard to check if a value is a NegativeInt.
|
|
48
|
+
*
|
|
49
|
+
* @param value The value to check.
|
|
50
|
+
* @returns `true` if the value is a negative integer, `false` otherwise.
|
|
51
|
+
*/
|
|
52
|
+
is,
|
|
53
|
+
/**
|
|
54
|
+
* The maximum value for a negative integer.
|
|
55
|
+
*
|
|
56
|
+
* @readonly
|
|
57
|
+
*/
|
|
58
|
+
MAX_VALUE,
|
|
59
|
+
/**
|
|
60
|
+
* Returns the absolute value of a negative integer.
|
|
61
|
+
*
|
|
62
|
+
* @param a The negative integer.
|
|
63
|
+
* @returns The absolute value as a PositiveInt.
|
|
64
|
+
*/
|
|
65
|
+
abs,
|
|
66
|
+
/**
|
|
67
|
+
* Returns the smaller of two negative integers.
|
|
68
|
+
*
|
|
69
|
+
* @param a The first negative integer.
|
|
70
|
+
* @param b The second negative integer.
|
|
71
|
+
* @returns The minimum value as a NegativeInt.
|
|
72
|
+
*/
|
|
73
|
+
min: min_,
|
|
74
|
+
/**
|
|
75
|
+
* Returns the larger of two negative integers.
|
|
76
|
+
*
|
|
77
|
+
* @param a The first negative integer.
|
|
78
|
+
* @param b The second negative integer.
|
|
79
|
+
* @returns The maximum value as a NegativeInt.
|
|
80
|
+
*/
|
|
81
|
+
max: max_,
|
|
82
|
+
/**
|
|
83
|
+
* Clamps a number to the negative integer range.
|
|
84
|
+
*
|
|
85
|
+
* @param value The number to clamp.
|
|
86
|
+
* @returns The value clamped to `[-∞, -1]` as a NegativeInt.
|
|
87
|
+
*/
|
|
88
|
+
clamp,
|
|
89
|
+
/**
|
|
90
|
+
* Generates a random NegativeInt value within the valid range.
|
|
91
|
+
*
|
|
92
|
+
* @returns A random negative integer.
|
|
93
|
+
*/
|
|
94
|
+
random,
|
|
95
|
+
/**
|
|
96
|
+
* Raises a negative integer to the power of another negative integer.
|
|
97
|
+
*
|
|
98
|
+
* @param a The base negative integer.
|
|
99
|
+
* @param b The exponent negative integer.
|
|
100
|
+
* @returns `a ** b` clamped to the negative integer range.
|
|
101
|
+
*/
|
|
102
|
+
pow,
|
|
103
|
+
/**
|
|
104
|
+
* Adds two negative integers.
|
|
105
|
+
*
|
|
106
|
+
* @param a The first negative integer.
|
|
107
|
+
* @param b The second negative integer.
|
|
108
|
+
* @returns `a + b` as a NegativeInt.
|
|
109
|
+
*/
|
|
110
|
+
add,
|
|
111
|
+
/**
|
|
112
|
+
* Subtracts one negative integer from another.
|
|
113
|
+
*
|
|
114
|
+
* The mathematical result can be positive, so it is clamped to the negative
|
|
115
|
+
* integer range (maximum `-1`).
|
|
116
|
+
*
|
|
117
|
+
* @param a The minuend negative integer.
|
|
118
|
+
* @param b The subtrahend negative integer.
|
|
119
|
+
* @returns `a - b` clamped to the negative integer range.
|
|
120
|
+
*/
|
|
121
|
+
sub,
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
export { NegativeInt, asNegativeInt, isNegativeInt };
|
|
125
|
+
//# sourceMappingURL=negative-int.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negative-int.mjs","sources":["../../../src/number/branded-types/negative-int.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAWA,MAAM,iBAAiB,GAAG,oBAAoB;AAE9C,MAAM,EACJ,SAAS,EACT,GAAG,EACH,QAAQ,EACR,KAAK,EACL,EAAE,EACF,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,MAAM,EACN,GAAG,GACJ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS;IAC5B,SAAS,EAAE,EAAE;IACb,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;;;;;AAQG;AACH,MAAM,GAAG,GAAG,CAAC,CAA4B,KACvC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEhC;;;;;AAKG;AACI,MAAM,aAAa,GAAG;AAE7B;;;;;;AAMG;AACI,MAAM,aAAa,GAAG;AAE7B;;;;;;;AAOG;AACI,MAAM,WAAW,GAAG;AACzB;;;;;AAKG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;;AAKG;IACH,GAAG;AAEH;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;;;;AASG;IACH,GAAG;;;;;"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { type NegativeSafeInt as TtfImported_NegativeSafeInt, type WithSmallInt } from 'ts-type-forge';
|
|
2
|
+
import { PositiveSafeInt } from './positive-safe-int.mjs';
|
|
3
|
+
export type NegativeSafeInt = TtfImported_NegativeSafeInt;
|
|
4
|
+
type ElementType = NegativeSafeInt;
|
|
5
|
+
/**
|
|
6
|
+
* Checks if a number is a NegativeSafeInt (a negative safe integer in the range
|
|
7
|
+
* `[Number.MIN_SAFE_INTEGER, -1]`).
|
|
8
|
+
*
|
|
9
|
+
* @param value The value to check.
|
|
10
|
+
* @returns `true` if the value is a NegativeSafeInt, `false` otherwise.
|
|
11
|
+
*/
|
|
12
|
+
export declare const isNegativeSafeInt: (a: number) => a is TtfImported_NegativeSafeInt;
|
|
13
|
+
/**
|
|
14
|
+
* Casts a number to a NegativeSafeInt type.
|
|
15
|
+
*
|
|
16
|
+
* @param value The value to cast.
|
|
17
|
+
* @returns The value as a NegativeSafeInt type.
|
|
18
|
+
* @throws {TypeError} If the value is not a negative safe integer.
|
|
19
|
+
*/
|
|
20
|
+
export declare const asNegativeSafeInt: <N extends number>(x: N) => number & {
|
|
21
|
+
readonly NaNValue: false;
|
|
22
|
+
readonly Finite: true;
|
|
23
|
+
readonly Int: true;
|
|
24
|
+
readonly ">=0": false;
|
|
25
|
+
readonly "!=0": true;
|
|
26
|
+
readonly "<=0": true;
|
|
27
|
+
readonly "< 2^15": true;
|
|
28
|
+
readonly "< 2^16": true;
|
|
29
|
+
readonly "< 2^31": true;
|
|
30
|
+
readonly "< 2^32": true;
|
|
31
|
+
readonly SafeInt: true;
|
|
32
|
+
} & Readonly<{
|
|
33
|
+
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
34
|
+
}> & N;
|
|
35
|
+
/**
|
|
36
|
+
* Namespace providing type-safe arithmetic operations for negative safe
|
|
37
|
+
* integers.
|
|
38
|
+
*
|
|
39
|
+
* NegativeSafeInt represents safe integers that are strictly less than zero
|
|
40
|
+
* (`[Number.MIN_SAFE_INTEGER, -1]`). Operations that stay within the negative
|
|
41
|
+
* safe integers clamp their results to the valid range, while operations whose
|
|
42
|
+
* result leaves the set (`mul`, `div`, `abs`) are typed to reflect the actual
|
|
43
|
+
* sign of the result.
|
|
44
|
+
*/
|
|
45
|
+
export declare const NegativeSafeInt: {
|
|
46
|
+
/**
|
|
47
|
+
* Type guard to check if a value is a NegativeSafeInt.
|
|
48
|
+
*
|
|
49
|
+
* @param value The value to check.
|
|
50
|
+
* @returns `true` if the value is a negative safe integer, `false` otherwise.
|
|
51
|
+
*/
|
|
52
|
+
readonly is: (a: number) => a is TtfImported_NegativeSafeInt;
|
|
53
|
+
/**
|
|
54
|
+
* The minimum value for a negative safe integer.
|
|
55
|
+
*
|
|
56
|
+
* @readonly
|
|
57
|
+
*/
|
|
58
|
+
readonly MIN_VALUE: number;
|
|
59
|
+
/**
|
|
60
|
+
* The maximum value for a negative safe integer.
|
|
61
|
+
*
|
|
62
|
+
* @readonly
|
|
63
|
+
*/
|
|
64
|
+
readonly MAX_VALUE: -1;
|
|
65
|
+
/**
|
|
66
|
+
* Returns the absolute value of a negative safe integer.
|
|
67
|
+
*
|
|
68
|
+
* @param a The negative safe integer.
|
|
69
|
+
* @returns The absolute value as a PositiveSafeInt.
|
|
70
|
+
*/
|
|
71
|
+
readonly abs: (x: WithSmallInt<ElementType>) => PositiveSafeInt;
|
|
72
|
+
/**
|
|
73
|
+
* Returns the smaller of two negative safe integers.
|
|
74
|
+
*
|
|
75
|
+
* @param a The first negative safe integer.
|
|
76
|
+
* @param b The second negative safe integer.
|
|
77
|
+
* @returns The minimum value as a NegativeSafeInt.
|
|
78
|
+
*/
|
|
79
|
+
readonly min: (...values: readonly WithSmallInt<TtfImported_NegativeSafeInt>[]) => TtfImported_NegativeSafeInt;
|
|
80
|
+
/**
|
|
81
|
+
* Returns the larger of two negative safe integers.
|
|
82
|
+
*
|
|
83
|
+
* @param a The first negative safe integer.
|
|
84
|
+
* @param b The second negative safe integer.
|
|
85
|
+
* @returns The maximum value as a NegativeSafeInt.
|
|
86
|
+
*/
|
|
87
|
+
readonly max: (...values: readonly WithSmallInt<TtfImported_NegativeSafeInt>[]) => TtfImported_NegativeSafeInt;
|
|
88
|
+
/**
|
|
89
|
+
* Clamps a number to the NegativeSafeInt range.
|
|
90
|
+
*
|
|
91
|
+
* @param value The number to clamp.
|
|
92
|
+
* @returns The value clamped to `[Number.MIN_SAFE_INTEGER, -1]` as a
|
|
93
|
+
* NegativeSafeInt.
|
|
94
|
+
*/
|
|
95
|
+
readonly clamp: (x: number) => TtfImported_NegativeSafeInt;
|
|
96
|
+
/**
|
|
97
|
+
* Generates a random NegativeSafeInt value within the valid range.
|
|
98
|
+
*
|
|
99
|
+
* @returns A random NegativeSafeInt between Number.MIN_SAFE_INTEGER and -1.
|
|
100
|
+
*/
|
|
101
|
+
readonly random: (min?: WithSmallInt<TtfImported_NegativeSafeInt> | undefined, max?: WithSmallInt<TtfImported_NegativeSafeInt> | undefined) => TtfImported_NegativeSafeInt;
|
|
102
|
+
/**
|
|
103
|
+
* Raises a negative safe integer to the power of another negative safe
|
|
104
|
+
* integer.
|
|
105
|
+
*
|
|
106
|
+
* @param a The base negative safe integer.
|
|
107
|
+
* @param b The exponent negative safe integer.
|
|
108
|
+
* @returns `a ** b` clamped to the NegativeSafeInt range.
|
|
109
|
+
*/
|
|
110
|
+
readonly pow: (x: WithSmallInt<TtfImported_NegativeSafeInt>, y: WithSmallInt<TtfImported_NegativeSafeInt>) => TtfImported_NegativeSafeInt;
|
|
111
|
+
/**
|
|
112
|
+
* Adds two negative safe integers.
|
|
113
|
+
*
|
|
114
|
+
* @param a The first negative safe integer.
|
|
115
|
+
* @param b The second negative safe integer.
|
|
116
|
+
* @returns `a + b` clamped to the NegativeSafeInt range.
|
|
117
|
+
*/
|
|
118
|
+
readonly add: (x: WithSmallInt<TtfImported_NegativeSafeInt>, y: WithSmallInt<TtfImported_NegativeSafeInt>) => TtfImported_NegativeSafeInt;
|
|
119
|
+
/**
|
|
120
|
+
* Subtracts one negative safe integer from another.
|
|
121
|
+
*
|
|
122
|
+
* The mathematical result can be positive, so it is clamped to the
|
|
123
|
+
* NegativeSafeInt range (maximum `-1`).
|
|
124
|
+
*
|
|
125
|
+
* @param a The minuend negative safe integer.
|
|
126
|
+
* @param b The subtrahend negative safe integer.
|
|
127
|
+
* @returns `a - b` clamped to the NegativeSafeInt range.
|
|
128
|
+
*/
|
|
129
|
+
readonly sub: (x: WithSmallInt<TtfImported_NegativeSafeInt>, y: WithSmallInt<TtfImported_NegativeSafeInt>) => TtfImported_NegativeSafeInt;
|
|
130
|
+
};
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=negative-safe-int.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negative-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/negative-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,IAAI,2BAA2B,EACnD,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAE1D,KAAK,WAAW,GAAG,eAAe,CAAC;AAwCnC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,iDAAK,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;MAAW,CAAC;AAE1C;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;sBA3DW,YAAY,CAAC,WAAW,CAAC,KAAG,eAAe;IA8DzD;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;;OASG;;CAEK,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
2
|
+
import { PositiveSafeInt } from './positive-safe-int.mjs';
|
|
3
|
+
|
|
4
|
+
const typeNameInMessage = 'a negative safe integer';
|
|
5
|
+
const { MAX_VALUE, MIN_VALUE, add, castType, clamp, is, max: max_, min: min_, pow, random, sub, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
|
|
6
|
+
integerOrSafeInteger: 'SafeInteger',
|
|
7
|
+
nonZero: true,
|
|
8
|
+
MIN_VALUE: Number.MIN_SAFE_INTEGER,
|
|
9
|
+
MAX_VALUE: -1,
|
|
10
|
+
typeNameInMessage,
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Returns the absolute value of a negative safe integer.
|
|
14
|
+
*
|
|
15
|
+
* The absolute value of a negative safe integer is always a positive safe
|
|
16
|
+
* integer (`>= 1`), so the result is typed as a {@link PositiveSafeInt}.
|
|
17
|
+
*
|
|
18
|
+
* @param x - The negative safe integer.
|
|
19
|
+
* @returns `|x|` as a PositiveSafeInt.
|
|
20
|
+
*/
|
|
21
|
+
const abs = (x) => PositiveSafeInt.clamp(Math.abs(x));
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a number is a NegativeSafeInt (a negative safe integer in the range
|
|
24
|
+
* `[Number.MIN_SAFE_INTEGER, -1]`).
|
|
25
|
+
*
|
|
26
|
+
* @param value The value to check.
|
|
27
|
+
* @returns `true` if the value is a NegativeSafeInt, `false` otherwise.
|
|
28
|
+
*/
|
|
29
|
+
const isNegativeSafeInt = is;
|
|
30
|
+
/**
|
|
31
|
+
* Casts a number to a NegativeSafeInt type.
|
|
32
|
+
*
|
|
33
|
+
* @param value The value to cast.
|
|
34
|
+
* @returns The value as a NegativeSafeInt type.
|
|
35
|
+
* @throws {TypeError} If the value is not a negative safe integer.
|
|
36
|
+
*/
|
|
37
|
+
const asNegativeSafeInt = castType;
|
|
38
|
+
/**
|
|
39
|
+
* Namespace providing type-safe arithmetic operations for negative safe
|
|
40
|
+
* integers.
|
|
41
|
+
*
|
|
42
|
+
* NegativeSafeInt represents safe integers that are strictly less than zero
|
|
43
|
+
* (`[Number.MIN_SAFE_INTEGER, -1]`). Operations that stay within the negative
|
|
44
|
+
* safe integers clamp their results to the valid range, while operations whose
|
|
45
|
+
* result leaves the set (`mul`, `div`, `abs`) are typed to reflect the actual
|
|
46
|
+
* sign of the result.
|
|
47
|
+
*/
|
|
48
|
+
const NegativeSafeInt = {
|
|
49
|
+
/**
|
|
50
|
+
* Type guard to check if a value is a NegativeSafeInt.
|
|
51
|
+
*
|
|
52
|
+
* @param value The value to check.
|
|
53
|
+
* @returns `true` if the value is a negative safe integer, `false` otherwise.
|
|
54
|
+
*/
|
|
55
|
+
is,
|
|
56
|
+
/**
|
|
57
|
+
* The minimum value for a negative safe integer.
|
|
58
|
+
*
|
|
59
|
+
* @readonly
|
|
60
|
+
*/
|
|
61
|
+
MIN_VALUE,
|
|
62
|
+
/**
|
|
63
|
+
* The maximum value for a negative safe integer.
|
|
64
|
+
*
|
|
65
|
+
* @readonly
|
|
66
|
+
*/
|
|
67
|
+
MAX_VALUE,
|
|
68
|
+
/**
|
|
69
|
+
* Returns the absolute value of a negative safe integer.
|
|
70
|
+
*
|
|
71
|
+
* @param a The negative safe integer.
|
|
72
|
+
* @returns The absolute value as a PositiveSafeInt.
|
|
73
|
+
*/
|
|
74
|
+
abs,
|
|
75
|
+
/**
|
|
76
|
+
* Returns the smaller of two negative safe integers.
|
|
77
|
+
*
|
|
78
|
+
* @param a The first negative safe integer.
|
|
79
|
+
* @param b The second negative safe integer.
|
|
80
|
+
* @returns The minimum value as a NegativeSafeInt.
|
|
81
|
+
*/
|
|
82
|
+
min: min_,
|
|
83
|
+
/**
|
|
84
|
+
* Returns the larger of two negative safe integers.
|
|
85
|
+
*
|
|
86
|
+
* @param a The first negative safe integer.
|
|
87
|
+
* @param b The second negative safe integer.
|
|
88
|
+
* @returns The maximum value as a NegativeSafeInt.
|
|
89
|
+
*/
|
|
90
|
+
max: max_,
|
|
91
|
+
/**
|
|
92
|
+
* Clamps a number to the NegativeSafeInt range.
|
|
93
|
+
*
|
|
94
|
+
* @param value The number to clamp.
|
|
95
|
+
* @returns The value clamped to `[Number.MIN_SAFE_INTEGER, -1]` as a
|
|
96
|
+
* NegativeSafeInt.
|
|
97
|
+
*/
|
|
98
|
+
clamp,
|
|
99
|
+
/**
|
|
100
|
+
* Generates a random NegativeSafeInt value within the valid range.
|
|
101
|
+
*
|
|
102
|
+
* @returns A random NegativeSafeInt between Number.MIN_SAFE_INTEGER and -1.
|
|
103
|
+
*/
|
|
104
|
+
random,
|
|
105
|
+
/**
|
|
106
|
+
* Raises a negative safe integer to the power of another negative safe
|
|
107
|
+
* integer.
|
|
108
|
+
*
|
|
109
|
+
* @param a The base negative safe integer.
|
|
110
|
+
* @param b The exponent negative safe integer.
|
|
111
|
+
* @returns `a ** b` clamped to the NegativeSafeInt range.
|
|
112
|
+
*/
|
|
113
|
+
pow,
|
|
114
|
+
/**
|
|
115
|
+
* Adds two negative safe integers.
|
|
116
|
+
*
|
|
117
|
+
* @param a The first negative safe integer.
|
|
118
|
+
* @param b The second negative safe integer.
|
|
119
|
+
* @returns `a + b` clamped to the NegativeSafeInt range.
|
|
120
|
+
*/
|
|
121
|
+
add,
|
|
122
|
+
/**
|
|
123
|
+
* Subtracts one negative safe integer from another.
|
|
124
|
+
*
|
|
125
|
+
* The mathematical result can be positive, so it is clamped to the
|
|
126
|
+
* NegativeSafeInt range (maximum `-1`).
|
|
127
|
+
*
|
|
128
|
+
* @param a The minuend negative safe integer.
|
|
129
|
+
* @param b The subtrahend negative safe integer.
|
|
130
|
+
* @returns `a - b` clamped to the NegativeSafeInt range.
|
|
131
|
+
*/
|
|
132
|
+
sub,
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export { NegativeSafeInt, asNegativeSafeInt, isNegativeSafeInt };
|
|
136
|
+
//# sourceMappingURL=negative-safe-int.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negative-safe-int.mjs","sources":["../../../src/number/branded-types/negative-safe-int.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAWA,MAAM,iBAAiB,GAAG,yBAAyB;AAEnD,MAAM,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EACH,QAAQ,EACR,KAAK,EACL,EAAE,EACF,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,MAAM,EACN,GAAG,GACJ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,MAAM,CAAC,gBAAgB;IAClC,SAAS,EAAE,EAAE;IACb,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;;;;;AAQG;AACH,MAAM,GAAG,GAAG,CAAC,CAA4B,KACvC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;AAMG;AACI,MAAM,iBAAiB,GAAG;AAEjC;;;;;;AAMG;AACI,MAAM,iBAAiB,GAAG;AAEjC;;;;;;;;;AASG;AACI,MAAM,eAAe,GAAG;AAC7B;;;;;AAKG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;AAIG;IACH,SAAS;AAET;;;;;AAKG;IACH,GAAG;AAEH;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;;AAOG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;;;;AASG;IACH,GAAG;;;;;"}
|
|
@@ -145,12 +145,12 @@ export declare const NonNegativeFiniteNumber: {
|
|
|
145
145
|
readonly div: (x: TtfImported_NonNegativeFiniteNumber, y: number & {
|
|
146
146
|
readonly NaNValue: false;
|
|
147
147
|
readonly Finite: true;
|
|
148
|
-
readonly "!=0": true;
|
|
149
148
|
readonly "> -2^16": true;
|
|
150
149
|
readonly "> -2^32": true;
|
|
151
150
|
readonly ">= -2^15": true;
|
|
152
151
|
readonly ">= -2^31": true;
|
|
153
152
|
readonly ">=0": true;
|
|
153
|
+
readonly "!=0": true;
|
|
154
154
|
} & Readonly<{
|
|
155
155
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
156
156
|
}>) => TtfImported_NonNegativeFiniteNumber;
|
|
@@ -134,12 +134,12 @@ export declare const NonNegativeInt16: {
|
|
|
134
134
|
readonly NaNValue: false;
|
|
135
135
|
readonly Finite: true;
|
|
136
136
|
readonly Int: true;
|
|
137
|
-
readonly "!=0": true;
|
|
138
137
|
readonly "> -2^16": true;
|
|
139
138
|
readonly "> -2^32": true;
|
|
140
139
|
readonly ">= -2^15": true;
|
|
141
140
|
readonly ">= -2^31": true;
|
|
142
141
|
readonly ">=0": true;
|
|
142
|
+
readonly "!=0": true;
|
|
143
143
|
readonly "< 2^15": true;
|
|
144
144
|
readonly "< 2^16": true;
|
|
145
145
|
readonly "< 2^31": true;
|
|
@@ -133,12 +133,12 @@ export declare const NonNegativeInt32: {
|
|
|
133
133
|
readonly NaNValue: false;
|
|
134
134
|
readonly Finite: true;
|
|
135
135
|
readonly Int: true;
|
|
136
|
-
readonly "!=0": true;
|
|
137
136
|
readonly "> -2^16": true;
|
|
138
137
|
readonly "> -2^32": true;
|
|
139
138
|
readonly ">= -2^15": true;
|
|
140
139
|
readonly ">= -2^31": true;
|
|
141
140
|
readonly ">=0": true;
|
|
141
|
+
readonly "!=0": true;
|
|
142
142
|
readonly "< 2^31": true;
|
|
143
143
|
readonly "< 2^32": true;
|
|
144
144
|
readonly SafeInt: true;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { type NonPositiveFiniteNumber as TtfImported_NonPositiveFiniteNumber } from 'ts-type-forge';
|
|
2
|
+
import { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
3
|
+
export type NonPositiveFiniteNumber = TtfImported_NonPositiveFiniteNumber;
|
|
4
|
+
type ElementType = NonPositiveFiniteNumber;
|
|
5
|
+
/**
|
|
6
|
+
* Checks if a number is a NonPositiveFiniteNumber (a finite number <= 0).
|
|
7
|
+
*
|
|
8
|
+
* @param value The value to check.
|
|
9
|
+
* @returns `true` if the value is a NonPositiveFiniteNumber, `false` otherwise.
|
|
10
|
+
*/
|
|
11
|
+
export declare const isNonPositiveFiniteNumber: (a: number) => a is TtfImported_NonPositiveFiniteNumber;
|
|
12
|
+
/**
|
|
13
|
+
* Casts a number to a NonPositiveFiniteNumber type.
|
|
14
|
+
*
|
|
15
|
+
* @param value The value to cast.
|
|
16
|
+
* @returns The value as a NonPositiveFiniteNumber type.
|
|
17
|
+
* @throws {TypeError} If the value is not a non-positive finite number.
|
|
18
|
+
*/
|
|
19
|
+
export declare const asNonPositiveFiniteNumber: <N extends number>(x: N) => number & {
|
|
20
|
+
readonly NaNValue: false;
|
|
21
|
+
readonly Finite: true;
|
|
22
|
+
readonly "<=0": true;
|
|
23
|
+
readonly "< 2^15": true;
|
|
24
|
+
readonly "< 2^16": true;
|
|
25
|
+
readonly "< 2^31": true;
|
|
26
|
+
readonly "< 2^32": true;
|
|
27
|
+
} & Readonly<{
|
|
28
|
+
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
29
|
+
}> & N;
|
|
30
|
+
/**
|
|
31
|
+
* Namespace providing type-safe arithmetic operations for non-positive finite
|
|
32
|
+
* numbers.
|
|
33
|
+
*
|
|
34
|
+
* All operations maintain the non-positive constraint by clamping positive
|
|
35
|
+
* results to MAX_VALUE (0), while ensuring results remain finite (excluding NaN
|
|
36
|
+
* and Infinity). This type is useful for representing quantities that must
|
|
37
|
+
* always be non-positive, such as debts, penalties, and negative offsets.
|
|
38
|
+
*/
|
|
39
|
+
export declare const NonPositiveFiniteNumber: {
|
|
40
|
+
/**
|
|
41
|
+
* Type guard to check if a value is a NonPositiveFiniteNumber.
|
|
42
|
+
*
|
|
43
|
+
* @param value The value to check.
|
|
44
|
+
* @returns `true` if the value is a non-positive finite number, `false`
|
|
45
|
+
* otherwise.
|
|
46
|
+
*/
|
|
47
|
+
readonly is: (a: number) => a is TtfImported_NonPositiveFiniteNumber;
|
|
48
|
+
/**
|
|
49
|
+
* The maximum value for a non-positive finite number.
|
|
50
|
+
*
|
|
51
|
+
* @readonly
|
|
52
|
+
*/
|
|
53
|
+
readonly MAX_VALUE: 0;
|
|
54
|
+
/**
|
|
55
|
+
* Returns the smaller of two NonPositiveFiniteNumber values.
|
|
56
|
+
*
|
|
57
|
+
* @param a The first NonPositiveFiniteNumber.
|
|
58
|
+
* @param b The second NonPositiveFiniteNumber.
|
|
59
|
+
* @returns The minimum value as a NonPositiveFiniteNumber.
|
|
60
|
+
*/
|
|
61
|
+
readonly min: (...values: readonly TtfImported_NonPositiveFiniteNumber[]) => TtfImported_NonPositiveFiniteNumber;
|
|
62
|
+
/**
|
|
63
|
+
* Returns the larger of two NonPositiveFiniteNumber values.
|
|
64
|
+
*
|
|
65
|
+
* @param a The first NonPositiveFiniteNumber.
|
|
66
|
+
* @param b The second NonPositiveFiniteNumber.
|
|
67
|
+
* @returns The maximum value as a NonPositiveFiniteNumber.
|
|
68
|
+
*/
|
|
69
|
+
readonly max: (...values: readonly TtfImported_NonPositiveFiniteNumber[]) => TtfImported_NonPositiveFiniteNumber;
|
|
70
|
+
/**
|
|
71
|
+
* Clamps a number to the non-positive finite range.
|
|
72
|
+
*
|
|
73
|
+
* @param value The number to clamp.
|
|
74
|
+
* @returns The value clamped to (-∞, 0] as a NonPositiveFiniteNumber.
|
|
75
|
+
*/
|
|
76
|
+
readonly clamp: (x: number) => TtfImported_NonPositiveFiniteNumber;
|
|
77
|
+
/**
|
|
78
|
+
* Rounds down a NonPositiveFiniteNumber to the nearest integer.
|
|
79
|
+
*
|
|
80
|
+
* @param x The NonPositiveFiniteNumber to round down.
|
|
81
|
+
* @returns The floor value as a NonPositiveInt (can be 0).
|
|
82
|
+
*/
|
|
83
|
+
readonly floor: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
|
|
84
|
+
/**
|
|
85
|
+
* Rounds up a NonPositiveFiniteNumber to the nearest integer.
|
|
86
|
+
*
|
|
87
|
+
* @param x The NonPositiveFiniteNumber to round up.
|
|
88
|
+
* @returns The ceiling value as a NegativeInt (always <= -1) or 0.
|
|
89
|
+
*/
|
|
90
|
+
readonly ceil: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
|
|
91
|
+
/**
|
|
92
|
+
* Rounds a NonPositiveFiniteNumber to the nearest integer.
|
|
93
|
+
*
|
|
94
|
+
* @param x The NonPositiveFiniteNumber to round.
|
|
95
|
+
* @returns The rounded value as a NonPositiveInt (can be 0 if x > -0.5).
|
|
96
|
+
*/
|
|
97
|
+
readonly round: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
|
|
98
|
+
/**
|
|
99
|
+
* Generates a random NonPositiveFiniteNumber value.
|
|
100
|
+
*
|
|
101
|
+
* @returns A random non-positive finite number.
|
|
102
|
+
*/
|
|
103
|
+
readonly random: (min?: TtfImported_NonPositiveFiniteNumber | undefined, max?: TtfImported_NonPositiveFiniteNumber | undefined) => TtfImported_NonPositiveFiniteNumber;
|
|
104
|
+
/**
|
|
105
|
+
* Raises a NonPositiveFiniteNumber to the power of another NonPositiveFiniteNumber.
|
|
106
|
+
*
|
|
107
|
+
* @param a The base NonPositiveFiniteNumber.
|
|
108
|
+
* @param b The exponent NonPositiveFiniteNumber.
|
|
109
|
+
* @returns `a ** b` clamped to (-∞, 0] as a NonPositiveFiniteNumber.
|
|
110
|
+
*/
|
|
111
|
+
readonly pow: (x: TtfImported_NonPositiveFiniteNumber, y: TtfImported_NonPositiveFiniteNumber) => TtfImported_NonPositiveFiniteNumber;
|
|
112
|
+
/**
|
|
113
|
+
* Adds two NonPositiveFiniteNumber values.
|
|
114
|
+
*
|
|
115
|
+
* @param a The first NonPositiveFiniteNumber.
|
|
116
|
+
* @param b The second NonPositiveFiniteNumber.
|
|
117
|
+
* @returns `a + b` clamped to (-∞, 0] as a NonPositiveFiniteNumber.
|
|
118
|
+
*/
|
|
119
|
+
readonly add: (x: TtfImported_NonPositiveFiniteNumber, y: TtfImported_NonPositiveFiniteNumber) => TtfImported_NonPositiveFiniteNumber;
|
|
120
|
+
/**
|
|
121
|
+
* Subtracts one NonPositiveFiniteNumber from another.
|
|
122
|
+
*
|
|
123
|
+
* @param a The minuend NonPositiveFiniteNumber.
|
|
124
|
+
* @param b The subtrahend NonPositiveFiniteNumber.
|
|
125
|
+
* @returns `a - b` clamped to (-∞, 0] as a NonPositiveFiniteNumber (maximum 0).
|
|
126
|
+
*/
|
|
127
|
+
readonly sub: (x: TtfImported_NonPositiveFiniteNumber, y: TtfImported_NonPositiveFiniteNumber) => TtfImported_NonPositiveFiniteNumber;
|
|
128
|
+
};
|
|
129
|
+
export {};
|
|
130
|
+
//# sourceMappingURL=non-positive-finite-number.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-positive-finite-number.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,IAAI,mCAAmC,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AAE1E,KAAK,WAAW,GAAG,uBAAuB,CAAC;AA2D3C;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,yDAAK,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;MAAW,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;wBA3GA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IA2GC;;;;;OAKG;uBAvGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAuGC;;;;;OAKG;wBArGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAqGC;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;CAEK,CAAC"}
|