|
Open PaperOpt
|
00001 #ifndef DISTRIBUTIONONEDIMENSION_H 00002 #define DISTRIBUTIONONEDIMENSION_H 00003 #include <vector> 00004 00005 #include <algorithm> 00006 #include <math.h> 00007 #include "Distribution.h" 00008 #include "utilities.h" 00009 #include "utilities.h" 00014 namespace Distributions{ 00015 00016 class DistributionOneDimension:public Distribution { 00017 //friend class FiberDistribution; 00018 00019 public: 00020 DistributionOneDimension(); 00021 ~DistributionOneDimension(); 00022 00032 DistributionOneDimension(double minVal,double maxVal,double minDelta,int minPoints, 00033 double maxPatch,double* data,int numData,int dataDist); 00034 int GetDataSize(); 00035 // OPERATIONS 00036 00042 double GenerateRandomNumber() const; 00043 00044 private: 00048 double InvF(double y) const; 00049 void DistRecSubdiv(double rMin,double rMax,double* data,int numData,SubdivEnv* env); 00050 int DistPntSeek(double* data,int dataDist,int nPnts,double value); 00051 00052 double mRegStart,mRegEnd; //Region 00053 int mNumPatches; 00054 double* mOfs; //Offsetts 00055 double* mPcs; //Patches [a,k1,k2,k3] 00056 }; 00057 } 00058 #endif