This is a special case of the general source specification included for backward compatibility.
The n+ is the positive node, and n- is the negative node. nc+ and nc- are the positive and negative controlling nodes, respectively.
In the first form, if the expr is a constant, it represents the linear voltage gain. If no expression is given, a unit constant value is assumed. Otherwise, the expr computes the source voltage, where the variable ``x'' if used in the expr is taken to be the controlling voltage (v(nc+,nc-)). 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 ``vol'' 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.