## 4.8 `POSY`: Polynomial with non-integer powers

### 4.8.1 Syntax

`POSY` c1,p1 c2,p2 ...
`POSY` c1,p1 c2,p2 ... args

### 4.8.2 Purpose

Defines a transfer function by a one dimensional “posynomial”, like a polynomial, except that the powers are arbitrary, and usually non-integer.

### 4.8.3 Comments

There is no corresponding capability in any SPICE that I know of.
For capacitors, this function defines charge as a function of voltage. For inductors, it defines flux as a function of current.
For fixed sources, it defines voltage or current as a function of time.
Normal use of this function required positive input (voltage or current). The result is zero if the input is negative. Raising a negative number to a non-integer power would produce a complex result, which implies a non-causal result, which cannot be represented in a traditional transient analysis.
The transfer function is defined by:

    if (in >= 0){
      out = (c1*in^p1) + (c2*in^p2) + ....
    }else{
      out = 0.
    }

### 4.8.4 Parameters

`MIN` = x
  Minimum output value (clipping). (Default = -infinity.)
`MAX` = x
  Maximum output value (clipping). (Default = infinity)
`ABS`
  Absolute value, truth value. (Default = false). If set to true, the result will be always positive.
`ODD`
  Make odd function, truth value. (Default = false). If set to true, negative values of x will be evaluated as out = -f(-x), giving odd symmetry.
`EVEN`
  Make even function, truth value. (Default = false). If set to true, negative values of x will be evaluated as out = f(-x), giving even symmetry.

### 4.8.5 Example

`E1 2 0 1 0 posy 1 .5`
  The output of `E1` is the square root of its input.