<?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_induced_entropy" kind="class" language="C++" prot="public">
    <compoundname>forpy::InducedEntropy</compoundname>
    <basecompoundref refid="classforpy_1_1_i_entropy_function" prot="public" virt="non-virtual">forpy::IEntropyFunction</basecompoundref>
    <includes refid="inducedentropy_8h" local="no">inducedentropy.h</includes>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classforpy_1_1_induced_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/inducedentropy.h" line="107" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="105" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classforpy_1_1_induced_entropy_1a0f66737687c9cf6e80a343f74726689d" 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 InducedEntropy &amp;self)</argsstring>
        <name>operator&lt;&lt;</name>
        <param>
          <type>std::ostream &amp;</type>
          <declname>stream</declname>
        </param>
        <param>
          <type>const <ref refid="classforpy_1_1_induced_entropy" kindref="compound">InducedEntropy</ref> &amp;</type>
          <declname>self</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="86" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="86" bodyend="90"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classforpy_1_1_induced_entropy_1ad1ffbdfb0add2105ddc95b129904297e" prot="private" static="no" mutable="no">
        <type>float</type>
        <definition>float forpy::InducedEntropy::p</definition>
        <argsstring></argsstring>
        <name>p</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="114" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="114" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1aeb85808d4b380da93605eab3c3ede441" prot="public" static="no" const="no" explicit="yes" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::InducedEntropy::InducedEntropy</definition>
        <argsstring>(const float &amp;p)</argsstring>
        <name>InducedEntropy</name>
        <param>
          <type>const float &amp;</type>
          <declname>p</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="44" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="44" bodyend="48"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1af39b89a870d8aba17a5cbefdd293e88f" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::InducedEntropy::~InducedEntropy</definition>
        <argsstring>()</argsstring>
        <name>~InducedEntropy</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="49" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="49" bodyend="49"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1a8706f92dca8bd8c210e20902e5a1a29f" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual">
        <type>float</type>
        <definition>virtual float forpy::InducedEntropy::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/inducedentropy.h" line="51" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="51" bodyend="84"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1a4930fd1c89013462ed0cfb56a5aff842" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual">
        <type>bool</type>
        <definition>bool forpy::InducedEntropy::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/inducedentropy.h" line="92" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="92" bodyend="100"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1a0a40462d1b6feca9f2a481d1b436d682" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>float</type>
        <definition>float forpy::InducedEntropy::get_p</definition>
        <argsstring>() const</argsstring>
        <name>get_p</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="102" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="102" bodyend="102"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1aa97abfc9579d8fd9d8898e4587cc4143" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::InducedEntropy::InducedEntropy</definition>
        <argsstring>()</argsstring>
        <name>InducedEntropy</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="105" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="105" bodyend="105"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1a7f99b0fd672511e46ccbac1946a2373f" 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::InducedEntropy::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/inducedentropy.h" line="109" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="109" bodyend="112"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_induced_entropy_1a0f5ad80166b571f08345d253753c5b8a" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::InducedEntropy::DISALLOW_COPY_AND_ASSIGN</definition>
        <argsstring>(InducedEntropy)</argsstring>
        <name>DISALLOW_COPY_AND_ASSIGN</name>
        <param>
          <type><ref refid="classforpy_1_1_induced_entropy" kindref="compound">InducedEntropy</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="115" column="1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Computes the induced p entropy. </para>    </briefdescription>
    <detaileddescription>
<para>Works correctly up to a total sum of elements of numeric_limits&lt;float&gt;::max().</para><para>This is the induced p-metric of the vector of <formula id="7">$n$</formula> class probabilities and the point of maximum unorder (the vector with all entries <formula id="8">$\frac{1}{n}$</formula>) in the n-dimensional space without applying the root. It is equal to the Gini-measure for <formula id="9">$p=2$</formula>.</para><para>The definition for <formula id="10">$c$</formula> classes: <formula id="11">\[\sum_{i=1}^{c} \left\Vert p_i - \frac{1}{c}\right\Vert ^p\]</formula>.</para><para>The differential 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="13">\[\frac{1}{\sqrt{p^n}}\cdot\left(\sqrt{2\pi}^n\cdot\sqrt{\left|\Sigma\right|}\right)^{-(p-1)}\]</formula></para><para>In the differential normal case, the most useful values for <formula id="14">$p$</formula> are very close to 1 (e.g. 1.00001)! <formula id="9">$p=2$</formula> is already equivalent to the infinite norm! </para>    </detaileddescription>
    <inheritancegraph>
      <node id="116">
        <label>forpy::IEntropyFunction</label>
        <link refid="classforpy_1_1_i_entropy_function"/>
      </node>
      <node id="115">
        <label>forpy::InducedEntropy</label>
        <link refid="classforpy_1_1_induced_entropy"/>
        <childnode refid="116" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="118">
        <label>forpy::IEntropyFunction</label>
        <link refid="classforpy_1_1_i_entropy_function"/>
      </node>
      <node id="117">
        <label>forpy::InducedEntropy</label>
        <link refid="classforpy_1_1_induced_entropy"/>
        <childnode refid="118" relation="public-inheritance">
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" line="42" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h" bodystart="42" bodyend="116"/>
    <listofallmembers>
      <member refid="classforpy_1_1_induced_entropy_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>cereal::access</name></member>
      <member refid="classforpy_1_1_induced_entropy_1a0f5ad80166b571f08345d253753c5b8a" prot="private" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>DISALLOW_COPY_AND_ASSIGN</name></member>
      <member refid="classforpy_1_1_induced_entropy_1a0a40462d1b6feca9f2a481d1b436d682" prot="public" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>get_p</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a70fe1569ee2a5cab7c0b155631a4dea9" prot="protected" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>IEntropyFunction</name></member>
      <member refid="classforpy_1_1_induced_entropy_1aeb85808d4b380da93605eab3c3ede441" prot="public" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>InducedEntropy</name></member>
      <member refid="classforpy_1_1_induced_entropy_1aa97abfc9579d8fd9d8898e4587cc4143" prot="private" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>InducedEntropy</name></member>
      <member refid="classforpy_1_1_induced_entropy_1a8706f92dca8bd8c210e20902e5a1a29f" prot="public" virt="virtual"><scope>forpy::InducedEntropy</scope><name>operator()</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a993c16c7cf4f90b21dcd10bc4c29d01a" prot="public" virt="virtual" ambiguityscope="forpy::IEntropyFunction::"><scope>forpy::InducedEntropy</scope><name>operator()</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a2f12be4c28fe3ea10e85ff0f62d8ed91" prot="public" virt="virtual" ambiguityscope="forpy::IEntropyFunction::"><scope>forpy::InducedEntropy</scope><name>operator()</name></member>
      <member refid="classforpy_1_1_induced_entropy_1a0f66737687c9cf6e80a343f74726689d" prot="public" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>operator&lt;&lt;</name></member>
      <member refid="classforpy_1_1_induced_entropy_1a4930fd1c89013462ed0cfb56a5aff842" prot="public" virt="virtual"><scope>forpy::InducedEntropy</scope><name>operator==</name></member>
      <member refid="classforpy_1_1_induced_entropy_1ad1ffbdfb0add2105ddc95b129904297e" prot="private" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>p</name></member>
      <member refid="classforpy_1_1_induced_entropy_1a7f99b0fd672511e46ccbac1946a2373f" prot="private" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>serialize</name></member>
      <member refid="classforpy_1_1_i_entropy_function_1a763fc026d02d50934931e690761beecf" prot="public" virt="virtual"><scope>forpy::InducedEntropy</scope><name>~IEntropyFunction</name></member>
      <member refid="classforpy_1_1_induced_entropy_1af39b89a870d8aba17a5cbefdd293e88f" prot="public" virt="non-virtual"><scope>forpy::InducedEntropy</scope><name>~InducedEntropy</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
