<?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.5.6">
  <compounddef id="classsqmat" kind="class" prot="public">
    <compoundname>sqmat</compoundname>
    <derivedcompoundref refid="classchmat" prot="public" virt="non-virtual">chmat</derivedcompoundref>
    <derivedcompoundref refid="classfsqmat" prot="public" virt="non-virtual">fsqmat</derivedcompoundref>
    <derivedcompoundref refid="classldmat" prot="private" virt="non-virtual">ldmat</derivedcompoundref>
    <includes refid="libDC_8h" local="no">libDC.h</includes>
      <sectiondef kind="protected-attrib">
      <memberdef kind="variable" id="classsqmat_10abed904bdc0882373ba9adba919689d" prot="protected" static="no" mutable="no">
        <type>int</type>
        <definition>int sqmat::dim</definition>
        <argsstring></argsstring>
        <name>dim</name>
        <briefdescription>
<para>dimension of the square matrix </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="102" bodyfile="/home/smidl/work/git/mixpp/bdm/math/libDC.h" bodystart="99" bodyend="-1"/>
        <referencedby refid="classldmat_1a60f2c7e4f3c6a7738eaaaab81ffad20" compoundref="libDC_8cpp" startline="104" endline="114">ldmat::add</referencedby>
        <referencedby refid="classldmat_10fceb6b5b637cec89bb0a3d2e6be1306" compoundref="libDC_8h" startline="277" endline="277">ldmat::cols</referencedby>
        <referencedby refid="classsqmat_1ecc2e2540f95a04f4449842588170f5b" compoundref="libDC_8h" startline="91" endline="91">cols</referencedby>
        <referencedby refid="classldmat_1f291faa073e7bc8dfafc7ae93daa2506" compoundref="libDC_8cpp" startline="203" endline="297">ldmat::ldform</referencedby>
        <referencedby refid="classldmat_1abe16e0f86668ef61a9a4896c8565dee" compoundref="libDC_8cpp" startline="41" endline="44">ldmat::ldmat</referencedby>
        <referencedby refid="libDC_8h_16715d039e6d5d97005cf9e2522dfa474" compoundref="libDC_8cpp" startline="301" endline="320">ltuinv</referencedby>
        <referencedby refid="classldmat_10f0f6e083e6d947cf58097ffce3ccd1a" compoundref="libDC_8cpp" startline="58" endline="72">ldmat::opupdt</referencedby>
        <referencedby refid="classldmat_196dfb21865db4f5bd36fa70f9b0b1163" compoundref="libDC_8h" startline="279" endline="279">ldmat::rows</referencedby>
        <referencedby refid="classsqmat_1071e80ced9cc3b8cbb360fa7462eb646" compoundref="libDC_8h" startline="94" endline="94">rows</referencedby>
        <referencedby refid="classldmat_1fc380626ced6f9244fb58c5f0231174d" compoundref="libDC_8cpp" startline="189" endline="201">ldmat::sqrt_mult</referencedby>
        <referencedby refid="classldmat_15b0515da8dc2293d9e4360b74cc26c9e" compoundref="libDC_8cpp" startline="80" endline="101">ldmat::to_mat</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classsqmat_1b223484796661f2dadb5607a86ce0581" prot="public" static="no" const="no" explicit="no" inline="no" virt="pure-virtual">
        <type>void</type>
        <definition>virtual void sqmat::opupdt</definition>
        <argsstring>(const vec &amp;v, double w)=0</argsstring>
        <name>opupdt</name>
        <reimplementedby refid="classldmat_10f0f6e083e6d947cf58097ffce3ccd1a">opupdt</reimplementedby>
        <reimplementedby refid="classfsqmat_1b36530e155667fe9f1bd58394e50c65a">opupdt</reimplementedby>
        <reimplementedby refid="classchmat_1bbc2d98d7455b1f38828907d442836bf">opupdt</reimplementedby>
        <param>
          <type>const vec &amp;</type>
          <declname>v</declname>
        </param>
        <param>
          <type>double</type>
          <declname>w</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Perfroms a rank-1 update by outer product of vectors: <formula id="23">$V = V + w v v&apos;$</formula>. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>v</parametername>
</parameternamelist>
<parameterdescription>
<para>Vector forming the outer product to be added </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>w</parametername>
</parameternamelist>
<parameterdescription>
<para>weight of updating; can be negative</para></parameterdescription>
</parameteritem>
</parameterlist>
BLAS-2b operation. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="41"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_19a5b6fddfeb42339e1dc9b978a2590fc" prot="public" static="no" const="no" explicit="no" inline="no" virt="pure-virtual">
        <type>mat</type>
        <definition>virtual mat sqmat::to_mat</definition>
        <argsstring>()=0</argsstring>
        <name>to_mat</name>
        <reimplementedby refid="classldmat_15b0515da8dc2293d9e4360b74cc26c9e">to_mat</reimplementedby>
        <reimplementedby refid="classfsqmat_1cedf4f048309056f4262c930914dfda8">to_mat</reimplementedby>
        <reimplementedby refid="classchmat_1a37e2c726e4fc3ad50b26ac2ca6c1452">to_mat</reimplementedby>
        <briefdescription>
<para>Conversion to full matrix. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="46"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_160fbbfa9e483b8187c135f787ee53afa" prot="public" static="no" const="no" explicit="no" inline="no" virt="pure-virtual">
        <type>void</type>
        <definition>virtual void sqmat::mult_sym</definition>
        <argsstring>(const mat &amp;C)=0</argsstring>
        <name>mult_sym</name>
        <reimplementedby refid="classldmat_1e967b9425007f0cb6cd59b845f9756d8">mult_sym</reimplementedby>
        <reimplementedby refid="classfsqmat_15530d2756b5d991de755e6121c9a452e">mult_sym</reimplementedby>
        <reimplementedby refid="classchmat_166f509f92b0ccf020e2a2a32566e0777">mult_sym</reimplementedby>
        <param>
          <type>const mat &amp;</type>
          <declname>C</declname>
        </param>
        <briefdescription>
<para>Inplace symmetric multiplication by a SQUARE matrix <formula id="24">$C$</formula>, i.e. <formula id="25">$V = C*V*C&apos;$</formula>. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>C</parametername>
</parameternamelist>
<parameterdescription>
<para>multiplying matrix, </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="51"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_16909e906da17725b1b80f3cae7cf3325" prot="public" static="no" const="no" explicit="no" inline="no" virt="pure-virtual">
        <type>void</type>
        <definition>virtual void sqmat::mult_sym_t</definition>
        <argsstring>(const mat &amp;C)=0</argsstring>
        <name>mult_sym_t</name>
        <reimplementedby refid="classldmat_14fd155f38eb6dd5af4bdf9c98a7999a9">mult_sym_t</reimplementedby>
        <reimplementedby refid="classfsqmat_192052a8adc2054b63e42d1373d145c89">mult_sym_t</reimplementedby>
        <reimplementedby refid="classchmat_107f50d1332b901eee962e8b1913102f7">mult_sym_t</reimplementedby>
        <param>
          <type>const mat &amp;</type>
          <declname>C</declname>
        </param>
        <briefdescription>
<para>Inplace symmetric multiplication by a SQUARE transpose of matrix <formula id="24">$C$</formula>, i.e. <formula id="26">$V = C&apos;*V*C$</formula>. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>C</parametername>
</parameternamelist>
<parameterdescription>
<para>multiplying matrix, </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="56"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_10a772b396750eeeed85d69fa72478b45" prot="public" static="no" const="yes" explicit="no" inline="no" virt="pure-virtual">
        <type>double</type>
        <definition>virtual double sqmat::logdet</definition>
        <argsstring>() const =0</argsstring>
        <name>logdet</name>
        <reimplementedby refid="classldmat_12b42750ba4962d439aa52a77ae12949b">logdet</reimplementedby>
        <reimplementedby refid="classfsqmat_1eb0d1358f536e4453b5f99d0418ca1e5">logdet</reimplementedby>
        <reimplementedby refid="classchmat_1b504ca818203b13e667cb3c503980382">logdet</reimplementedby>
        <briefdescription>
<para>Logarithm of a determinant. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="63"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_16b79438b5d7544a9c8e110a145355d8f" prot="public" static="no" const="yes" explicit="no" inline="no" virt="pure-virtual">
        <type>vec</type>
        <definition>virtual vec sqmat::sqrt_mult</definition>
        <argsstring>(const vec &amp;v) const =0</argsstring>
        <name>sqrt_mult</name>
        <reimplementedby refid="classldmat_1fc380626ced6f9244fb58c5f0231174d">sqrt_mult</reimplementedby>
        <reimplementedby refid="classfsqmat_1842a774077ee34ac3c36d180ab33e103">sqrt_mult</reimplementedby>
        <reimplementedby refid="classchmat_1b22aa239dbaca33e3fb93b4f674d7051">sqrt_mult</reimplementedby>
        <param>
          <type>const vec &amp;</type>
          <declname>v</declname>
        </param>
        <briefdescription>
<para>Multiplies square root of <formula id="27">$V$</formula> by vector <formula id="28">$x$</formula>. </para>        </briefdescription>
        <detaileddescription>
<para>Used e.g. in generating normal samples. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="70"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_1fc026312eb02ba09f85d5aacd6f05ab3" prot="public" static="no" const="yes" explicit="no" inline="no" virt="pure-virtual">
        <type>double</type>
        <definition>virtual double sqmat::qform</definition>
        <argsstring>(const vec &amp;v) const =0</argsstring>
        <name>qform</name>
        <reimplementedby refid="classldmat_1d64f331b781903e913cb2ee836886f3f">qform</reimplementedby>
        <reimplementedby refid="classfsqmat_1a6c91b0389e73404324b2314b08d6e87">qform</reimplementedby>
        <reimplementedby refid="classchmat_16807737c7ffdb7041256b51db7592248">qform</reimplementedby>
        <param>
          <type>const vec &amp;</type>
          <declname>v</declname>
        </param>
        <briefdescription>
<para>Evaluates quadratic form <formula id="29">$x= v&apos;*V*v$</formula>;. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="76"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_16230e8e8a9341866aaa0ce008691aac2" prot="public" static="no" const="yes" explicit="no" inline="no" virt="pure-virtual">
        <type>double</type>
        <definition>virtual double sqmat::invqform</definition>
        <argsstring>(const vec &amp;v) const =0</argsstring>
        <name>invqform</name>
        <reimplementedby refid="classldmat_1d876c5f83e02b3e809b35c9de5068f14">invqform</reimplementedby>
        <reimplementedby refid="classfsqmat_158075da64ddadd4df40654c35b928c6f">invqform</reimplementedby>
        <reimplementedby refid="classchmat_1b49427cff186c62f5df3724e5d2c34b4">invqform</reimplementedby>
        <param>
          <type>const vec &amp;</type>
          <declname>v</declname>
        </param>
        <briefdescription>
<para>Evaluates quadratic form <formula id="30">$x= v&apos;*inv(V)*v$</formula>;. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="82"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_16fca246f9eabbdeb8cac03030e826b5e" prot="public" static="no" const="no" explicit="no" inline="no" virt="pure-virtual">
        <type>void</type>
        <definition>virtual void sqmat::clear</definition>
        <argsstring>()=0</argsstring>
        <name>clear</name>
        <reimplementedby refid="classldmat_14d6e401de9607332305c27e67972a07a">clear</reimplementedby>
        <reimplementedby refid="classfsqmat_1cfa4c359483d2322f32d1d50050f8ac4">clear</reimplementedby>
        <reimplementedby refid="classchmat_1d0a995d312ecc11d3b43693f5e224ba9">clear</reimplementedby>
        <briefdescription>
<para>Clearing matrix so that it corresponds to zeros. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="88"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_1ecc2e2540f95a04f4449842588170f5b" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>int sqmat::cols</definition>
        <argsstring>() const </argsstring>
        <name>cols</name>
        <reimplementedby refid="classldmat_10fceb6b5b637cec89bb0a3d2e6be1306">cols</reimplementedby>
        <briefdescription>
<para>Reimplementing common functions of mat: <ref refid="classsqmat_1ecc2e2540f95a04f4449842588170f5b" kindref="member">cols()</ref>. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="91" bodyfile="/home/smidl/work/git/mixpp/bdm/math/libDC.h" bodystart="91" bodyend="91"/>
        <references refid="classsqmat_10abed904bdc0882373ba9adba919689d" compoundref="libDC_8h" startline="99">dim</references>
      </memberdef>
      <memberdef kind="function" id="classsqmat_1071e80ced9cc3b8cbb360fa7462eb646" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>int sqmat::rows</definition>
        <argsstring>() const </argsstring>
        <name>rows</name>
        <reimplementedby refid="classldmat_196dfb21865db4f5bd36fa70f9b0b1163">rows</reimplementedby>
        <briefdescription>
<para>Reimplementing common functions of mat: <ref refid="classsqmat_1ecc2e2540f95a04f4449842588170f5b" kindref="member">cols()</ref>. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="94" bodyfile="/home/smidl/work/git/mixpp/bdm/math/libDC.h" bodystart="94" bodyend="94"/>
        <references refid="classsqmat_10abed904bdc0882373ba9adba919689d" compoundref="libDC_8h" startline="99">dim</references>
      </memberdef>
      <memberdef kind="function" id="classsqmat_10481f2067bb32aaea7e6d4f27e46b656" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type></type>
        <definition>virtual sqmat::~sqmat</definition>
        <argsstring>()</argsstring>
        <name>~sqmat</name>
        <briefdescription>
<para>Destructor for future use;. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="97" bodyfile="/home/smidl/work/git/mixpp/bdm/math/libDC.h" bodystart="97" bodyend="97"/>
      </memberdef>
      <memberdef kind="function" id="classsqmat_14268750c040c716b2c05037f725078a2" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>sqmat::sqmat</definition>
        <argsstring>(const int dim0)</argsstring>
        <name>sqmat</name>
        <param>
          <type>const int</type>
          <declname>dim0</declname>
        </param>
        <briefdescription>
<para>Default constructor. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="99" bodyfile="/home/smidl/work/git/mixpp/bdm/math/libDC.h" bodystart="99" bodyend="99"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Virtual class for representation of double symmetric matrices in square-root form. </para>    </briefdescription>
    <detaileddescription>
<para>All operations defined on this class should be optimized for the chosen decomposition. </para>    </detaileddescription>
    <inheritancegraph>
      <node id="1293">
        <label>ldmat</label>
        <link refid="classldmat"/>
        <childnode refid="1290" relation="private-inheritance">
        </childnode>
      </node>
      <node id="1292">
        <label>fsqmat</label>
        <link refid="classfsqmat"/>
        <childnode refid="1290" relation="public-inheritance">
        </childnode>
      </node>
      <node id="1290">
        <label>sqmat</label>
        <link refid="classsqmat"/>
      </node>
      <node id="1291">
        <label>chmat</label>
        <link refid="classchmat"/>
        <childnode refid="1290" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <location file="/home/smidl/work/git/mixpp/bdm/math/libDC.h" line="32" bodyfile="/home/smidl/work/git/mixpp/bdm/math/libDC.h" bodystart="31" bodyend="103"/>
    <listofallmembers>
      <member refid="classsqmat_16fca246f9eabbdeb8cac03030e826b5e" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>clear</name></member>
      <member refid="classsqmat_1ecc2e2540f95a04f4449842588170f5b" prot="public" virt="non-virtual"><scope>sqmat</scope><name>cols</name></member>
      <member refid="classsqmat_10abed904bdc0882373ba9adba919689d" prot="protected" virt="non-virtual"><scope>sqmat</scope><name>dim</name></member>
      <member refid="classsqmat_16230e8e8a9341866aaa0ce008691aac2" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>invqform</name></member>
      <member refid="classsqmat_10a772b396750eeeed85d69fa72478b45" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>logdet</name></member>
      <member refid="classsqmat_160fbbfa9e483b8187c135f787ee53afa" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>mult_sym</name></member>
      <member refid="classsqmat_16909e906da17725b1b80f3cae7cf3325" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>mult_sym_t</name></member>
      <member refid="classsqmat_1b223484796661f2dadb5607a86ce0581" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>opupdt</name></member>
      <member refid="classsqmat_1fc026312eb02ba09f85d5aacd6f05ab3" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>qform</name></member>
      <member refid="classsqmat_1071e80ced9cc3b8cbb360fa7462eb646" prot="public" virt="non-virtual"><scope>sqmat</scope><name>rows</name></member>
      <member refid="classsqmat_14268750c040c716b2c05037f725078a2" prot="public" virt="non-virtual"><scope>sqmat</scope><name>sqmat</name></member>
      <member refid="classsqmat_16b79438b5d7544a9c8e110a145355d8f" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>sqrt_mult</name></member>
      <member refid="classsqmat_19a5b6fddfeb42339e1dc9b978a2590fc" prot="public" virt="pure-virtual"><scope>sqmat</scope><name>to_mat</name></member>
      <member refid="classsqmat_10481f2067bb32aaea7e6d4f27e46b656" prot="public" virt="virtual"><scope>sqmat</scope><name>~sqmat</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
