## Range
* [new Range(start, end, [step])](#new_Range_new)
* _instance_
* [.size()](#Range+size) ⇒ Array.<number>
* [.min()](#Range+min) ⇒ number
| undefined
* [.max()](#Range+max) ⇒ number
| undefined
* [.forEach(callback)](#Range+forEach)
* [.map(callback)](#Range+map) ⇒ Array
* [.toArray()](#Range+toArray) ⇒ Array
* [.valueOf()](#Range+valueOf) ⇒ Array
* [.format([options])](#Range+format) ⇒ string
* [.toString()](#Range+toString) ⇒ string
* [.toJSON()](#Range+toJSON) ⇒ Object
* _static_
* [.parse(str)](#Range.parse) ⇒ [Range](#Range)
| null
* [.fromJSON(json)](#Range.fromJSON) ⇒ [Range](#Range)
### new Range(start, end, [step])
Create a range. A range has a start, step, and end, and contains functions
to iterate over the range.
A range can be constructed as:
```js
const range = new Range(start, end)
const range = new Range(start, end, step)
```
To get the result of the range:
```js
range.forEach(function (x) {
console.log(x)
})
range.map(function (x) {
return math.sin(x)
})
range.toArray()
```
Example usage:
```js
const c = new Range(2, 6) // 2:1:5
c.toArray() // [2, 3, 4, 5]
const d = new Range(2, -3, -1) // 2:-1:-2
d.toArray() // [2, 1, 0, -1, -2]
```
| Param | Type | Description |
| --- | --- | --- |
| start | number
| included lower bound |
| end | number
| excluded upper bound |
| [step] | number
| step size, default value is 1 |
### range.size() ⇒ Array.<number>
Retrieve the size of the range.
Returns an array containing one number, the number of elements in the range.
**Kind**: instance method of [Range](#Range)
**Returns**: Array.<number>
- size
### range.min() ⇒ number
| undefined
Calculate the minimum value in the range
**Kind**: instance method of [Range](#Range)
**Returns**: number
| undefined
- min
### range.max() ⇒ number
| undefined
Calculate the maximum value in the range
**Kind**: instance method of [Range](#Range)
**Returns**: number
| undefined
- max
### range.forEach(callback)
Execute a callback function for each value in the range.
**Kind**: instance method of [Range](#Range)
| Param | Type | Description |
| --- | --- | --- |
| callback | function
| The callback method is invoked with three parameters: the value of the element, the index of the element, and the Range being traversed. |
### range.map(callback) ⇒ Array
Execute a callback function for each value in the Range, and return the
results as an array
**Kind**: instance method of [Range](#Range)
**Returns**: Array
- array
| Param | Type | Description |
| --- | --- | --- |
| callback | function
| The callback method is invoked with three parameters: the value of the element, the index of the element, and the Matrix being traversed. |
### range.toArray() ⇒ Array
Create an Array with a copy of the Ranges data
**Kind**: instance method of [Range](#Range)
**Returns**: Array
- array
### range.valueOf() ⇒ Array
Get the primitive value of the Range, a one dimensional array
**Kind**: instance method of [Range](#Range)
**Returns**: Array
- array
### range.format([options]) ⇒ string
Get a string representation of the range, with optional formatting options.
Output is formatted as 'start:step:end', for example '2:6' or '0:0.2:11'
**Kind**: instance method of [Range](#Range)
**Returns**: string
- str
| Param | Type | Description |
| --- | --- | --- |
| [options] | Object
| number
| function
| Formatting options. See lib/utils/number:format for a description of the available options. |
### range.toString() ⇒ string
Get a string representation of the range.
**Kind**: instance method of [Range](#Range)
### range.toJSON() ⇒ Object
Get a JSON representation of the range
**Kind**: instance method of [Range](#Range)
**Returns**: Object
- Returns a JSON object structured as:
`{"mathjs": "Range", "start": 2, "end": 4, "step": 1}`
### Range.parse(str) ⇒ [Range](#Range)
| null
Parse a string into a range,
The string contains the start, optional step, and end, separated by a colon.
If the string does not contain a valid range, null is returned.
For example str='0:2:11'.
**Kind**: static method of [Range](#Range)
**Returns**: [Range](#Range)
| null
- range
| Param | Type |
| --- | --- |
| str | string
|
### Range.fromJSON(json) ⇒ [Range](#Range)
Instantiate a Range from a JSON object
**Kind**: static method of [Range](#Range)
| Param | Type | Description |
| --- | --- | --- |
| json | Object
| A JSON object structured as: `{"mathjs": "Range", "start": 2, "end": 4, "step": 1}` |