<chapter id="pluginsandfilters">
<title>Plugins, Fits, and Filters</title>
<para>
Plugins provide added functionality to &kst;.  By default, &kst; comes packaged with an
extensive selection of built-in plugins.  In addition, a simple and consistent interface allows for easy creation
of 3rd-party plugins.  Fits and Filters are simply subsets of the set of plugins, and thus behave identically to plugins,
with the exception of additional convenience dialog functionality accessible from the
<link linkend="theplotcontextmenu">plot context menu</link>.
</para>

<sect1 id="addingandremovingplugins">
<title>Adding and Removing Plugins</title>
<para>
By default, the built-in plugins are stored in <filename>/usr/lib/kde3/kstplugins/</filename> (this directory
may vary, depending on where you installed &kst;). The Plugin Manager can be used to add
and remove plugins.  It can be acccessed by selecting <guimenuitem>Plugins...</guimenuitem>
from the <guimenu>Settings</guimenu> menu.  A list of the currently installed plugins is displayed in the
Plugin Manager.
</para>

<para>
To add a plugin, click the <guibutton>Install...</guibutton> button.  Browse to the directory containing
both the plugin specification file (<literal role="extension">*.xml</literal>) and the object file
(<literal role="extension">*.o</literal>).  Click <guibutton>OK</guibutton>, and the plugin should be installed.
</para>

<para>
To remove a plugin, simply highlight the plugin in the Plugin Manager and click <guibutton>Remove</guibutton>.
You will be prompted for confirmation.
</para>

<para>
To quickly refresh the list of plugins displayed in the Plugin Manager, click <guibutton>Rescan</guibutton>.  Doing
so will remove any plugins no longer present in their specified paths, and add any new plugins in the default
plugins directory.
</para>

</sect1>


<sect1 id="builtinplugins">
<title>Built-in Plugins</title>
<para>
To date, there are more than 25 built-in plugins available in &kst; that perform functions from taking cross correlations
of two vectors to producing periodograms of a data set.  The settings window for every plugin consists of two
main sections&mdash;an input section and an output section. Each section is composed of a set of scalars and/or vectors.
The following screenshot shows the settings window for a typical plugin.  The only difference between the different plugins
is the set of inputs and outputs, and the mechanism for deriving the outputs from the inputs.
</para>


<screenshot>
<screeninfo>Plugins Window</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="Screenshot-kst-pluginswindow.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Plugins Windowpluginswindow</phrase>
</textobject>
</mediaobject>
</screenshot>

<para>
The following sections describe the purpose, key algorithms or formulas used to perform calculations,
and inputs and outputs for each plugin.  Note that fitting and filtering plugins are included in the following sections.
</para>


<!-- Begin the long plugins section.  -->
<sect2 id="plugin-autocorrelation">
<title>Autocorrelation</title>
<para>
The autocorrelation plugin calculates correlation values between a series (vector) and a lagged version
of itself, using lag values from <literal>floor(-(N-1)/2)</literal> to <literal>floor((N-1)/2)</literal>, where <literal>N</literal>
is the number of points in the data set.  The time
vector is not an input as it is assumed that the data is sampled at equal time intervals.  The correlation
value <literal>r</literal> at lag <literal>k</literal> is:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-autocorrelation.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Autocorrelation formula</phrase>
</textobject>
</inlinemediaobject>
</para>

<sect3 id="plugin-autocorrelation-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array <literal>x</literal> of values to calculate correlation values for.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-autocorrelation-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Step Number (vector)</term>
<listitem>
<para>
The array of step, or lag values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Correlation Value (vector)</term>
<listitem>
<para>
The array of correlation values calculated using the corresponding step number in the Step Number vector.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-bin">
<title>Bin</title>
<para>
The bin plugin bins elements of a single data vector into bins of a specified size.  The value of each bin is the mean
of the elements belonging to the bin. For example, if the bin size is <literal>3</literal>, and the input vector is
<literal>[9,2,7,3,4,74,5,322,444,2,1]</literal>, then the outputted bins would be
<literal>[6,27,257]</literal>.  Note that any elements remaining at the end of the input vector that do not form a complete
bin (in this case, elements <literal>2</literal> and <literal>1</literal>), are simply discarded.
</para>
<sect3 id="plugin-bin-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>Input Vector (vector)</term>
<listitem>
<para>
The vector to bin.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Bin Size (scalar)</term>
<listitem>
<para>
The size to use for each bin.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-bin-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Bins (vector)</term>
<listitem>
<para>
The array of means for each bin.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-butterworth_bandpass">
<title>Butterworth band-pass</title>
<para>
The Butterworth band-pass plugin filters a set of data by calculating
the Fourier transform of the data and recalculating the
the frequency responses using the following formula
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-bandpass.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Autocorrelation formula</phrase>
</textobject>
</inlinemediaobject>
</para>
<para>
where <literal>f</literal> is the frequency, <literal>f<subscript>c</subscript></literal> is
the low frequency cutoff, <literal>b</literal> is the bandwidth of the band to pass, and
<literal>n</literal> is the order of the Butterworth filter.  The inverse Fourier transform
is then calculated using the new filtered frequency responses.
</para>

<sect3 id="plugin-butterworth_bandpass-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of values to filter.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Order (scalar)</term>
<listitem>
<para>
The order of the Butterworth filter to use.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Low cutoff frequency (scalar)</term>
<listitem>
<para>
The low cutoff frequency of the Butterworth band pass filter.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Band width (scalar)</term>
<listitem>
<para>
The width of the band to pass.  This should be the difference between the desired high
cutoff frequency and the low cutoff frequency.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-butterworth_bandpass-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>X Filtered (vector)</term>
<listitem>
<para>
The array of filtered data values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-butterworth_bandstop">
<title>Butterworth band-stop</title>
<para>
The Butterworth band-stop plugin filters a set of data by calculating
the Fourier transform of the data and recalculating the
the frequency responses using the following formula
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-bandstop.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Autocorrelation formula</phrase>
</textobject>
</inlinemediaobject>
</para>
<para>
where <literal>f</literal> is the frequency, <literal>f<subscript>c</subscript></literal> is
the low frequency cutoff, <literal>b</literal> is the bandwidth of the band to stop, and
<literal>n</literal> is the order of the Butterworth filter.  The inverse Fourier transform
is then calculated using the new filtered frequency responses.
</para>
<sect3 id="plugin-butterworth_bandstop-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of values to filter.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Order (scalar)</term>
<listitem>
<para>
The order of the Butterworth filter to use.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Low cutoff frequency (scalar)</term>
<listitem>
<para>
The low cutoff frequency of the Butterworth band stop filter.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Band width (scalar)</term>
<listitem>
<para>
The width of the band to stop.  This should be the difference between the desired high
cutoff frequency and the low cutoff frequency.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-butterworth_bandstop-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>X Filtered (vector)</term>
<listitem>
<para>
The array of filtered data values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-butterworth_highpass">
<title>Butterworth high-pass</title>
<para>
The Butterworth high-pass plugin filters a set of data by calculating
the Fourier transform of the data and recalculating the
the frequency responses using the following formula
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-highpass.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Autocorrelation formula</phrase>
</textobject>
</inlinemediaobject>
</para>
<para>
where <literal>f</literal> is the frequency, <literal>f<subscript>c</subscript></literal> is
the high frequency cutoff, and
<literal>n</literal> is the order of the Butterworth filter.  The inverse Fourier transform
is then calculated using the new filtered frequency responses.
</para>
<sect3 id="plugin-butterworth_highpass-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of values to filter.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Order (scalar)</term>
<listitem>
<para>
The order of the Butterworth filter to use.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Cutoff frequency (scalar)</term>
<listitem>
<para>
The cutoff frequency of the Butterworth high pass filter.
</para>
</listitem>
</varlistentry>


</variablelist>
</sect3>

<sect3 id="plugin-butterworth_highpass-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>X Filtered (vector)</term>
<listitem>
<para>
The array of filtered data values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-butterworth_lowpass">
<title>Butterworth low-pass</title>
<para>
The Butterworth low-pass plugin filters a set of data by calculating
the Fourier transform of the data and recalculating the
the frequency responses using the following formula
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-lowpass.png" format="PNG" />
</imageobject>
<textobject>
<phrase>Autocorrelation formula</phrase>
</textobject>
</inlinemediaobject>
</para>
<para>
where <literal>f</literal> is the frequency, <literal>f<subscript>c</subscript></literal> is
the low frequency cutoff, and
<literal>n</literal> is the order of the Butterworth filter.  The inverse Fourier transform
is then calculated using the new filtered frequency responses.
</para>
<sect3 id="plugin-butterworth_lowpass-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of values to filter.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Order (scalar)</term>
<listitem>
<para>
The order of the Butterworth filter to use.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Cutoff frequency (scalar)</term>
<listitem>
<para>
The cutoff frequency of the Butterworth low pass filter.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-butterworth_lowpass-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>X Filtered (vector)</term>
<listitem>
<para>
The array of filtered data values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>




<sect2 id="plugin-chop">
<title>Chop</title>
<para>
The chop plugin takes an input vector and divides it into two vectors.  Every second element in the
input vector is placed in one output vector, while all other elements from the input vector are placed
in another output vector.
</para>

<sect3 id="plugin-chop-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>Array (vector)</term>
<listitem>
<para>
The array of values to perform the chop on.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-chop-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Odd Array (vector)</term>
<listitem>
<para>
The array containing the odd part of the input array (i.e. it contains the first element of the
input array).
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Even Array (vector)</term>
<listitem>
<para>
The array containing the even part of the input array (i.e. it does not contain the first element
of the input array).
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Difference Array (vector)</term>
<listitem>
<para>
The array containing the elements of the odd array minus the respective elements of the even array.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Index Array (vector)</term>
<listitem>
<para>
An index array the same length as the other three output arrays.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-convolution">
<title>Convolution</title>
<para>
The convolution plugin generates the convolution of one vector with another.  The convolution of two functions
<literal>f</literal> and <literal>g</literal> is given by:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-convolution.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
The order of the vectors does not matter, since <literal>f*g=g*f</literal>.  In addition,
the vectors do not need to be of the same size,
as the plugin will automatically extrapolate the smaller vector.
</para>
<sect3 id="plugin-convolution-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>Array One (vector)</term>
<listitem>
<para>
One of the pair of arrays to take the convolution of.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Array Two (vector)</term>
<listitem>
<para>
One of the pair of arrays to take the convolution of.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-convolution-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Convolved (vector)</term>
<listitem>
<para>
The convolution of the two input vectors.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>

</sect2>




<sect2 id="plugin-crosscorrelation">
<title>Crosscorrelation</title>
<para>
The crosscorrelation plugin calculates correlation values between two series (vectors) <literal>x</literal> and
<literal>y</literal>,
 using lag values from <literal>floor(-(N-1)/2)</literal> to <literal>floor((N-1)/2)</literal>, where <literal>N</literal>
is the number of elements in the longer vector.  The shorter vector is padded to the length of the
longer vector using <literal>0</literal>s.  The time
vector is not an input as it is assumed that the data is sampled at equal time intervals.  The correlation
value <literal>r</literal> at lag <literal>k</literal> is:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-crosscorrelation.png" format="PNG" />
</imageobject>
<textobject>
<phrase>crosscorrelation formula</phrase>
</textobject>
</inlinemediaobject>
</para>

<sect3 id="plugin-crosscorrelation-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array <literal>x</literal> used in the cross-correlation formula.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array <literal>y</literal> used in the cross-correlation formula.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-crosscorrelation-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Step Number (vector)</term>
<listitem>
<para>
The array of step, or lag values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Correlation Value (vector)</term>
<listitem>
<para>
The array of correlation values calculated using the corresponding step number in the Step Number vector.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>


<sect2 id="plugin-deconvolution">
<title>Deconvolution</title>
<para>
The deconvolution plugin generates the deconvolution of one vector with another.  Deconvolution is the inverse of
convolution.  Given the convolved vector <literal>h</literal> and another vector <literal>g</literal>, the deconvolution
<literal>f</literal> is given by:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-deconvolution.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
The vectors do not need to be of the same size,
as the plugin will automatically extrapolate the shorter vector.  The shorter vector is assumed to be the
response function <literal>g</literal>.
</para>
<sect3 id="plugin-deconvolution-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>Array One (vector)</term>
<listitem>
<para>
One of the pair of arrays to take the deconvolution of.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Array Two (vector)</term>
<listitem>
<para>
One of the pair of arrays to take the deconvolution of.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-deconvolution-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Deconvolved (vector)</term>
<listitem>
<para>
The deconvolution of the two input vectors.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>

</sect2>


<sect2 id="plugin-kstfit_exponential_weighted">
<title>Fit exponential weighted</title>
<para>
The Fit exponential weighted plugin performs a weighted non-linear least-squares fit
to an exponential model:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-exponentialfitequation.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>


<para>
An initial estimate of
<literal>a=1.0</literal>,
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-lambda.png" format="PNG"/>
</imageobject>
</inlinemediaobject><literal>=0</literal>, and
<literal>b=0</literal> is used. The plugin subsequently iterates to the solution
until a precision of <literal>1.0e-4</literal> is reached or 500 iterations have been performed.
</para>

<sect3 id="plugin-kstfit_exponential_weighted-inputs">
<title>Inputs</title>

<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Weights (vector)</term>
<listitem>
<para>
The array of weights to use for the fit.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>

<sect3 id="plugin-kstfit_exponential_weighted-outputs">
<title>Outputs</title>

<variablelist>

<varlistentry>
<term>Y Fitted (vector)</term>
<listitem>
<para>
The array of fitted y values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Residuals (vector)</term>
<listitem>
<para>
The array of residuals.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Parameters (vector)</term>
<listitem>
<para>
The best fit parameters <literal>a</literal>,
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-lambda.png" format="PNG"/>
</imageobject>
</inlinemediaobject>, and
<literal>b</literal>.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Covariance (vector)</term>
<listitem>
<para>
The covariance matrix of the model parameters, returned row after row in the vector.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>chi^2/nu (scalar)</term>
<listitem>
<para>
The weighted sum of squares of the residuals, divided by the degrees of freedom.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-kstfit_exponential_unweighted">
<title>Fit exponential</title>
<para>
The Fit exponential plugin is identical in function to the
<link linkend="plugin-kstfit_exponential_weighted">Fit exponential weighted</link>
plugin with the exception that the weight value <literal>w<subscript>i</subscript></literal>
is equal to <literal>1</literal> for all index values <literal>i</literal>.  As a result, the
Weights (vector) input does not exist.
</para>
</sect2>

<sect2 id="plugin-kstfit_gaussian_weighted">
<title>Fit gaussian weighted</title>
<para>
The Fit gaussian weighted plugin performs a weighted non-linear least-squares fit
to a Gaussian model:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-gaussianfitequation.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>

<para>
An initial estimate of
<literal>a=</literal>(maximum of the y values),
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-mu.png" format="PNG"/>
</imageobject>
</inlinemediaobject><literal>=</literal>(mean of the x values), and
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-sigma.png" format="PNG"/>
</imageobject>
</inlinemediaobject><literal>=</literal>(the midpoint of the x values)
is used. The plugin subsequently iterates to the solution
until a precision of <literal>1.0e-4</literal> is reached or 500 iterations have been performed.
</para>

<sect3 id="plugin-kstfit_gaussian_weighted-inputs">
<title>Inputs</title>

<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Weights (vector)</term>
<listitem>
<para>
The array of weights to use for the fit.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>

<sect3 id="plugin-kstfit_gaussian_weighted-outputs">
<title>Outputs</title>

<variablelist>

<varlistentry>
<term>Y Fitted (vector)</term>
<listitem>
<para>
The array of fitted y values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Residuals (vector)</term>
<listitem>
<para>
The array of residuals.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Parameters (vector)</term>
<listitem>
<para>
The best fit parameters
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-mu.png" format="PNG"/>
</imageobject>
</inlinemediaobject>,
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-sigma.png" format="PNG"/>
</imageobject>
</inlinemediaobject>, and
<literal>a</literal>.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Covariance (vector)</term>
<listitem>
<para>
The covariance matrix of the model parameters, returned row after row in the vector.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>chi^2/nu (scalar)</term>
<listitem>
<para>
The weighted sum of squares of the residuals, divided by the degrees of freedom.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-kstfit_gaussian_unweighted">
<title>Fit gaussian</title>
<para>
The Fit gaussian plugin is identical in function to the
<link linkend="plugin-kstfit_gaussian_weighted">Fit gaussian weighted</link>
plugin with the exception that the weight value <literal>w<subscript>i</subscript></literal>
is equal to <literal>1</literal> for all index values <literal>i</literal>.  As a result, the
Weights (vector) input does not exist.
</para>
</sect2>


<sect2 id="plugin-kstfit_gradient_weighted">
<title>Fit gradient weighted</title>
<para>
The gradient weighted plugin performs a weighted least-squares fit to a straight line
model without a constant term:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-gradientequation.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
The best-fit is found by minimizing the weighted sum of squared residuals:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-gradientsumofsquares.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
for <literal>b</literal>,
where <literal>w<subscript>i</subscript></literal> is the weight at index <literal>i</literal>.
</para>
<sect3 id="plugin-kstfit_gradient_weighted-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Weights (vector)</term>
<listitem>
<para>
The array containing weights to be used for the fit.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstfit_gradient_weighted-outputs">
<title>Outputs</title>
<variablelist>
<varlistentry>
<term>Y Fitted (vector)</term>
<listitem>
<para>
The array of y values for the points representing the best-fit line.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Residuals (vector)</term>
<listitem>
<para>
The array of residuals, or differences between the y values of the best-fit line and the y values
of the data points.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Parameters (vector)</term>
<listitem>
<para>
The parameter <literal>b</literal> of the best-fit.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Covariance (vector)</term>
<listitem>
<para>
The estimated covariance matrix, returned row after row, starting with row 0.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Lo (vector)</term>
<listitem>
<para>
The corresponding value in Y Fitted minus the standard deviation of the best-fit function at
the corresponding x value.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Hi (vector)</term>
<listitem>
<para>
The corresponding value in Y Fitted plus the standard deviation of the best-fit function at
the corresponding x value.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>chi^2/nu (scalar)</term>
<listitem>
<para>
The value of the sum of squares of the residuals, divided by the degrees of freedom.
</para>
</listitem>
</varlistentry>


</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstfit_gradient_unweighted">
<title>Fit gradient</title>
<para>
The Fit linear plugin is identical in function to the
<link linkend="plugin-kstfit_gradient_weighted">Fit gradient weighted</link>
plugin with the exception that the weight value <literal>w<subscript>i</subscript></literal>
is equal to <literal>1</literal> for all index values <literal>i</literal>.  As a result, the
Weights (vector) input does not exist.
</para>
</sect2>



<sect2 id="plugin-kstfit_linear_weighted">
<title>Fit linear weighted</title>
<para>
The Fit linear weighted plugin performs a weighted least-squares fit to a straight line model:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-linefitequation.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
The best-fit is found by minimizing the weighted sum of squared residuals:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-linefitsumofsquaredresiduals.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
for <literal>a</literal> and <literal>b</literal>,
where <literal>w<subscript>i</subscript></literal> is the weight at index <literal>i</literal>.
</para>
<sect3 id="plugin-kstfit_linear_weighted-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Weights (vector)</term>
<listitem>
<para>
The array containing weights to be used for the fit.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstfit_linear_weighted-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Y Fitted (vector)</term>
<listitem>
<para>
The array of y values for the points representing the best-fit line.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Residuals (vector)</term>
<listitem>
<para>
The array of residuals, or differences between the y values of the best-fit line and the y values
of the data points.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Parameters (vector)</term>
<listitem>
<para>
The parameters <literal>a</literal> and <literal>b</literal> of the best-fit.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Covariance (vector)</term>
<listitem>
<para>
The estimated covariance matrix, returned row after row, starting with row 0.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Lo (vector)</term>
<listitem>
<para>
The corresponding value in Y Fitted minus the standard deviation of the best-fit function at
the corresponding x value.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Hi (vector)</term>
<listitem>
<para>
The corresponding value in Y Fitted plus the standard deviation of the best-fit function at
the corresponding x value.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>chi^2/nu (scalar)</term>
<listitem>
<para>
The value of the sum of squares of the residuals, divided by the degrees of freedom.
</para>
</listitem>
</varlistentry>


</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstfit_linear_unweighted">
<title>Fit linear</title>
<para>
The Fit linear plugin is identical in function to the
<link linkend="plugin-kstfit_linear_weighted">Fit linear weighted</link>
plugin with the exception that the weight value <literal>w<subscript>i</subscript></literal>
is equal to <literal>1</literal> for all index values <literal>i</literal>.  As a result, the
Weights (vector) input does not exist.
</para>
</sect2>


<sect2 id="plugin-kstfit_lorentzian_weighted">
<title>Fit lorentzian weighted</title>
<para>
The Fit lorentzian weighted plugin performs a weighted non-linear least-squares fit
to a Lorentzian model:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-lorentzianfitequation.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>

<para>
An initial estimate of
<literal>a=</literal>(maximum of the y values),
<literal>x<subscript>0</subscript>=</literal>(mean of the x values), and
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-Gamma.png" format="PNG"/>
</imageobject>
</inlinemediaobject><literal>=</literal>(the midpoint of the x values)
is used. The plugin subsequently iterates to the solution
until a precision of <literal>1.0e-4</literal> is reached or 500 iterations have been performed.
</para>

<sect3 id="plugin-kstfit_lorentzian_weighted-inputs">
<title>Inputs</title>

<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Weights (vector)</term>
<listitem>
<para>
The array of weights to use for the fit.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>

<sect3 id="plugin-kstfit_lorentzian_weighted-outputs">
<title>Outputs</title>

<variablelist>

<varlistentry>
<term>Y Fitted (vector)</term>
<listitem>
<para>
The array of fitted y values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Residuals (vector)</term>
<listitem>
<para>
The array of residuals.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Parameters (vector)</term>
<listitem>
<para>
The best fit parameters
<literal>x<subscript>0</subscript></literal>,
<inlinemediaobject>
<imageobject>
<imagedata fileref="Symbol-kst-Gamma.png" format="PNG"/>
</imageobject>
</inlinemediaobject>, and
<literal>a</literal>.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Covariance (vector)</term>
<listitem>
<para>
The covariance matrix of the model parameters, returned row after row in the vector.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>chi^2/nu (scalar)</term>
<listitem>
<para>
The weighted sum of squares of the residuals, divided by the degrees of freedom.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

</sect2>

<sect2 id="plugin-kstfit_lorentzian_unweighted">
<title>Fit lorentzian</title>
<para>
The Fit lorentzian plugin is identical in function to the
<link linkend="plugin-kstfit_lorentzian_weighted">Fit lorentzian weighted</link>
plugin with the exception that the weight value <literal>w<subscript>i</subscript></literal>
is equal to <literal>1</literal> for all index values <literal>i</literal>.  As a result, the
Weights (vector) input does not exist.
</para>
</sect2>


<sect2 id="plugin-kstfit_polynomial_weighted">
<title>Fit polynomial weighted</title>
<para>
The Fit polynomial weighted plugin performs a weighted least-squares fit to a polynomial model:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-polynomialfitequation.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
where <literal>n</literal> is the degree of the polynomial model.
</para>

<sect3 id="plugin-kstfit_polynomial_weighted-inputs">
<title>Inputs</title>

<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Weights (vector)</term>
<listitem>
<para>
The array of weights to use for the fit.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Order (scalar)</term>
<listitem>
<para>
The order, or degree, of the polynomial model to use.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstfit_polynomial_weighted-outputs">
<title>Outputs</title>

<variablelist>

<varlistentry>
<term>Y Fitted (vector)</term>
<listitem>
<para>
The array of fitted y values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Residuals (vector)</term>
<listitem>
<para>
The array of residuals.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Parameters (vector)</term>
<listitem>
<para>
The best fit parameters <literal>c<subscript>0</subscript></literal>,
<literal>c<subscript>1</subscript></literal>,...,
<literal>c<subscript>n</subscript></literal>.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Covariance (vector)</term>
<listitem>
<para>
The covariance matrix of the model parameters, returned row after row in the vector.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>chi^2/nu (scalar)</term>
<listitem>
<para>
The weighted sum of squares of the residuals, divided by the degrees of freedom.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstfit_polynomial_unweighted">
<title>Fit polynomial</title>
<para>
The Fit polynomial plugin is identical in function to the
<link linkend="plugin-kstfit_polynomial_weighted">Fit polynomial weighted</link>
plugin with the exception that the weight value <literal>w<subscript>i</subscript></literal>
is equal to <literal>1</literal> for all index values <literal>i</literal>.  As a result, the
Weights (vector) input does not exist.
</para>
</sect2>


<sect2 id="plugin-kstfit_sinusoid_weighted">
<title>Fit sinusoid weighted</title>
<para>
The Fit sinusoid weighted plugin performs a least-squares fit to a sinusoid model:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-sinusoidfitequation.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>
<para>
where <literal>T</literal> is the specified period,
and <literal>n=2+2H</literal>, where
<literal>H</literal> is the specified number of harmonics.
</para>

<sect3 id="plugin-kstfit_sinusoid_weighted-inputs">
<title>Inputs</title>

<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values for the data points to be fitted.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Weights (vector)</term>
<listitem>
<para>
The array of weights to use for the fit.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Harmonics (scalar)</term>
<listitem>
<para>
The number of harmonics of the sinusoid to fit.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Period (scalar)</term>
<listitem>
<para>
The period of the sinusoid to fit.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstfit_sinusoid_weighted-outputs">
<title>Outputs</title>

<variablelist>

<varlistentry>
<term>Y Fitted (vector)</term>
<listitem>
<para>
The array of fitted y values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Residuals (vector)</term>
<listitem>
<para>
The array of residuals.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Parameters (vector)</term>
<listitem>
<para>
The best fit parameters <literal>c<subscript>0</subscript></literal>,
<literal>c<subscript>1</subscript></literal>,...,
<literal>c<subscript>n</subscript></literal>.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Covariance (vector)</term>
<listitem>
<para>
The covariance matrix of the model parameters, returned row after row in the vector.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>chi^2/nu (scalar)</term>
<listitem>
<para>
The weighted sum of squares of the residuals, divided by the degrees of freedom.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstfit_sinusoid_unweighted">
<title>Fit sinusoid</title>
<para>
The Fit sinusoid plugin is identical in function to the
<link linkend="plugin-kstfit_sinusoid_weighted">Fit sinusoid weighted</link>
plugin with the exception that the weight value <literal>w<subscript>i</subscript></literal>
is equal to <literal>1</literal> for all index values <literal>i</literal>.  As a result, the
Weights (vector) input does not exist.
</para>
</sect2>






<sect2 id="plugin-kstinterp_akima">
<title>Interpolation Akima spline</title>
<para>
The Interpolation Akima spline plugin generates a non-rounded Akima spline interpolation for the supplied data set,
using natural boundary conditions.
</para>

<sect3 id="plugin-kstinterp_akima-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>X' Array (vector)</term>
<listitem>
<para>
The array of x values for which interpolated y values are desired.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstinterp_akima-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Y Interpolated (vector)</term>
<listitem>
<para>
The interpolated y values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstinterp_akima_periodic">
<title>Interpolation Akima spline periodic</title>
<para>
The kstinterp akima periodic plugin generates a non-rounded Akima spline interpolation for the supplied data set,
using periodic boundary conditions.
</para>

<sect3 id="plugin-kstinterp_akima_periodic-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>X' Array (vector)</term>
<listitem>
<para>
The array of x values for which interpolated y values are desired.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstinterp_akima_periodic-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Y Interpolated (vector)</term>
<listitem>
<para>
The interpolated y values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstinterp_cspline">
<title>Interpolation cubic spline</title>
<para>
The Interpolation cubic spline plugin generates a cubic spline interpolation for the supplied data set,
using natural boundary conditions.
</para>

<sect3 id="plugin-kstinterp_cspline-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>X' Array (vector)</term>
<listitem>
<para>
The array of x values for which interpolated y values are desired.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstinterp_cspline-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Y Interpolated (vector)</term>
<listitem>
<para>
The interpolated y values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstinterp_cspline_periodic">
<title>Interpolation cubic spline periodic</title>
<para>
The Interpolation cubic spline periodic plugin generates a cubic spline interpolation for the supplied data set,
using periodic boundary conditions.
</para>

<sect3 id="plugin-kstinterp_cspline_periodic-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>X' Array (vector)</term>
<listitem>
<para>
The array of x values for which interpolated y values are desired.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstinterp_cspline_periodic-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Y Interpolated (vector)</term>
<listitem>
<para>
The interpolated y values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstinterp_linear">
<title>Interpolation linear</title>
<para>
The Interpolation linear plugin generates a linear interpolation for the supplied data set.
</para>

<sect3 id="plugin-kstinterp_linear-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>X' Array (vector)</term>
<listitem>
<para>
The array of x values for which interpolated y values are desired.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstinterp_linear-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Y Interpolated (vector)</term>
<listitem>
<para>
The interpolated y values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-kstinterp_polynomial">
<title>Interpolation polynomial</title>
<para>
The Interpolation polynomial plugin generates a polynomial interpolation for the supplied data set.
The number of terms in the polynomial used is equal to the number of points in the supplied
data set.
</para>

<sect3 id="plugin-kstinterp_polynomial-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>X Array (vector)</term>
<listitem>
<para>
The array of x values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Y Array (vector)</term>
<listitem>
<para>
The array of y values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>X' Array (vector)</term>
<listitem>
<para>
The array of x values for which interpolated y values are desired.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-kstinterp_polynomial-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Y Interpolated (vector)</term>
<listitem>
<para>
The interpolated y values.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>
<sect2 id="plugin-noise-addition">
<title>Noise Addition</title>
<para>
The Noise addition plugin adds a Gaussian random variable to each element of the input vector.
The Gaussian distribution used has a mean of <literal>0</literal> and the specified
standard deviation.  The probability density function of a Gaussian random variable is:
</para>
<para>
<inlinemediaobject>
<imageobject>
<imagedata fileref="Formula-kst-gaussianprobability.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
</para>

<sect3 id="plugin-noise-addition-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>Array (vector)</term>
<listitem>
<para>
The array of elements to which random noise is to be added.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Sigma (scalar)</term>
<listitem>
<para>
The standard deviation to use for the Gaussian distribution.
</para>
</listitem>
</varlistentry>


</variablelist>
</sect3>

<sect3 id="plugin-noiseaddition-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Output Array (vector)</term>
<listitem>
<para>
The array of elements with Gaussian noise added.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2 id="plugin-periodogram">
<title>Periodogram</title>
<para>
The periodogram plugin produces the periodogram of a given data set.  One of two algorithms is used depending on the
size of the data set&mdash;a fast algorithm is used if there are greater than 100 data points, while a slower
algorithm is used if there are less than or equal to 100 data points.
</para>

<sect3 id="plugin-periodogram-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>Time Array (vector)</term>
<listitem>
<para>
The array of time values of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Data Array (vector)</term>
<listitem>
<para>
The array of data values, dependent on the time values,
 of the data points to generate the interpolation for.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Oversampling factor (scalar)</term>
<listitem>
<para>
The factor to oversample by.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Average Nyquist frequency factor (scalar)</term>
<listitem>
<para>
The average Nyquist frequency factor.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-periodogram-outputs">
<title>Outputs</title>
<variablelist>

<varlistentry>
<term>Frequency (vector)</term>
<listitem>
<para>
The frequency vector.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Periodogram (vector)</term>
<listitem>
<para>
The frequency response vector for the periodogram.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>
</sect2>


<sect2 id="plugin-statistics">
<title>Statistics</title>
<para>
The statistics plugin calculates statistics for a given data set.  Most of the output scalars
are named such that the values they represent should be apparent.  Standard formulas are used
to calculate the statistical values.
</para>

<sect3 id="plugin-statistics-inputs">
<title>Inputs</title>
<variablelist>

<varlistentry>
<term>Data Array (vector)</term>
<listitem>
<para>
The array of data values to calculate statistics for.
</para>
</listitem>
</varlistentry>

</variablelist>
</sect3>

<sect3 id="plugin-statistics-outputs">
<title>Outputs</title>
<variablelist>
<varlistentry>
<term>Mean (scalar)</term>
<listitem>
<para>
The mean of the data values.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Minimum (scalar)</term>
<listitem>
<para>
The minimum value found in the data array.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Maximum (scalar)</term>
<listitem>
<para>
The maximum value found in the data array.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Variance (scalar)</term>
<listitem>
<para>
The variance of the data set.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Standard deviation (scalar)</term>
<listitem>
<para>
The standard deviation of the data set.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Median (scalar)</term>
<listitem>
<para>
The median of the data set.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Absolute deviation (scalar)</term>
<listitem>
<para>
The absolute deviation of the data set.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>Skewness (scalar)</term>
<listitem>
<para>
The skewness of the data set.
</para>
</listitem>
</varlistentry>


<varlistentry>
<term>Kurtosis (scalar)</term>
<listitem>
<para>
The kurtosis of the data set.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2>

<!-- End the long plugins section -->
</sect1>

</chapter>
