14 #ifndef INCLUDED_core_scoring_electron_density_ElectronDensity_hh
15 #define INCLUDED_core_scoring_electron_density_ElectronDensity_hh
26 #include <utility/exit.hh>
29 #include <ObjexxFCL/FArray3D.hh>
37 #include <utility/vector1.hh>
38 #include <utility/pointer/ReferenceCount.hh>
43 namespace electron_density {
64 bool fftshift=
false) {
72 density.dimension( map.u1(),map.u2(),map.u3() );
74 for (
int i=1; i<=(
int)map.u1(); ++i) {
75 int fi = (
int)(fftshift ?
pos_mod( i-(map.u1()/2)-1 , map.u1())+1 : i);
76 for (
int j=1; j<=(
int)map.u2(); ++j) {
77 int fj = (
int)(fftshift ?
pos_mod( j-(map.u2()/2)-1 , map.u2())+1 : j);
78 for (
int k=1; k<=(
int)map.u3(); ++k) {
79 int fk = (
int)(fftshift ?
pos_mod( k-(map.u3()/2)-1 , map.u3())+1 : k);
80 density(fi,fj,fk) = (float)map(i,j,k);
235 if ( (
int)
CCs.size() != nres ) {
236 CCs.resize(nres, 0.0);
248 runtime_assert( resid <=
CCs.size() );
284 for (
core::Size i=1; i<= scoring_mask.size(); ++i)
295 inline ObjexxFCL::FArray3D< float >
const &
data()
const {
return density; };
304 fracX[1]*
grid[1] - efforigin[1] + 1,
305 fracX[2]*
grid[2] - efforigin[2] + 1);
347 X_map =
symmap[ vrtid ].first;
348 R =
symmap[ vrtid ].second;
353 runtime_assert(
symmap.find( -subunit ) !=
symmap.end() );
354 R =
symmap[ -subunit ].second;
384 double S2(
int h,
int k,
int l) {
404 ObjexxFCL::FArray3D< std::complex<double> >
Fdensity;
417 ObjexxFCL::FArray3D< double >
p_o;
436 ObjexxFCL::FArray3D< double >
F_s2;
437 ObjexxFCL::FArray3D< double >
Pcalc;
446 std::map< int , ObjexxFCL::FArray3D< std::complex<double> > >
Fdrhoc_dx;
447 std::map< int , ObjexxFCL::FArray3D< std::complex<double> > >
Fdrhoc_dy;
448 std::map< int , ObjexxFCL::FArray3D< std::complex<double> > >
Fdrhoc_dz;
526 int r=x%y;
if (r<0) r+=y;
530 float r=std::fmod(x,y);
if (r<0) r+=y;
534 double r=std::fmod(x,y);
if (r<0) r+=y;