csymlib.h

Go to the documentation of this file.
00001 /*
00002      csymlib.h: header file for csymlib.c
00003      Copyright (C) 2001  CCLRC, Martyn Winn
00004 
00005      This library is free software; you can redistribute it and/or
00006      modify it under the terms of the GNU Lesser General Public
00007      License as published by the Free Software Foundation; either
00008      version 2.1 of the License, or (at your option) any later
00009      version.
00010 
00011      This library is distributed in the hope that it will be useful,
00012      but WITHOUT ANY WARRANTY; without even the implied warranty of
00013      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014      Lesser General Public License for more details.
00015 
00016      You should have received a copy of the GNU Lesser General Public
00017      License along with this library; if not, write to the Free
00018      Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019      Boston, MA 02110-1301 USA
00020 
00021 */
00022 
00099 #ifndef __CSymLib__
00100 #define __CSymLib__
00101 
00102 
00103 /* note that definitions in ccp4_spg.h are within the CSym namespace */
00104 #include "ccp4_spg.h"
00105 
00106 #ifdef  __cplusplus
00107 namespace CSym {
00108 extern "C" {
00109 #endif
00110 
00115 CCP4SPG *ccp4spg_load_by_standard_num(const int numspg); 
00116 
00121 CCP4SPG *ccp4spg_load_by_ccp4_num(const int ccp4numspg); 
00122 
00127 CCP4SPG *ccp4spg_load_by_spgname(const char *spgname);
00128 
00136 CCP4SPG *ccp4spg_load_by_ccp4_spgname(const char *ccp4spgname);
00137 
00143 CCP4SPG * ccp4_spgrp_reverse_lookup(const int nsym1, const ccp4_symop *op1);
00144 
00156 CCP4SPG *ccp4spg_load_spacegroup(const int numspg, const int ccp4numspg,
00157         const char *spgname, const char *ccp4spgname, 
00158         const int nsym1, const ccp4_symop *op1); 
00159 
00164 void ccp4spg_mem_tidy(void);
00165 
00173 int symfr_driver (const char *line, float rot[][4][4]);
00174 
00178 void ccp4spg_free(CCP4SPG **sp);
00179 
00185 void ccp4spg_register_by_ccp4_num(int numspg);
00186 
00193 void ccp4spg_register_by_symops(int nops, float rsm[][4][4]);
00194 
00201 int ccp4_spg_get_centering(const char *symbol_Hall, float cent_ops[4][3]);
00202 
00208 int ccp4spg_load_laue(CCP4SPG* spacegroup, const int nlaue);
00209 
00213 int ASU_1b   (const int h, const int k, const int l);
00214 
00218 int ASU_2_m  (const int h, const int k, const int l);
00219 
00223 int ASU_mmm  (const int h, const int k, const int l);
00224 
00228 int ASU_4_m  (const int h, const int k, const int l);
00229 
00233 int ASU_4_mmm(const int h, const int k, const int l);
00234 
00238 int ASU_3b   (const int h, const int k, const int l);
00239 
00243 int ASU_3bm  (const int h, const int k, const int l);
00244 
00248 int ASU_3bmx (const int h, const int k, const int l);
00249 
00253 int ASU_6_m  (const int h, const int k, const int l);
00254 
00258 int ASU_6_mmm(const int h, const int k, const int l);
00259 
00263 int ASU_m3b  (const int h, const int k, const int l);
00264 
00268 int ASU_m3bm  (const int h, const int k, const int l);
00269 
00274 char *ccp4spg_symbol_Hall(CCP4SPG* sp);
00275 
00281 ccp4_symop ccp4_symop_invert( const ccp4_symop op1 );
00282 
00290 int ccp4spg_name_equal(const char *spgname1, const char *spgname2);
00291 
00303 int ccp4spg_name_equal_to_lib(const char *spgname_lib, const char *spgname_match);
00304 
00312 char *ccp4spg_to_shortname(char *shortname, const char *longname);
00313 
00320 void ccp4spg_name_de_colon(char *name);
00321 
00329 int ccp4spg_pgname_equal(const char *pgname1, const char *pgname2);
00330 
00336 ccp4_symop *ccp4spg_norm_trans(ccp4_symop *op);
00337 
00350 int ccp4_spgrp_equal( int nsym1, const ccp4_symop *op1, int nsym2, const ccp4_symop *op2);
00351 
00357 int ccp4_symop_code(ccp4_symop op);
00358 
00365 int ccp4_int_compare( const void *p1, const void *p2 );
00366 
00374 int ccp4spg_is_in_pm_asu(const CCP4SPG* sp, const int h, const int k, const int l);
00375 
00383 int ccp4spg_is_in_asu(const CCP4SPG* sp, const int h, const int k, const int l);
00384 
00399 int ccp4spg_put_in_asu(const CCP4SPG* sp, const int hin, const int kin, const int lin,
00400                        int *hout, int *kout, int *lout );
00401 
00414 void ccp4spg_generate_indices(const CCP4SPG* sp, const int isym,
00415                   const int hin, const int kin, const int lin,
00416                               int *hout, int *kout, int *lout );
00417 
00428 float ccp4spg_phase_shift(const int hin, const int kin, const int lin,
00429                           const float phasin, const float trans[3], const int isign);
00430 
00436 int ccp4spg_do_chb(const float chb[3][3]);
00437 
00443 void ccp4spg_set_centric_zones(CCP4SPG* sp);
00444 
00454 int ccp4spg_is_centric(const CCP4SPG* sp, const int h, const int k, const int l);
00455 
00463 int ccp4spg_check_centric_zone(const int nzone, const int h, const int k, const int l);
00464 
00473 float ccp4spg_centric_phase(const CCP4SPG* sp, const int h, const int k, const int l);
00474 
00479 void ccp4spg_print_centric_zones(const CCP4SPG* sp);
00480 
00486 char *ccp4spg_describe_centric_zone(const int nzone, char *centric_zone);
00487 
00493 void ccp4spg_set_epsilon_zones(CCP4SPG* sp);
00494 
00503 int ccp4spg_get_multiplicity(const CCP4SPG* sp, const int h, const int k, const int l);
00504 
00512 int ccp4spg_check_epsilon_zone(const int nzone, const int h, const int k, const int l);
00513 
00518 void ccp4spg_print_epsilon_zones(const CCP4SPG* sp);
00519 
00525 char *ccp4spg_describe_epsilon_zone(const int nzone, char *epsilon_zone);
00526 
00527 
00535 int ccp4spg_is_sysabs(const CCP4SPG* sp, const int h, const int k, const int l);
00536 
00548 int ccp4spg_generate_origins(const char *namspg, const int nsym, const float rsym[][4][4],
00549                              float origins[][3], int *polarx, int *polary, int *polarz,
00550                              const int iprint);
00551 
00556 void ccp4spg_print_recip_spgrp(const CCP4SPG* sp);
00557 
00562 void ccp4spg_print_recip_ops(const CCP4SPG* sp);
00563 
00570 int range_to_limits(const char *range, float limits[2]);
00571 
00583 void set_fft_grid(CCP4SPG* sp, const int nxmin, const int nymin, const int nzmin, 
00584                   const float sample, int *nx, int *ny, int *nz);
00585 
00591 int all_factors_le_19(const int n);
00592 
00600 int get_grid_sample(const int minsmp, const int nmul, const float sample);
00601 
00609 int ccp4spg_check_symm_cell(int nsym, float rsym[][4][4], float cell[6]);
00610 
00611 #ifdef __cplusplus
00612 } }
00613 #endif
00614 #endif
00615 
00616 /*
00617   Local variables:
00618   mode: font-lock
00619   End:
00620 */

Generated on Wed Oct 29 21:14:38 2008 for gpp4 by  doxygen 1.4.7