Mathematical Functions
Below you’ll find the API description for our mathematical functions.
Scalar Mathematical Functions API
Defines
-
VRNA_MATH_FUN_BIN_OPTION_PROJECT
Options flag for linear data binning to activate data projection (mapping) instead of actual binning.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND
Options flag for linear data binning to indicate that values out-of-upper-bound are to be mapped to the respective domain limit.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND
Options flag for linear data binning to indicate that values out-of-lower-bound are to be mapped to the respective domain limit.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_BIN_OPTION_DEFAULT
Options flag for linear data binning to indicate default settings.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_LINEAR_OPTION_LOG
Options flag for transforming linear data using a linear function that enables log-transform of the source value.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_LINEAR_OPTION_DEFAULT
Options flag for transforming linear data using linear function that indicates default settings.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE
Options flag for transforming linear data using log transform to use a non-default base.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_LOG_OPTION_DEFAULT
Options flag for transforming linear data using log transform that indicates default settings.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_LOGISTIC_OPTION_DEFAULT
Options flag for transforming linear data using logistic function that indicates default settings.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_KDE_OPTION_DEFAULT
Options flag for transforming linear data using a kernel density estimate (KDE) that indicates default settings.
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_GAUSSIAN_OPTION_DEFAULT
Options flag for transforming linear data using a Gaussian function that indicates default settings.
#include <ViennaRNA/math/functions.h>
Typedefs
-
typedef void *vrna_math_fun_dbl_opt_t
Option data structure type for mathematical functions.
#include <ViennaRNA/math/functions.h>
-
typedef vrna_auxdata_free_f vrna_math_fun_dbl_opt_free_f
Callback function to release any memory occupied by the mathematical function option vrna_math_fun_dbl_opt_t.
#include <ViennaRNA/math/functions.h>
-
typedef double (*vrna_math_fun_dbl_f)(double value, vrna_math_fun_dbl_opt_t options)
Callback function prototype for scalar mathematical functions of the form \( y = f(x) \).
#include <ViennaRNA/math/functions.h>
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:
valuewhich is the value \( x \) that is about to be evaluatedoptions, 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 \( y \).- Notes on Callback Functions:
This callback handles mathematical functions working on scalar double values.
See also
vrna_data_lin_transform(), vrna_math_fun_dbl_bin_opt(), vrna_math_fun_dbl_linear_opt(), vrna_math_fun_dbl_log_opt(), vrna_math_fun_dbl_gaussian_opt(), vrna_math_fun_dbl_logistic_opt(), vrna_math_fun_dbl_kde_opt()
- Param value:
The value \( x \) that is to be evaluated by the function \( f(x) \)
- Param options:
A pointer to a data structure specific for the mathematical function
- Return:
The evaluated value \( y \)
Functions
-
double vrna_math_fun_dbl_bin(double value, double (*thresholds)[2], size_t thresholds_num, double oolb_value, double ooub_value, unsigned int options)
Bin a scalar input value or project it from one domain into another.
#include <ViennaRNA/math/functions.h>
This function can be used to map continuous data from one domain (source) into discrete or continuous data of another domain (target). User-defined domain boundaries are provided by the
thresholdsargument, 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 (oolb_value,ooub_value), or they can be mapped directly to the domain limits. Control over this mapping is available through theoptionsargument by using the binary flags VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND and VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND.By default, the transformation maps any data within a source interval as specified by two consecutive entries in the
thresholdsargument to the exact value of the second target boundary. This process is also calledbinning. Alternatively, this implementation also allows for a continuous mapping (projection) of the source intervals into the target intervals. To activate this behavior, the VRNA_MATH_FUN_BIN_OPTION_PROJECT flag must be provided to theoptionsargument.See also
vrna_data_lin_transform_opt(), VRNA_MATH_FUN_BIN_OPTION_DEFAULT, VRNA_MATH_FUN_BIN_OPTION_PROJECT, VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND, VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND, vrna_math_fun_dbl_linear(), vrna_math_fun_dbl_log(), vrna_math_fun_dbl_kde(), vrna_math_fun_dbl_gaussian()
- Parameters:
value – The input value
thresholds – A pointer to an array of data pairs holding the source and target domain boundaries
thresholds_num – The number of domain boundary pairs available in
thresholdsoolb_value – Out-of-lower-bound value
ooub_value – Out-of-upper-bound value
options – Additional options that change the behavior of this function
- Returns:
The projection of the input value into the target domain
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_bin_opt(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)
Retrieve a function pointer that performs (discrete) binning and more.
#include <ViennaRNA/math/functions.h>
This function yields a linear data transform callback and the associated transform options data structure suitable for usage in vrna_data_lin_transform(). The transformation this callback performs can be described as (discrete) binning or data bucketing and essentially encapsulates the vrna_math_fun_dbl_bin() function.
The
fun_options_pandfun_options_freepointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the vrna_data_lin_transform() function and a function pointer to release the memory of the option data structure once it is not required anymore.See also
vrna_math_fun_dbl_bin(), vrna_data_lin_transform(), vrna_math_fun_dbl_f, vrna_math_fun_dbl_opt_t, vrna_math_fun_dbl_opt_free_f, VRNA_MATH_FUN_BIN_OPTION_DEFAULT, VRNA_MATH_FUN_BIN_OPTION_PROJECT, VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_UPPERBOUND, VRNA_MATH_FUN_BIN_OPTION_MAP_OUTOF_LOWERBOUND, vrna_math_fun_dbl_linear_opt(), vrna_math_fun_dbl_log_opt(), vrna_math_fun_dbl_kde_opt(), vrna_math_fun_dbl_gaussian_opt()
- Parameters:
thresholds – A pointer to an array of data pairs holding the source and target domain boundaries
thresholds_num – The number of domain boundary pairs available in
thresholdsoolb_value – Out-of-lower-bound value
ooub_value – Out-of-upper-bound value
options – Additional options that change the behavior of the callback function
fun_options_p – A pointer to store the address of the options data structure
fun_options_free – A pointer to store the address of the
freefunction that releases the memory of the options data structure
- Returns:
A callback function that performs (discrete) data binning
-
double vrna_math_fun_dbl_linear(double x, double slope, double intercept, unsigned int options)
Transform a scalar input value through a linear function.
#include <ViennaRNA/math/functions.h>
This function can be used to transform an input value (parameter
x) into an output value by applying a linear function of the form\[ y = a + b \cdot f(x) \]where \( x \) is the input value (source), \( a \) and \( b \) are intercept and slope, and \( y \) is the output value (target). By default, the function \( f(x) = x \) is the identity function. However, the callback can be instructed to apply a log-transform, \( f(x) = log x \), instead. Control over the behavior of \( f(x) \) can be gained by providing a corresponding option flag to theoptionsargument, e.g. VRNA_MATH_FUN_LINEAR_OPTION_LOG.See also
vrna_math_fun_dbl_linear_opt(), VRNA_MATH_FUN_LINEAR_OPTION_DEFAULT, VRNA_MATH_FUN_LINEAR_OPTION_LOG, vrna_math_fun_dbl_linear(), vrna_math_fun_dbl_log(), vrna_math_fun_dbl_kde(), vrna_math_fun_dbl_gaussian()
- Parameters:
x – The input value
slope – The slope of the linear function
intercept – The intercept of the linear function
options – Additional options that change the behavior of the callback function
- Returns:
The transformed output value \( y \)
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_linear_opt(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)
Retrieve a function pointer that applies a linear function.
#include <ViennaRNA/math/functions.h>
This function yields a linear data transform callback and the associated transform options data structure suitable for usage in vrna_data_lin_transform(). The callback applies a linear function \( y = a + b \cdot f(x) \) and essentially encapsulates the vrna_math_fun_dbl_linear() function.
The
fun_options_pandfun_options_freepointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the vrna_data_lin_transform() function and a function pointer to release the memory of the option data structure once it is not required anymore.See also
vrna_math_fun_dbl_linear(), vrna_data_lin_transform(), vrna_math_fun_dbl_f, vrna_math_fun_dbl_opt_t, vrna_math_fun_dbl_opt_free_f, VRNA_MATH_FUN_LINEAR_OPTION_DEFAULT, VRNA_MATH_FUN_LINEAR_OPTION_LOG, vrna_math_fun_dbl_bin_opt(), vrna_math_fun_dbl_log_opt(), vrna_math_fun_dbl_kde_opt(), vrna_math_fun_dbl_gaussian_opt()
- Parameters:
slope – The slope of the linear function
intercept – The intercept of the linear function
options – Additional options that change the behavior of the callback function
fun_options_p – A pointer to store the address of the options data structure
fun_options_free – A pointer to store the address of the
freefunction that releases the memory of the options data structure
- Returns:
A callback function that performs transformation through a linear model
-
double vrna_math_fun_dbl_log(double x, double base, double oob_value, unsigned int options)
Transform a scalar input value through a logarithmic function.
#include <ViennaRNA/math/functions.h>
This function transforms a scalar input value by computing the logarithm function
\[ y = \log_b x \]where \( x \) is the input value (source), \( b \) is the base, and \( y \) is the output value (target). By default, the natural logarithm is used, i.e. \( b = \mathrm{e} \). Thebaseargument in combination with the VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE flag supplied to theoptionsargument can be used to change the base to any other number.The function returns the user-specified out-of-bounds value
oob_valueif \( x \le 0 \).See also
vrna_math_fun_dbl_log_opt(), VRNA_MATH_FUN_LOG_OPTION_DEFAULT, VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE, vrna_math_fun_dbl_linear(), vrna_math_fun_dbl_log(), vrna_math_fun_dbl_kde(), vrna_math_fun_dbl_gaussian()
- Parameters:
x – The input value
base – The base \( b \) of the logarithm (only used if VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE is passed to
optionsoob_value – Out-of-bound value
options – Additional options that change the behavior of the callback function
- Returns:
The transformed target value \( y \)
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_log_opt(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)
Retrieve a function pointer a logarithmic function.
#include <ViennaRNA/math/functions.h>
This function yields a linear data transform callback and the associated transform options data structure suitable for usage in vrna_data_lin_transform(). The callback applies a logarithmic function \( y = \log_b (x + c) \) and essentially encapsulates the vrna_math_fun_dbl_log() function. Note, that here, the
value_shiftargument corresponds to \( c \) in the above formula and in most cases should be0. The callback then returns the out-of-bounds valueoob_valueif \( x + c \le 0 \).The
fun_options_pandfun_options_freepointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the vrna_data_lin_transform() function and a function pointer to release the memory of the option data structure once it is not required anymore.See also
vrna_math_fun_dbl_log(), vrna_data_lin_transform(), vrna_math_fun_dbl_f, vrna_math_fun_dbl_opt_t, vrna_math_fun_dbl_opt_free_f, VRNA_MATH_FUN_LOG_OPTION_DEFAULT, VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE, vrna_math_fun_dbl_bin_opt(), vrna_math_fun_dbl_linear_opt(), vrna_math_fun_dbl_kde_opt(), vrna_math_fun_dbl_gaussian_opt()
- Parameters:
value_shift – The shift value \( c \)
base – The base \( b \) of the logarithm (only used if VRNA_MATH_FUN_LOG_OPTION_NONDEFAULT_BASE is passed to
optionsoob_value – Out-of-bound value
options – Additional options that change the behavior of the callback function
fun_options_p – A pointer to store the address of the options data structure
fun_options_free – A pointer to store the address of the
freefunction that releases the memory of the options data structure
- Returns:
A callback function that performs transformation through a linear model
-
double vrna_math_fun_dbl_logistic(double x, double mid_point, double supremum, double growth_rate, unsigned int options)
Transform a scalar input value through a logistic function.
#include <ViennaRNA/math/functions.h>
This function transforms a scalar input value by applying a logistic function of the form
\[ y = \frac{L}{1 + e^{-k \cdot (x - x_0)}} \]where \( x \) is the input value (source), \( x_0 \) is the mid point (mid_point) of the function, \( k \) is the logistic growth rate (growth_rate), and \( L \) is the supremum (or carrying capacity) of the function (supremum). The standard logistic function is defined as \( L = 1 \), \( k = 1 \). and \( x_0 = 0 \), i.e.\[ y = \frac{1}{1 + e^{-x}} \]See also
vrna_math_fun_dbl_logistic_opt(), VRNA_MATH_FUN_LOGISTIC_OPTION_DEFAULT, vrna_math_fun_dbl_bin(), vrna_math_fun_dbl_linear(), vrna_math_fun_dbl_log(), vrna_math_fun_dbl_kde(), vrna_math_fun_dbl_gaussian()
- Parameters:
x – The input value
mid_point – The midpoint of the function
supremum – The supremum of the function
growth_rate – The growth rate of the function
options – Additional options that change the behavior of the callback function
- Returns:
The transformed target value \( y \)
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_logistic_opt(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)
Retrieve a function pointer that applies a logistic function.
#include <ViennaRNA/math/functions.h>
This function yields a linear data transform callback and the associated transform options data structure suitable for usage in vrna_data_lin_transform(). The callback applies a logistic function of the form
\[ y = \frac{L}{1 + e^{-k \cdot (x - x_0)}} \]and essentially encapsulates the vrna_math_fun_dbl_logistic() function.The
fun_options_pandfun_options_freepointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the vrna_data_lin_transform() function and a function pointer to release the memory of the option data structure once it is not required anymore.See also
vrna_math_fun_dbl_logistic(), vrna_data_lin_transform(), vrna_math_fun_dbl_f, vrna_math_fun_dbl_opt_t, vrna_math_fun_dbl_opt_free_f, VRNA_MATH_FUN_LOGISTIC_OPTION_DEFAULT, vrna_math_fun_dbl_bin_opt(), vrna_math_fun_dbl_linear_opt(), vrna_math_fun_dbl_kde_opt(), vrna_math_fun_dbl_gaussian_opt(), vrna_math_fun_dbl_log_opt()
- Parameters:
mid_point – The midpoint of the function
supremum – The supremum of the function
growth_rate – The growth rate of the function
options – Additional options that change the behavior of the callback function
fun_options_p – A pointer to store the address of the options data structure
fun_options_free – A pointer to store the address of the
freefunction that releases the memory of the options data structure
- Returns:
A callback function that performs transformation through a logistic function
-
double vrna_math_fun_dbl_kde(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)
Estimate the probability density for a scalar input value through kernel density estimation (KDE).
#include <ViennaRNA/math/functions.h>
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 \( x \) is then of the form
\[ y = \hat{f}_h(x) = \frac{1}{n \cdot h} \sum_{i = 1}^{n} K \big( \frac{x - x_i}{h} \big) \]with a set of \( n > 0 \) samples \( \{ x_1, x_2, \ldots, x_n \} \) (samples), \( K \) (kernel) as a non-negative kernel function, and \( h > 0 \) is the bandwidth (bandwidth).See also
vrna_math_fun_dbl_kde_opt(), VRNA_MATH_FUN_KDE_OPTION_DEFAULT, vrna_math_fun_dbl_bin(), vrna_math_fun_dbl_linear(), vrna_math_fun_dbl_log(), vrna_math_fun_dbl_logistic(), vrna_math_fun_dbl_gaussian()
Note
If no kernel is provided, i.e.
NULLis passed tokernel, the KDE uses a standard Gaussian kernel by providing vrna_math_fun_dbl_gaussian() with \( a = \frac{1}{\sqrt{2 \pi}}, b = 0, c = 1 \). In this case, the bandwidth (bandwidth) will be automatically replaced by a rule-of-thumb bandwidth estimator \( h = ( \frac{4}{3n} )^{\frac{1}{5}} \)- Parameters:
x – The input value
samples – The samples of the distribution to estimate \( \{ x_1, x_2, \ldots, x_n \} \)
num_samples – The number of samples ( \( n \)) provided by pointer
sampleskernel – The kernel function \( K \) (maybe
NULL)kernel_data – The data that should be passed-through to the kernel function (maybe
NULL)bandwidth – The bandwidth \( h \)
options – Additional options that change the behavior of the callback function
- Returns:
The estimated probability density \( \hat{f}_h(x) \)
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_kde_opt(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)
Retrieve a callback function that applies a kernel density estimation (KDE).
#include <ViennaRNA/math/functions.h>
This function yields a linear data transform callback and the associated transform options data structure suitable for usage in vrna_data_lin_transform(). The callback applies a kernel density estimation (KDE) and essentially encapsulates the vrna_math_fun_dbl_kde() function.
The
fun_options_pandfun_options_freepointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the vrna_data_lin_transform() function and a function pointer to release the memory of the option data structure once it is not required anymore.See also
vrna_math_fun_dbl_logistic(), vrna_data_lin_transform(), vrna_math_fun_dbl_f, vrna_math_fun_dbl_opt_t, vrna_math_fun_dbl_opt_free_f, VRNA_MATH_FUN_KDE_OPTION_DEFAULT, vrna_math_fun_dbl_gaussian_opt(), vrna_math_fun_dbl_bin_opt(), vrna_math_fun_dbl_linear_opt(), vrna_math_fun_dbl_log_opt(), vrna_math_fun_dbl_logistic_opt
Note
Whenever the
fun_options_freecallback will be called, this function also releases the memory occupied bykernel_datathrough thekernel_data_freefunction if it is provided, i.e. notNULL.- Parameters:
samples – The samples of the distribution to estimate \( \{ x_1, x_2, \ldots, x_n \} \)
num_samples – The number of samples ( \( n \)) provided by pointer
sampleskernel – The kernel function \( K \) (maybe
NULL)kernel_data – The data that should be passed-through to the kernel function (maybe
NULL)kernel_data_free – A function to free the memory occupied by the data for the kernel function (maybe
NULL)bandwidth – The bandwidth \( h \)
options – Additional options that change the behavior of the callback function
fun_options_p – A pointer to store the address of the options data structure
fun_options_free – A pointer to store the address of the
freefunction that releases the memory of the options data structure
- Returns:
A callback function that performs transformation through kernel density estimation
-
double vrna_math_fun_dbl_gaussian(double x, double a, double b, double c)
Evaluate a Gaussian function for a scalar input value.
#include <ViennaRNA/math/functions.h>
This function applies a Gaussian function of the form
\[ y = f(x) = a \cdot \exp(- \frac{(x - b)^2}{2 c^2}) \]with arbitrary constants \( a, b \) and non-zero \( c \) to a scalar input value \( x \).See also
- Parameters:
x – The input value \( x \)
a – The arbitrary constant \( a \)
b – The arbitrary constant \( b \)
c – The arbitrary non-zero constant \( c \)
- Returns:
The evaluation for the Gaussian function \( y = f(x) \)
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_gaussian_opt(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)
Retrieve a function pointer that applies Gaussian function.
#include <ViennaRNA/math/functions.h>
This function yields a linear data transform callback and the associated transform options data structure suitable for usage in vrna_data_lin_transform(). The callback applies a Gaussian function of the form
\[ y = a \cdot \exp(- \frac{(x - b)^2}{2 c^2}) \]with arbitrary constants \( a, b \) and non-zero \( c \) and \( x \) being the input value (source).The
fun_options_pandfun_options_freepointers are used as additional output to obtain the addresses of the transformation option data structure that has to be provided to the vrna_data_lin_transform() function and a function pointer to release the memory of the option data structure once it is not required anymore.See also
vrna_math_fun_dbl_gaussian(), vrna_data_lin_transform(), vrna_math_fun_dbl_f, vrna_math_fun_dbl_opt_t, vrna_math_fun_dbl_opt_free_f, VRNA_MATH_FUN_GAUSSIAN_OPTION_DEFAULT
- Parameters:
a – The arbitrary constant \( a \)
b – The arbitrary constant \( b \)
c – The arbitrary non-zero constant \( c \)
options – Additional options that change the behavior of the callback function
fun_options_p – A pointer to store the address of the options data structure
fun_options_free – A pointer to store the address of the
freefunction that releases the memory of the options data structure
- Returns:
A callback function that performs transformation through a Gaussian function
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_chain(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)
#include <ViennaRNA/math/functions.h>
-
size_t vrna_math_fun_dbl_chain_append(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)
#include <ViennaRNA/math/functions.h>
-
size_t vrna_math_fun_dbl_chain_size(vrna_math_fun_dbl_opt_t chain)
#include <ViennaRNA/math/functions.h>
-
vrna_math_fun_dbl_f vrna_math_fun_dbl_chain_at(vrna_math_fun_dbl_opt_t chain, size_t pos, vrna_math_fun_dbl_opt_t *fun_options_p)
#include <ViennaRNA/math/functions.h>
-
VRNA_MATH_FUN_BIN_OPTION_PROJECT