<?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.8.14">
  <compounddef id="classforpy_1_1_shannon_entropy" kind="class" language="C++" prot="public">
    <compoundname>forpy::ShannonEntropy</compoundname>
    <basecompoundref refid="classforpy_1_1_i_entropy_function" prot="public" virt="non-virtual">forpy::IEntropyFunction</basecompoundref>
    <includes refid="shannonentropy_8h" local="no">shannonentropy.h</includes>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classforpy_1_1_shannon_entropy_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>friend class</type>
        <definition>friend class cereal::access</definition>
        <argsstring></argsstring>
        <name>cereal::access</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="72" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" bodystart="72" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classforpy_1_1_shannon_entropy_1a96864624096f00b8a8d0f0f43b0db5f9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>friend std::ostream &amp;</type>
        <definition>std::ostream&amp; operator&lt;&lt;</definition>
        <argsstring>(std::ostream &amp;stream, const ShannonEntropy &amp;)</argsstring>
        <name>operator&lt;&lt;</name>
        <param>
          <type>std::ostream &amp;</type>
          <declname>stream</declname>
        </param>
        <param>
          <type>const <ref refid="classforpy_1_1_shannon_entropy" kindref="compound">ShannonEntropy</ref> &amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="62" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" bodystart="62" bodyend="66"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classforpy_1_1_shannon_entropy_1a474af02e7235e0db36f8e6c4131ccb35" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::ShannonEntropy::ShannonEntropy</definition>
        <argsstring>()</argsstring>
        <name>ShannonEntropy</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="36" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_shannon_entropy_1a086f1e67ad5f9f49e6e5b913f12db4d9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::ShannonEntropy::~ShannonEntropy</definition>
        <argsstring>()</argsstring>
        <name>~ShannonEntropy</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="37" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_shannon_entropy_1a54efad66920205c2e2e81ec76f0a5da8" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual">
        <type>float</type>
        <definition>virtual float forpy::ShannonEntropy::operator()</definition>
        <argsstring>(const float *class_members_numbers, const size_t &amp;n, const float &amp;fsum) const</argsstring>
        <name>operator()</name>
        <reimplements refid="classforpy_1_1_i_entropy_function_1a5ce363a6a07f37355cafe18cc946745b">operator()</reimplements>
        <param>
          <type>const float *</type>
          <declname>class_members_numbers</declname>
        </param>
        <param>
          <type>const size_t &amp;</type>
          <declname>n</declname>
        </param>
        <param>
          <type>const float &amp;</type>
          <declname>fsum</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="39" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" bodystart="39" bodyend="60"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_shannon_entropy_1a13036a52825a272848b9eb4c4fdba7d1" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>bool</type>
        <definition>bool forpy::ShannonEntropy::operator==</definition>
        <argsstring>(const IEntropyFunction &amp;rhs) const</argsstring>
        <name>operator==</name>
        <reimplements refid="classforpy_1_1_i_entropy_function_1a97e275c34b5a0df4d9293755563bad12">operator==</reimplements>
        <param>
          <type>const <ref refid="classforpy_1_1_i_entropy_function" kindref="compound">IEntropyFunction</ref> &amp;</type>
          <declname>rhs</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Deep equality comparison. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="67" column="1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classforpy_1_1_shannon_entropy_1a2ada637ce7fec4bf0eccba707c85322e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::ShannonEntropy::DISALLOW_COPY_AND_ASSIGN</definition>
        <argsstring>(ShannonEntropy)</argsstring>
        <name>DISALLOW_COPY_AND_ASSIGN</name>
        <param>
          <type><ref refid="classforpy_1_1_shannon_entropy" kindref="compound">ShannonEntropy</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="70" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_shannon_entropy_1a1ded4612890be02803e20704f9a071a5" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>class Archive</type>
          </param>
        </templateparamlist>
        <type>void</type>
        <definition>void forpy::ShannonEntropy::serialize</definition>
        <argsstring>(Archive &amp;ar, const uint &amp;)</argsstring>
        <name>serialize</name>
        <param>
          <type>Archive &amp;</type>
          <declname>ar</declname>
        </param>
        <param>
          <type>const <ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref> &amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="74" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" bodystart="74" bodyend="76"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Computes the classical Shannon-Entropy. </para>    </briefdescription>
    <detaileddescription>
<para>Works correctly up to a total sum of elements of numeric_limits&lt;float&gt;::max().</para><para>For classes <formula id="15">$C={c_1, \ldots, c_n}$</formula>, the Shannon entropy is defined as <formula id="16">\[-\sum_{c\in C}p_z\cdot \log_2 p_z.\]</formula></para><para>The differential Shannon entropy for a normal distribution with covariance matrix <formula id="12">$\Sigma$</formula> in <formula id="7">$n$</formula> dimensions is defined as <formula id="17">\[\frac{1}{2}\log\left((2\pi e)^n\left|\Sigma\right|\right).\]</formula> </para>    </detaileddescription>
    <inheritancegraph>
      <node id="191">
        <label>forpy::ShannonEntropy</label>
        <link refid="classforpy_1_1_shannon_entropy"/>
        <childnode refid="192" relation="public-inheritance">
        </childnode>
      </node>
      <node id="192">
        <label>forpy::IEntropyFunction</label>
        <link refid="classforpy_1_1_i_entropy_function"/>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="193">
        <label>forpy::ShannonEntropy</label>
        <link refid="classforpy_1_1_shannon_entropy"/>
        <childnode refid="194" relation="public-inheritance">
        </childnode>
      </node>
      <node id="194">
        <label>forpy::IEntropyFunction</label>
        <link refid="classforpy_1_1_i_entropy_function"/>
      </node>
    </collaborationgraph>
    <location file="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" line="34" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h" bodystart="34" bodyend="77"/>
    <listofallmembers>
      <member refid="classforpy_1_1_shannon_entropy_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" virt="non-virtual"><scope>forpy::ShannonEntropy</scope><name>cereal::access</name></member>
      <member refid="classforpy_1_1_shannon_entropy_1a2ada637ce7fec4bf0eccba707c85322e" prot="private" virt="non-virtual"><scope>forpy::ShannonEntropy</scope><name>DISALLOW_COPY_AND_ASSIGN</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a70fe1569ee2a5cab7c0b155631a4dea9" prot="protected" virt="non-virtual"><scope>forpy::ShannonEntropy</scope><name>IEntropyFunction</name></member>
      <member refid="classforpy_1_1_shannon_entropy_1a54efad66920205c2e2e81ec76f0a5da8" prot="public" virt="virtual"><scope>forpy::ShannonEntropy</scope><name>operator()</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a993c16c7cf4f90b21dcd10bc4c29d01a" prot="public" virt="virtual" ambiguityscope="forpy::IEntropyFunction::"><scope>forpy::ShannonEntropy</scope><name>operator()</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a2f12be4c28fe3ea10e85ff0f62d8ed91" prot="public" virt="virtual" ambiguityscope="forpy::IEntropyFunction::"><scope>forpy::ShannonEntropy</scope><name>operator()</name></member>
      <member refid="classforpy_1_1_shannon_entropy_1a96864624096f00b8a8d0f0f43b0db5f9" prot="public" virt="non-virtual"><scope>forpy::ShannonEntropy</scope><name>operator&lt;&lt;</name></member>
      <member refid="classforpy_1_1_shannon_entropy_1a13036a52825a272848b9eb4c4fdba7d1" prot="public" virt="virtual"><scope>forpy::ShannonEntropy</scope><name>operator==</name></member>
      <member refid="classforpy_1_1_shannon_entropy_1a1ded4612890be02803e20704f9a071a5" prot="private" virt="non-virtual"><scope>forpy::ShannonEntropy</scope><name>serialize</name></member>
      <member refid="classforpy_1_1_shannon_entropy_1a474af02e7235e0db36f8e6c4131ccb35" prot="public" virt="non-virtual"><scope>forpy::ShannonEntropy</scope><name>ShannonEntropy</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a763fc026d02d50934931e690761beecf" prot="public" virt="virtual"><scope>forpy::ShannonEntropy</scope><name>~IEntropyFunction</name></member>
      <member refid="classforpy_1_1_shannon_entropy_1a086f1e67ad5f9f49e6e5b913f12db4d9" prot="public" virt="non-virtual"><scope>forpy::ShannonEntropy</scope><name>~ShannonEntropy</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
