Open PaperOpt
OpenPaperOpt/DistributionOneDimension.h
Go to the documentation of this file.
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