Modifies a formula or an expression to operate on a different set of data structures.

### Options

`OLDFORMULA` = formula or expression structures |
Original formula or expression |
---|---|

`NEWFORMULA` = formula or expression structures |
New formula or expression, modified to operate on the new structures |

### Parameters

`OLDSTRUCTURE` = identifiers |
Data structures in the `OLDFORMULA` to be replaced in the `NEWFORMULA` |
---|---|

`NEWSTRUCTURE` = identifiers |
Identifier of the new data structure to replace each `OLDSTRUCTURE` |

### Description

The `REFORMULATE`

directive allows you to modify a formula or expression to operate on a different set of data structures. The original formula or expression is specified by the `OLDFORMULA`

option, and the new formula or expression is specified by the `NEWFORMULA`

option. If `NEWFORMULA`

is not specified, the new formula or expression replaces the old one in `OLDFORMULA`

. The data structures to be replaced in `OLDFORMULA`

are listed by the `OLDSTRUCTURE`

parameter, and the corresponding data structures for `NEWFORMULA`

are provided by the `NEWSTRUCTURE`

parameter.

The example below shows how you could convert formula `A*B`

(stored in `Old`

) into formula `Y*Z`

(stored in `New`

).

`FORMULA [VALUE=A*B] Old`

`REFORMULATE [OLDFORMULA=Old; NEWFORMULA=New]\`

` OLDSTRUCTURE=A,B; NEWSTRUCTURE=Y,Z`

Options: `OLDFORMULA`

, `NEWFORMULA`

.

Parameters: `OLDSTRUCTURE`

, `NEWSTRUCTURE`

.

### See also

Directives: `EXPRESSION`

, `FORMULA`

, `FARGUMENTS`

, `FCLASSIFICATION`

, `SET2FORMULA`

.

Commands for: Calculations and manipulation.

### Example

" REFORMULATE example: convert formula F1 + F2 * F3 into formula Blocks + A * B " FORMULA [VALUE=F1 + F2 * F3] Old REFORMULATE [OLDFORMULA=Old; NEWFORMULA=New]\ OLDSTRUCTURE=F1,F2,F3; NEWSTRUCTURE=Blocks,A,B PRINT Old,New