# Function CHOP

## Summary

The Function CHOP provides more complicated math functions than found in the Math CHOP : trigonometic functions, logarithmic functions and exponential functions. Since many of these functions can produce math errors, an error handling tab is provided for error handling and recovery.

Most of the functions require only one parameter, and they are applied as a unary operator to each input channel. Some functions take two parameters, and these require the use of the second input. The first parameter, X, is always a value from a channel in the first input. The second parameter, Y, is a value from a corresponding channel in the second input. Channels from each input are paired by name or index.

Errors can be handled by replacing the bad sample with a pre-defined value or by using the value of the previous sample. Alternatively, cooking can be aborted upon error for debugging networks.

## Parameters - Function Page

Function - Which math function to apply to the channels. All of the functions are unary functions except for the binary functions 'arctan (Input1/Input2)' and 'Input1 ^ Input2'.

Base Value - The value of the base for 'Log base N' and 'Base ^ Input1'. parameter name `/baseval`

Exponent Value - The value of the exponent for `'Input1 ^ Exponent'`. channel name `/expval`
Angle Units - For trigonometric functions, the angles can be measured in Degrees, Radians, or Cycles (0 to 1).

Match By - How to pair channels together from the two inputs for the binary functions, by name or by channel index.

## Parameters - Error Page

Error Handling - How to correct samples with math errors:

• Abort With Error Message - Cooking aborts.
• Replace With Specified Values - Values specified below.
• Use The Previous Value - Uses the last good result.

+ Infinity Value `/pinfval`

```- Value to use when an infinity error occurs. Caused by sinh(), cosh() and tan().
```

- Infinity Value `/ninfval` - Value to use when a negative infinity error occurs. Caused by sinh() and tan().

Domain Error Value `/domval` - Value to use when a domain error occurs. Caused by asin(), acos(), log10(), logN(), ln() and sqrt().

Divide Error Value `/divval` - Value to use when a divide by zero error occurs. Caused by pow(x,y).

None.