Current-Controlled Current Sources

This is a special case of the general source specification included for backward compatibility.

- General Form:
`f`where*name n*+*n*-*vnam expr**srcargs*

f*name n*+*n*- function | cur [`=`]*expr**srcargs*

f*name n*+*n*- poly*poly_spec**srcargs**srcargs*= [`ac table`(*name*)]

- Examples:
`f1 13 5 vsens 5`

f2 13 5 1-x*x ac table(acdata)

f3 13 5 function 1-i(vsens)*i(vsens)

The *n*`+` and *n*`-` are the positive and
negative nodes, respectively. Current flow is from the positive node,
through the source, to the negative node. The parameter *vnam*
is the name of a voltage source or inductor through which the
controlling current flows. If *vnam* refers to a voltage source,
the direction of positive controlling current flow is from the
positive node, through the source, to the negative node. If *vnam* names an inductor, the current flow is from the first node
specified for the inductor, through the inductor, to the second node.

In the first form, if the *expr* is a constant, it represents the
linear current gain. If no expression is given, a unit constant
value is assumed. Otherwise, the *expr* computes the source
current, where the variable ```x`'' if used in the *expr* is
taken to be the controlling current (i(*vnam*)). In this case
only, the `pwl` construct if used in the *expr* takes as its
input variable the value of ```x`'' rather than time, thus a
piecewise linear transfer function can be implemented using a `pwl` statement. The second form is similar, but ```x`'' is not
defined. The keywords ```function`'' and ```cur`'' are
equivalent. The third form allows use of the SPICE2 `poly`
construct.

More information of the function specification can be found in
2.15, and the `poly` specification is described in
2.15.2.

If the `ac` parameter is given and the `table` keyword
follows, then the named table is taken to contain complex *transfer* coefficient data, which will be used in ac analysis (and
possibly elsewhere, see below). For each frequency, the source output
will be the interpolated transfer coefficient from the table
multiplied by the input. The table must be specified with a `.table` line, and must have the `ac` keyword given.

If an ac table is specified, and no dc/transient transfer function or coefficient is given, then in transient analysis, the source transfer will be obtained through Fourier analysis of the table data. This is somewhat experimental, and may be prone to numerical errors.

In ac analysis, the transfer coefficient can be real or complex. If complex, the imaginary value follows the real value. Only constants or constant expressions are valid in this case. If the source function is specified in this way, the real component is used in dc and transient analysis. This will also override a table, if given.