<?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="structvrna__hc__s" kind="struct" language="C++" prot="public">
    <compoundname>vrna_hc_s</compoundname>
    <includes refid="hard_8h" local="no">ViennaRNA/constraints/hard.h</includes>
    <sectiondef kind="public-attrib">
      <memberdef kind="variable" id="structvrna__hc__s_1a4b1666cfd4f6653832ae350dc5e52505" prot="public" static="no" mutable="no">
        <type><ref refid="hard_8h_1a0fcb8bda9b3712e14f8f513def112435" kindref="member">vrna_hc_type_e</ref></type>
        <definition>vrna_hc_type_e vrna_hc_s::type</definition>
        <argsstring></argsstring>
        <name>type</name>
        <qualifiedname>vrna_hc_s::type</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="385" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="385" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1ac5cedc9a5f819afe75bba2db712033c9" prot="public" static="no" mutable="no">
        <type>unsigned int</type>
        <definition>unsigned int vrna_hc_s::n</definition>
        <argsstring></argsstring>
        <name>n</name>
        <qualifiedname>vrna_hc_s::n</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="386" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="386" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a6efe223cb72394f0d82f16c2a8f3340e" prot="public" static="no" mutable="no">
        <type>unsigned int</type>
        <definition>unsigned int vrna_hc_s::strands</definition>
        <argsstring></argsstring>
        <name>strands</name>
        <qualifiedname>vrna_hc_s::strands</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="387" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="387" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1aaa87a0d17dea3716484e3b3244f5b372" prot="public" static="no" mutable="no">
        <type>unsigned int *</type>
        <definition>unsigned int* vrna_hc_s::sn</definition>
        <argsstring></argsstring>
        <name>sn</name>
        <qualifiedname>vrna_hc_s::sn</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="388" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="388" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1ac42bbf2e8108954696701f54cf055532" prot="public" static="no" mutable="no">
        <type>unsigned char</type>
        <definition>unsigned char vrna_hc_s::state</definition>
        <argsstring></argsstring>
        <name>state</name>
        <qualifiedname>vrna_hc_s::state</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="390" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="390" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a9a686ea4489cfed421cac92e323d224d" prot="public" static="no" mutable="no">
        <type>unsigned char *</type>
        <definition>unsigned char* vrna_hc_s::mx</definition>
        <argsstring></argsstring>
        <name>mx</name>
        <qualifiedname>vrna_hc_s::mx</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="392" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="392" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a7a3a6e27f6a45447a6a3e4d294d0b90a" prot="public" static="no" mutable="no">
        <type>unsigned char **</type>
        <definition>unsigned char** vrna_hc_s::matrix_local</definition>
        <argsstring></argsstring>
        <name>matrix_local</name>
        <qualifiedname>vrna_hc_s::matrix_local</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="393" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="393" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a1eeb78354751034653cae0e8d9479606" prot="public" static="no" mutable="no">
        <type>unsigned int *</type>
        <definition>unsigned int* vrna_hc_s::up_ext</definition>
        <argsstring></argsstring>
        <name>up_ext</name>
        <qualifiedname>vrna_hc_s::up_ext</qualifiedname>
        <briefdescription>
<para>A linear array that holds the number of allowed unpaired nucleotides in an exterior loop. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="395" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="395" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a3e2c015ab854e4840ab2fbf9fec67ee4" prot="public" static="no" mutable="no">
        <type>unsigned int *</type>
        <definition>unsigned int* vrna_hc_s::up_hp</definition>
        <argsstring></argsstring>
        <name>up_hp</name>
        <qualifiedname>vrna_hc_s::up_hp</qualifiedname>
        <briefdescription>
<para>A linear array that holds the number of allowed unpaired nucleotides in a hairpin loop. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="398" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="398" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a43c7f642a9abbbe3b711ab2b6d9d9df8" prot="public" static="no" mutable="no">
        <type>unsigned int *</type>
        <definition>unsigned int* vrna_hc_s::up_int</definition>
        <argsstring></argsstring>
        <name>up_int</name>
        <qualifiedname>vrna_hc_s::up_int</qualifiedname>
        <briefdescription>
<para>A linear array that holds the number of allowed unpaired nucleotides in an internal loop. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="401" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="401" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a77747a921caf4a31779d7b8d1081ce9e" prot="public" static="no" mutable="no">
        <type>unsigned int *</type>
        <definition>unsigned int* vrna_hc_s::up_ml</definition>
        <argsstring></argsstring>
        <name>up_ml</name>
        <qualifiedname>vrna_hc_s::up_ml</qualifiedname>
        <briefdescription>
<para>A linear array that holds the number of allowed unpaired nucleotides in a multi branched loop. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="404" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="404" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1ab8e78449185c98024fca57720e0db1f0" prot="public" static="no" mutable="no">
        <type><ref refid="group__hard__constraints_1ga23a523332de2867a1568a0229345ab80" kindref="member">vrna_hc_eval_f</ref></type>
        <definition>vrna_hc_eval_f vrna_hc_s::f</definition>
        <argsstring></argsstring>
        <name>f</name>
        <qualifiedname>vrna_hc_s::f</qualifiedname>
        <briefdescription>
<para>A function pointer that returns whether or not a certain decomposition may be evaluated. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="408" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="408" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1acef3d722142cb5f4a8e114e5fbce3b1a" prot="public" static="no" mutable="no">
        <type>void *</type>
        <definition>void* vrna_hc_s::data</definition>
        <argsstring></argsstring>
        <name>data</name>
        <qualifiedname>vrna_hc_s::data</qualifiedname>
        <briefdescription>
<para>A pointer to some structure where the user may store necessary data to evaluate its generic hard constraint function. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="412" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="412" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1aae5cddf2662f6a2027ac89ff5deaf6ab" prot="public" static="no" mutable="no">
        <type><ref refid="group__fold__compound_1gab4e75b7511179095ef41dc1a8656433a" kindref="member">vrna_auxdata_free_f</ref></type>
        <definition>vrna_auxdata_free_f vrna_hc_s::free_data</definition>
        <argsstring></argsstring>
        <name>free_data</name>
        <qualifiedname>vrna_hc_s::free_data</qualifiedname>
        <briefdescription>
<para>A pointer to a function to free memory occupied by auxiliary data. </para>
        </briefdescription>
        <detaileddescription>
<para>The function this pointer is pointing to will be called upon destruction of the <ref refid="structvrna__hc__s" kindref="compound">vrna_hc_s</ref>, and provided with the <ref refid="structvrna__hc__s_1acef3d722142cb5f4a8e114e5fbce3b1a" kindref="member">vrna_hc_s.data</ref> pointer that may hold auxiliary data. Hence, to avoid leaking memory, the user may use this pointer to free memory occupied by auxiliary data. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="417" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="417" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a89e14469f3fd6bb1169a9040603a7e1a" prot="public" static="no" mutable="no">
        <type>vrna_hc_depot_t *</type>
        <definition>vrna_hc_depot_t* vrna_hc_s::depot</definition>
        <argsstring></argsstring>
        <name>depot</name>
        <qualifiedname>vrna_hc_s::depot</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="428" column="19" bodyfile="ViennaRNA/constraints/hard.h" bodystart="428" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a9cdc843e9cae3279af87f37ae2d5dc32" prot="public" static="no" mutable="no">
        <type>vrna_hc_eval_loop_f</type>
        <definition>vrna_hc_eval_loop_f vrna_hc_s::eval_ext</definition>
        <argsstring></argsstring>
        <name>eval_ext</name>
        <qualifiedname>vrna_hc_s::eval_ext</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="430" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="430" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1adfe9897deaa1c5fcc2350d22539ac712" prot="public" static="no" mutable="no">
        <type>vrna_hc_eval_hp_f</type>
        <definition>vrna_hc_eval_hp_f vrna_hc_s::eval_hp</definition>
        <argsstring></argsstring>
        <name>eval_hp</name>
        <qualifiedname>vrna_hc_s::eval_hp</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="431" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="431" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1aa54ce0ef2212d830ab45131a58dfd5cd" prot="public" static="no" mutable="no">
        <type>vrna_hc_eval_int_f</type>
        <definition>vrna_hc_eval_int_f vrna_hc_s::eval_int</definition>
        <argsstring></argsstring>
        <name>eval_int</name>
        <qualifiedname>vrna_hc_s::eval_int</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="432" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="432" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="structvrna__hc__s_1a263c7b8210a18e910c4c9a930ab3efa5" prot="public" static="no" mutable="no">
        <type>vrna_hc_eval_loop_f</type>
        <definition>vrna_hc_eval_loop_f vrna_hc_s::eval_mb</definition>
        <argsstring></argsstring>
        <name>eval_mb</name>
        <qualifiedname>vrna_hc_s::eval_mb</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/constraints/hard.h" line="433" column="23" bodyfile="ViennaRNA/constraints/hard.h" bodystart="433" bodyend="-1"/>
      </memberdef>
    </sectiondef>
    <briefdescription>
<para>The hard constraints data structure. </para>
    </briefdescription>
    <detaileddescription>
<para>The content of this data structure determines the decomposition pattern used in the folding recursions. Attribute &apos;matrix&apos; is used as source for the branching pattern of the decompositions during all folding recursions. Any entry in matrix[i,j] consists of the 6 LSB that allows one to distinguish the following types of base pairs:<itemizedlist>
<listitem><para>in the exterior loop (<ref refid="group__hard__constraints_1ga9418eda62a5dec070896702c279d2548" kindref="member">VRNA_CONSTRAINT_CONTEXT_EXT_LOOP</ref>)</para>
</listitem><listitem><para>enclosing a hairpin (<ref refid="group__hard__constraints_1ga79203702b197b6b9d3b78eed40663eb1" kindref="member">VRNA_CONSTRAINT_CONTEXT_HP_LOOP</ref>)</para>
</listitem><listitem><para>enclosing an internal loop (<ref refid="group__hard__constraints_1ga21feeab3a9e5fa5a9e3d9ac0fcf5994f" kindref="member">VRNA_CONSTRAINT_CONTEXT_INT_LOOP</ref>)</para>
</listitem><listitem><para>enclosed by an exterior loop (<ref refid="group__hard__constraints_1ga0536288e04ff6332ecdc23ca4705402b" kindref="member">VRNA_CONSTRAINT_CONTEXT_INT_LOOP_ENC</ref>)</para>
</listitem><listitem><para>enclosing a multi branch loop (<ref refid="group__hard__constraints_1ga456ecd2ff00056bb64da8dd4f61bbfc5" kindref="member">VRNA_CONSTRAINT_CONTEXT_MB_LOOP</ref>)</para>
</listitem><listitem><para>enclosed by a multi branch loop (<ref refid="group__hard__constraints_1ga02a3d703ddbcfce393e4bbfcb9db7077" kindref="member">VRNA_CONSTRAINT_CONTEXT_MB_LOOP_ENC</ref>)</para>
</listitem></itemizedlist>
</para>
<para>The four linear arrays &apos;up_xxx&apos; provide the number of available unpaired nucleotides (including position i) 3&apos; of each position in the sequence.</para>
<para><simplesect kind="see"><para><ref refid="group__hard__constraints_1ga4fdb1e98f0d1a2d5728dd3a3aae4a357" kindref="member">vrna_hc_init()</ref>, <ref refid="group__hard__constraints_1ga696dcf77887d856c6f21ea266d8b9ca2" kindref="member">vrna_hc_free()</ref>, <ref refid="group__hard__constraints_1ga9418eda62a5dec070896702c279d2548" kindref="member">VRNA_CONSTRAINT_CONTEXT_EXT_LOOP</ref>, <ref refid="group__hard__constraints_1ga79203702b197b6b9d3b78eed40663eb1" kindref="member">VRNA_CONSTRAINT_CONTEXT_HP_LOOP</ref>, <ref refid="group__hard__constraints_1ga21feeab3a9e5fa5a9e3d9ac0fcf5994f" kindref="member">VRNA_CONSTRAINT_CONTEXT_INT_LOOP</ref>, <ref refid="group__hard__constraints_1ga456ecd2ff00056bb64da8dd4f61bbfc5" kindref="member">VRNA_CONSTRAINT_CONTEXT_MB_LOOP</ref>, <ref refid="group__hard__constraints_1ga02a3d703ddbcfce393e4bbfcb9db7077" kindref="member">VRNA_CONSTRAINT_CONTEXT_MB_LOOP_ENC</ref> </para>
</simplesect>
</para>
    </detaileddescription>
    <collaborationgraph>
      <node id="1">
        <label>vrna_hc_s</label>
        <link refid="structvrna__hc__s"/>
        <childnode refid="1" relation="usage">
          <edgelabel>eval_ext</edgelabel>
          <edgelabel>eval_hp</edgelabel>
          <edgelabel>eval_int</edgelabel>
          <edgelabel>eval_mb</edgelabel>
        </childnode>
      </node>
    </collaborationgraph>
    <location file="ViennaRNA/constraints/hard.h" line="384" column="1" bodyfile="ViennaRNA/constraints/hard.h" bodystart="384" bodyend="434"/>
    <listofallmembers>
      <member refid="structvrna__hc__s_1acef3d722142cb5f4a8e114e5fbce3b1a" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>data</name></member>
      <member refid="structvrna__hc__s_1a89e14469f3fd6bb1169a9040603a7e1a" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>depot</name></member>
      <member refid="structvrna__hc__s_1a9cdc843e9cae3279af87f37ae2d5dc32" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>eval_ext</name></member>
      <member refid="structvrna__hc__s_1adfe9897deaa1c5fcc2350d22539ac712" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>eval_hp</name></member>
      <member refid="structvrna__hc__s_1aa54ce0ef2212d830ab45131a58dfd5cd" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>eval_int</name></member>
      <member refid="structvrna__hc__s_1a263c7b8210a18e910c4c9a930ab3efa5" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>eval_mb</name></member>
      <member refid="structvrna__hc__s_1ab8e78449185c98024fca57720e0db1f0" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>f</name></member>
      <member refid="structvrna__hc__s_1aae5cddf2662f6a2027ac89ff5deaf6ab" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>free_data</name></member>
      <member refid="structvrna__hc__s_1a7a3a6e27f6a45447a6a3e4d294d0b90a" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>matrix_local</name></member>
      <member refid="structvrna__hc__s_1a9a686ea4489cfed421cac92e323d224d" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>mx</name></member>
      <member refid="structvrna__hc__s_1ac5cedc9a5f819afe75bba2db712033c9" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>n</name></member>
      <member refid="structvrna__hc__s_1aaa87a0d17dea3716484e3b3244f5b372" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>sn</name></member>
      <member refid="structvrna__hc__s_1ac42bbf2e8108954696701f54cf055532" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>state</name></member>
      <member refid="structvrna__hc__s_1a6efe223cb72394f0d82f16c2a8f3340e" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>strands</name></member>
      <member refid="structvrna__hc__s_1a4b1666cfd4f6653832ae350dc5e52505" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>type</name></member>
      <member refid="structvrna__hc__s_1a1eeb78354751034653cae0e8d9479606" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>up_ext</name></member>
      <member refid="structvrna__hc__s_1a3e2c015ab854e4840ab2fbf9fec67ee4" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>up_hp</name></member>
      <member refid="structvrna__hc__s_1a43c7f642a9abbbe3b711ab2b6d9d9df8" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>up_int</name></member>
      <member refid="structvrna__hc__s_1a77747a921caf4a31779d7b8d1081ce9e" prot="public" virt="non-virtual"><scope>vrna_hc_s</scope><name>up_ml</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
