The Dynamic Programming Matrices
Data Structures and Preprocessor Macros

This module provides interfaces that deal with creation and destruction of dynamic programming matrices used within the RNAlib. More...

Collaboration diagram for The Dynamic Programming Matrices:

## Data Structures

struct | vrna_mx_mfe_s
| Minimum Free Energy (MFE) Dynamic Programming (DP) matrices data structure required within the vrna_fold_compound_t. More...
struct | vrna_mx_pf_s
| Partition function (PF) Dynamic Programming (DP) matrices data structure required within the vrna_fold_compound_t. More...

## Typedefs

typedef struct vrna_mx_mfe_s | vrna_mx_mfe_t
| Typename for the Minimum Free Energy (MFE) DP matrices data structure vrna_mx_mfe_s.
typedef struct vrna_mx_pf_s | vrna_mx_pf_t
| Typename for the Partition Function (PF) DP matrices data structure vrna_mx_pf_s.

## Enumerations

## Functions

int | vrna_mx_add (vrna_fold_compound_t *vc, vrna_mx_type_e type, unsigned int options)
| Add Dynamic Programming (DP) matrices (allocate memory) More...
void | vrna_mx_mfe_free (vrna_fold_compound_t *vc)
| Free memory occupied by the Minimum Free Energy (MFE) Dynamic Programming (DP) matrices. More...
void | vrna_mx_pf_free (vrna_fold_compound_t *vc)
| Free memory occupied by the Partition Function (PF) Dynamic Programming (DP) matrices. More...

## Detailed Description

This module provides interfaces that deal with creation and destruction of dynamic programming matrices used within the RNAlib.

## Data Structure Documentation

struct vrna_mx_mfe_s

Minimum Free Energy (MFE) Dynamic Programming (DP) matrices data structure required within the vrna_fold_compound_t.

### Data Fields

Common fields for MFE matrices
vrna_mx_type_e | type
unsigned int | length
| Length of the sequence, therefore an indicator of the size of the DP matrices.
Default DP matrices

Note
  These data fields are available if
  vrna_mx_mfe_t.type == VRNA_MX_DEFAULT

Local Folding DP matrices using window approach

Note
  These data fields are available if
  vrna_mx_mfe_t.type == VRNA_MX_WINDOW

Distance Class DP matrices

Note
  These data fields are available if
  vrna_mx_mfe_t.type == VRNA_MX_2DFOLD

struct vrna_mx_pf_s

Partition function (PF) Dynamic Programming (DP) matrices data structure required within the vrna_fold_compound_t.

### Data Fields

Common fields for DP matrices
vrna_mx_type_e | type
unsigned int | length
FLT_OR_DBL * | scale
FLT_OR_DBL * | expMLbase
Default PF matrices

Note
  These data fields are available if
  vrna_mx_pf_t.type == VRNA_MX_DEFAULT

Distance Class DP matrices

Note
  These data fields are available if
  vrna_mx_pf_t.type == VRNA_MX_2DFOLD

## Enumeration Type Documentation

enum vrna_mx_type_e

`#include <ViennaRNA/dp_matrices.h>`

An enumerator that is used to specify the type of a polymorphic Dynamic Programming (DP) matrix data structure.

See also
  vrna_mx_mfe_t, vrna_mx_pf_t

Enumerator
VRNA_MX_DEFAULT | Default DP matrices.

VRNA_MX_WINDOW

DP matrices suitable for local structure prediction using window approach.

See also
  vrna_mfe_window(), vrna_mfe_window_zscore(), pfl_fold()

VRNA_MX_2DFOLD

DP matrices suitable for distance class partitioned structure prediction.

See also
  vrna_mfe_TwoD(), vrna_pf_TwoD()

## Function Documentation

int vrna_mx_add | ( | vrna_fold_compound_t * | vc,
|  | vrna_mx_type_e | type,
|  | unsigned int | options
| ) |  |

`#include <ViennaRNA/dp_matrices.h>`

Add Dynamic Programming (DP) matrices (allocate memory)

This function adds DP matrices of a specific type to the provided vrna_fold_compound_t, such that successive DP recursion can be applied. The function caller has to specify which type of DP matrix is requested, see vrna_mx_type_e, and what kind of recursive algorithm will be applied later on, using the parameters type, and options, respectively. For the latter, Minimum free energy (MFE), and Partition function (PF) computations are distinguished. A third option that may be passed is VRNA_OPTION_HYBRID, indicating that auxiliary DP arrays are required for RNA-RNA interaction prediction.

Note
  Usually, there is no need to call this function, since the constructors of vrna_fold_compound_t are handling all the DP matrix memory allocation.

See also
  vrna_mx_mfe_add(), vrna_mx_pf_add(), vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_fold_compound_free(), vrna_mx_pf_free(), vrna_mx_mfe_free(), vrna_mx_type_e, VRNA_OPTION_MFE, VRNA_OPTION_PF, VRNA_OPTION_HYBRID, VRNA_OPTION_EVAL_ONLY

Parameters

  vc | The vrna_fold_compound_t that holds pointers to the DP matrices
  type | The type of DP matrices requested
  options | Option flags that specify the kind of DP matrices, such as MFE or PF arrays, and auxiliary requirements

Returns
  1 if DP matrices were properly allocated and attached, 0 otherwise

void vrna_mx_mfe_free | ( | vrna_fold_compound_t * | vc | ) |

`#include <ViennaRNA/dp_matrices.h>`

Free memory occupied by the Minimum Free Energy (MFE) Dynamic Programming (DP) matrices.

See also
  vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_fold_compound_free(), vrna_mx_pf_free()

Parameters

  vc | The vrna_fold_compound_t storing the MFE DP matrices that are to be erased from memory

void vrna_mx_pf_free | ( | vrna_fold_compound_t * | vc | ) |

`#include <ViennaRNA/dp_matrices.h>`

Free memory occupied by the Partition Function (PF) Dynamic Programming (DP) matrices.

See also
  vrna_fold_compound(), vrna_fold_compound_comparative(), vrna_fold_compound_free(), vrna_mx_mfe_free()

Parameters

  vc | The vrna_fold_compound_t storing the PF DP matrices that are to be erased from memory