<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__vector3_8h">
<title>/Users/bernard/b20/bsoft/include/Vector3.h File Reference</title>
<indexterm><primary>/Users/bernard/b20/bsoft/include/Vector3.h</primary></indexterm>
<para>

<para>Class for 3-value vectors. </para>
 
</para>
<programlisting>#include &lt;iostream&gt;
#include &lt;cmath&gt;
#include &lt;vector&gt;
#include &quot;math_util.h&quot;
#include &quot;utilities.h&quot;
</programlisting><simplesect>
    <title>Classes    </title>
        <itemizedlist>
            <listitem><para>class <link linkend="_class_vector3">Vector3&lt; Type &gt;</link></para>

<para>Vector class for 3-value vectors used in 3D space. The internal variables are an array of 3 numbers. </para>
</listitem>
        </itemizedlist>
</simplesect>
<simplesect>
    <title>Functions    </title>
        <itemizedlist>
            <listitem><para>template&lt;typename Type &gt; </para><para>ostream &amp; <link linkend="__vector3_8h_1a2fab47fa4fe3079fa208ac3c683e911f">operator&lt;&lt;</link> (ostream &amp;output, <link linkend="_class_vector3">Vector3</link>&lt; Type &gt; vec)</para>
</listitem>
            <listitem><para>template&lt;typename Type &gt; </para><para>ostream &amp; <link linkend="__vector3_8h_1a453d40827be8af0026d786e07db9e5f6">operator&lt;&lt;</link> (ostream &amp;output, vector&lt; Type &gt; vec)</para>
</listitem>
            <listitem><para>template&lt;typename T &gt; </para><para>vector&lt; T &gt; <link linkend="__vector3_8h_1a39c07bf0d3fdc0cf7db21dc9b43dd65b">operator-</link> (vector&lt; T &gt; v1)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a08bb21ee144649d283a163efd28c3ba7">operator+</link> (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a9ff22f29a02ee77edd76be76ea20a941">operator+</link> (vector&lt; T1 &gt; v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1a9cc7e0285bf8041a27ed8a3a79681800">operator+=</link> (vector&lt; T1 &gt; &amp;v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1a2649e430b1a92b58fb3cf6e2ad7270dc">operator+=</link> (vector&lt; T1 &gt; &amp;v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1aeebcc5733b32c87fb525854851b2f4ba">operator-</link> (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a505620d58b2e167aebcd806aedc3d8ec">operator-</link> (vector&lt; T1 &gt; v1, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; &amp;v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a6741df41f1992df7a197b37c65f930b7">operator-</link> (vector&lt; T1 &gt; v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1a9c116051ecbdad0ca7afbc29f338430e">operator-=</link> (vector&lt; T1 &gt; &amp;v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1a6db546a24460902de0dc8e32edc74d14">operator-=</link> (vector&lt; T1 &gt; &amp;v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a02f708ae6b14bbf05ced11bb8097ad1a">operator *</link> (vector&lt; T1 &gt; v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1af856e888a8b77cd25ca92dab85d0183a">operator *=</link> (vector&lt; T1 &gt; &amp;v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a801bcb3fd02aec8f5af7f007236383d6">operator *</link> (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1a42bec44b126c84ba79555627399de68f">operator *=</link> (vector&lt; T1 &gt; &amp;v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a1ac9e14b4d15cd75d3557403627e2135">operator/</link> (vector&lt; T1 &gt; v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1a2b98bc6f715fb2bef31a3c03aae39ab8">operator/=</link> (vector&lt; T1 &gt; &amp;v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a33508bfdaae23f0cdd2312de554334c1">operator/</link> (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>void <link linkend="__vector3_8h_1a5391284930768c41757e9a3ab6411486">operator/=</link> (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T &gt; </para><para>double <link linkend="__vector3_8h_1ac97daece57b651e739f36af3e52bfb16">length2</link> (vector&lt; T &gt; v)</para>
</listitem>
            <listitem><para>template&lt;typename T &gt; </para><para>double <link linkend="__vector3_8h_1a7baf5ed670fcf9bcca9a3a400820e292">length</link> (vector&lt; T &gt; v)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>double <link linkend="__vector3_8h_1aa60745aa4e45acde64f733424e37dbb9">distance</link> (vector&lt; T1 &gt; &amp;v1, vector&lt; T2 &gt; &amp;v2)</para>
</listitem>
            <listitem><para>template&lt;typename T &gt; </para><para>T <link linkend="__vector3_8h_1a42a310f5682ea9329f473fc844546ff7">volume</link> (vector&lt; T &gt; v)</para>
</listitem>
            <listitem><para>template&lt;typename T &gt; </para><para>vector&lt; T &gt; <link linkend="__vector3_8h_1ab24fe0dc3954b04c5ddcf0a3ba88933b">absolute</link> (vector&lt; T &gt; v1)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a02f21e8084db618c7a5940a35a6af157">vecmin</link> (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a615a800cecf5337f5204196fa15ecdaa">vecmin</link> (vector&lt; T1 &gt; v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1ae25867c7981421dfbc90521f2c123e20">vecmax</link> (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a85b582acc2afa180cbe173dc403659e3">vecmax</link> (vector&lt; T1 &gt; v1, T2 v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>double <link linkend="__vector3_8h_1aae8c887e880f6f30f0a62ce1a493cb99">scalar</link> (vector&lt; T1 &gt; &amp;v1, vector&lt; T2 &gt; &amp;v2)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para>vector&lt; T1 &gt; <link linkend="__vector3_8h_1a6c08ac40deddc855eb13d54487cc717e">cross</link> (vector&lt; T1 &gt; &amp;v1, vector&lt; T2 &gt; &amp;v2)</para>
</listitem>
            <listitem><para>template&lt;typename Type &gt; </para><para><link linkend="_class_vector3">Vector3</link>&lt; Type &gt; <link linkend="__vector3_8h_1aa6d56867c51ab000532da3a40f537a95">operator/</link> (double d, <link linkend="_class_vector3">Vector3</link>&lt; Type &gt; vec)</para>

<para>Divides a value by each of the elements of a 3-value vector. </para>
</listitem>
            <listitem><para>template&lt;typename Type &gt; </para><para><link linkend="_class_vector3">Vector3</link>&lt; Type &gt; <link linkend="__vector3_8h_1abc1cd4ce641b359dc96cc86f8fbbd904">vector3_scalar_range</link> (<link linkend="_class_vector3">Vector3</link>&lt; Type &gt; vec, double min, double max)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para><link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; <link linkend="__vector3_8h_1a91b0aef6a31b75e1f68e14cfe4a6686c">vector3_origin_to_shift</link> (<link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; origin, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; size)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para><link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; <link linkend="__vector3_8h_1a34c38d6818c628beb3515d48ba0fcf39">vector3_set_PBC</link> (<link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; coord, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; box)</para>
</listitem>
            <listitem><para>template&lt;typename T1 , typename T2 &gt; </para><para><link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; <link linkend="__vector3_8h_1ab17df0602edbaf85679f10813ad97b38">vector3_difference_PBC</link> (<link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; &amp;v1, <link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; &amp;v2, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; &amp;box)</para>
</listitem>
        </itemizedlist>
</simplesect>
<section>
<title>Detailed Description</title>

<para>Class for 3-value vectors. </para>

<para><formalpara><title>Author: </title>

<para>Bernard Heymann </para>
</formalpara>
<formalpara><title>Date: </title>

<para>Created: 20000501 </para>

<para>Modified: 20190708 </para>
</formalpara>
</para>
</section>
<section>
<title>Function Documentation</title>
<anchor xml:id="__vector3_8h_1ab24fe0dc3954b04c5ddcf0a3ba88933b"/>    <section>
    <title>absolute()</title>
<indexterm><primary>absolute</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>absolute</secondary></indexterm>
<computeroutput>template&lt;typename T &gt; </computeroutput><para><computeroutput>vector&lt;T&gt; absolute (vector&lt; T &gt; v1)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 556 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a6c08ac40deddc855eb13d54487cc717e"/>    <section>
    <title>cross()</title>
<indexterm><primary>cross</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>cross</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; cross (vector&lt; T1 &gt; &amp; v1, vector&lt; T2 &gt; &amp; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 622 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1aa60745aa4e45acde64f733424e37dbb9"/>    <section>
    <title>distance()</title>
<indexterm><primary>distance</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>distance</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>double distance (vector&lt; T1 &gt; &amp; v1, vector&lt; T2 &gt; &amp; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 536 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a7baf5ed670fcf9bcca9a3a400820e292"/>    <section>
    <title>length()</title>
<indexterm><primary>length</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>length</secondary></indexterm>
<computeroutput>template&lt;typename T &gt; </computeroutput><para><computeroutput>double length (vector&lt; T &gt; v)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 528 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1ac97daece57b651e739f36af3e52bfb16"/>    <section>
    <title>length2()</title>
<indexterm><primary>length2</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>length2</secondary></indexterm>
<computeroutput>template&lt;typename T &gt; </computeroutput><para><computeroutput>double length2 (vector&lt; T &gt; v)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 517 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a02f708ae6b14bbf05ced11bb8097ad1a"/>    <section>
    <title>operator *()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>operator *</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator *</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator * (vector&lt; T1 &gt; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 445 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a801bcb3fd02aec8f5af7f007236383d6"/>    <section>
    <title>operator *()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>operator *</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator *</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator * (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 463 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1af856e888a8b77cd25ca92dab85d0183a"/>    <section>
    <title>operator *=()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>operator *=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator *=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator *= (vector&lt; T1 &gt; &amp; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 456 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a42bec44b126c84ba79555627399de68f"/>    <section>
    <title>operator *=()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>operator *=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator *=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator *= (vector&lt; T1 &gt; &amp; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 474 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a08bb21ee144649d283a163efd28c3ba7"/>    <section>
    <title>operator+()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>operator+</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator+</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator+ (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 363 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a9ff22f29a02ee77edd76be76ea20a941"/>    <section>
    <title>operator+()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>operator+</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator+</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator+ (vector&lt; T1 &gt; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 374 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a9cc7e0285bf8041a27ed8a3a79681800"/>    <section>
    <title>operator+=()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>operator+=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator+=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator+= (vector&lt; T1 &gt; &amp; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 385 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a2649e430b1a92b58fb3cf6e2ad7270dc"/>    <section>
    <title>operator+=()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>operator+=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator+=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator+= (vector&lt; T1 &gt; &amp; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 392 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a39c07bf0d3fdc0cf7db21dc9b43dd65b"/>    <section>
    <title>operator-()<computeroutput>[1/4]</computeroutput></title>
<indexterm><primary>operator-</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator-</secondary></indexterm>
<computeroutput>template&lt;typename T &gt; </computeroutput><para><computeroutput>vector&lt;T&gt; operator- (vector&lt; T &gt; v1)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 352 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1aeebcc5733b32c87fb525854851b2f4ba"/>    <section>
    <title>operator-()<computeroutput>[2/4]</computeroutput></title>
<indexterm><primary>operator-</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator-</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator- (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 400 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a505620d58b2e167aebcd806aedc3d8ec"/>    <section>
    <title>operator-()<computeroutput>[3/4]</computeroutput></title>
<indexterm><primary>operator-</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator-</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator- (vector&lt; T1 &gt; v1, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; &amp; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 411 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a6741df41f1992df7a197b37c65f930b7"/>    <section>
    <title>operator-()<computeroutput>[4/4]</computeroutput></title>
<indexterm><primary>operator-</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator-</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator- (vector&lt; T1 &gt; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 420 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a9c116051ecbdad0ca7afbc29f338430e"/>    <section>
    <title>operator-=()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>operator-=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator-=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator-= (vector&lt; T1 &gt; &amp; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 431 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a6db546a24460902de0dc8e32edc74d14"/>    <section>
    <title>operator-=()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>operator-=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator-=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator-= (vector&lt; T1 &gt; &amp; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 438 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a1ac9e14b4d15cd75d3557403627e2135"/>    <section>
    <title>operator/()<computeroutput>[1/3]</computeroutput></title>
<indexterm><primary>operator/</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator/</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator/ (vector&lt; T1 &gt; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 481 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a33508bfdaae23f0cdd2312de554334c1"/>    <section>
    <title>operator/()<computeroutput>[2/3]</computeroutput></title>
<indexterm><primary>operator/</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator/</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; operator/ (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 499 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1aa6d56867c51ab000532da3a40f537a95"/>    <section>
    <title>operator/()<computeroutput>[3/3]</computeroutput></title>
<indexterm><primary>operator/</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator/</secondary></indexterm>
<computeroutput>template&lt;typename Type &gt; </computeroutput><para><computeroutput><link linkend="_class_vector3">Vector3</link>&lt;Type&gt; operator/ (double d, <link linkend="_class_vector3">Vector3</link>&lt; Type &gt; vec)<computeroutput>[inline]</computeroutput></computeroutput></para><para>

<para>Divides a value by each of the elements of a 3-value vector. </para>
</para>

<para>
                <formalpara>
                    <title>
Parameters                    </title>
                    <para>
                    <table frame="all">
                        <tgroup cols="2" align="left" colsep="1" rowsep="1">
                        <colspec colwidth="1*"/>
                        <colspec colwidth="4*"/>
                        <tbody>
                            <row>
                                <entry>d</entry>
                                <entry>
<para>value to be divided. </para>
</entry>
                            </row>
                            <row>
                                <entry>vec</entry>
                                <entry>
<para>3-value vector. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>Vector3&lt;Type&gt; new 3-value vector. <literallayout><computeroutput>All elements of the vector must be non-zero.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 643 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a2b98bc6f715fb2bef31a3c03aae39ab8"/>    <section>
    <title>operator/=()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>operator/=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator/=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator/= (vector&lt; T1 &gt; &amp; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 492 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a5391284930768c41757e9a3ab6411486"/>    <section>
    <title>operator/=()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>operator/=</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator/=</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>void operator/= (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 510 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a2fab47fa4fe3079fa208ac3c683e911f"/>    <section>
    <title>operator&lt;&lt;()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>operator&lt;&lt;</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator&lt;&lt;</secondary></indexterm>
<computeroutput>template&lt;typename Type &gt; </computeroutput><para><computeroutput>ostream&amp; operator&lt;&lt; (ostream &amp; output, <link linkend="_class_vector3">Vector3</link>&lt; Type &gt; vec)</computeroutput></para><para>
Definition at line 290 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a453d40827be8af0026d786e07db9e5f6"/>    <section>
    <title>operator&lt;&lt;()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>operator&lt;&lt;</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>operator&lt;&lt;</secondary></indexterm>
<computeroutput>template&lt;typename Type &gt; </computeroutput><para><computeroutput>ostream&amp; operator&lt;&lt; (ostream &amp; output, vector&lt; Type &gt; vec)</computeroutput></para><para>
Definition at line 297 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1aae8c887e880f6f30f0a62ce1a493cb99"/>    <section>
    <title>scalar()</title>
<indexterm><primary>scalar</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>scalar</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>double scalar (vector&lt; T1 &gt; &amp; v1, vector&lt; T2 &gt; &amp; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 611 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1ae25867c7981421dfbc90521f2c123e20"/>    <section>
    <title>vecmax()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>vecmax</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vecmax</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; vecmax (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 589 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a85b582acc2afa180cbe173dc403659e3"/>    <section>
    <title>vecmax()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>vecmax</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vecmax</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; vecmax (vector&lt; T1 &gt; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 600 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a02f21e8084db618c7a5940a35a6af157"/>    <section>
    <title>vecmin()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>vecmin</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vecmin</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; vecmin (vector&lt; T1 &gt; v1, vector&lt; T2 &gt; v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 567 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a615a800cecf5337f5204196fa15ecdaa"/>    <section>
    <title>vecmin()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>vecmin</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vecmin</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput>vector&lt;T1&gt; vecmin (vector&lt; T1 &gt; v1, T2 v2)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 578 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1ab17df0602edbaf85679f10813ad97b38"/>    <section>
    <title>vector3_difference_PBC()</title>
<indexterm><primary>vector3_difference_PBC</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vector3_difference_PBC</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput><link linkend="_class_vector3">Vector3</link>&lt;T1&gt; vector3_difference_PBC (<link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; &amp; v1, <link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; &amp; v2, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; &amp; box)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 695 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a91b0aef6a31b75e1f68e14cfe4a6686c"/>    <section>
    <title>vector3_origin_to_shift()</title>
<indexterm><primary>vector3_origin_to_shift</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vector3_origin_to_shift</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput><link linkend="_class_vector3">Vector3</link>&lt;T1&gt; vector3_origin_to_shift (<link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; origin, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; size)</computeroutput></para><para>
Definition at line 667 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1abc1cd4ce641b359dc96cc86f8fbbd904"/>    <section>
    <title>vector3_scalar_range()</title>
<indexterm><primary>vector3_scalar_range</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vector3_scalar_range</secondary></indexterm>
<computeroutput>template&lt;typename Type &gt; </computeroutput><para><computeroutput><link linkend="_class_vector3">Vector3</link>&lt;Type&gt; vector3_scalar_range (<link linkend="_class_vector3">Vector3</link>&lt; Type &gt; vec, double min, double max)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 652 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a34c38d6818c628beb3515d48ba0fcf39"/>    <section>
    <title>vector3_set_PBC()</title>
<indexterm><primary>vector3_set_PBC</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>vector3_set_PBC</secondary></indexterm>
<computeroutput>template&lt;typename T1 , typename T2 &gt; </computeroutput><para><computeroutput><link linkend="_class_vector3">Vector3</link>&lt;T1&gt; vector3_set_PBC (<link linkend="_class_vector3">Vector3</link>&lt; T1 &gt; coord, <link linkend="_class_vector3">Vector3</link>&lt; T2 &gt; box)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 682 of file Vector3.h.</para>
    </section><anchor xml:id="__vector3_8h_1a42a310f5682ea9329f473fc844546ff7"/>    <section>
    <title>volume()</title>
<indexterm><primary>volume</primary><secondary>Vector3.h</secondary></indexterm>
<indexterm><primary>Vector3.h</primary><secondary>volume</secondary></indexterm>
<computeroutput>template&lt;typename T &gt; </computeroutput><para><computeroutput>T volume (vector&lt; T &gt; v)<computeroutput>[inline]</computeroutput></computeroutput></para><para>
Definition at line 545 of file Vector3.h.</para>
</section>
</section>
</section>
