00001 // 00002 // VVIObjF.h (v2.0) 00003 // 00004 // Vavilov density and distribution functions 00005 // 00006 // 00007 // Created by Morris Swartz on 1/14/10. 00008 // Copyright 2010 __TheJohnsHopkinsUniversity__. All rights reserved. 00009 // 00010 // V1.1 - make dzero call both fcns with a switch 00011 // V1.2 - remove inappriate initializers and add methods to return non-zero/normalized region 00012 // V2.0 - restructuring and speed improvements by V. Innocente 00013 // 00014 00015 #ifndef VVIObjF_h 00016 #define VVIObjF_h 1 00017 00018 // *********************************************************************************************************************** 00023 // *********************************************************************************************************************** 00024 class VVIObjF { 00025 00026 public: 00027 00028 VVIObjF(float kappa = 0.01, float beta2 = 1., int mode = 0); 00029 00030 float fcn(float x) const; 00031 void limits(float& xl, float& xu) const; 00032 00033 private: 00034 00035 // Vavilov distribution parameters (inputs and common block /G116C1/) 00036 00037 const int mode_; 00038 float t0_; 00039 float t1_; 00040 float t_; 00041 float omega_; 00042 float x0_; 00043 float a_[155]; 00044 float b_[155]; 00045 }; 00046 00047 00048 #endif