You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+7Lines changed: 7 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
7
7
## [Unreleased]
8
8
9
+
## [2.3.0] - 2022-12-22
10
+
11
+
### Added
12
+
- Exported the `ArraySize` class as a public API. [#843](https://github.com/handsontable/hyperformula/issues/843)
13
+
- Renamed an internal interface from `ArgumentTypes` to `FunctionArgumentType`, and exported it as a public API. [#1108](https://github.com/handsontable/hyperformula/pull/1108)
14
+
- Exported `ImplementedFunctions` and `FunctionMetadata` as public APIs. [#1108](https://github.com/handsontable/hyperformula/pull/1108)
Copy file name to clipboardExpand all lines: docs/guide/arrays.md
+17-16Lines changed: 17 additions & 16 deletions
Original file line number
Diff line number
Diff line change
@@ -72,7 +72,7 @@ ISEVEN(A2:A5*10)
72
72
73
73
Thanks to HyperFormula's built-in array features, you can:
74
74
*[Operate on arrays](#operating-on-arrays) just like on [scalars](#about-arrays)
75
-
*[Pass arrays to functions](#passing-arrays-to-scalar-functions) that accept [scalars](#about-arrays)
75
+
*[Pass arrays to functions](#passing-arrays-to-scalar-functions-vectorization) that accept [scalars](#about-arrays)
76
76
*[Broadcast](#broadcasting) smaller input arrays across larger output areas
77
77
78
78
You can also:
@@ -83,7 +83,7 @@ You can also:
83
83
84
84
You can operate on arrays just like on single values.
85
85
86
-
When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is enabled, each output array value is the result of your operation on the corresponding input array value.
86
+
When the [array arithmetic mode](#array-arithmetic-mode) is enabled, each output array value is the result of your operation on the corresponding input array value.
87
87
88
88
```
89
89
=ARRAYFORMULA(A2:A5*B2:B5)
@@ -95,22 +95,23 @@ When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is enabled
95
95
// =A5*B5
96
96
```
97
97
98
-
### Passing arrays to scalar functions
99
-
You can pass arrays to functions that would normally accept [scalars](#about-arrays) (thanks to HyperFormula's **vectorization** feature).
98
+
### Passing arrays to scalar functions (vectorization)
100
99
101
-
When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is enabled, and you pass an array to a [scalar](#about-arrays) function, that function produces an array on the output as well.
100
+
When the [array arithmetic mode](#array-arithmetic-mode) is enabled, HyperFormula automatically _vectorizes_ most functions.
101
+
102
+
As a consequence of that, you can pass arrays to functions that would normally accept [scalars](#about-arrays). The result would also be an array.
102
103
103
104
```
104
-
=ARRAYFORMULA(ISEVEN(A2:A5*10))
105
+
=ARRAYFORMULA(ISEVEN(A2:A5))
105
106
106
107
// calculates:
107
-
// =ISEVEN(A2*10)
108
-
// =ISEVEN(A3*10)
109
-
// =ISEVEN(A4*10)
110
-
// =ISEVEN(A5*10)
108
+
// =ISEVEN(A2)
109
+
// =ISEVEN(A3)
110
+
// =ISEVEN(A4)
111
+
// =ISEVEN(A5)
111
112
```
112
113
113
-
####Broadcasting
114
+
### Broadcasting
114
115
115
116
If an input array has a dimension of `1`, it's automatically repeated ("broadcast") on that dimension to match the size of the output.
116
117
@@ -126,15 +127,15 @@ If an input array has a dimension of `1`, it's automatically repeated ("broadcas
126
127
127
128
### Filtering an array
128
129
129
-
When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is enabled, you can filter an array, based on boolean arrays, using the `FILTER` function:
130
+
When the [array arithmetic mode](#array-arithmetic-mode) is enabled, you can filter an array, based on boolean arrays, using the `FILTER` function:
When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is enabled, you can constrain the size of the output array, using the `ARRAY_CONSTRAIN` function:
138
+
When the [array arithmetic mode](#array-arithmetic-mode) is enabled, you can constrain the size of the output array, using the `ARRAY_CONSTRAIN` function:
@@ -148,17 +149,17 @@ If your specified output array size is larger or equal to the input array size,
148
149
149
150
### With the array arithmetic mode enabled
150
151
151
-
When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is enabled, and you pass an array to a [scalar](#about-arrays) function, the following rules apply:
152
+
When the [array arithmetic mode](#array-arithmetic-mode) is enabled, and you pass an array to a [scalar](#about-arrays) function, the following rules apply:
152
153
* Array dimensions need to be consistent (e.g. every row needs to be of the same length).
153
154
* If an input array value is missing (due to a difference in dimensions), the corresponding output array value is `#N/A`.
154
155
* If a cell evaluates to an array, the array values are spilled into neighboring cells (unless the neighboring cells are already filled).<br>This behavior doesn't apply to ranges, which return the `#VALUE!` error in this case.
155
156
* If one of input array dimensions is `1` (`1`x`n` or `n`x`1`), the array is repeated, to match the output array dimensions.
156
157
157
158
### With the array arithmetic mode disabled
158
159
159
-
When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is disabled, and you pass an array to a [scalar](#about-arrays) function, the array is reduced to 1 element (usually the array's top-left value).
160
+
When the [array arithmetic mode](#array-arithmetic-mode) is disabled, and you pass an array to a [scalar](#about-arrays) function, the array is reduced to 1 element (usually the array's top-left value).
160
161
161
-
When the [array arithmetic mode](#enabling-the-array-arithmetic-mode) is disabled, and you operate on a range of width/height equal to `1`, the behavior depends on your array formula's location:
162
+
When the [array arithmetic mode](#array-arithmetic-mode) is disabled, and you operate on a range of width/height equal to `1`, the behavior depends on your array formula's location:
0 commit comments