1 | <a name="Index"></a>
|
2 | ## Index
|
3 | * [new Index(...ranges)](#new_Index_new)
|
4 | * _instance_
|
5 | * [.valueOf](#Index+valueOf) ⇒ <code>Array</code>
|
6 | * [.clone()](#Index+clone) ⇒ <code>[Index](#Index)</code>
|
7 | * [.size()](#Index+size) ⇒ <code>Array.<number></code>
|
8 | * [.max()](#Index+max) ⇒ <code>Array.<number></code>
|
9 | * [.min()](#Index+min) ⇒ <code>Array.<number></code>
|
10 | * [.forEach(callback)](#Index+forEach)
|
11 | * [.dimension(dim)](#Index+dimension) ⇒ <code>Range</code> | <code>null</code>
|
12 | * [.isScalar()](#Index+isScalar) ⇒ <code>boolean</code>
|
13 | * [.toArray()](#Index+toArray) ⇒ <code>Array</code>
|
14 | * [.toString()](#Index+toString) ⇒ <code>String</code>
|
15 | * [.toJSON()](#Index+toJSON) ⇒ <code>Object</code>
|
16 | * _static_
|
17 | * [.fromJSON(json)](#Index.fromJSON) ⇒ <code>[Index](#Index)</code>
|
18 |
|
19 | <a name="new_Index_new"></a>
|
20 | ### new Index(...ranges)
|
21 | Create an index. An Index can store ranges and sets for multiple dimensions.
|
22 | Matrix.get, Matrix.set, and math.subset accept an Index as input.
|
23 |
|
24 | Usage:
|
25 | ```js
|
26 | const index = new Index(range1, range2, matrix1, array1, ...)
|
27 | ```
|
28 |
|
29 | Where each parameter can be any of:
|
30 |
|
31 | - A number
|
32 | - An instance of Range
|
33 | - An Array with the Set values
|
34 | - A Matrix with the Set values
|
35 |
|
36 | The parameters start, end, and step must be integer numbers.
|
37 |
|
38 |
|
39 | | Param | Type |
|
40 | | --- | --- |
|
41 | | ...ranges | <code>\*</code> |
|
42 |
|
43 | <a name="Index+valueOf"></a>
|
44 | ### index.valueOf ⇒ <code>Array</code>
|
45 | Get the primitive value of the Index, a two dimensional array.
|
46 | Equivalent to Index.toArray().
|
47 |
|
48 | **Kind**: instance property of <code>[Index](#Index)</code>
|
49 | **Returns**: <code>Array</code> - array
|
50 | <a name="Index+clone"></a>
|
51 | ### index.clone() ⇒ <code>[Index](#Index)</code>
|
52 | Create a clone of the index
|
53 |
|
54 | **Kind**: instance method of <code>[Index](#Index)</code>
|
55 | **Returns**: <code>[Index](#Index)</code> - clone
|
56 | <a name="Index+size"></a>
|
57 | ### index.size() ⇒ <code>Array.<number></code>
|
58 | Retrieve the size of the index, the number of elements for each dimension.
|
59 |
|
60 | **Kind**: instance method of <code>[Index](#Index)</code>
|
61 | **Returns**: <code>Array.<number></code> - size
|
62 | <a name="Index+max"></a>
|
63 | ### index.max() ⇒ <code>Array.<number></code>
|
64 | Get the maximum value for each of the indexes ranges.
|
65 |
|
66 | **Kind**: instance method of <code>[Index](#Index)</code>
|
67 | **Returns**: <code>Array.<number></code> - max
|
68 | <a name="Index+min"></a>
|
69 | ### index.min() ⇒ <code>Array.<number></code>
|
70 | Get the minimum value for each of the indexes ranges.
|
71 |
|
72 | **Kind**: instance method of <code>[Index](#Index)</code>
|
73 | **Returns**: <code>Array.<number></code> - min
|
74 | <a name="Index+forEach"></a>
|
75 | ### index.forEach(callback)
|
76 | Loop over each of the ranges of the index
|
77 |
|
78 | **Kind**: instance method of <code>[Index](#Index)</code>
|
79 |
|
80 | | Param | Type | Description |
|
81 | | --- | --- | --- |
|
82 | | callback | <code>function</code> | Called for each range with a Range as first argument, the dimension as second, and the index object as third. |
|
83 |
|
84 | <a name="Index+dimension"></a>
|
85 | ### index.dimension(dim) ⇒ <code>Range</code> | <code>null</code>
|
86 | Retrieve the dimension for the given index
|
87 |
|
88 | **Kind**: instance method of <code>[Index](#Index)</code>
|
89 | **Returns**: <code>Range</code> | <code>null</code> - range
|
90 |
|
91 | | Param | Type | Description |
|
92 | | --- | --- | --- |
|
93 | | dim | <code>Number</code> | Number of the dimension |
|
94 |
|
95 | <a name="Index+isScalar"></a>
|
96 | ### index.isScalar() ⇒ <code>boolean</code>
|
97 | Test whether this index contains only a single value.
|
98 |
|
99 | This is the case when the index is created with only scalar values as ranges,
|
100 | not for ranges resolving into a single value.
|
101 |
|
102 | **Kind**: instance method of <code>[Index](#Index)</code>
|
103 | **Returns**: <code>boolean</code> - isScalar
|
104 | <a name="Index+toArray"></a>
|
105 | ### index.toArray() ⇒ <code>Array</code>
|
106 | Expand the Index into an array.
|
107 | For example new Index([0,3], [2,7]) returns [[0,1,2], [2,3,4,5,6]]
|
108 |
|
109 | **Kind**: instance method of <code>[Index](#Index)</code>
|
110 | **Returns**: <code>Array</code> - array
|
111 | <a name="Index+toString"></a>
|
112 | ### index.toString() ⇒ <code>String</code>
|
113 | Get the string representation of the index, for example '[2:6]' or '[0:2:10, 4:7, [1,2,3]]'
|
114 |
|
115 | **Kind**: instance method of <code>[Index](#Index)</code>
|
116 | **Returns**: <code>String</code> - str
|
117 | <a name="Index+toJSON"></a>
|
118 | ### index.toJSON() ⇒ <code>Object</code>
|
119 | Get a JSON representation of the Index
|
120 |
|
121 | **Kind**: instance method of <code>[Index](#Index)</code>
|
122 | **Returns**: <code>Object</code> - Returns a JSON object structured as:
|
123 | `{"mathjs": "Index", "ranges": [{"mathjs": "Range", start: 0, end: 10, step:1}, ...]}`
|
124 | <a name="Index.fromJSON"></a>
|
125 | ### Index.fromJSON(json) ⇒ <code>[Index](#Index)</code>
|
126 | Instantiate an Index from a JSON object
|
127 |
|
128 | **Kind**: static method of <code>[Index](#Index)</code>
|
129 |
|
130 | | Param | Type | Description |
|
131 | | --- | --- | --- |
|
132 | | json | <code>Object</code> | A JSON object structured as: `{"mathjs": "Index", "dimensions": [{"mathjs": "Range", start: 0, end: 10, step:1}, ...]}` |
|
133 |
|