OpendTect  6.3
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
DataDistribution< VT > Class Template Reference

Sharable data distribution. Sampling defaults to 0 step 1. More...

Inheritance diagram for DataDistribution< VT >:
[legend]

Public Types

typedef VT DataValueType
 
typedef DataValueType PosType
 
typedef VT ValueType
 
typedef TypeSet< VT > SetType
 
typedef SetType::size_type size_type
 
typedef size_type IdxType
 
typedef SamplingData< PosTypeSamplingType
 
typedef Interval< VT > RangeType
 
- Public Types inherited from Monitorable
typedef int ChangeType
 
typedef int64_t IDType
 
typedef int64_t DirtyCountType
 
typedef CNotifier< Monitorable, ChangeDataChangeDataNotifier
 

Public Member Functions

 DataDistribution ()
 
 DataDistribution (size_type)
 
 DataDistribution (SamplingType, size_type n=256)
 
 DataDistribution (const SetType &)
 
 DataDistribution (const SetType &, SamplingType)
 
 mDeclMonitorableAssignment (DataDistribution)
 
size_type size () const
 
bool isEmpty () const
 
void setEmpty ()
 
 mImplSimpleMonitoredGetSet (inline, sampling, setSampling, SamplingType, sampling_, cSamplingChange())
 
void setSize (size_type)
 
VT get (IdxType, bool cumulative=false) const
 
VT operator[] (IdxType) const
 
VT valueAt (PosType, bool cumulative) const
 
IdxType getBinNr (PosType) const
 
SetType getSet (bool cum) const
 
void set (IdxType, VT)
 slow, O(N) More...
 
void set (const VT *)
 fast, no checks More...
 
void add (const VT *)
 fast, no checks More...
 
bool isNormalised () const
 
VT sumOfValues () const
 
VT maxValue () const
 
RangeType dataRange () const
 
PosType positionForCumulative (VT) const
 
PosType medianPosition () const
 
VT * getArr (bool cum) const
 for fast non-shared usage More...
 
- Public Member Functions inherited from SharedObject
 SharedObject (const char *nm=0)
 
 SharedObject (const SharedObject &)
 
SharedObjectoperator= (const SharedObject &)
 
bool operator== (const SharedObject &) const
 
bool operator!= (const SharedObject &oth) const
 
virtual SharedObjectclone () const
 
ChangeType compareWith (const Monitorable &) const
 
- Public Member Functions inherited from NamedMonitorable
 NamedMonitorable (const char *nm=0)
 
 NamedMonitorable (const NamedObject &)
 
virtual ~NamedMonitorable ()
 
 NamedMonitorable (const NamedMonitorable &)
 
NamedMonitorableoperator= (const NamedMonitorable &)
 
bool operator== (const NamedMonitorable &) const
 
bool operator!= (const NamedMonitorable &oth) const
 
virtual NamedMonitorablegetClone () const
 
virtual BufferString getName () const
 
virtual void setName (const char *)
 
- Public Member Functions inherited from Monitorable
 Monitorable (const Monitorable &)
 
virtual ~Monitorable ()
 
Monitorableoperator= (const Monitorable &)
 
bool operator== (const Monitorable &) const
 
virtual ChangeDataNotifierobjectChanged () const
 
virtual Notifier< Monitorable > & objectToBeDeleted () const
 
virtual void touch () const
 
virtual DirtyCountType dirtyCount () const
 
void sendChangeNotification (const ChangeData &) const
 
void sendEntireObjectChangeNotification () const
 
void transferNotifsTo (const Monitorable &, const CallBacker *onlyfor=0) const
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const
 
bool attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const
 
void detachCB (const NotifierAccess &, const CallBack &) const
 
void detachCB (const NotifierAccess *notif, const CallBack &cb) const
 
bool isNotifierAttached (const NotifierAccess *) const
 Only for debugging purposes, don't use. More...
 
virtual bool isCapsule () const
 
void stopReceivingNotifications () const
 
- Public Member Functions inherited from NamedObject
 NamedObject (const char *nm=0)
 
 NamedObject (const NamedObject &oth)
 
virtual ~NamedObject ()
 
NamedObjectoperator= (const NamedObject &)
 
bool operator== (const NamedObject &oth) const
 
virtual const OD::Stringname () const
 
bool getNameFromPar (const IOPar &)
 
void putNameInPar (IOPar &) const
 

Static Public Member Functions

static ChangeType cDataChange ()
 
static ChangeType cSamplingChange ()
 
static const DataDistribution< VT > & getEmptyDistrib ()
 
static IdxType getBinNrFor (PosType, const SamplingType &, size_type nrbins)
 
- Static Public Member Functions inherited from SharedObject
static Notifier< SharedObject > & instanceCreated ()
 
- Static Public Member Functions inherited from NamedMonitorable
static Notifier< NamedMonitorable > & instanceCreated ()
 
static ChangeType cNameChange ()
 
- Static Public Member Functions inherited from Monitorable
static Notifier< Monitorable > & instanceCreated ()
 defines static instanceCreated() More...
 
static ChangeType cEntireObjectChange ()
 
static ChangeType cNoChange ()
 
static IDType cUnspecChgID ()
 
static IDType cEntireObjectChgID ()
 
static ChangeType changeNotificationTypeOf (CallBacker *)
 
- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 

Protected Member Functions

 ~DataDistribution ()
 
void setCumData (int)
 
VT gtMax (int *idxat=0) const
 
- Protected Member Functions inherited from SharedObject
void copyAll (const SharedObject &)
 
virtual ~SharedObject ()
 
- Protected Member Functions inherited from NamedMonitorable
void copyAll (const NamedMonitorable &)
 
- Protected Member Functions inherited from Monitorable
 Monitorable ()
 
void copyAll (const Monitorable &)
 
void sendChgNotif (AccessLocker &, const ChangeData &) const
 calls objectChanged with released lock More...
 
void sendChgNotif (AccessLocker &, ChangeType, IDType) const
 calls objectChanged with released lock More...
 
void sendDelNotif () const
 
void stopChangeNotifications () const
 
void resumeChangeNotifications () const
 
template<class T >
getMemberSimple (const T &) const
 the get function used by mImplSimpleMonitoredGet More...
 
template<class TMember , class TSetTo >
void setMemberSimple (TMember &, TSetTo, ChangeType, IDType)
 the set function used by mImplSimpleMonitoredSet More...
 
- Protected Member Functions inherited from CallBacker
void detachAllNotifiers () const
 Call from the destructor of your inherited object. More...
 

Protected Attributes

SetType data_
 
SetType cumdata_
 
SamplingType sampling_
 
- Protected Attributes inherited from Monitorable
Threads::Lock accesslock_
 
- Protected Attributes inherited from NamedObject
BufferString name_
 

Friends

class DataDistributionChanger< VT >
 
class DataDistributionInfoExtracter< VT >
 
class DataDistributionIter< VT >
 

Additional Inherited Members

- Protected Types inherited from Monitorable
typedef Threads::Atomic< DirtyCountTypeDirtyCounter
 

Detailed Description

template<class VT>
class DataDistribution< VT >

Sharable data distribution. Sampling defaults to 0 step 1.

The data in this object can be either true 'frequencies' or 'histogram' values. More generally, if you want to obtain a 'true' distribution in the mathematical sense of the word, then you should use 'normalise', which assures that the sum of he values is 1.

The SamplingData describes the positions of the bin centers. Thus, if you have a hard start and stop, calculate the step like (stop-start)/nrbins, then put sampling.start at start + 0.5*step.

Note that it is a bad idea to have negative data (P<0). We're not checking.

Also note that PosType and DataValueType are the same typedefs. The position in a distribution is a data value.

Member Typedef Documentation

template<class VT>
typedef VT DataDistribution< VT >::DataValueType
template<class VT>
typedef size_type DataDistribution< VT >::IdxType
template<class VT>
typedef DataValueType DataDistribution< VT >::PosType
template<class VT>
typedef Interval<VT> DataDistribution< VT >::RangeType
template<class VT>
typedef SamplingData<PosType> DataDistribution< VT >::SamplingType
template<class VT>
typedef TypeSet<VT> DataDistribution< VT >::SetType
template<class VT>
typedef SetType::size_type DataDistribution< VT >::size_type
template<class VT>
typedef VT DataDistribution< VT >::ValueType

Constructor & Destructor Documentation

template<class VT>
DataDistribution< VT >::DataDistribution ( )
inline
template<class VT >
DataDistribution< VT >::DataDistribution ( size_type  nrbins)
inline
template<class VT >
DataDistribution< VT >::DataDistribution ( SamplingType  sd,
size_type  n = 256 
)
inline
template<class VT >
DataDistribution< VT >::DataDistribution ( const SetType d)
inline
template<class VT >
DataDistribution< VT >::DataDistribution ( const SetType d,
SamplingType  sd 
)
inline
template<class VT >
DataDistribution< VT >::~DataDistribution ( )
inlineprotected

Member Function Documentation

template<class VT >
void DataDistribution< VT >::add ( const VT *  vals)
inline

fast, no checks

template<class VT>
static ChangeType DataDistribution< VT >::cDataChange ( )
inlinestatic
template<class VT>
static ChangeType DataDistribution< VT >::cSamplingChange ( )
inlinestatic
template<class VT >
DataDistribution< VT >::RangeType DataDistribution< VT >::dataRange ( ) const
inline
template<class VT >
VT DataDistribution< VT >::get ( IdxType  idx,
bool  cumulative = false 
) const
inline
template<class VT>
VT* DataDistribution< VT >::getArr ( bool  cum) const
inline

for fast non-shared usage

template<class VT >
DataDistribution< VT >::IdxType DataDistribution< VT >::getBinNr ( PosType  p) const
inline
template<class VT >
DataDistribution< VT >::IdxType DataDistribution< VT >::getBinNrFor ( PosType  pos,
const SamplingType sd,
size_type  nrbins 
)
inlinestatic
template<class VT >
const DataDistribution< VT > & DataDistribution< VT >::getEmptyDistrib ( )
inlinestatic
template<class VT>
SetType DataDistribution< VT >::getSet ( bool  cum) const
inline
template<class VT >
VT DataDistribution< VT >::gtMax ( int *  idxat = 0) const
inlineprotected
template<class VT>
bool DataDistribution< VT >::isEmpty ( ) const
inline
template<class VT>
bool DataDistribution< VT >::isNormalised ( ) const
inline
template<class VT >
VT DataDistribution< VT >::maxValue ( ) const
inline
template<class VT>
DataDistribution< VT >::mDeclMonitorableAssignment ( DataDistribution< VT >  )
template<class VT >
DataDistribution< VT >::PosType DataDistribution< VT >::medianPosition ( ) const
inline
template<class VT>
DataDistribution< VT >::mImplSimpleMonitoredGetSet ( inline  ,
sampling  ,
setSampling  ,
SamplingType  ,
sampling_  ,
cSamplingChange()   
)
template<class VT >
VT DataDistribution< VT >::operator[] ( IdxType  idx) const
inline
template<class VT >
DataDistribution< VT >::PosType DataDistribution< VT >::positionForCumulative ( VT  val) const
inline
template<class VT >
void DataDistribution< VT >::set ( IdxType  isamp,
VT  val 
)
inline

slow, O(N)

template<class VT >
void DataDistribution< VT >::set ( const VT *  vals)
inline

fast, no checks

template<class VT >
void DataDistribution< VT >::setCumData ( int  idx)
inlineprotected
template<class VT >
void DataDistribution< VT >::setEmpty ( )
inline
template<class VT>
void DataDistribution< VT >::setSize ( size_type  )
template<class VT >
DataDistribution< VT >::size_type DataDistribution< VT >::size ( ) const
inline
template<class VT >
VT DataDistribution< VT >::sumOfValues ( ) const
inline
template<class VT >
VT DataDistribution< VT >::valueAt ( PosType  pos,
bool  cumulative 
) const
inline

Friends And Related Function Documentation

template<class VT>
friend class DataDistributionChanger< VT >
friend
template<class VT>
friend class DataDistributionInfoExtracter< VT >
friend
template<class VT>
friend class DataDistributionIter< VT >
friend

Member Data Documentation

template<class VT>
SetType DataDistribution< VT >::cumdata_
protected
template<class VT>
SetType DataDistribution< VT >::data_
protected
template<class VT>
SamplingType DataDistribution< VT >::sampling_
protected

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017