Increments a multi-digit counter using non base-10 arithmetic.

### Options

`NREQUIRED` = scalar |
Specifies the number of values required for the counter; default 2 |
---|---|

`NFOUND` = scalar |
Saves the number of counter values that could be formed |

`DIRECTION` = string token |
Specifies the direction of the sequence of increments to the counter (`ascending` , `descending` ); default `asce` |

### Parameters

`START` = scalars |
Provides the starting values for the digits in the counter |
---|---|

`END` = scalars |
Can provide values to define the end of the sequence of counter values |

`STEP` = string token |
Specifies the amount by which to increment each digit of the counter |

`BASE` = scalars |
Specifies the base of the numbers used for each digit |

`DIGITSEQUENCE` = variates |
Saves the sequence of values generated for each digit |

### Description

`COUNTER`

is useful if you want to increment a counter made up of several digits that recycle to limits that may be different from ten. For example, times in seconds, minutes and hours, or measurements in inches, feet and yards.

The parameters provide details of the digits in the counter, all in scalars. The `BASE`

parameter specifies the base of the numbers used for each digit (e.g. 60 for seconds and minutes, and 24 for hours). The `START`

parameter supplies the starting values of the digits, ranging from zero to `BASE`

minus one. The `STEP`

parameter specifies the size of the increment for each digit. The digits are updated from the right-hand side and, when one goes beyond its limit, the next one is incremented by an extra value of one for an ascending sequence, or minus one for a descending sequence. The `DIGITSEQUENCE`

saves the sequence of values formed for each digit of the counter, in variates.

The `END`

parameter can specify values to define the end of the sequence. If a value is specified for every digit, the sequence ends when the next set of digits would go beyond those supplied by `END`

: above `END`

for an ascending sequence, or below for a descending sequence. (See the `DIRECTION`

option.) Otherwise, the sequence ends when all the digits would go beyond their limits: `BASE`

minus one for an ascending sequence, or zero for a descending sequence.

The `NREQUIRED`

option specifies the number of values that are required for the counter. The default is 2, i.e. `START`

and one other. The `NFOUND`

option can save the number of values that have been formed. The `DIRECTION`

option controls whether the sequence of counter values should be regarded as ascending or descending, when checking for the end of the sequence. The default is ascending.

Options: `NREQUIRED`

, `NFOUND`

, `DIRECTION`

.

Parameters: `START`

, `END`

, `STEP`

, `BASE`

, `DIGITSEQUENCE`

.

### See also

Commands for: Program control.

### Example

" Example 1:5.4.4 " " Count in inches from 1 foot 11 inches to 2 yards " COUNTER [NREQUIRED=99] 1,0,11; END=2,0,0; STEP=0,0,1;\ BASE=1760,3,12; DIGITSEQUENCE=yard,foot,inch PRINT yard,foot,inch; DECIMALS=0