Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

EMAN::Util::FakeKaiserBessel Class Reference

#include <util.h>

Inheritance diagram for EMAN::Util::FakeKaiserBessel:

Inheritance graph
[legend]
Collaboration diagram for EMAN::Util::FakeKaiserBessel:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 FakeKaiserBessel (float alpha, int K, float r_, float v_, int N_, float vtable_=0.f, int ntable_=5999)
float sinhwin (float x) const
 Kaiser-Bessel Sinh window function.
float i0win (float x) const
 Kaiser-Bessel I0 window function.
void build_I0table ()
 2*pi*alpha*r*vadjust

Detailed Description

Definition at line 380 of file util.h.


Constructor & Destructor Documentation

EMAN::Util::FakeKaiserBessel::FakeKaiserBessel float  alpha,
int  K,
float  r_,
float  v_,
int  N_,
float  vtable_ = 0.f,
int  ntable_ = 5999
[inline]
 

Definition at line 382 of file util.h.

00439                 {


Member Function Documentation

void Util::FakeKaiserBessel::build_I0table  )  [virtual]
 

2*pi*alpha*r*vadjust

Reimplemented from EMAN::Util::KaiserBessel.

Definition at line 2062 of file util_sparx.cpp.

References EMAN::Util::KaiserBessel::facadj, EMAN::Util::KaiserBessel::fltb, EMAN::Util::KaiserBessel::i0table, EMAN::Util::KaiserBessel::K, EMAN::Util::KaiserBessel::N, EMAN::Util::KaiserBessel::ntable, EMAN::Util::round(), sqrt(), and EMAN::Util::KaiserBessel::vadjust.

02062                                          {
02063         i0table.resize(ntable+1); // i0table[0:ntable]
02064         int ltab = int(round(float(ntable)/1.1f));
02065         fltb = float(ltab)/(K/2);
02066         float val0 = sqrt(facadj)*static_cast<float>(gsl_sf_bessel_I1(facadj));
02067         for (int i=ltab+1; i <= ntable; i++) i0table[i] = 0.f;
02068         for (int i=0; i <= ltab; i++) {
02069                 float s = float(i)/fltb/N;
02070                 if (s < vadjust) {
02071                         float rt = sqrt(1.f - pow(s/vadjust, 2));
02072                         i0table[i] = sqrt(facadj*rt)*static_cast<float>(gsl_sf_bessel_I1(facadj*rt))/val0;
02073                 } else {
02074                         i0table[i] = 0.f;
02075                 }
02076         }
02077 }

float Util::FakeKaiserBessel::i0win float  x  )  const [virtual]
 

Kaiser-Bessel I0 window function.

Reimplemented from EMAN::Util::KaiserBessel.

Definition at line 2053 of file util_sparx.cpp.

References EMAN::Util::KaiserBessel::facadj, sqrt(), and EMAN::Util::KaiserBessel::vadjust.

02053                                                {
02054         float val0 = sqrt(facadj)*float(gsl_sf_bessel_I1(facadj));
02055         float absx = fabs(x);
02056         if (absx > vadjust) return 0.f;
02057         float rt = sqrt(1.f - pow(absx/vadjust, 2));
02058         float res = sqrt(facadj*rt)*float(gsl_sf_bessel_I1(facadj*rt))/val0;
02059         return res;
02060 }

float Util::FakeKaiserBessel::sinhwin float  x  )  const [virtual]
 

Kaiser-Bessel Sinh window function.

Reimplemented from EMAN::Util::KaiserBessel.

Definition at line 2079 of file util_sparx.cpp.

References EMAN::Util::KaiserBessel::alphar, EMAN::Util::KaiserBessel::fac, and sqrt().

02079                                                  {
02080         float val0 = sinh(fac)/fac;
02081         float absx = fabs(x);
02082         if (0.0 == x) {
02083                 float res = 1.0f;
02084                 return res;
02085         } else if (absx == alphar) {
02086                 return 1.0f/val0;
02087         } else if (absx < alphar) {
02088                 float rt = sqrt(1.0f - pow((x/alphar), 2));
02089                 float facrt = fac*rt;
02090                 float res = (sinh(facrt)/facrt)/val0;
02091                 return res;
02092         } else {
02093                 float rt = sqrt(pow((x/alphar),2) - 1.f);
02094                 float facrt = fac*rt;
02095                 float res = (sin(facrt)/facrt)/val0;
02096                 return res;
02097         }
02098 }


The documentation for this class was generated from the following files:
Generated on Mon Jul 19 13:08:06 2010 for EMAN2 by  doxygen 1.4.4