combine/range - combine ranges
|
Calling Sequence
|
|
combine(e, 'range')
|
|
Description
|
|
•
|
Expressions involving calls to an operator F of two arguments, the second of which is of the form name = range, in which the range is either a discrete or continuous range, are combined by applying the transformations:
|
•
|
For the results of `combine/range` to be valid, the operator F must be a function of two arguments, the second of which has the form name = range and is additive over ranges.
|
•
|
Knowledge of the summation and integral operators is supported in the library. You can add to the knowledge of which operators can be manipulated by `combine/range` by assigning to one of the environment variables _EnvRangeCombinableContinuous or _EnvRangeCombinableDiscrete. Each should be a set of names of operators F. Operators in the set _EnvRangeCombinableDiscrete are combined in the same way as Sum, while those in _EnvRangeCombinableContinuous are combined like integrals. The environment variable _EnvRangeCombinable is used internally and should not be modified directly by users.
|
•
|
By calling the procedure combine/range directly, you can set the values of combinable operators for a single call by passing an extra (second) argument in the form of a list of two sets. The first member of the list is the set of operators that can be combined using continuous ranges (Int-like), and the second member of the list should be a set of the names of Sum-like operators whose ranges are to be treated as discrete.
|
•
|
The power of `combine/range` is controlled by the values of the environment variables Testzero and Normalizer. These are used to detect matching range endpoints and matching first arguments. Resetting Testzero gives you local control over the combining power of this procedure.
|
|
|
Examples
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
`combine/range` is sensitive to assumptions:
>
|
|
| (5) |
>
|
|
| (6) |
>
|
|
| (7) |
>
|
|
| (8) |
|
|
Download Help Document
Was this information helpful?