## 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.