<?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="_symmetry_8cpp">
<title>/Users/bernard/b20/bsoft/src/util/symmetry.cpp File Reference</title>
<indexterm><primary>/Users/bernard/b20/bsoft/src/util/symmetry.cpp</primary></indexterm>
<para>

<para>General symmetry functions. </para>
 
</para>
<programlisting>#include &quot;symmetry.h&quot;
#include &quot;random_numbers.h&quot;
#include &quot;Euler.h&quot;
#include &quot;linked_list.h&quot;
#include &quot;utilities.h&quot;
</programlisting><simplesect>
    <title>Functions    </title>
        <itemizedlist>
            <listitem><para><link linkend="_struct_bsymmetry">Bsymmetry</link> * <link linkend="_symmetry_8cpp_1a422681fbcf8632d7613b2c428e7c17b9">init_point_group_symmetry</link> (<link linkend="_class_bstring">Bstring</link> symmetry_string)</para>

<para>Sets up a symmetry structure from a string identifier. </para>
</listitem>
            <listitem><para><link linkend="_struct_bsymmetry">Bsymmetry</link> * <link linkend="_symmetry_8cpp_1a74d3a8b23fb587ef4257557fe098782f">init_point_group_symmetry</link> ()</para>
</listitem>
            <listitem><para>int <link linkend="_symmetry_8cpp_1ab375b7971ce675c39ba9a7b3c7e7919f">kill_symmetry</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Deallocates a symmetry structure. </para>
</listitem>
            <listitem><para><link linkend="_class_bstring">Bstring</link> <link linkend="_symmetry_8cpp_1a14fae4e8a757d22988b59e4f5682f267">symmetry_clean_pointgroup</link> (<link linkend="_class_bstring">Bstring</link> &amp;symmetry_string)</para>

<para>Corrects an existing point group string. </para>
</listitem>
            <listitem><para>string <link linkend="_symmetry_8cpp_1a79adf15f738d41f47ad62eca52442618">symmetry_helical_label</link> (double helix_rise, double helix_angle, int dyad_axis, int cyclic, double seam_shift)</para>

<para>Returns the label for helical symmetry. </para>
</listitem>
            <listitem><para>int <link linkend="_symmetry_8cpp_1adbfacf75caffab69839f95539fa16d28">symmetry_order</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Returns the symmetry order. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> <link linkend="_symmetry_8cpp_1a1b00e2e723fe0ae3a3fd64c7ad7d4940">view_symmetry_reference</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Returns an asymmetric unit reference point. </para>
</listitem>
            <listitem><para><link linkend="_class_matrix3">Matrix3</link> <link linkend="_symmetry_8cpp_1a11c10d5f3ec69377252c81664fc2f082">symmetry_rotate_to_axis</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, long axis, long axis_flag)</para>

<para>Rotation matrix to orient a symmetry axis on the z axis. </para>
</listitem>
            <listitem><para><link linkend="_class_vector3">Vector3</link>&lt; double &gt; * <link linkend="_symmetry_8cpp_1a0f45451db02ecca6cebbe651e86b1c1c">symmetry_get_axes</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, long &amp;nax)</para>

<para>Get all symmetry axes. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> * <link linkend="_symmetry_8cpp_1a27e6d0d6a2460aa703f210fcfb594fc6">symmetry_get_all_views</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, <link linkend="_class_view">View</link> asu_view)</para>

<para>Get all symmetry-related views of one given view. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> * <link linkend="_symmetry_8cpp_1a786c940be2528dcce8f6bf4fa3854da0">symmetry_get_all_views</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, <link linkend="_class_view">View</link> *views)</para>
</listitem>
            <listitem><para><link linkend="_class_matrix3">Matrix3</link> * <link linkend="_symmetry_8cpp_1a1f35b894f611c4f9d4a221936a203d42">symmetry_get_all_matrices</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, long &amp;nsym)</para>

<para>Get all symmetry-related views of one given view. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> * <link linkend="_symmetry_8cpp_1a60324aa269006526cd2b57f04ed1af8a">asymmetric_unit_views</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, double theta_step, double phi_step, int flag)</para>

<para>Initializes a well-distributed set of views in an asymmetric unit. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> * <link linkend="_symmetry_8cpp_1af375aca395013b0dd21b6ccdec8ea9c0">asymmetric_unit_views</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, double theta_step, double phi_step, double alpha_step, int flag)</para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> * <link linkend="_symmetry_8cpp_1a3d62ace090fe666cc90cc90e97359b01">side_views</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, double side_ang, double theta_step, double phi_step)</para>

<para>Initializes a set of views around the z-axis for helical projection. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> * <link linkend="_symmetry_8cpp_1a2924cec6551de3adcf9590d9e1b1d4bb">side_views</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, double side_ang, double theta_step, double phi_step, double alpha_step)</para>
</listitem>
            <listitem><para>int <link linkend="_symmetry_8cpp_1a87e51a314caacf3aae9e7579aa41be7e">change_views_to_asymmetric_unit</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, <link linkend="_class_view">View</link> *view)</para>

<para>Change the views to those in the asymmetric unit. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> <link linkend="_symmetry_8cpp_1a726d56f8c6ac832f21874f7ddabcc525">find_asymmetric_unit_view</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, <link linkend="_class_view">View</link> theview)</para>

<para>Finds the corresponding view in the asymmetric unit. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> <link linkend="_symmetry_8cpp_1a00cf10379e5f95171dd999b562bc258c">find_closest_symmetric_view</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym, <link linkend="_class_view">View</link> view_ref, <link linkend="_class_view">View</link> view)</para>

<para>Finds the closest symmetric match between two views. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> * <link linkend="_symmetry_8cpp_1a00933c02aa5ff41b09028f4bb48d6d7a">reference_asymmetric_unit_views</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Returns a reference view for each asymmetric unit. </para>
</listitem>
            <listitem><para><link linkend="_class_view">View</link> <link linkend="_symmetry_8cpp_1abb216e3087aa3940b2ee716b27a522bb">random_symmetric_view</link> (<link linkend="_class_view">View</link> &amp;asu_view, <link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Returns a randomly picked symmetry view. </para>
</listitem>
            <listitem><para>int <link linkend="_symmetry_8cpp_1ac778d3ceb9c7cb06c8bff82ef4605052">test_asymmetric_unit_view</link> (<link linkend="_class_view">View</link> theview, <link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Returns an asymmetric unit index number. </para>
</listitem>
            <listitem><para>float * <link linkend="_symmetry_8cpp_1a43b3ad53abd532e217d791636dd45dcc">sym_matrices_from_text_list</link> (int nsym, char *symop, int line_len)</para>

<para>Calculates symmetry matrices from a list of strings. </para>
</listitem>
            <listitem><para>int <link linkend="_symmetry_8cpp_1a08f8bda1f32ef4dcb3e8434e7011fa79">sym_show_matrices</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Show symmetry matrices. </para>
</listitem>
            <listitem><para>int <link linkend="_symmetry_8cpp_1ab32e87808db4647ad35b52f6b8d9cd94">sym_show_operational_matrices</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Show symmetry matrices associated with each symmetry operator. </para>
</listitem>
            <listitem><para>int <link linkend="_symmetry_8cpp_1a9a8faf3bec26296882d83a4d57f6c608">sym_show_pdb_matrices</link> (<link linkend="_struct_bsymmetry">Bsymmetry</link> *sym)</para>

<para>Show PDB format symmetry matrices associated with each symmetry operator. </para>
</listitem>
        </itemizedlist>
</simplesect>
<simplesect>
    <title>Variables    </title>
        <itemizedlist>
            <listitem><para>int <link linkend="_symmetry_8cpp_1a0b2caeb4b6f130be43e5a2f0267dd453">verbose</link></para>
</listitem>
        </itemizedlist>
</simplesect>
<section>
<title>Detailed Description</title>

<para>General symmetry functions. </para>

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

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

<para>Created: 20010420 </para>

<para>Modified: 20190417 </para>
</formalpara>
</para>
</section>
<section>
<title>Function Documentation</title>
<anchor xml:id="_symmetry_8cpp_1a60324aa269006526cd2b57f04ed1af8a"/>    <section>
    <title>asymmetric_unit_views()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>asymmetric_unit_views</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>asymmetric_unit_views</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link>* asymmetric_unit_views (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, double theta_step, double phi_step, int flag)</computeroutput></para><para>

<para>Initializes a well-distributed set of views in an asymmetric unit. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>theta_step</entry>
                                <entry>
<para>angular step size from primary symmetry axis (radians). </para>
</entry>
                            </row>
                            <row>
                                <entry>phi_step</entry>
                                <entry>
<para>angular step size around primary symmetry axis (radians). </para>
</entry>
                            </row>
                            <row>
                                <entry>flag</entry>
                                <entry>
<para>flag for generating a full asymmetric unit (default 0=half). </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>View* a linked list of views. <literallayout><computeroutput>A set of views is calculated with tesselation within each asymmetric
unit such that the views are well-distributed.
If the full flag is set, both halves of the asymmetric unit are covered.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 570 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1af375aca395013b0dd21b6ccdec8ea9c0"/>    <section>
    <title>asymmetric_unit_views()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>asymmetric_unit_views</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>asymmetric_unit_views</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link>* asymmetric_unit_views (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, double theta_step, double phi_step, double alpha_step, int flag)</computeroutput></para><para>
Definition at line 746 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a87e51a314caacf3aae9e7579aa41be7e"/>    <section>
    <title>change_views_to_asymmetric_unit()</title>
<indexterm><primary>change_views_to_asymmetric_unit</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>change_views_to_asymmetric_unit</secondary></indexterm>
<para><computeroutput>int change_views_to_asymmetric_unit (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, <link linkend="_class_view">View</link> * view)</computeroutput></para><para>

<para>Change the views to those in the asymmetric unit. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>*view</entry>
                                <entry>
<para>list of views (replaced). </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>int 0. <literallayout><computeroutput>The view is replaced with the one in the standard asymmetric unit.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 834 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a726d56f8c6ac832f21874f7ddabcc525"/>    <section>
    <title>find_asymmetric_unit_view()</title>
<indexterm><primary>find_asymmetric_unit_view</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>find_asymmetric_unit_view</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link> find_asymmetric_unit_view (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, <link linkend="_class_view">View</link> theview)</computeroutput></para><para>

<para>Finds the corresponding view in the asymmetric unit. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>theview</entry>
                                <entry>
<para>view. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para><link linkend="_class_view">View</link> the asymmetric unit view. <literallayout><computeroutput>The asymmetric unit view is found and the the new view with the 
link from the old view is returned.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 856 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a00cf10379e5f95171dd999b562bc258c"/>    <section>
    <title>find_closest_symmetric_view()</title>
<indexterm><primary>find_closest_symmetric_view</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>find_closest_symmetric_view</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link> find_closest_symmetric_view (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, <link linkend="_class_view">View</link> view_ref, <link linkend="_class_view">View</link> view)</computeroutput></para><para>

<para>Finds the closest symmetric match between two views. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>view_ref</entry>
                                <entry>
<para>reference view. </para>
</entry>
                            </row>
                            <row>
                                <entry>view</entry>
                                <entry>
<para>test view. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para><link linkend="_class_view">View</link> matched symmetric version of test view. <literallayout><computeroutput>A list of symmetry-related views of the test view is searched
for the closest to the reference view.
The matched view is returned.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 939 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a422681fbcf8632d7613b2c428e7c17b9"/>    <section>
    <title>init_point_group_symmetry()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>init_point_group_symmetry</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>init_point_group_symmetry</secondary></indexterm>
<para><computeroutput><link linkend="_struct_bsymmetry">Bsymmetry</link>* init_point_group_symmetry (<link linkend="_class_bstring">Bstring</link> symmetry_string)</computeroutput></para><para>

<para>Sets up a symmetry structure from a string identifier. </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>symmetry_string</entry>
                                <entry>
<para>string containing point group identifier. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>Bsymmetry* sym new symmetry structure. <literallayout><computeroutput>The point group symmetries are identified by the following strings:
    C&lt;n&gt;            cyclic point group of order n.
    D&lt;n&gt;            dihedral point group of order n.
    T               tetrahedral point group.
    O               octahedral/cubic point group.
    I               icosahedral/dodecahedral point group.
    H&lt;r&gt;,&lt;a&gt;,&lt;d&gt;    helical symmetry with rise r, rise angle a and dyad d (1/2).
For the higher symmetries the following adjustments are available:
    T-3             no three-fold operator.
    O-3             no three-fold operator.
    I-3             no three-fold operator.
    I90             90 degrees rotated around z-axis.
    I90-3           90 degrees rotated around z-axis and no three-fold operator.
If the point group string is empty (NULL), the default is C1 (asymmetric).
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 39 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a74d3a8b23fb587ef4257557fe098782f"/>    <section>
    <title>init_point_group_symmetry()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>init_point_group_symmetry</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>init_point_group_symmetry</secondary></indexterm>
<para><computeroutput><link linkend="_struct_bsymmetry">Bsymmetry</link>* init_point_group_symmetry ( )</computeroutput></para><para>
Definition at line 196 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1ab375b7971ce675c39ba9a7b3c7e7919f"/>    <section>
    <title>kill_symmetry()</title>
<indexterm><primary>kill_symmetry</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>kill_symmetry</secondary></indexterm>
<para><computeroutput>int kill_symmetry (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Deallocates a symmetry structure. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>int 0. </para>
</formalpara>
</para>
<para>
Definition at line 207 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1abb216e3087aa3940b2ee716b27a522bb"/>    <section>
    <title>random_symmetric_view()</title>
<indexterm><primary>random_symmetric_view</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>random_symmetric_view</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link> random_symmetric_view (<link linkend="_class_view">View</link> &amp; asu_view, <link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Returns a randomly picked symmetry view. </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>&amp;asu_view</entry>
                                <entry>
<para>asymmetric unit view. </para>
</entry>
                            </row>
                            <row>
                                <entry>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para><link linkend="_class_view">View</link> picked view. </para>
</formalpara>
</para>
<para>
Definition at line 1011 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a00933c02aa5ff41b09028f4bb48d6d7a"/>    <section>
    <title>reference_asymmetric_unit_views()</title>
<indexterm><primary>reference_asymmetric_unit_views</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>reference_asymmetric_unit_views</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link>* reference_asymmetric_unit_views (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Returns a reference view for each asymmetric unit. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>View* reference views. </para>
</formalpara>
</para>
<para>
Definition at line 972 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a3d62ace090fe666cc90cc90e97359b01"/>    <section>
    <title>side_views()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>side_views</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>side_views</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link>* side_views (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, double side_ang, double theta_step, double phi_step)</computeroutput></para><para>

<para>Initializes a set of views around the z-axis for helical projection. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>side_ang</entry>
                                <entry>
<para>starting angle (radians). </para>
</entry>
                            </row>
                            <row>
                                <entry>theta_step</entry>
                                <entry>
<para>angular step size perpendicular to equator (radians). </para>
</entry>
                            </row>
                            <row>
                                <entry>phi_step</entry>
                                <entry>
<para>angular step size around equator (radians). </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>View* a set of 4-value views. <literallayout><computeroutput>A set of views is calculated corresponding to views around the z-axis
including some tilting to account for oblique views.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 769 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a2924cec6551de3adcf9590d9e1b1d4bb"/>    <section>
    <title>side_views()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>side_views</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>side_views</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link>* side_views (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, double side_ang, double theta_step, double phi_step, double alpha_step)</computeroutput></para><para>
Definition at line 814 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a43b3ad53abd532e217d791636dd45dcc"/>    <section>
    <title>sym_matrices_from_text_list()</title>
<indexterm><primary>sym_matrices_from_text_list</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>sym_matrices_from_text_list</secondary></indexterm>
<para><computeroutput>float* sym_matrices_from_text_list (int nsym, char * symop, int line_len)</computeroutput></para><para>

<para>Calculates symmetry matrices from a list of strings. </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>nsym</entry>
                                <entry>
<para>number of symmetry operators. </para>
</entry>
                            </row>
                            <row>
                                <entry>*symop</entry>
                                <entry>
<para>array of symmetry operator lines. </para>
</entry>
                            </row>
                            <row>
                                <entry>line_len</entry>
                                <entry>
<para>length of text line in the array. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>float* a set of 12-value symmetry matrices. <literallayout><computeroutput>The list of strings is expected to be packed into a single character
array with a fixed length for each string. Each string encodes a
symmetry operation in terms of x, y and z operations in reciprocal
space. 
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 1069 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a08f8bda1f32ef4dcb3e8434e7011fa79"/>    <section>
    <title>sym_show_matrices()</title>
<indexterm><primary>sym_show_matrices</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>sym_show_matrices</secondary></indexterm>
<para><computeroutput>int sym_show_matrices (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Show symmetry matrices. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>int number of symmetry matrices. </para>
</formalpara>
</para>
<para>
Definition at line 1118 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1ab32e87808db4647ad35b52f6b8d9cd94"/>    <section>
    <title>sym_show_operational_matrices()</title>
<indexterm><primary>sym_show_operational_matrices</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>sym_show_operational_matrices</secondary></indexterm>
<para><computeroutput>int sym_show_operational_matrices (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Show symmetry matrices associated with each symmetry operator. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>int number of symmetry matrices. </para>
</formalpara>
</para>
<para>
Definition at line 1146 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a9a8faf3bec26296882d83a4d57f6c608"/>    <section>
    <title>sym_show_pdb_matrices()</title>
<indexterm><primary>sym_show_pdb_matrices</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>sym_show_pdb_matrices</secondary></indexterm>
<para><computeroutput>int sym_show_pdb_matrices (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Show PDB format symmetry matrices associated with each symmetry operator. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>int number of symmetry matrices. </para>
</formalpara>
</para>
<para>
Definition at line 1167 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a14fae4e8a757d22988b59e4f5682f267"/>    <section>
    <title>symmetry_clean_pointgroup()</title>
<indexterm><primary>symmetry_clean_pointgroup</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_clean_pointgroup</secondary></indexterm>
<para><computeroutput><link linkend="_class_bstring">Bstring</link> symmetry_clean_pointgroup (<link linkend="_class_bstring">Bstring</link> &amp; symmetry_string)</computeroutput></para><para>

<para>Corrects an existing point group string. </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>&amp;symmetry_string</entry>
                                <entry>
<para>string containing point group identifier. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para><link linkend="_class_bstring">Bstring</link> the clean string. <literallayout><computeroutput>A point group string is converted to .
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 226 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a1f35b894f611c4f9d4a221936a203d42"/>    <section>
    <title>symmetry_get_all_matrices()</title>
<indexterm><primary>symmetry_get_all_matrices</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_get_all_matrices</secondary></indexterm>
<para><computeroutput><link linkend="_class_matrix3">Matrix3</link>* symmetry_get_all_matrices (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, long &amp; nsym)</computeroutput></para><para>

<para>Get all symmetry-related views of one given view. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>&amp;nsym</entry>
                                <entry>
<para>number of matrices. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>Matrix3* array of matrices. <literallayout><computeroutput>The number of views generated for a point group symmetry is
calculated as the product of the order fields in the symmetry
structure.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 520 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a27e6d0d6a2460aa703f210fcfb594fc6"/>    <section>
    <title>symmetry_get_all_views()<computeroutput>[1/2]</computeroutput></title>
<indexterm><primary>symmetry_get_all_views</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_get_all_views</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link>* symmetry_get_all_views (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, <link linkend="_class_view">View</link> asu_view)</computeroutput></para><para>

<para>Get all symmetry-related views of one given view. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>asu_view</entry>
                                <entry>
<para>asymmetric unit vector and rotation angle. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>View* linked list of views. <literallayout><computeroutput>The number of views generated for a point group symmetry is
calculated as the product of the order fields in the symmetry
structure.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 448 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a786c940be2528dcce8f6bf4fa3854da0"/>    <section>
    <title>symmetry_get_all_views()<computeroutput>[2/2]</computeroutput></title>
<indexterm><primary>symmetry_get_all_views</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_get_all_views</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link>* symmetry_get_all_views (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, <link linkend="_class_view">View</link> * views)</computeroutput></para><para>
Definition at line 492 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a0f45451db02ecca6cebbe651e86b1c1c"/>    <section>
    <title>symmetry_get_axes()</title>
<indexterm><primary>symmetry_get_axes</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_get_axes</secondary></indexterm>
<para><computeroutput><link linkend="_class_vector3">Vector3</link>&lt;double&gt;* symmetry_get_axes (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, long &amp; nax)</computeroutput></para><para>

<para>Get all symmetry axes. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>&amp;nax</entry>
                                <entry>
<para>pointer to number of axes. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para><link linkend="_class_vector3">Vector3&lt;double&gt;</link>* array of axes. </para>
</formalpara>
</para>
<para>
Definition at line 379 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a79adf15f738d41f47ad62eca52442618"/>    <section>
    <title>symmetry_helical_label()</title>
<indexterm><primary>symmetry_helical_label</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_helical_label</secondary></indexterm>
<para><computeroutput>string symmetry_helical_label (double helix_rise, double helix_angle, int dyad_axis, int cyclic, double seam_shift)</computeroutput></para><para>

<para>Returns the label for helical symmetry. </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>helix_rise</entry>
                                <entry>
<para>helical rise (angstroms). </para>
</entry>
                            </row>
                            <row>
                                <entry>helix_angle</entry>
                                <entry>
<para>helical rotation angle (radians). </para>
</entry>
                            </row>
                            <row>
                                <entry>dyad_axis</entry>
                                <entry>
<para>presence of dyad axis (1/2). </para>
</entry>
                            </row>
                            <row>
                                <entry>cyclic</entry>
                                <entry>
<para>cyclic symmetry. </para>
</entry>
                            </row>
                            <row>
                                <entry>seam_shift</entry>
                                <entry>
<para>fractional shift for seamed helices. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>string label. <literallayout><computeroutput>Thge symmetry order is defined as the product of all the individual
orders of the symmetry operations, or alternatively, the number of views.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 280 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1adbfacf75caffab69839f95539fa16d28"/>    <section>
    <title>symmetry_order()</title>
<indexterm><primary>symmetry_order</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_order</secondary></indexterm>
<para><computeroutput>int symmetry_order (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Returns the symmetry order. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>int order. <literallayout><computeroutput>The symmetry order is defined as the product of all the individual
orders of the symmetry operations, or alternatively, the number of views.
</computeroutput></literallayout> </para>
</formalpara>
</para>
<para>
Definition at line 301 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a11c10d5f3ec69377252c81664fc2f082"/>    <section>
    <title>symmetry_rotate_to_axis()</title>
<indexterm><primary>symmetry_rotate_to_axis</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>symmetry_rotate_to_axis</secondary></indexterm>
<para><computeroutput><link linkend="_class_matrix3">Matrix3</link> symmetry_rotate_to_axis (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym, long axis, long axis_flag)</computeroutput></para><para>

<para>Rotation matrix to orient a symmetry axis on the z axis. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                            <row>
                                <entry>axis</entry>
                                <entry>
<para>desired symmetry axis order. </para>
</entry>
                            </row>
                            <row>
                                <entry>axis_flag</entry>
                                <entry>
<para>view modifier. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para><link linkend="_class_matrix3">Matrix3</link> new rotation matrix. </para>
</formalpara>
</para>
<para>
Definition at line 347 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1ac778d3ceb9c7cb06c8bff82ef4605052"/>    <section>
    <title>test_asymmetric_unit_view()</title>
<indexterm><primary>test_asymmetric_unit_view</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>test_asymmetric_unit_view</secondary></indexterm>
<para><computeroutput>int test_asymmetric_unit_view (<link linkend="_class_view">View</link> theview, <link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Returns an asymmetric unit index number. </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>theview</entry>
                                <entry>
<para>view to test. </para>
</entry>
                            </row>
                            <row>
                                <entry>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para>int view number. </para>
</formalpara>
</para>
<para>
Definition at line 1035 of file symmetry.cpp.</para>
    </section><anchor xml:id="_symmetry_8cpp_1a1b00e2e723fe0ae3a3fd64c7ad7d4940"/>    <section>
    <title>view_symmetry_reference()</title>
<indexterm><primary>view_symmetry_reference</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>view_symmetry_reference</secondary></indexterm>
<para><computeroutput><link linkend="_class_view">View</link> view_symmetry_reference (<link linkend="_struct_bsymmetry">Bsymmetry</link> * sym)</computeroutput></para><para>

<para>Returns an asymmetric unit reference point. </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>*sym</entry>
                                <entry>
<para>symmetry structure. </para>
</entry>
                            </row>
                        </tbody>
                        </tgroup>
                    </table>
                    </para>
                </formalpara>
                <formalpara><title>Returns: </title>

<para><link linkend="_class_view">View</link> reference view. </para>
</formalpara>
</para>
<para>
Definition at line 315 of file symmetry.cpp.</para>
</section>
</section>
<section>
<title>Variable Documentation</title>
<anchor xml:id="_symmetry_8cpp_1a0b2caeb4b6f130be43e5a2f0267dd453"/>    <section>
    <title>verbose</title>
<indexterm><primary>verbose</primary><secondary>symmetry.cpp</secondary></indexterm>
<indexterm><primary>symmetry.cpp</primary><secondary>verbose</secondary></indexterm>
<para><computeroutput>int verbose</computeroutput></para></section>
</section>
</section>
