|
Open PaperOpt
|
00001 00002 #pragma once 00003 #ifndef DISTRIBUTIONELLIPTIC_H 00004 #define DISTRIBUTIONELLIPTIC_H 00005 #include "Distribution.h" 00006 #include "DistributionTable.h" 00007 00008 namespace Distributions 00009 { 00015 class DistributionElliptic : 00016 public Distribution 00017 { 00018 public: 00022 DistributionElliptic(void); 00023 00033 DistributionElliptic(double IntervalMin, double IntervalMax, 00034 double AxisDirection, double Ellipticity, 00035 double AllowedErr=1e-5); 00036 00040 ~DistributionElliptic(void); 00041 00042 // OPERATIONS 00048 double GenerateRandomNumber() const; 00049 00050 private: 00051 double Interp(double X1, double X2, double Y1, double Y2, double X); 00052 double f(double Theta); 00053 double mIntervalMin; 00054 double mIntervalMax; 00055 double mAxisDirection; 00056 double mEllipticity; 00057 double mA; 00058 double mB; 00059 DistributionTable* mpDt; 00060 }; //DistributionElliptic 00061 } // Distributions 00062 00063 #endif // DISTRIBUTIONELLIPTIC_H