@sheetxl/formulas 0.8.0-beta.1 → 0.8.0-beta.11
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 +15 -22
- package/browser/esm/{BM1YhvA2ppUZ3QLB.mjs → BAu7VttBhgl5A9Ux.mjs} +1 -1
- package/{node/esm/CG1Fn8D-2DrQZoD5.mjs → browser/esm/BL3CLO1ngbZPNUSj.mjs} +1 -1
- package/{node/esm/-f-RKKojiLg94hp9.mjs → browser/esm/BL5O9xv74605fjZ0.mjs} +51 -11
- package/browser/esm/{CVv3DuciDQrnFFeu.mjs → BTOiKBFUYxECGgpN.mjs} +1 -1
- package/browser/esm/Bjdqhk-JMohE4sBN.mjs +5722 -0
- package/browser/esm/{Bsb5i9Jq-Q8RTmvi.mjs → CCTNn0CmYTRTR9uu.mjs} +1 -1
- package/browser/esm/{BzNFsi4RXuJrn_1n.mjs → CJVp8EBHRn_OMdXr.mjs} +1 -1
- package/browser/esm/{Cyvobf2wi0quDD3U.mjs → CS2YxGzDK80pF1TP.mjs} +1 -1
- package/browser/esm/{0amsHACCOHE_JjXI.mjs → CkvBF6_lFpJ8lzWn.mjs} +1 -1
- package/browser/esm/{BYRjnggsufwbb27W.mjs → Cm5b94jC90pgvgEQ.mjs} +1 -1
- package/browser/esm/{Cdl7ZalV6WPZHHRE.mjs → CpKG2VMt7bLP4_Az.mjs} +1 -1
- package/browser/esm/{BR2ai1V5dGPphpRf.mjs → CpyKqbMxs8fgNUrm.mjs} +2 -5
- package/browser/esm/{Ct1gudv1TKk-5FMO.mjs → D0PDit-Emky4tG76.mjs} +48 -2
- package/browser/esm/{B3pEie3jQN0SvV5B.mjs → D5lfhEj0O0vGXGIU.mjs} +1 -1
- package/browser/esm/{HgVmqQQhKQ_2v0HD.mjs → DE0FWfy3dgRhUs6j.mjs} +2 -2
- package/browser/esm/{CWAtVXxcIz86XLzE.mjs → DY3Yp4g7FpjDC4Ux.mjs} +1 -1
- package/browser/esm/{DtqLXxtPFISlNoUd.mjs → DatkcV-D0mA7WYmb.mjs} +1 -1
- package/{node/esm/C7mAHEhFYDwSEU6O.mjs → browser/esm/Dz2Vh5VXT4u2caUb.mjs} +1 -1
- package/browser/esm/{CltdofO5ik8g_wQ8.mjs → LWIfDqgl4BWsGN40.mjs} +1 -1
- package/{node/esm/CkG4LZN-kb7plKXG.mjs → browser/esm/TdOBTLcfAEs2lvw1.mjs} +69 -4
- package/browser/esm/{DKFABgVKeBMflym9.mjs → _haW8KO4uxcUjPNq.mjs} +1 -1
- package/browser/esm/declarations.mjs +106 -0
- package/browser/esm/index.mjs +4527 -10911
- package/browser/esm/{D2miaIrotHbpdWei.mjs → nW1VYp24XfapwOYa.mjs} +1 -1
- package/browser/esm/{B7750ljsJF3qA9kU.mjs → qzngIvn0BfOU7J6v.mjs} +37 -3
- package/{node/esm/CCGjvL3YYwY09qF-.mjs → browser/esm/zNQMTF4Mftkd8m3i.mjs} +1 -1
- package/licenses/dependencies.txt +0 -33
- package/node/esm/515xLSpvB54fgWJI.mjs +5722 -0
- package/node/esm/{ZUay0bTGgyrF8e04.mjs → BBP--4zd6B0_Rt4G.mjs} +1 -1
- package/{browser/esm/CG1Fn8D-2DrQZoD5.mjs → node/esm/BL3CLO1ngbZPNUSj.mjs} +1 -1
- package/node/esm/{CVv3DuciDQrnFFeu.mjs → BTOiKBFUYxECGgpN.mjs} +1 -1
- package/node/esm/{DxRD19RVMzj2YvKF.mjs → BjhGKO4xoRsWtL_b.mjs} +1 -1
- package/node/esm/{DDajoVNkJB39_Fkx.mjs → CI_lC0jwf_Z5jdqc.mjs} +1 -1
- package/node/esm/{BzNFsi4RXuJrn_1n.mjs → CJVp8EBHRn_OMdXr.mjs} +1 -1
- package/node/esm/{Cyvobf2wi0quDD3U.mjs → CS2YxGzDK80pF1TP.mjs} +1 -1
- package/node/esm/{Cdl7ZalV6WPZHHRE.mjs → CpKG2VMt7bLP4_Az.mjs} +1 -1
- package/node/esm/{BR2ai1V5dGPphpRf.mjs → CpyKqbMxs8fgNUrm.mjs} +2 -5
- package/node/esm/{Ct1gudv1TKk-5FMO.mjs → D0jAK0A5JwzRhV5i.mjs} +48 -2
- package/node/esm/{HgVmqQQhKQ_2v0HD.mjs → DE0FWfy3dgRhUs6j.mjs} +2 -2
- package/node/esm/{CWAtVXxcIz86XLzE.mjs → DY3Yp4g7FpjDC4Ux.mjs} +1 -1
- package/node/esm/{DtqLXxtPFISlNoUd.mjs → DatkcV-D0mA7WYmb.mjs} +1 -1
- package/node/esm/{B8rSUcOwH6g4MUgm.mjs → DgrvMX5JkTolu68g.mjs} +1 -1
- package/{browser/esm/C7mAHEhFYDwSEU6O.mjs → node/esm/Dz2Vh5VXT4u2caUb.mjs} +1 -1
- package/node/esm/{CltdofO5ik8g_wQ8.mjs → LWIfDqgl4BWsGN40.mjs} +1 -1
- package/{browser/esm/CkG4LZN-kb7plKXG.mjs → node/esm/TdOBTLcfAEs2lvw1.mjs} +69 -4
- package/node/esm/{DKFABgVKeBMflym9.mjs → _haW8KO4uxcUjPNq.mjs} +1 -1
- package/node/esm/declarations.mjs +106 -0
- package/node/esm/{2TCIoMd-SYs6i4-N.mjs → euzKAV6QFwFyMtRz.mjs} +1 -1
- package/node/esm/index.mjs +4842 -9389
- package/node/esm/{D2miaIrotHbpdWei.mjs → nW1VYp24XfapwOYa.mjs} +1 -1
- package/{browser/esm/-f-RKKojiLg94hp9.mjs → node/esm/qFHh9pVgQa0ZMumi.mjs} +51 -11
- package/node/esm/{B7750ljsJF3qA9kU.mjs → qzngIvn0BfOU7J6v.mjs} +37 -3
- package/{browser/esm/CCGjvL3YYwY09qF-.mjs → node/esm/zNQMTF4Mftkd8m3i.mjs} +1 -1
- package/package.json +12 -8
- package/types/declarations.d.ts +4 -0
- package/types/src/.generated/decl/dateTime/Date.decl.d.ts +2 -1
- package/types/src/.generated/decl/information/Information.decl.d.ts +2 -1
- package/types/src/.generated/decl/lookupReference/Reference.decl.d.ts +2 -1
- package/types/src/.generated/decl/mathTrig/Math.decl.d.ts +2 -1
- package/types/src/.generated/declarations.d.ts +7 -0
- package/types/src/.generated/desc/dateTime/Date.desc.d.ts +2 -1
- package/types/src/.generated/desc/information/Information.desc.d.ts +2 -1
- package/types/src/.generated/desc/lookupReference/Reference.desc.d.ts +2 -1
- package/types/src/.generated/desc/mathTrig/Math.desc.d.ts +2 -1
- package/types/src/_utils/AValues.d.ts +30 -0
- package/types/src/_utils/AggregateIFS.d.ts +3 -1
- package/types/src/_utils/Arithmetic.d.ts +36 -0
- package/types/src/_utils/Combinatorics.d.ts +20 -0
- package/types/src/_utils/Distributions.d.ts +93 -0
- package/types/src/_utils/Errors.d.ts +1 -20
- package/types/src/_utils/FirstCell.d.ts +32 -0
- package/types/src/_utils/Matrix.d.ts +31 -0
- package/types/src/_utils/SpecialFunctions.d.ts +91 -0
- package/types/src/_utils/X87.d.ts +28 -0
- package/types/src/database/Database.d.ts +25 -25
- package/types/src/dateTime/Date.d.ts +250 -41
- package/types/src/engineering/Bessel.d.ts +9 -9
- package/types/src/engineering/Bitwise.d.ts +35 -35
- package/types/src/engineering/Convert.d.ts +3 -3
- package/types/src/engineering/Engineering.d.ts +5 -5
- package/types/src/engineering/Error.d.ts +9 -9
- package/types/src/engineering/Imaginary.d.ts +54 -54
- package/types/src/information/Information.d.ts +118 -49
- package/types/src/japanese/Date.d.ts +2 -2
- package/types/src/japanese/Text.d.ts +1 -1
- package/types/src/logical/Logical.d.ts +45 -39
- package/types/src/lookupReference/Reference.d.ts +213 -87
- package/types/src/mathTrig/Math.d.ts +499 -152
- package/types/src/mathTrig/Trig.d.ts +26 -22
- package/types/src/operators/Operators.d.ts +15 -15
- package/types/src/statistical/Distribution.d.ts +157 -161
- package/types/src/statistical/Statistical.d.ts +37 -37
- package/types/src/testing/Testing.d.ts +2 -2
- package/types/src/text/Text.d.ts +119 -54
- package/types/src/thai/Text.d.ts +1 -1
- package/types/src/web/FilterXML.d.ts +1 -1
- package/types/src/web/Web.d.ts +2 -2
- package/browser/cjs/1XrWGMP3GmsQOMIX.cjs +0 -1
- package/browser/cjs/49_x589Na12sizKK.cjs +0 -1
- package/browser/cjs/4nReftSsKWmnRdtf.cjs +0 -1
- package/browser/cjs/507hQYooKKjnRzsZ.cjs +0 -1
- package/browser/cjs/BAxVLKkxFgI6cXnR.cjs +0 -1
- package/browser/cjs/BK0SCfN_VZYqBxoQ.cjs +0 -1
- package/browser/cjs/Btc0Nzu40VYOpzLX.cjs +0 -1
- package/browser/cjs/C9C-pr-T_ThweQX9.cjs +0 -1
- package/browser/cjs/CJYewYJ5Z3iojl7J.cjs +0 -1
- package/browser/cjs/CRx1WvmgBjT8WVyB.cjs +0 -1
- package/browser/cjs/CV4KQsHluMqo1I2Q.cjs +0 -1
- package/browser/cjs/CXlzsh_WHCOsErJ1.cjs +0 -1
- package/browser/cjs/CpJJh4UnFl1_qFui.cjs +0 -1
- package/browser/cjs/CrZlUtdX1h2RUnCP.cjs +0 -1
- package/browser/cjs/D8-KovdJ0LjxqCe2.cjs +0 -1
- package/browser/cjs/DCIlWcGDrp-5PDoA.cjs +0 -1
- package/browser/cjs/DDnGLOLTqLFsdUDS.cjs +0 -1
- package/browser/cjs/DG2kqsWRUtVugjay.cjs +0 -1
- package/browser/cjs/DM7-R_ltoLbA9jde.cjs +0 -1
- package/browser/cjs/DNKyaSruDogoBd2H.cjs +0 -1
- package/browser/cjs/Du4jBiFxRIF1OjD4.cjs +0 -1
- package/browser/cjs/EeOVMRq7TuptFKTc.cjs +0 -1
- package/browser/cjs/Kvn916ebqGc4t6hv.cjs +0 -1
- package/browser/cjs/aONv0Ys3C8xmnaR8.cjs +0 -1
- package/browser/cjs/index.cjs +0 -1
- package/browser/cjs/z_rZE1OHFPpdGBh4.cjs +0 -1
- package/browser/esm/C9jpXFBeugwmOTbx.mjs +0 -21
- package/browser/esm/Crb70T1Sp1S4uzq4.mjs +0 -24
- package/node/esm/C9jpXFBeugwmOTbx.mjs +0 -21
- package/node/esm/Crb70T1Sp1S4uzq4.mjs +0 -24
- package/types/src/.generated/decl/lookupReference/GroupBy.decl.d.ts +0 -4
- package/types/src/.generated/decl/lookupReference/PivotBy.decl.d.ts +0 -4
- package/types/src/.generated/desc/lookupReference/GroupBy.desc.d.ts +0 -4
- package/types/src/.generated/desc/lookupReference/PivotBy.desc.d.ts +0 -4
- package/types/src/lookupReference/GroupBy.d.ts +0 -19
- package/types/src/lookupReference/PivotBy.d.ts +0 -24
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.11
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.11
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -70,15 +70,12 @@ var e = {
|
|
|
70
70
|
columns: { d: "The number of columns to drop. A negative value drops from the end of the array." }
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
|
-
EXPAND: {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
padWidth: { d: "The value with which to pad. The default is #N/A." }
|
|
80
|
-
}
|
|
81
|
-
},
|
|
73
|
+
EXPAND: { p: {
|
|
74
|
+
array: {},
|
|
75
|
+
row: {},
|
|
76
|
+
columns: {},
|
|
77
|
+
padWith: {}
|
|
78
|
+
} },
|
|
82
79
|
FIELDVALUE: {
|
|
83
80
|
s: "Extracts a value from a field of a given record.",
|
|
84
81
|
p: {
|
|
@@ -312,5 +309,48 @@ var e = {
|
|
|
312
309
|
searchMode: { d: "1=first→last (default), -1=last→first, 2=binary asc, -2=binary desc" }
|
|
313
310
|
}
|
|
314
311
|
}
|
|
312
|
+
}, r = {
|
|
313
|
+
MatchType: {
|
|
314
|
+
s: "How MATCH compares the lookup value with the values in the array.",
|
|
315
|
+
m: {
|
|
316
|
+
"Less than": { d: "The largest value that is less than or equal to the lookup value. The array must be sorted in ascending order." },
|
|
317
|
+
"Exact match": { d: "The first value that is exactly equal to the lookup value. The array can be in any order." },
|
|
318
|
+
"Greater than": { d: "The smallest value that is greater than or equal to the lookup value. The array must be sorted in descending order." }
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
SortOrder: {
|
|
322
|
+
s: "The direction SORT and SORTBY sort a key in.",
|
|
323
|
+
m: {
|
|
324
|
+
Ascending: { d: "Smallest to largest." },
|
|
325
|
+
Descending: { d: "Largest to smallest." }
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
IgnoreValues: {
|
|
329
|
+
s: "Which values to leave out.",
|
|
330
|
+
m: {
|
|
331
|
+
"Keep all values": { d: "Keep every value, blanks and errors included." },
|
|
332
|
+
"Ignore blanks": { d: "Leave out blank cells." },
|
|
333
|
+
"Ignore errors": { d: "Leave out error values." },
|
|
334
|
+
"Ignore blanks and errors": { d: "Leave out blank cells and error values." }
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
MatchMode: {
|
|
338
|
+
s: "How XLOOKUP and XMATCH match the lookup value.",
|
|
339
|
+
m: {
|
|
340
|
+
"Exact match": { d: "Only an item equal to the lookup value." },
|
|
341
|
+
"Exact match or next smaller item": { d: "An item equal to the lookup value, or else the next smaller item." },
|
|
342
|
+
"Exact match or next larger item": { d: "An item equal to the lookup value, or else the next larger item." },
|
|
343
|
+
"Wildcard character match": { d: "The lookup value may use *, ? and ~ as wildcards." }
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
SearchMode: {
|
|
347
|
+
s: "The order in which XLOOKUP and XMATCH search.",
|
|
348
|
+
m: {
|
|
349
|
+
"Search first-to-last": { d: "Search from the first item to the last." },
|
|
350
|
+
"Search last-to-first": { d: "Search from the last item to the first." },
|
|
351
|
+
"Binary search (sorted ascending order)": { d: "A binary search of items sorted in ascending order." },
|
|
352
|
+
"Binary search (sorted descending order)": { d: "A binary search of items sorted in descending order." }
|
|
353
|
+
}
|
|
354
|
+
}
|
|
315
355
|
};
|
|
316
|
-
export { e as default };
|
|
356
|
+
export { e as default, r as enums };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.11
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -9,7 +9,7 @@ var e = {
|
|
|
9
9
|
s: "Returns information about the cell.",
|
|
10
10
|
p: {
|
|
11
11
|
infoType: { d: "The type of information to return." },
|
|
12
|
-
reference: {}
|
|
12
|
+
reference: { d: "The cell to report on. Defaults to the cell holding the formula." }
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"ERROR.TYPE": {
|
|
@@ -107,5 +107,39 @@ var e = {
|
|
|
107
107
|
s: "Returns an integer representing the data type of a value: number = 1; text = 2; logical value = 4; error value = 16; array = 64; compound data = 128.",
|
|
108
108
|
p: { value: { d: "is the value to check." } }
|
|
109
109
|
}
|
|
110
|
+
}, t = {
|
|
111
|
+
CellInfoType: {
|
|
112
|
+
s: "The information to return about the cell.",
|
|
113
|
+
m: {
|
|
114
|
+
Address: { d: "Reference of the first cell in the reference, as text." },
|
|
115
|
+
Col: { d: "Column number of the cell in the reference." },
|
|
116
|
+
Color: { d: "1 if the cell is formatted in color for negative values; otherwise 0." },
|
|
117
|
+
Contents: { d: "Value of the upper-left cell in the reference; not a formula." },
|
|
118
|
+
Filename: { d: "Full path of the file that contains the reference, as text." },
|
|
119
|
+
Format: { d: "Text value corresponding to the number format of the cell." },
|
|
120
|
+
Parentheses: { d: "1 if the cell is formatted with parentheses for positive or all values; otherwise 0." },
|
|
121
|
+
Prefix: { d: "Text value corresponding to the label prefix of the cell." },
|
|
122
|
+
Protect: { d: "0 if the cell is not locked; otherwise 1." },
|
|
123
|
+
Row: { d: "Row number of the cell in the reference." },
|
|
124
|
+
Type: { d: "\"b\" for a blank cell, \"l\" for a text constant, \"v\" for anything else." },
|
|
125
|
+
Width: { d: "Column width of the cell, rounded to an integer." }
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
InfoType: {
|
|
129
|
+
s: "The information to return about the operating environment.",
|
|
130
|
+
m: {
|
|
131
|
+
Directory: { d: "Path of the current directory or folder." },
|
|
132
|
+
"Mem Avail": { d: "Amount of memory available. Legacy: answers #N/A." },
|
|
133
|
+
"Mem Used": { d: "Amount of memory being used for data. Legacy: answers #N/A." },
|
|
134
|
+
"Num File": { d: "Number of active worksheets in the open workbooks." },
|
|
135
|
+
Origin: { d: "Absolute reference of the top and leftmost visible cell." },
|
|
136
|
+
"OS Version": { d: "Current operating system version, as text." },
|
|
137
|
+
Recalc: { d: "Current recalculation mode; \"Automatic\" or \"Manual\"." },
|
|
138
|
+
Release: { d: "Version of the application, as text." },
|
|
139
|
+
System: { d: "Name of the operating environment; \"pcdos\" or \"mac\"." },
|
|
140
|
+
"Tot Mem": { d: "Total memory available. Legacy: answers #N/A." },
|
|
141
|
+
User: { d: "The licensed user. Not part of Excel." }
|
|
142
|
+
}
|
|
143
|
+
}
|
|
110
144
|
};
|
|
111
|
-
export { e as default };
|
|
145
|
+
export { e as default, t as enums };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/formulas - Formulas - TypeScript formulas compatible with Excel built-ins. - v0.8.0-beta.11
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sheetxl/formulas",
|
|
3
3
|
"description": "Formulas - TypeScript formulas compatible with Excel built-ins.",
|
|
4
|
-
"version": "0.8.0-beta.
|
|
4
|
+
"version": "0.8.0-beta.11",
|
|
5
5
|
"license": "SEE LICENSE IN <LICENSE>",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
@@ -9,13 +9,18 @@
|
|
|
9
9
|
"types": "./types/index.d.ts",
|
|
10
10
|
"browser": "./browser/esm/index.mjs",
|
|
11
11
|
"node": "./node/esm/index.mjs",
|
|
12
|
-
"
|
|
13
|
-
|
|
12
|
+
"default": "./browser/esm/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"./declarations": {
|
|
15
|
+
"types": "./types/declarations.d.ts",
|
|
16
|
+
"browser": "./browser/esm/declarations.mjs",
|
|
17
|
+
"node": "./node/esm/declarations.mjs",
|
|
18
|
+
"default": "./browser/esm/declarations.mjs"
|
|
14
19
|
}
|
|
15
20
|
},
|
|
16
21
|
"types": "./types/index.d.ts",
|
|
17
22
|
"module": "./browser/esm/index.mjs",
|
|
18
|
-
"main": "./browser/
|
|
23
|
+
"main": "./browser/esm/index.mjs",
|
|
19
24
|
"sideEffects": false,
|
|
20
25
|
"engineStrict": true,
|
|
21
26
|
"homepage": "https://sheetxl.com",
|
|
@@ -37,10 +42,9 @@
|
|
|
37
42
|
"formulas"
|
|
38
43
|
],
|
|
39
44
|
"dependencies": {
|
|
40
|
-
"@sheetxl/primitives": "^0.8.0-beta.
|
|
41
|
-
"@sheetxl/scripting": "^0.8.0-beta.
|
|
45
|
+
"@sheetxl/primitives": "^0.8.0-beta.11",
|
|
46
|
+
"@sheetxl/scripting": "^0.8.0-beta.11",
|
|
42
47
|
"bahttext": "^2.4.0",
|
|
43
|
-
"bessel": "^1.0.2"
|
|
44
|
-
"jstat": "^1.9.6"
|
|
48
|
+
"bessel": "^1.0.2"
|
|
45
49
|
}
|
|
46
50
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDeclarations } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDeclarations, MinifiedEnums } from '@sheetxl/scripting';
|
|
2
2
|
declare const declarations: MinifiedDeclarations;
|
|
3
|
+
export declare const enums: MinifiedEnums;
|
|
3
4
|
export default declarations;
|
|
4
5
|
//# sourceMappingURL=Date.decl.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDeclarations } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDeclarations, MinifiedEnums } from '@sheetxl/scripting';
|
|
2
2
|
declare const declarations: MinifiedDeclarations;
|
|
3
|
+
export declare const enums: MinifiedEnums;
|
|
3
4
|
export default declarations;
|
|
4
5
|
//# sourceMappingURL=Information.decl.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDeclarations } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDeclarations, MinifiedEnums } from '@sheetxl/scripting';
|
|
2
2
|
declare const declarations: MinifiedDeclarations;
|
|
3
|
+
export declare const enums: MinifiedEnums;
|
|
3
4
|
export default declarations;
|
|
4
5
|
//# sourceMappingURL=Reference.decl.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDeclarations } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDeclarations, MinifiedEnums } from '@sheetxl/scripting';
|
|
2
2
|
declare const declarations: MinifiedDeclarations;
|
|
3
|
+
export declare const enums: MinifiedEnums;
|
|
3
4
|
export default declarations;
|
|
4
5
|
//# sourceMappingURL=Math.decl.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FunctionDeclarationModule } from '@sheetxl/scripting';
|
|
2
|
+
/**
|
|
3
|
+
* This package's declarations, one entry per source module, in binding order.
|
|
4
|
+
*/
|
|
5
|
+
declare const declarations: readonly FunctionDeclarationModule[];
|
|
6
|
+
export default declarations;
|
|
7
|
+
//# sourceMappingURL=declarations.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDescriptors } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDescriptors, MinifiedEnumDescriptors } from '@sheetxl/scripting';
|
|
2
2
|
declare const descriptors: MinifiedDescriptors;
|
|
3
|
+
export declare const enums: MinifiedEnumDescriptors;
|
|
3
4
|
export default descriptors;
|
|
4
5
|
//# sourceMappingURL=Date.desc.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDescriptors } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDescriptors, MinifiedEnumDescriptors } from '@sheetxl/scripting';
|
|
2
2
|
declare const descriptors: MinifiedDescriptors;
|
|
3
|
+
export declare const enums: MinifiedEnumDescriptors;
|
|
3
4
|
export default descriptors;
|
|
4
5
|
//# sourceMappingURL=Information.desc.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDescriptors } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDescriptors, MinifiedEnumDescriptors } from '@sheetxl/scripting';
|
|
2
2
|
declare const descriptors: MinifiedDescriptors;
|
|
3
|
+
export declare const enums: MinifiedEnumDescriptors;
|
|
3
4
|
export default descriptors;
|
|
4
5
|
//# sourceMappingURL=Reference.desc.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MinifiedDescriptors } from '@sheetxl/scripting';
|
|
1
|
+
import { MinifiedDescriptors, MinifiedEnumDescriptors } from '@sheetxl/scripting';
|
|
2
2
|
declare const descriptors: MinifiedDescriptors;
|
|
3
|
+
export declare const enums: MinifiedEnumDescriptors;
|
|
3
4
|
export default descriptors;
|
|
4
5
|
//# sourceMappingURL=Math.desc.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
|
+
/**
|
|
3
|
+
* The reading the A functions apply to a member their plain twin skips — AVERAGEA, MAXA, MINA,
|
|
4
|
+
* STDEVA, STDEVPA, VARA and VARPA.
|
|
5
|
+
*
|
|
6
|
+
* Text and FALSE are 0, TRUE is 1, and a NUMERIC text is 0 rather than its number. All of it
|
|
7
|
+
* applies to a member of a REFERENCE; inside an ARRAY the A functions are their plain twins —
|
|
8
|
+
* `MAXA({-1,-2,"x"})` is -1 where MAXA over the same three CELLS is 0 — with one exception:
|
|
9
|
+
* AVERAGEA carries the text rule into an array as well, so `AVERAGEA({-1,-2,"x"})` is -1. A
|
|
10
|
+
* BOOLEAN in an array is skipped by every one of them, AVERAGEA included, typed or computed
|
|
11
|
+
* alike: `AVERAGEA({TRUE})` and `AVERAGEA(TRANSPOSE({TRUE}))` are both #DIV/0! while a TRUE CELL
|
|
12
|
+
* averages 1. The split is the reference-vs-array KIND, not literalness.
|
|
13
|
+
*
|
|
14
|
+
* A DIRECT argument never reaches any of this — those slots are typed `number`, so a boolean
|
|
15
|
+
* coerced to 1 and a text failed to #VALUE! before it was boxed.
|
|
16
|
+
*
|
|
17
|
+
* It lives here rather than beside the functions because an exported helper in a category
|
|
18
|
+
* directory registers a formula function, and both category files need it.
|
|
19
|
+
*/
|
|
20
|
+
export declare const isReferenceRange: (range: IRange) => boolean;
|
|
21
|
+
/** MAXA, MINA, STDEVA, STDEVPA, VARA and VARPA. */
|
|
22
|
+
export declare const ValueOptionsAFunctions: IRange.ValueOptions;
|
|
23
|
+
/** AVERAGEA's, which differs in one place: a text member of an ARRAY is 0 rather than skipped. */
|
|
24
|
+
export declare const ValueOptionsAverageA: IRange.ValueOptions;
|
|
25
|
+
/**
|
|
26
|
+
* The same reading applied to a RAW member, for the bodies that need each deviation rather than
|
|
27
|
+
* an aggregate. `reference` is `isReferenceRange` of the range the value came out of.
|
|
28
|
+
*/
|
|
29
|
+
export declare const coerceAValue: (v: Scalar, reference: boolean) => number | null;
|
|
30
|
+
//# sourceMappingURL=AValues.d.ts.map
|
|
@@ -6,7 +6,9 @@ import { IRange, IFormulaContext, IReferenceRange, Scalar } from '@sheetxl/primi
|
|
|
6
6
|
* @param context - The formula context.
|
|
7
7
|
* @param pairs - The `[criteriaRange, criteria]` groups to evaluate. Each criteria is a single
|
|
8
8
|
* VALUE: the slot is declared `AcceptError<Scalar>`, so a range in that position is lifted by
|
|
9
|
-
* the engine and this helper is called once per element.
|
|
9
|
+
* the engine and this helper is called once per element. `AcceptError` because an error is a
|
|
10
|
+
* MATCHABLE criterion, not a fault — `COUNTIF(J1:J3,1/0)` over a `#DIV/0!` cell is 1 and
|
|
11
|
+
* `SUMIF(J1:J3,NA(),J1:J3)` sums the matched `#N/A` cell.
|
|
10
12
|
* @param aggregateFn - Called for each matching cell position with
|
|
11
13
|
* `(accumulator, value)`. `accumulator` is `null` on the first matching call.
|
|
12
14
|
* Return `accumulator` unchanged to skip a value (e.g. non-numeric).
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Excel's arithmetic rules, for the bodies that have to reproduce them INSIDE a computation
|
|
3
|
+
* rather than at the boundary.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Zeroes a subnormal, and folds -0 to 0 with it.
|
|
7
|
+
*
|
|
8
|
+
* Excel flushes a subnormal at its MULTIPLYING operators and nowhere else — a function's result
|
|
9
|
+
* keeps one (`EXP(-745)` is 5E-324) and so do `+` and `-`. A body whose answer comes out of a
|
|
10
|
+
* DIVISION inherits the rule and has to say so here, because JavaScript's `/` does not:
|
|
11
|
+
* `ACOTH(1E307*17)` is 0 in Excel, where `1/1.7E308` is a subnormal that would otherwise survive
|
|
12
|
+
* the arctangent.
|
|
13
|
+
*/
|
|
14
|
+
export declare const flushSubnormal: (value: number) => number;
|
|
15
|
+
/**
|
|
16
|
+
* The inverse hyperbolic tangent, decomposed the way a C library does it — the log form above
|
|
17
|
+
* half and `log1p` below — rather than through the platform's `Math.atanh`.
|
|
18
|
+
*
|
|
19
|
+
* It is the spelling Excel agrees with: `ATANH(0.5)` is 0.5493061443340549,
|
|
20
|
+
* which is `ln(3)/2`, where `Math.atanh(0.5)` is one ulp below; and ACOTH reaches it with
|
|
21
|
+
* `y = 1/x`, where the log form keeps precision the rounded reciprocal has already lost
|
|
22
|
+
* (`ACOTH(1.0000001)` is 8.405621440467199, and `Math.atanh(1/1.0000001)` is 8.40562144042724 —
|
|
23
|
+
* a difference of eleven digits, not of a bit).
|
|
24
|
+
*/
|
|
25
|
+
export declare const atanhExcel: (y: number) => number;
|
|
26
|
+
/**
|
|
27
|
+
* A double read at 15 SIGNIFICANT DECIMAL DIGITS — the precision at which Excel reads one before
|
|
28
|
+
* deciding which side of a boundary it falls on.
|
|
29
|
+
*
|
|
30
|
+
* `INT(4.35*100)` is 435 where the double is 434.99999999999994, and `ROUND(50*0.57,0)` is 29
|
|
31
|
+
* because 28.4999999999999964 reads as 28.5. It is a PER-SLOT rule and not a global one — MOD,
|
|
32
|
+
* QUOTIENT, EVEN and ODD read the raw double at the same position their siblings read this — so a
|
|
33
|
+
* body applies it at the slots that read this way and nowhere else.
|
|
34
|
+
*/
|
|
35
|
+
export declare const round15: (value: number) => number;
|
|
36
|
+
//# sourceMappingURL=Arithmetic.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `n!` the way Excel accumulates it: a DESCENDING double product, `n · (n-1) · … · 2`.
|
|
3
|
+
*
|
|
4
|
+
* The order is the whole of the rule. Ascending gives a different double on twenty-two of the
|
|
5
|
+
* integers in range, and the correctly rounded value is a third answer again.
|
|
6
|
+
*/
|
|
7
|
+
export declare const factorialKernel: (n: number) => number;
|
|
8
|
+
/** The largest `number` COMBIN accepts: `2^31 - 2`, one short of INT_MAX. */
|
|
9
|
+
export declare const CombinMax = 2147483646;
|
|
10
|
+
/**
|
|
11
|
+
* `C(n,k)` as a multiplicative product rather than a ratio of factorials.
|
|
12
|
+
*
|
|
13
|
+
* That is why `COMBIN(171,85)` answers where `FACT(171)` is `#NUM!`, and why the refusal is on
|
|
14
|
+
* the ANSWER rather than the arguments: `COMBIN(1029,514)` is 1.43E308 and `COMBIN(1030,514)` is
|
|
15
|
+
* `#NUM!`. Dividing before multiplying keeps the running value in range, and the smaller of
|
|
16
|
+
* `k` and `n-k` decides the step count — `COMBIN(170,84)` and `COMBIN(170,86)` are the same
|
|
17
|
+
* double, not merely the same number.
|
|
18
|
+
*/
|
|
19
|
+
export declare const binomialKernel: (n: number, k: number) => number;
|
|
20
|
+
//# sourceMappingURL=Combinatorics.d.ts.map
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export declare const normalPdf: (x: number, mean: number, std: number) => number;
|
|
2
|
+
/**
|
|
3
|
+
* Taken through `erfc` rather than `1 + erf`: below about `-6` standard deviations the latter is
|
|
4
|
+
* one plus a value one ulp short of minus one, so the whole lower tail cancels away to zero
|
|
5
|
+
* where Excel carries it out to 1E-300.
|
|
6
|
+
*/
|
|
7
|
+
export declare const normalCdf: (x: number, mean: number, std: number) => number;
|
|
8
|
+
export declare const normalInv: (p: number, mean: number, std: number) => number;
|
|
9
|
+
export declare function lognormalPdf(x: number, mu: number, sigma: number): number;
|
|
10
|
+
export declare function lognormalCdf(x: number, mu: number, sigma: number): number;
|
|
11
|
+
export declare const lognormalInv: (p: number, mu: number, sigma: number) => number;
|
|
12
|
+
export declare function gammaPdf(x: number, shape: number, scale: number): number;
|
|
13
|
+
export declare function gammaCdf(x: number, shape: number, scale: number): number;
|
|
14
|
+
export declare const gammaInv: (p: number, shape: number, scale: number) => number;
|
|
15
|
+
export declare function chisquarePdf(x: number, dof: number): number;
|
|
16
|
+
export declare function chisquareCdf(x: number, dof: number): number;
|
|
17
|
+
/** `1 - chisquareCdf`, taken from the tail itself rather than by subtracting it from one. */
|
|
18
|
+
export declare function chisquareCdfUpper(x: number, dof: number): number;
|
|
19
|
+
export declare const chisquareInv: (p: number, dof: number) => number;
|
|
20
|
+
export declare function centralFPdf(x: number, df1: number, df2: number): number;
|
|
21
|
+
export declare function centralFCdf(x: number, df1: number, df2: number): number;
|
|
22
|
+
/**
|
|
23
|
+
* `1 - centralFCdf`, as the incomplete beta's OTHER tail — argument and parameters both swapped,
|
|
24
|
+
* so the small quantity is the one computed. Subtracting the lower tail from one instead loses
|
|
25
|
+
* the whole answer once the tail is under an ulp of one.
|
|
26
|
+
*/
|
|
27
|
+
export declare function centralFCdfUpper(x: number, df1: number, df2: number): number;
|
|
28
|
+
export declare const centralFInv: (p: number, df1: number, df2: number) => number;
|
|
29
|
+
export declare function studenttPdf(x: number, dof: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* The argument is `dof/(dof + x^2)` rather than `(x + sqrt(x^2+dof))/(2 sqrt(x^2+dof))`: the
|
|
32
|
+
* latter is one minus a value the size of the ANSWER, so at `x = 1E7` it arrives as `1 - 2.5E-15`
|
|
33
|
+
* and the tail is gone before the kernel is called. Both spell the same function.
|
|
34
|
+
*/
|
|
35
|
+
export declare function studenttCdf(x: number, dof: number): number;
|
|
36
|
+
/**
|
|
37
|
+
* `1 - studenttCdf`, from the tail itself — see {@link studenttCdf} for the argument.
|
|
38
|
+
*
|
|
39
|
+
* An `x` whose square overflows is refused rather than read as the limit. Excel refuses it too
|
|
40
|
+
* (`T.DIST(1E307,5,TRUE)` is `#NUM!` while `T.DIST(2^31,5,TRUE)` is 1), and the boundary is the
|
|
41
|
+
* same one: `x^2` past a double.
|
|
42
|
+
*/
|
|
43
|
+
export declare function studenttCdfUpper(x: number, dof: number): number;
|
|
44
|
+
export declare function studenttInv(p: number, dof: number): number;
|
|
45
|
+
export declare function poissonPdf(k: number, l: number): number;
|
|
46
|
+
/**
|
|
47
|
+
* The CDF sums the mass function term by term, and adds the terms BACK TO FRONT.
|
|
48
|
+
*
|
|
49
|
+
* `x` is the caller's argument and the mass function divides by `k!`, so the walk answers only
|
|
50
|
+
* while every term is finite: past 170 the factorial overflows and a term is `Infinity`, `NaN`
|
|
51
|
+
* or a silently truncated tail. Where the walk cannot answer, the complementary regularized
|
|
52
|
+
* gamma is the same function in closed form.
|
|
53
|
+
*
|
|
54
|
+
* The ORDER is the one place this differs from the rest of the category, where Excel accumulates
|
|
55
|
+
* forward. It is kept because nothing separates the two orders: only nine of the family's rows
|
|
56
|
+
* move at all and they split between them, and a summation order should not be changed on a
|
|
57
|
+
* coin toss.
|
|
58
|
+
*/
|
|
59
|
+
export declare function poissonCdf(x: number, l: number): number;
|
|
60
|
+
export declare const binomialPdf: (k: number, n: number, p: number) => number;
|
|
61
|
+
/**
|
|
62
|
+
* The CDF is the complement of a `1e-10` incomplete beta, ROUNDED to that same tolerance.
|
|
63
|
+
*
|
|
64
|
+
* The rounding is EXCEL'S, not a leftover: it is why a cumulative binomial in the bulk carries
|
|
65
|
+
* ten decimal places and no more. Taking it out moves answers AWAY from Excel, so it is not a
|
|
66
|
+
* cleanup to make.
|
|
67
|
+
*/
|
|
68
|
+
export declare function binomialCdf(x: number, n: number, p: number): number;
|
|
69
|
+
export declare function negbinPdf(k: number, r: number, p: number): number;
|
|
70
|
+
/**
|
|
71
|
+
* `x` is the caller's argument, so the walk needs both an exit and a fallback: it stops once the
|
|
72
|
+
* tail has underflowed — the mass is unimodal, so a zero term is followed only by zero terms and
|
|
73
|
+
* the sum can no longer move — and hands over to the regularized incomplete beta, the same
|
|
74
|
+
* function in closed form, when a term overflows or the tail has not arrived by `NegbinMaxSteps`.
|
|
75
|
+
* A walk that never saw a NONZERO term hands over too: `p^r` underflows well before the answer
|
|
76
|
+
* does, so an all-zero walk measures the mass function's range and not the distribution.
|
|
77
|
+
*/
|
|
78
|
+
export declare function negbinCdf(x: number, r: number, p: number): number;
|
|
79
|
+
export declare const exponentialPdf: (x: number, rate: number) => number;
|
|
80
|
+
export declare const exponentialCdf: (x: number, rate: number) => number;
|
|
81
|
+
export declare function betaPdf(x: number, alpha: number, beta: number): number;
|
|
82
|
+
export declare const betaCdf: (x: number, alpha: number, beta: number) => number;
|
|
83
|
+
export declare const betaInv: (p: number, alpha: number, beta: number) => number;
|
|
84
|
+
/**
|
|
85
|
+
* Half-width of the confidence interval around a mean, from the normal quantile.
|
|
86
|
+
*
|
|
87
|
+
* The `(1 + h) - 1` round trip is not redundant: it rounds the half-width against a unit
|
|
88
|
+
* magnitude, which moves the answer on most shapes.
|
|
89
|
+
*/
|
|
90
|
+
export declare function normalConfidence(alpha: number, standardDev: number, size: number): number;
|
|
91
|
+
/** The same half-width from Student's t on `size - 1` degrees of freedom. */
|
|
92
|
+
export declare function studenttConfidence(alpha: number, standardDev: number, size: number): number;
|
|
93
|
+
//# sourceMappingURL=Distributions.d.ts.map
|
|
@@ -1,23 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
/**
|
|
3
|
-
* Throws the first error member (row-major) — the in-body form of the engine's reject scan,
|
|
4
|
-
* for functions that cannot use the engine's reject default. Call it once per range, in
|
|
5
|
-
* ARGUMENT order, where a function takes several.
|
|
6
|
-
*
|
|
7
|
-
* Three reasons a function ends up here:
|
|
8
|
-
* * its policy depends on a runtime argument (SUBTOTAL/AGGREGATE options),
|
|
9
|
-
* * or on which rows matched (the database family),
|
|
10
|
-
* * or one of its own verdicts OUTRANKS a member error, so the scan has to run after that check
|
|
11
|
-
* rather than before the body. The count mismatch is the one that does this
|
|
12
|
-
* (`CHISQ.TEST(<3 cells with an error>, <2 cells>)` is `#N/A`, not the error — the same rule
|
|
13
|
-
* the SUMX2MY2 family and `PROB` follow); every other validation loses to the error and needs
|
|
14
|
-
* no in-body scan at all.
|
|
15
|
-
*
|
|
16
|
-
* Those parameters declare `AcceptError` to keep the engine's reject default off; everything
|
|
17
|
-
* with a static reject policy needs no marker at all. Callers hand UNTYPED ranges, so the read
|
|
18
|
-
* is already raw.
|
|
19
|
-
*/
|
|
20
|
-
export declare function throwFirstErrorMember(range: IRange): void;
|
|
1
|
+
import { Scalar } from '@sheetxl/primitives';
|
|
21
2
|
/**
|
|
22
3
|
* Wraps a value-aggregating reduce callback (SUMIF / AVERAGEIF / MAXIFS / …) so an error in a
|
|
23
4
|
* MATCHED member becomes the whole result, while a non-matched one stays invisible.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
|
+
/**
|
|
3
|
+
* The answer for a CONTAINER at a slot that reads a multi-cell REFERENCE by its FIRST CELL while
|
|
4
|
+
* an array constant still answers per member — `N` and `T`.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* `T(AF1:AF3)` is `"alpha"` and stays a scalar —
|
|
8
|
+
* `ROWS` of it is 1 and `INDEX(…,2,1)` is `#REF!` — while `T({"alpha";"bravo"})` spills 2x1. Both
|
|
9
|
+
* names declare `IRange | Scalar`, so a value and a ONE-CELL reference never reach here (the
|
|
10
|
+
* marshaller dereferences them at the scalar arm, errors included); what arrives is a container,
|
|
11
|
+
* and only its KIND separates the two readings.
|
|
12
|
+
*
|
|
13
|
+
* `paramIndex` is the slot the kind is asked about — 0 for both of today's callers.
|
|
14
|
+
*
|
|
15
|
+
* An error at the first cell of a multi-cell reference propagates here, which is what a one-cell
|
|
16
|
+
* reference does (`T(<#N/A cell>)` is `#N/A`).
|
|
17
|
+
*/
|
|
18
|
+
export declare const readFirstOrMembers: <T extends Scalar>(container: IRange, read: (value: Scalar) => T, paramIndex?: number) => T;
|
|
19
|
+
/**
|
|
20
|
+
* The one cell a multi-cell REFERENCE reads as at a slot Excel declares a plain VALUE.
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* The choice is the call's implicit-intersection MODE: in VALUE
|
|
24
|
+
* mode the cell the formula's own row and column select — the `@` rule on both axes, `#VALUE!`
|
|
25
|
+
* when the formula cell lies outside the range — and in ARRAY mode the first cell. A one-cell
|
|
26
|
+
* reference is its own cell in either mode.
|
|
27
|
+
*
|
|
28
|
+
* `LeastSquares.readOneCell` in `@sheetxl/formulas-extended` is the same rule; the two packages
|
|
29
|
+
* share only `@sheetxl/primitives`, which is why there are two copies rather than one import.
|
|
30
|
+
*/
|
|
31
|
+
export declare const readIntersectedCell: (range: IRange) => Scalar;
|
|
32
|
+
//# sourceMappingURL=FirstCell.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The elimination behind MDETERM and MINVERSE — LU with partial pivoting, and no tolerance
|
|
3
|
+
* anywhere in it.
|
|
4
|
+
*
|
|
5
|
+
* The determinant of a SINGULAR matrix is what makes the algorithm visible rather than a matter
|
|
6
|
+
* of taste: Excel answers 6.661338147750939E-16 for `MDETERM({1,2,3;4,5,6;7,8,9})`, exactly 0 for
|
|
7
|
+
* its transpose, and the same residue negated when its first two rows are swapped. Those are the
|
|
8
|
+
* numbers the elimination leaves; a body that cuts a small pivot to zero can produce none of
|
|
9
|
+
* them, and one without pivoting produces a different residue again.
|
|
10
|
+
*
|
|
11
|
+
* The inverse is this same decomposition followed by a forward and back SUBSTITUTION per unit
|
|
12
|
+
* column. Gauss-Jordan over `[A | I]` — the textbook alternative — gives different answers on
|
|
13
|
+
* the same matrices.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* The determinant, as the signed product of the pivots.
|
|
17
|
+
*
|
|
18
|
+
* The product is a multiplication, so it carries the two rules Excel's multiplying operators do:
|
|
19
|
+
* a subnormal flushes to zero (`MDETERM({1E-160,2E-160;3E-160,4E-160})` is 0, not 2E-320) and an
|
|
20
|
+
* overflow is `#NUM!` rather than an infinity, which is what `NaN` means to the caller.
|
|
21
|
+
*/
|
|
22
|
+
export declare const determinant: (m: readonly (readonly number[])[]) => number;
|
|
23
|
+
/**
|
|
24
|
+
* The inverse, one unit column at a time. `null` when a pivot was zero — the caller's `#NUM!`.
|
|
25
|
+
*
|
|
26
|
+
* The substitution subtracts term by term rather than accumulating a sum and subtracting once;
|
|
27
|
+
* the two differ in the last bit wherever the terms cancel, and only the first reproduces
|
|
28
|
+
* Excel's `MINVERSE({1,2;3,4})`, which is not the exact `[[-2,1],[1.5,-0.5]]`.
|
|
29
|
+
*/
|
|
30
|
+
export declare const invert: (m: readonly (readonly number[])[]) => number[][] | null;
|
|
31
|
+
//# sourceMappingURL=Matrix.d.ts.map
|