FOX/ObjCryst++  1.10.X (development)
geomStructFactor_002.cpp
1 /* ObjCryst++ Object-Oriented Crystallographic Library
2  (c) 2000-2002 Vincent Favre-Nicolin vincefn@users.sourceforge.net
3  2000-2001 University of Geneva (Switzerland)
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19 #include "ObjCryst/CrystVector/CrystVector.h"
20 #ifdef __VFN_GEOM_STRUCT_FACTOR_USE_POINTERS
21 
22 #define H (*h)
23 #define K (*k)
24 #define L (*l)
25 #define SF (*sf)
26 
27 #define __VFN_GEOM_STRUCT_FACTOR_POINTERS_INIT const REAL *h,*k,*l; REAL*sf;\
28  h=hh.data();k=kk.data();l=ll.data();sf=sfsf.data(); for(long i=0;i<hh.numElements();i++){
29 #define __VFN_GEOM_STRUCT_FACTOR_POINTERS_END h++ ; k++ ; l++ ; sf++; };
30 
31 #else
32 
33 #define H hh
34 #define K kk
35 #define L ll
36 #define sfsf SF
37 
38 #define __VFN_GEOM_STRUCT_FACTOR_POINTERS_INIT
39 #define __VFN_GEOM_STRUCT_FACTOR_POINTERS_END
40 
41 #endif
42 
43 namespace ObjCryst
44 {
45 
46 void RealGeomStructFactor_2 (const REAL x,
47  const REAL y,
48  const REAL z,
49  const CrystVector_REAL&hh,
50  const CrystVector_REAL&kk,
51  const CrystVector_REAL&ll,
52  CrystVector_REAL& sfsf)
53 {
54 __VFN_GEOM_STRUCT_FACTOR_POINTERS_INIT
55 
56  SF += 2*cos(H*x+K*y+L*z);
57 
58 __VFN_GEOM_STRUCT_FACTOR_POINTERS_END
59 };
60 
61 }
62 #undef H
63 #undef K
64 #undef L
65 #undef SF
66 #undef hh
67 #undef kk
68 #undef ll
69 #undef sfsf
70 #undef __VFN_GEOM_STRUCT_FACTOR_POINTERS_INIT
71 #undef __VFN_GEOM_STRUCT_FACTOR_POINTERS_END
72 
73 #undef __VFN_GEOM_STRUCT_FACTOR_USE_POINTERS
The namespace which includes all objects (crystallographic and algorithmic) in ObjCryst++.
Definition: Atom.cpp:47
void RealGeomStructFactor_2(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)