Data Structures and Preprocessor Macros

Overview

All datastructures and typedefs shared among the ViennaRNA Package can be found here. More…

// typedefs

typedef struct vrna_basepair_s vrna_basepair_t
typedef struct vrna_elem_prob_s vrna_plist_t
typedef struct vrna_bp_stack_s vrna_bp_stack_t
typedef struct vrna_cpair_s vrna_cpair_t
typedef struct vrna_sect_s vrna_sect_t
typedef struct vrna_data_linear_s vrna_data_lin_t
typedef struct vrna_color_s vrna_color_t
typedef double FLT_OR_DBL
typedef struct vrna_basepair_s PAIR
typedef struct vrna_elem_prob_s plist
typedef struct vrna_cpair_s cpair
typedef struct vrna_sect_s sect
typedef struct vrna_bp_stack_s bondT
typedef struct pu_contrib pu_contrib
typedef struct interact interact
typedef struct pu_out pu_out
typedef struct constrain constrain
typedef struct node folden
typedef struct dupVar dupVar

// structs

struct constrain
struct dupVar
struct duplexT
struct interact
struct node
struct pu_contrib
struct pu_out
struct snoopT
struct vrna_basepair_s
struct vrna_bp_stack_s
struct vrna_color_s
struct vrna_cpair_s
struct vrna_data_linear_s
struct vrna_sect_s

// global functions

void vrna_C11_features (void)

Detailed Documentation

All datastructures and typedefs shared among the ViennaRNA Package can be found here.

Typedefs

typedef struct vrna_basepair_s vrna_basepair_t
Typename for the base pair repesenting data structure vrna_basepair_s .
typedef struct vrna_elem_prob_s vrna_plist_t
Typename for the base pair list repesenting data structure vrna_elem_prob_s .
typedef struct vrna_bp_stack_s vrna_bp_stack_t
Typename for the base pair stack repesenting data structure vrna_bp_stack_s .
typedef struct vrna_cpair_s vrna_cpair_t
Typename for data structure vrna_cpair_s .
typedef struct vrna_sect_s vrna_sect_t
Typename for stack of partial structures vrna_sect_s .
typedef double FLT_OR_DBL
Typename for floating point number in partition function computations.
typedef struct vrna_basepair_s PAIR
Old typename of vrna_basepair_s .
Deprecated Use vrna_basepair_t instead!
typedef struct vrna_elem_prob_s plist
Old typename of vrna_elem_prob_s .
Deprecated Use vrna_ep_t or vrna_elem_prob_s instead!
typedef struct vrna_cpair_s cpair
Old typename of vrna_cpair_s .
Deprecated Use vrna_cpair_t instead!
typedef struct vrna_sect_s sect
Old typename of vrna_sect_s .
Deprecated Use vrna_sect_t instead!
typedef struct vrna_bp_stack_s bondT
Old typename of vrna_bp_stack_s .
Deprecated Use vrna_bp_stack_t instead!
typedef struct pu_contrib pu_contrib
contributions to p_u
typedef struct interact interact
interaction data structure for RNAup
typedef struct pu_out pu_out
Collection of all free_energy of beeing unpaired values for output.
typedef struct constrain constrain
constraints for cofolding
typedef struct node folden
Data structure for RNAsnoop (fold energy list)
typedef struct dupVar dupVar
Data structure used in RNApkplex.

Global Functions

void vrna_C11_features (void)
Dummy symbol to check whether the library was build using C11/C++11 features.

By default, several data structures of our new v3.0 API use C11/C++11 features, such as unnamed unions, unnamed structs. However, these features can be deactivated at compile time to allow building the library and executables with compilers that do not support these features.

Now, the problem arises that once our static library is compiled and a third-party application is supposed to link against it, it needs to know, at compile time, how to correctly address particular data structures. This is usually implicitely taken care of through the API exposed in our header files. Unfortunately, we had some preprocessor directives in our header files that changed the API depending on the capabilities of the compiler the third-party application is build with. This in turn prohibited the use of an RNAlib compiled without C11/C++11 support in a program that compiles/links with enabled C11/C++11 support and vice-versa.

Therefore, we introduce this dummy symbol which can be used to check, whether the static library was build with C11/C++11 features.

v2.2.9

Note

If the symbol is present, the library was build with enabled C11/C++11 features support and no action is required. However, if the symbol is missing in RNAlib >= 2.2.9, programs that link to RNAlib must define a pre-processor identifier VRNA_DISABLE_C11_FEATURES before including any ViennaRNA Package header file, for instance by adding a CPPFLAG

CPPFLAGS+=-DVRNA_DISABLE_C11_FEATURES