<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.15.0" xml:lang="en-US">
  <compounddef id="group__math__scalar" kind="group">
    <compoundname>math_scalar</compoundname>
    <title>Mathematical Functions operating on Scalar Values</title>
    <innerfile refid="functions_8h">functions.h</innerfile>
    <sectiondef kind="typedef">
      <memberdef kind="typedef" id="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" prot="public" static="no">
        <type>void *</type>
        <definition>typedef void* vrna_math_fun_dbl_opt_t</definition>
        <argsstring></argsstring>
        <name>vrna_math_fun_dbl_opt_t</name>
        <briefdescription>
<para>Option data structure type for mathematical functions. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="20" column="16" bodyfile="ViennaRNA/math/functions.h" bodystart="20" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" prot="public" static="no">
        <type><ref refid="group__fold__compound_1gab4e75b7511179095ef41dc1a8656433a" kindref="member">vrna_auxdata_free_f</ref></type>
        <definition>typedef vrna_auxdata_free_f vrna_math_fun_dbl_opt_free_f</definition>
        <argsstring></argsstring>
        <name>vrna_math_fun_dbl_opt_free_f</name>
        <briefdescription>
<para>Callback function to release any memory occupied by the mathematical function option <ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref>. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="25" column="31" bodyfile="ViennaRNA/math/functions.h" bodystart="25" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" prot="public" static="no">
        <type>double(*</type>
        <definition>typedef double(* vrna_math_fun_dbl_f) (double value, vrna_math_fun_dbl_opt_t options)</definition>
        <argsstring>)(double value, vrna_math_fun_dbl_opt_t options)</argsstring>
        <name>vrna_math_fun_dbl_f</name>
        <briefdescription>
<para>Callback function prototype for scalar mathematical functions of the form <formula id="82">$ y = f(x) $</formula>. </para>
        </briefdescription>
        <detaileddescription>
<para>This is the prototype for callback functions used for scalar mathematical functions. Its main purpose is to encapsulate the options (arguments, such as constansts, etc.) for the mathematical function and can therefore be used in a more generalized way wherever different mathematical functions may be applied in the same manner. Functions of this type have to be provided two parameters: <computeroutput>value</computeroutput> which is the value <formula id="83">$ x $</formula> that is about to be evaluated <computeroutput>options</computeroutput>, which is a pointer to a data structure that holds any means required to ensure that the callback can evaluate the provide data. The callback function then returns the transformed value <formula id="84">$ y $</formula>.</para>
<para><xrefsect id="callbacks_1_callbacks000018"><xreftitle>Notes on Callback Functions</xreftitle><xrefdescription><para><parblock><para>This callback handles mathematical functions working on scalar <emphasis>double</emphasis> values. </para>
</parblock></para>
</xrefdescription></xrefsect></para>
<para><simplesect kind="see"><para><ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref>, <ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref>, <ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref>, <ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref>, <ref refid="group__math__scalar_1gaf841692e31e5fd2433b760b5ed14a483" kindref="member">vrna_math_fun_dbl_logistic_opt()</ref>, <ref refid="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" kindref="member">vrna_math_fun_dbl_kde_opt()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>The value <formula id="83">$ x $</formula> that is to be evaluated by the function <formula id="85">$ f(x) $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to a data structure specific for the mathematical function </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The evaluated value <formula id="84">$ y $</formula> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="53" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="53" bodyend="-1"/>
      </memberdef>
    </sectiondef>
    <sectiondef kind="func">
      <memberdef kind="function" id="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double vrna_math_fun_dbl_bin</definition>
        <argsstring>(double value, double(*thresholds)[2], size_t thresholds_num, double oolb_value, double ooub_value, unsigned int options)</argsstring>
        <name>vrna_math_fun_dbl_bin</name>
        <param>
          <type>double</type>
          <declname>value</declname>
        </param>
        <param>
          <type>double(*)</type>
          <declname>thresholds</declname>
          <array>[2]</array>
        </param>
        <param>
          <type>size_t</type>
          <declname>thresholds_num</declname>
        </param>
        <param>
          <type>double</type>
          <declname>oolb_value</declname>
        </param>
        <param>
          <type>double</type>
          <declname>ooub_value</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <briefdescription>
<para>Bin a scalar input value or project it from one domain into another. </para>
        </briefdescription>
        <detaileddescription>
<para>This function can be used to map continuous data from one domain (<emphasis>source</emphasis>) into discrete or continuous data of another domain (<emphasis>target</emphasis>). User-defined domain boundaries are provided by the <computeroutput>thresholds</computeroutput> argument, which boils down to a list of pairs of values, where the first value is the boundary in the source domain. The second value is the corresponding boundary of the target domain. The first and last pair of domain boundaries denote the lower and the upper domain limits, respectively. Any value outside of these limits can either be discarded by assigning them a special out-of-bounds value (<computeroutput>oolb_value</computeroutput>, <computeroutput>ooub_value</computeroutput>), or they can be mapped directly to the domain limits. Control over this mapping is available through the <computeroutput>options</computeroutput> argument by using the binary flags <ref refid="group__math__scalar_1gab7b0967ba6639631b6d1447de510e73d" kindref="member">VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND</ref> and <ref refid="group__math__scalar_1gab22e352cebd3e8d00b1bc51cc6e6a672" kindref="member">VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND</ref>.</para>
<para>By default, the transformation maps any data within a source interval as specified by two consecutive entries in the <computeroutput>thresholds</computeroutput> argument to the exact value of the second target boundary. This process is also called <computeroutput>binning</computeroutput>. Alternatively, this implementation also allows for a continuous mapping (projection) of the source intervals into the target intervals. To activate this behavior, the <ref refid="group__math__scalar_1gab030a82b318754929df1ef0ed0b04c25" kindref="member">VRNA_MATH_FUN_BIN_OPTION_PROJECT</ref> flag must be provided to the <computeroutput>options</computeroutput> argument.</para>
<para><simplesect kind="see"><para>vrna_data_lin_transform_opt(), <ref refid="group__math__scalar_1gafb1606ea2edde49f8d709db6a5230f26" kindref="member">VRNA_MATH_FUN_BIN_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1gab030a82b318754929df1ef0ed0b04c25" kindref="member">VRNA_MATH_FUN_BIN_OPTION_PROJECT</ref>, <ref refid="group__math__scalar_1gab7b0967ba6639631b6d1447de510e73d" kindref="member">VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND</ref>, <ref refid="group__math__scalar_1gab22e352cebd3e8d00b1bc51cc6e6a672" kindref="member">VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND</ref>, <ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__math__scalar_1ga76920f4485c1b63bea447f71fc76b53b" kindref="member">vrna_math_fun_dbl_kde()</ref>, <ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>value</parametername>
</parameternamelist>
<parameterdescription>
<para>The input value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>thresholds</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to an array of data pairs holding the source and target domain boundaries </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>thresholds_num</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of domain boundary pairs available in <computeroutput>thresholds</computeroutput> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>oolb_value</parametername>
</parameternamelist>
<parameterdescription>
<para>Out-of-lower-bound value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ooub_value</parametername>
</parameternamelist>
<parameterdescription>
<para>Out-of-upper-bound value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of this function </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The projection of the input value into the target domain </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="122" column="1" declfile="ViennaRNA/math/functions.h" declline="122" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_bin_opt</definition>
        <argsstring>(double(*thresholds)[2], unsigned int thresholds_num, double oolb_value, double ooub_value, unsigned int options, vrna_math_fun_dbl_opt_t *fun_options_p, vrna_math_fun_dbl_opt_free_f *fun_options_free)</argsstring>
        <name>vrna_math_fun_dbl_bin_opt</name>
        <param>
          <type>double(*)</type>
          <declname>thresholds</declname>
          <array>[2]</array>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>thresholds_num</declname>
        </param>
        <param>
          <type>double</type>
          <declname>oolb_value</declname>
        </param>
        <param>
          <type>double</type>
          <declname>ooub_value</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref> *</type>
          <declname>fun_options_free</declname>
        </param>
        <briefdescription>
<para>Retrieve a function pointer that performs (discrete) binning and more. </para>
        </briefdescription>
        <detaileddescription>
<para>This function yields a linear data transform callback and the associated transform options data structure suitable for usage in <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>. The transformation this callback performs can be described as (discrete) binning or data bucketing and essentially encapsulates the <ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref> function.</para>
<para>The <computeroutput>fun_options_p</computeroutput> and <computeroutput>fun_options_free</computeroutput> pointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref> function and a function pointer to release the memory of the option data structure once it is not required anymore.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref>, <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>, <ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref>, <ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref>, <ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref>, <ref refid="group__math__scalar_1gafb1606ea2edde49f8d709db6a5230f26" kindref="member">VRNA_MATH_FUN_BIN_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1gab030a82b318754929df1ef0ed0b04c25" kindref="member">VRNA_MATH_FUN_BIN_OPTION_PROJECT</ref>, <ref refid="group__math__scalar_1gab7b0967ba6639631b6d1447de510e73d" kindref="member">VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND</ref>, <ref refid="group__math__scalar_1gab22e352cebd3e8d00b1bc51cc6e6a672" kindref="member">VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND</ref>, <ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref>, <ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref>, <ref refid="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" kindref="member">vrna_math_fun_dbl_kde_opt()</ref>, <ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>thresholds</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to an array of data pairs holding the source and target domain boundaries </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>thresholds_num</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of domain boundary pairs available in <computeroutput>thresholds</computeroutput> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>oolb_value</parametername>
</parameternamelist>
<parameterdescription>
<para>Out-of-lower-bound value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ooub_value</parametername>
</parameternamelist>
<parameterdescription>
<para>Out-of-upper-bound value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_p</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the options data structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_free</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the <computeroutput>free</computeroutput> function that releases the memory of the options data structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A callback function that performs (discrete) data binning </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="160" column="1" declfile="ViennaRNA/math/functions.h" declline="160" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double vrna_math_fun_dbl_linear</definition>
        <argsstring>(double x, double slope, double intercept, unsigned int options)</argsstring>
        <name>vrna_math_fun_dbl_linear</name>
        <param>
          <type>double</type>
          <declname>x</declname>
        </param>
        <param>
          <type>double</type>
          <declname>slope</declname>
        </param>
        <param>
          <type>double</type>
          <declname>intercept</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <briefdescription>
<para>Transform a scalar input value through a linear function. </para>
        </briefdescription>
        <detaileddescription>
<para>This function can be used to transform an input value (parameter <computeroutput>x</computeroutput>) into an output value by applying a linear function of the form <formula id="86">\[ y = a + b \cdot f(x) \]</formula> where <formula id="83">$ x $</formula> is the input value (<computeroutput>source</computeroutput>), <formula id="87">$ a $</formula> and <formula id="88">$ b $</formula> are <emphasis>intercept</emphasis> and <emphasis>slope</emphasis>, and <formula id="84">$ y $</formula> is the output value (<computeroutput>target</computeroutput>). By default, the function <formula id="89">$ f(x) = x $</formula> is the identity function. However, the callback can be instructed to apply a log-transform, <formula id="90">$ f(x) = log x $</formula>, instead. Control over the behavior of <formula id="85">$ f(x) $</formula> can be gained by providing a corresponding option flag to the <computeroutput>options</computeroutput> argument, e.g. <ref refid="group__math__scalar_1ga5e890f3cf4bfc8a47e354f4bebf21d67" kindref="member">VRNA_MATH_FUN_LINEAR_OPTION_LOG</ref>.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref>, <ref refid="group__math__scalar_1ga8e25afdcc662c6accbb21e28cd3ce4fc" kindref="member">VRNA_MATH_FUN_LINEAR_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga5e890f3cf4bfc8a47e354f4bebf21d67" kindref="member">VRNA_MATH_FUN_LINEAR_OPTION_LOG</ref>, <ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__math__scalar_1ga76920f4485c1b63bea447f71fc76b53b" kindref="member">vrna_math_fun_dbl_kde()</ref>, <ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>x</parametername>
</parameternamelist>
<parameterdescription>
<para>The input value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>slope</parametername>
</parameternamelist>
<parameterdescription>
<para>The slope of the linear function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>intercept</parametername>
</parameternamelist>
<parameterdescription>
<para>The intercept of the linear function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The transformed output value <formula id="84">$ y $</formula> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="207" column="1" declfile="ViennaRNA/math/functions.h" declline="207" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_linear_opt</definition>
        <argsstring>(double slope, double intercept, unsigned int options, vrna_math_fun_dbl_opt_t *fun_options_p, vrna_math_fun_dbl_opt_free_f *fun_options_free)</argsstring>
        <name>vrna_math_fun_dbl_linear_opt</name>
        <param>
          <type>double</type>
          <declname>slope</declname>
        </param>
        <param>
          <type>double</type>
          <declname>intercept</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref> *</type>
          <declname>fun_options_free</declname>
        </param>
        <briefdescription>
<para>Retrieve a function pointer that applies a linear function. </para>
        </briefdescription>
        <detaileddescription>
<para>This function yields a linear data transform callback and the associated transform options data structure suitable for usage in <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>. The callback applies a linear function <formula id="91">$ y = a + b \cdot f(x) $</formula> and essentially encapsulates the <ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref> function.</para>
<para>The <computeroutput>fun_options_p</computeroutput> and <computeroutput>fun_options_free</computeroutput> pointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref> function and a function pointer to release the memory of the option data structure once it is not required anymore.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>, <ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref>, <ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref>, <ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref>, <ref refid="group__math__scalar_1ga8e25afdcc662c6accbb21e28cd3ce4fc" kindref="member">VRNA_MATH_FUN_LINEAR_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga5e890f3cf4bfc8a47e354f4bebf21d67" kindref="member">VRNA_MATH_FUN_LINEAR_OPTION_LOG</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref>, <ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref>, <ref refid="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" kindref="member">vrna_math_fun_dbl_kde_opt()</ref>, <ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>slope</parametername>
</parameternamelist>
<parameterdescription>
<para>The slope of the linear function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>intercept</parametername>
</parameternamelist>
<parameterdescription>
<para>The intercept of the linear function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_p</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the options data structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_free</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the <computeroutput>free</computeroutput> function that releases the memory of the options data structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A callback function that performs transformation through a linear model </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="240" column="1" declfile="ViennaRNA/math/functions.h" declline="240" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double vrna_math_fun_dbl_log</definition>
        <argsstring>(double x, double base, double oob_value, unsigned int options)</argsstring>
        <name>vrna_math_fun_dbl_log</name>
        <param>
          <type>double</type>
          <declname>x</declname>
        </param>
        <param>
          <type>double</type>
          <declname>base</declname>
        </param>
        <param>
          <type>double</type>
          <declname>oob_value</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <briefdescription>
<para>Transform a scalar input value through a logarithmic function. </para>
        </briefdescription>
        <detaileddescription>
<para>This function transforms a scalar input value by computing the logarithm function <formula id="92">\[ y = \log_b x \]</formula> where <formula id="83">$ x $</formula> is the input value (<computeroutput>source</computeroutput>), <formula id="88">$ b $</formula> is the base, and <formula id="84">$ y $</formula> is the output value (<computeroutput>target</computeroutput>). By default, the <emphasis>natural</emphasis> logarithm is used, i.e. <formula id="93">$ b = \mathrm{e} $</formula>. The <computeroutput>base</computeroutput> argument in combination with the <ref refid="group__math__scalar_1ga7c48f101dd70109bb71a3a7632a6a950" kindref="member">VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE</ref> flag supplied to the <computeroutput>options</computeroutput> argument can be used to change the base to any other number.</para>
<para>The function returns the user-specified out-of-bounds value <computeroutput>oob_value</computeroutput> if <formula id="94">$ x \le 0 $</formula>.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref>, <ref refid="group__math__scalar_1ga7cd1087906af31b97c0feccd41414233" kindref="member">VRNA_MATH_FUN_LOG_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga7c48f101dd70109bb71a3a7632a6a950" kindref="member">VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE</ref>, <ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__math__scalar_1ga76920f4485c1b63bea447f71fc76b53b" kindref="member">vrna_math_fun_dbl_kde()</ref>, <ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>x</parametername>
</parameternamelist>
<parameterdescription>
<para>The input value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>base</parametername>
</parameternamelist>
<parameterdescription>
<para>The base <formula id="88">$ b $</formula> of the logarithm (only used if <ref refid="group__math__scalar_1ga7c48f101dd70109bb71a3a7632a6a950" kindref="member">VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE</ref> is passed to <computeroutput>options</computeroutput> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>oob_value</parametername>
</parameternamelist>
<parameterdescription>
<para>Out-of-bound value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The transformed <emphasis>target</emphasis> value <formula id="84">$ y $</formula> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="287" column="1" declfile="ViennaRNA/math/functions.h" declline="287" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_log_opt</definition>
        <argsstring>(double value_shift, double base, double oob_value, unsigned int options, vrna_math_fun_dbl_opt_t *fun_options_p, vrna_math_fun_dbl_opt_free_f *fun_options_free)</argsstring>
        <name>vrna_math_fun_dbl_log_opt</name>
        <param>
          <type>double</type>
          <declname>value_shift</declname>
        </param>
        <param>
          <type>double</type>
          <declname>base</declname>
        </param>
        <param>
          <type>double</type>
          <declname>oob_value</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref> *</type>
          <declname>fun_options_free</declname>
        </param>
        <briefdescription>
<para>Retrieve a function pointer a logarithmic function. </para>
        </briefdescription>
        <detaileddescription>
<para>This function yields a linear data transform callback and the associated transform options data structure suitable for usage in <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>. The callback applies a logarithmic function <formula id="95">$ y = \log_b (x + c) $</formula> and essentially encapsulates the <ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref> function. Note, that here, the <computeroutput>value_shift</computeroutput> argument corresponds to <formula id="96">$ c $</formula> in the above formula and in most cases should be <computeroutput>0</computeroutput>. The callback then returns the out-of-bounds value <computeroutput>oob_value</computeroutput> if <formula id="97">$ x + c \le 0 $</formula>.</para>
<para>The <computeroutput>fun_options_p</computeroutput> and <computeroutput>fun_options_free</computeroutput> pointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref> function and a function pointer to release the memory of the option data structure once it is not required anymore.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>, <ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref>, <ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref>, <ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref>, <ref refid="group__math__scalar_1ga7cd1087906af31b97c0feccd41414233" kindref="member">VRNA_MATH_FUN_LOG_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga7c48f101dd70109bb71a3a7632a6a950" kindref="member">VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref>, <ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref>, <ref refid="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" kindref="member">vrna_math_fun_dbl_kde_opt()</ref>, <ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>value_shift</parametername>
</parameternamelist>
<parameterdescription>
<para>The shift value <formula id="96">$ c $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>base</parametername>
</parameternamelist>
<parameterdescription>
<para>The base <formula id="88">$ b $</formula> of the logarithm (only used if <ref refid="group__math__scalar_1ga7c48f101dd70109bb71a3a7632a6a950" kindref="member">VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE</ref> is passed to <computeroutput>options</computeroutput> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>oob_value</parametername>
</parameternamelist>
<parameterdescription>
<para>Out-of-bound value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_p</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the options data structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_free</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the <computeroutput>free</computeroutput> function that releases the memory of the options data structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A callback function that performs transformation through a linear model </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="323" column="1" declfile="ViennaRNA/math/functions.h" declline="323" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga220d981d484b50a1ec23b84600faf28c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double vrna_math_fun_dbl_logistic</definition>
        <argsstring>(double x, double mid_point, double supremum, double growth_rate, unsigned int options)</argsstring>
        <name>vrna_math_fun_dbl_logistic</name>
        <param>
          <type>double</type>
          <declname>x</declname>
        </param>
        <param>
          <type>double</type>
          <declname>mid_point</declname>
        </param>
        <param>
          <type>double</type>
          <declname>supremum</declname>
        </param>
        <param>
          <type>double</type>
          <declname>growth_rate</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <briefdescription>
<para>Transform a scalar input value through a logistic function. </para>
        </briefdescription>
        <detaileddescription>
<para>This function transforms a scalar input value by applying a logistic function of the form <formula id="98">\[ y = \frac{L}{1 + e^{-k \cdot (x - x_0)}}  \]</formula> where <formula id="83">$ x $</formula> is the input value (<computeroutput>source</computeroutput>), <formula id="99">$ x_0 $</formula> is the mid point (<computeroutput>mid_point</computeroutput>) of the function, <formula id="100">$ k $</formula> is the logistic growth rate (<computeroutput>growth_rate</computeroutput>), and <formula id="101">$ L $</formula> is the supremum (or carrying capacity) of the function (<computeroutput>supremum</computeroutput>). The standard logistic function is defined as <formula id="102">$ L = 1 $</formula>, <formula id="103">$ k = 1 $</formula>. and <formula id="104">$ x_0 = 0 $</formula>, i.e. <formula id="105">\[ y = \frac{1}{1 + e^{-x}} \]</formula></para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1gaf841692e31e5fd2433b760b5ed14a483" kindref="member">vrna_math_fun_dbl_logistic_opt()</ref>, <ref refid="group__math__scalar_1ga21bb45958897eddb6282e118a4a313d8" kindref="member">VRNA_MATH_FUN_LOGISTIC_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref>, <ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__math__scalar_1ga76920f4485c1b63bea447f71fc76b53b" kindref="member">vrna_math_fun_dbl_kde()</ref>, <ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>x</parametername>
</parameternamelist>
<parameterdescription>
<para>The input value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>mid_point</parametername>
</parameternamelist>
<parameterdescription>
<para>The midpoint of the function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>supremum</parametername>
</parameternamelist>
<parameterdescription>
<para>The supremum of the function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>growth_rate</parametername>
</parameternamelist>
<parameterdescription>
<para>The growth rate of the function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The transformed <emphasis>target</emphasis> value <formula id="84">$ y $</formula> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="362" column="1" declfile="ViennaRNA/math/functions.h" declline="362" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1gaf841692e31e5fd2433b760b5ed14a483" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_logistic_opt</definition>
        <argsstring>(double mid_point, double supremum, double growth_rate, unsigned int options, vrna_math_fun_dbl_opt_t *fun_options_p, vrna_math_fun_dbl_opt_free_f *fun_options_free)</argsstring>
        <name>vrna_math_fun_dbl_logistic_opt</name>
        <param>
          <type>double</type>
          <declname>mid_point</declname>
        </param>
        <param>
          <type>double</type>
          <declname>supremum</declname>
        </param>
        <param>
          <type>double</type>
          <declname>growth_rate</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref> *</type>
          <declname>fun_options_free</declname>
        </param>
        <briefdescription>
<para>Retrieve a function pointer that applies a logistic function. </para>
        </briefdescription>
        <detaileddescription>
<para>This function yields a linear data transform callback and the associated transform options data structure suitable for usage in <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>. The callback applies a logistic function of the form <formula id="98">\[ y = \frac{L}{1 + e^{-k \cdot (x - x_0)}}  \]</formula> and essentially encapsulates the <ref refid="group__math__scalar_1ga220d981d484b50a1ec23b84600faf28c" kindref="member">vrna_math_fun_dbl_logistic()</ref> function.</para>
<para>The <computeroutput>fun_options_p</computeroutput> and <computeroutput>fun_options_free</computeroutput> pointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref> function and a function pointer to release the memory of the option data structure once it is not required anymore.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga220d981d484b50a1ec23b84600faf28c" kindref="member">vrna_math_fun_dbl_logistic()</ref>, <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>, <ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref>, <ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref>, <ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref>, <ref refid="group__math__scalar_1ga21bb45958897eddb6282e118a4a313d8" kindref="member">VRNA_MATH_FUN_LOGISTIC_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref>, <ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref>, <ref refid="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" kindref="member">vrna_math_fun_dbl_kde_opt()</ref>, <ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref>, <ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>mid_point</parametername>
</parameternamelist>
<parameterdescription>
<para>The midpoint of the function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>supremum</parametername>
</parameternamelist>
<parameterdescription>
<para>The supremum of the function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>growth_rate</parametername>
</parameternamelist>
<parameterdescription>
<para>The growth rate of the function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_p</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the options data structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_free</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the <computeroutput>free</computeroutput> function that releases the memory of the options data structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A callback function that performs transformation through a logistic function </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="398" column="1" declfile="ViennaRNA/math/functions.h" declline="398" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga76920f4485c1b63bea447f71fc76b53b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double vrna_math_fun_dbl_kde</definition>
        <argsstring>(double x, double *samples, size_t num_samples, vrna_math_fun_dbl_f kernel, vrna_math_fun_dbl_opt_t kernel_data, double bandwidth, unsigned int options)</argsstring>
        <name>vrna_math_fun_dbl_kde</name>
        <param>
          <type>double</type>
          <declname>x</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>samples</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>num_samples</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
          <declname>kernel</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref></type>
          <declname>kernel_data</declname>
        </param>
        <param>
          <type>double</type>
          <declname>bandwidth</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <briefdescription>
<para>Estimate the probability density for a scalar input value through kernel density estimation (KDE). </para>
        </briefdescription>
        <detaileddescription>
<para>This function estimates the probability density function of a random input variable given a set of samples and a smoothing kernel. The estiamte of the probability density for a random variable <formula id="83">$ x $</formula> is then of the form <formula id="106">\[ y = \hat{f}_h(x) = \frac{1}{n \cdot h} \sum_{i = 1}^{n} K \big( \frac{x - x_i}{h} \big) \]</formula> with a set of <formula id="107">$ n &gt; 0 $</formula> samples <formula id="108">$ \{ x_1, x_2, \ldots, x_n \} $</formula> (<computeroutput>samples</computeroutput>), <formula id="109">$ K $</formula> (<computeroutput>kernel</computeroutput>) as a non-negative kernel function, and <formula id="110">$ h &gt; 0 $</formula> is the bandwidth (<computeroutput>bandwidth</computeroutput>).</para>
<para><simplesect kind="note"><para>If no kernel is provided, i.e. <computeroutput>NULL</computeroutput> is passed to <computeroutput>kernel</computeroutput>, the KDE uses a standard Gaussian kernel by providing <ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref> with <formula id="111">$ a = \frac{1}{\sqrt{2 \pi}}, b = 0, c = 1 $</formula>. In this case, the bandwidth (<computeroutput>bandwidth</computeroutput>) will be automatically replaced by a rule-of-thumb bandwidth estimator <formula id="112">$ h = ( \frac{4}{3n} )^{\frac{1}{5}} $</formula></para>
</simplesect>
<simplesect kind="see"><para><ref refid="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" kindref="member">vrna_math_fun_dbl_kde_opt()</ref>, <ref refid="group__math__scalar_1ga401779ee387779908f369100bbfd0eff" kindref="member">VRNA_MATH_FUN_KDE_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref>, <ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__math__scalar_1ga220d981d484b50a1ec23b84600faf28c" kindref="member">vrna_math_fun_dbl_logistic()</ref>, <ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>x</parametername>
</parameternamelist>
<parameterdescription>
<para>The input value </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>samples</parametername>
</parameternamelist>
<parameterdescription>
<para>The samples of the distribution to estimate <formula id="108">$ \{ x_1, x_2, \ldots, x_n \} $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>num_samples</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of samples ( <formula id="113">$ n $</formula>) provided by pointer <computeroutput>samples</computeroutput> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>kernel</parametername>
</parameternamelist>
<parameterdescription>
<para>The kernel function <formula id="109">$ K $</formula> (maybe <computeroutput>NULL</computeroutput>) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>kernel_data</parametername>
</parameternamelist>
<parameterdescription>
<para>The data that should be passed-through to the kernel function (maybe <computeroutput>NULL</computeroutput>) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bandwidth</parametername>
</parameternamelist>
<parameterdescription>
<para>The bandwidth <formula id="114">$ h $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The estimated probability density <formula id="115">$ \hat{f}_h(x) $</formula> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="445" column="1" declfile="ViennaRNA/math/functions.h" declline="445" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_kde_opt</definition>
        <argsstring>(double *samples, size_t num_samples, vrna_math_fun_dbl_f kernel, vrna_math_fun_dbl_opt_t kernel_data, vrna_math_fun_dbl_opt_free_f kernel_data_free, double bandwidth, unsigned int options, vrna_math_fun_dbl_opt_t *fun_options_p, vrna_math_fun_dbl_opt_free_f *fun_options_free)</argsstring>
        <name>vrna_math_fun_dbl_kde_opt</name>
        <param>
          <type>double *</type>
          <declname>samples</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>num_samples</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
          <declname>kernel</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref></type>
          <declname>kernel_data</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref></type>
          <declname>kernel_data_free</declname>
        </param>
        <param>
          <type>double</type>
          <declname>bandwidth</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref> *</type>
          <declname>fun_options_free</declname>
        </param>
        <briefdescription>
<para>Retrieve a callback function that applies a kernel density estimation (KDE). </para>
        </briefdescription>
        <detaileddescription>
<para>This function yields a linear data transform callback and the associated transform options data structure suitable for usage in <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>. The callback applies a kernel density estimation (KDE) and essentially encapsulates the <ref refid="group__math__scalar_1ga76920f4485c1b63bea447f71fc76b53b" kindref="member">vrna_math_fun_dbl_kde()</ref> function.</para>
<para><simplesect kind="note"><para>Whenever the <computeroutput>fun_options_free</computeroutput> callback will be called, this function also releases the memory occupied by <computeroutput>kernel_data</computeroutput> through the <computeroutput>kernel_data_free</computeroutput> function if it is provided, i.e. not <computeroutput>NULL</computeroutput>.</para>
</simplesect>
The <computeroutput>fun_options_p</computeroutput> and <computeroutput>fun_options_free</computeroutput> pointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref> function and a function pointer to release the memory of the option data structure once it is not required anymore.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga220d981d484b50a1ec23b84600faf28c" kindref="member">vrna_math_fun_dbl_logistic()</ref>, <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>, <ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref>, <ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref>, <ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref>, <ref refid="group__math__scalar_1ga401779ee387779908f369100bbfd0eff" kindref="member">VRNA_MATH_FUN_KDE_OPTION_DEFAULT</ref>, <ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref>, <ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref>, <ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref>, <ref refid="group__math__scalar_1gaf841692e31e5fd2433b760b5ed14a483" kindref="member">vrna_math_fun_dbl_logistic_opt</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>samples</parametername>
</parameternamelist>
<parameterdescription>
<para>The samples of the distribution to estimate <formula id="108">$ \{ x_1, x_2, \ldots, x_n \} $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>num_samples</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of samples ( <formula id="113">$ n $</formula>) provided by pointer <computeroutput>samples</computeroutput> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>kernel</parametername>
</parameternamelist>
<parameterdescription>
<para>The kernel function <formula id="109">$ K $</formula> (maybe <computeroutput>NULL</computeroutput>) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>kernel_data</parametername>
</parameternamelist>
<parameterdescription>
<para>The data that should be passed-through to the kernel function (maybe <computeroutput>NULL</computeroutput>) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>kernel_data_free</parametername>
</parameternamelist>
<parameterdescription>
<para>A function to free the memory occupied by the data for the kernel function (maybe <computeroutput>NULL</computeroutput>) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>bandwidth</parametername>
</parameternamelist>
<parameterdescription>
<para>The bandwidth <formula id="114">$ h $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_p</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the options data structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_free</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the <computeroutput>free</computeroutput> function that releases the memory of the options data structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A callback function that performs transformation through kernel density estimation </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="489" column="1" declfile="ViennaRNA/math/functions.h" declline="489" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>double</type>
        <definition>double vrna_math_fun_dbl_gaussian</definition>
        <argsstring>(double x, double a, double b, double c)</argsstring>
        <name>vrna_math_fun_dbl_gaussian</name>
        <param>
          <type>double</type>
          <declname>x</declname>
        </param>
        <param>
          <type>double</type>
          <declname>a</declname>
        </param>
        <param>
          <type>double</type>
          <declname>b</declname>
        </param>
        <param>
          <type>double</type>
          <declname>c</declname>
        </param>
        <briefdescription>
<para>Evaluate a Gaussian function for a scalar input value. </para>
        </briefdescription>
        <detaileddescription>
<para>This function applies a Gaussian function of the form <formula id="116">\[ y = f(x) = a \cdot \exp(- \frac{(x - b)^2}{2 c^2}) \]</formula> with arbitrary constants <formula id="117">$ a, b $</formula> and non-zero <formula id="96">$ c $</formula> to a scalar input value <formula id="83">$ x $</formula>.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>x</parametername>
</parameternamelist>
<parameterdescription>
<para>The input value <formula id="83">$ x $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>a</parametername>
</parameternamelist>
<parameterdescription>
<para>The arbitrary constant <formula id="87">$ a $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>b</parametername>
</parameternamelist>
<parameterdescription>
<para>The arbitrary constant <formula id="88">$ b $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>c</parametername>
</parameternamelist>
<parameterdescription>
<para>The arbitrary non-zero constant <formula id="96">$ c $</formula> </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The evaluation for the Gaussian function <formula id="82">$ y = f(x) $</formula> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="524" column="1" declfile="ViennaRNA/math/functions.h" declline="524" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_gaussian_opt</definition>
        <argsstring>(double a, double b, double c, unsigned int options, vrna_math_fun_dbl_opt_t *fun_options_p, vrna_math_fun_dbl_opt_free_f *fun_options_free)</argsstring>
        <name>vrna_math_fun_dbl_gaussian_opt</name>
        <param>
          <type>double</type>
          <declname>a</declname>
        </param>
        <param>
          <type>double</type>
          <declname>b</declname>
        </param>
        <param>
          <type>double</type>
          <declname>c</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref> *</type>
          <declname>fun_options_free</declname>
        </param>
        <briefdescription>
<para>Retrieve a function pointer that applies Gaussian function. </para>
        </briefdescription>
        <detaileddescription>
<para>This function yields a linear data transform callback and the associated transform options data structure suitable for usage in <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>. The callback applies a Gaussian function of the form <formula id="118">\[ y = a \cdot \exp(- \frac{(x - b)^2}{2 c^2}) \]</formula> with arbitrary constants <formula id="117">$ a, b $</formula> and non-zero <formula id="96">$ c $</formula> and <formula id="83">$ x $</formula> being the input value (<computeroutput>source</computeroutput>).</para>
<para>The <computeroutput>fun_options_p</computeroutput> and <computeroutput>fun_options_free</computeroutput> pointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref> function and a function pointer to release the memory of the option data structure once it is not required anymore.</para>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref>, <ref refid="group__data__utils_1ga5d49c7cddf8e50aec0b0921bb735fff0" kindref="member">vrna_data_lin_transform()</ref>, <ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref>, <ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref>, <ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref>, <ref refid="group__math__scalar_1ga9c3b4114b08efa1ef18360d99867c264" kindref="member">VRNA_MATH_FUN_GAUSSIAN_OPTION_DEFAULT</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>a</parametername>
</parameternamelist>
<parameterdescription>
<para>The arbitrary constant <formula id="87">$ a $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>b</parametername>
</parameternamelist>
<parameterdescription>
<para>The arbitrary constant <formula id="88">$ b $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>c</parametername>
</parameternamelist>
<parameterdescription>
<para>The arbitrary non-zero constant <formula id="96">$ c $</formula> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>Additional options that change the behavior of the callback function </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_p</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the options data structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>fun_options_free</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to store the address of the <computeroutput>free</computeroutput> function that releases the memory of the options data structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A callback function that performs transformation through a Gaussian function </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="558" column="1" declfile="ViennaRNA/math/functions.h" declline="558" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga958315ca0155754b043b55c092c2cd1c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_chain</definition>
        <argsstring>(vrna_math_fun_dbl_f first_f, vrna_math_fun_dbl_opt_t first_f_opt, vrna_math_fun_dbl_opt_free_f first_f_opt_free, vrna_math_fun_dbl_opt_t *fun_options_p, vrna_math_fun_dbl_opt_free_f *fun_options_free)</argsstring>
        <name>vrna_math_fun_dbl_chain</name>
        <param>
          <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
          <declname>first_f</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref></type>
          <declname>first_f_opt</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref></type>
          <declname>first_f_opt_free</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref> *</type>
          <declname>fun_options_free</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="567" column="1" declfile="ViennaRNA/math/functions.h" declline="567" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga90d5519e97f6c66dee14644e0376010b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t vrna_math_fun_dbl_chain_append</definition>
        <argsstring>(vrna_math_fun_dbl_opt_t chain_opt, vrna_math_fun_dbl_f f, vrna_math_fun_dbl_opt_t f_opt, vrna_math_fun_dbl_opt_free_f f_opt_free)</argsstring>
        <name>vrna_math_fun_dbl_chain_append</name>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref></type>
          <declname>chain_opt</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
          <declname>f</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref></type>
          <declname>f_opt</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga8a609e60df9775ae99eb5c29f9bfb7a8" kindref="member">vrna_math_fun_dbl_opt_free_f</ref></type>
          <declname>f_opt_free</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="575" column="1" declfile="ViennaRNA/math/functions.h" declline="575" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1ga3ba2a54b0e501f7a30915311ae8393a6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t vrna_math_fun_dbl_chain_size</definition>
        <argsstring>(vrna_math_fun_dbl_opt_t chain)</argsstring>
        <name>vrna_math_fun_dbl_chain_size</name>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref></type>
          <declname>chain</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="582" column="1" declfile="ViennaRNA/math/functions.h" declline="582" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__math__scalar_1gabb5b3b74363250bc122b7aa9af1ebe03" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="group__math__scalar_1ga868f4010e57fb868ce11804b77f04c2f" kindref="member">vrna_math_fun_dbl_f</ref></type>
        <definition>vrna_math_fun_dbl_f vrna_math_fun_dbl_chain_at</definition>
        <argsstring>(vrna_math_fun_dbl_opt_t chain, size_t pos, vrna_math_fun_dbl_opt_t *fun_options_p)</argsstring>
        <name>vrna_math_fun_dbl_chain_at</name>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref></type>
          <declname>chain</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>pos</declname>
        </param>
        <param>
          <type><ref refid="group__math__scalar_1ga486680b7d43688e2bcbec959a547ffee" kindref="member">vrna_math_fun_dbl_opt_t</ref> *</type>
          <declname>fun_options_p</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="586" column="1" declfile="ViennaRNA/math/functions.h" declline="586" declcolumn="1"/>
      </memberdef>
    </sectiondef>
    <sectiondef kind="define">
      <memberdef kind="define" id="group__math__scalar_1gab030a82b318754929df1ef0ed0b04c25" prot="public" static="no">
        <name>VRNA_MATH_FUN_BIN_OPTION_PROJECT</name>
        <initializer>(1 &lt;&lt; 0)</initializer>
        <briefdescription>
<para>Options flag for linear data binning to activate data projection (mapping) instead of actual binning. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="61" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="61" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1gab7b0967ba6639631b6d1447de510e73d" prot="public" static="no">
        <name>VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND</name>
        <initializer>(1 &lt;&lt; 1)</initializer>
        <briefdescription>
<para>Options flag for linear data binning to indicate that values out-of-upper-bound are to be mapped to the respective domain limit. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="68" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="68" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1gab22e352cebd3e8d00b1bc51cc6e6a672" prot="public" static="no">
        <name>VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND</name>
        <initializer>(1 &lt;&lt; 2)</initializer>
        <briefdescription>
<para>Options flag for linear data binning to indicate that values out-of-lower-bound are to be mapped to the respective domain limit. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="75" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="75" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1gafb1606ea2edde49f8d709db6a5230f26" prot="public" static="no">
        <name>VRNA_MATH_FUN_BIN_OPTION_DEFAULT</name>
        <initializer>0U</initializer>
        <briefdescription>
<para>Options flag for linear data binning to indicate default settings. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga7acf42960e8dafb7571181c0f4c77198" kindref="member">vrna_math_fun_dbl_bin()</ref>, <ref refid="group__math__scalar_1ga962c58ab7c8ebd6864715d91ee40667e" kindref="member">vrna_math_fun_dbl_bin_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="82" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="82" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1ga5e890f3cf4bfc8a47e354f4bebf21d67" prot="public" static="no">
        <name>VRNA_MATH_FUN_LINEAR_OPTION_LOG</name>
        <initializer>(1 &lt;&lt; 0)</initializer>
        <briefdescription>
<para>Options flag for transforming linear data using a linear function that enables log-transform of the source value. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="173" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="173" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1ga8e25afdcc662c6accbb21e28cd3ce4fc" prot="public" static="no">
        <name>VRNA_MATH_FUN_LINEAR_OPTION_DEFAULT</name>
        <initializer>0U</initializer>
        <briefdescription>
<para>Options flag for transforming linear data using linear function that indicates default settings. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga3132cc0f91336f5491d89bb7640214e3" kindref="member">vrna_math_fun_dbl_linear()</ref>, <ref refid="group__math__scalar_1ga675b6bb517cfc29f92eca8942904f3e3" kindref="member">vrna_math_fun_dbl_linear_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="179" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="179" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1ga7c48f101dd70109bb71a3a7632a6a950" prot="public" static="no">
        <name>VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE</name>
        <initializer>(1 &lt;&lt; 0)</initializer>
        <briefdescription>
<para>Options flag for transforming linear data using log transform to use a non-default base. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="251" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="251" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1ga7cd1087906af31b97c0feccd41414233" prot="public" static="no">
        <name>VRNA_MATH_FUN_LOG_OPTION_DEFAULT</name>
        <initializer>0</initializer>
        <briefdescription>
<para>Options flag for transforming linear data using log transform that indicates default settings. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga956f3a76ad6d05dd9ebebdbc1c23a4e7" kindref="member">vrna_math_fun_dbl_log()</ref>, <ref refid="group__math__scalar_1gae358be702661407cbbaaa3762ca89eb8" kindref="member">vrna_math_fun_dbl_log_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="258" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="258" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1ga21bb45958897eddb6282e118a4a313d8" prot="public" static="no">
        <name>VRNA_MATH_FUN_LOGISTIC_OPTION_DEFAULT</name>
        <initializer>0U</initializer>
        <briefdescription>
<para>Options flag for transforming linear data using logistic function that indicates default settings. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga220d981d484b50a1ec23b84600faf28c" kindref="member">vrna_math_fun_dbl_logistic()</ref>, <ref refid="group__math__scalar_1gaf841692e31e5fd2433b760b5ed14a483" kindref="member">vrna_math_fun_dbl_logistic_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="335" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="335" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1ga401779ee387779908f369100bbfd0eff" prot="public" static="no">
        <name>VRNA_MATH_FUN_KDE_OPTION_DEFAULT</name>
        <initializer>0U</initializer>
        <briefdescription>
<para>Options flag for transforming linear data using a kernel density estimate (KDE) that indicates default settings. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1ga76920f4485c1b63bea447f71fc76b53b" kindref="member">vrna_math_fun_dbl_kde()</ref>, <ref refid="group__math__scalar_1gaa46fd02f82386a7472b02e4960c63bb0" kindref="member">vrna_math_fun_dbl_kde_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="410" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="410" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__math__scalar_1ga9c3b4114b08efa1ef18360d99867c264" prot="public" static="no">
        <name>VRNA_MATH_FUN_GAUSSIAN_OPTION_DEFAULT</name>
        <initializer>0U</initializer>
        <briefdescription>
<para>Options flag for transforming linear data using a Gaussian function that indicates default settings. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__math__scalar_1gae655d1c9d9b987ccec4653de67c10aaa" kindref="member">vrna_math_fun_dbl_gaussian()</ref>, <ref refid="group__math__scalar_1ga33634f12b5bfe5f101941a5f013e7ac9" kindref="member">vrna_math_fun_dbl_gaussian_opt()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/math/functions.h" line="504" column="9" bodyfile="ViennaRNA/math/functions.h" bodystart="504" bodyend="-1"/>
      </memberdef>
    </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
  </compounddef>
</doxygen>
