14 #ifndef ROOT_Math_KDTree
15 #define ROOT_Math_KDTree
33 template<
class _DataPo
int>
97 virtual void GetClosestPoints(
const point_type& rRef,
UInt_t nPoints,std::vector<std::pair<const _DataPoint*,Double_t> >& vFoundPoints)
const = 0;
98 virtual void GetPointsWithinDist(
const point_type& rRef,value_type fDist,std::vector<const point_type*>& vFoundPoints)
const = 0;
100 virtual void Print(
int iRow = 0)
const = 0;
135 virtual void GetClosestPoints(
const point_type& rRef,
UInt_t nPoints,std::vector<std::pair<const _DataPoint*,Double_t> >& vFoundPoints)
const;
136 virtual void GetPointsWithinDist(
const point_type& rRef,value_type fDist,std::vector<const _DataPoint*>& vFoundPoints)
const;
175 virtual void GetClosestPoints(
const point_type& rRef,
UInt_t nPoints,std::vector<std::pair<const _DataPoint*,Double_t> >& vFoundPoints)
const;
176 virtual void GetPointsWithinDist(
const point_type& rRef,value_type fDist,std::vector<const _DataPoint*>& vFoundPoints)
const;
211 virtual void Print(
int iRow = 0)
const;
251 virtual void GetClosestPoints(
const point_type& rRef,
UInt_t nPoints,std::vector<std::pair<const _DataPoint*,Double_t> >& vFoundPoints)
const;
253 virtual void GetPointsWithinDist(
const point_type& rRef,value_type fDist,std::vector<const _DataPoint*>& vFoundPoints)
const;
254 virtual void Print(
int iRow = 0)
const;
262 typedef typename std::vector<const point_type* >::iterator
data_it;
263 typedef typename std::vector<const point_type* >::const_iterator
const_data_it;
339 const iterator
First()
const;
342 void GetClosestPoints(
const point_type& rRef,
UInt_t nPoints,std::vector<std::pair<const _DataPoint*,Double_t> >& vFoundPoints)
const;
347 void GetPointsWithinDist(
const point_type& rRef,value_type fDist,std::vector<const point_type*>& vFoundPoints)
const;
353 const iterator
Last()
const;
375 #endif // ROOT_Math_KDTree
KDTree(const KDTree< point_type > &)
HeadNode & operator=(const HeadNode &)
std::vector< tBoundary > fBoundaries
iterator & operator=(const iterator &rhs)
virtual SplitNode * Clone()
BaseNode(BaseNode *pParent=0)
virtual HeadNode * Clone()
std::vector< const point_type * >::iterator data_it
Double_t GetDensity() const
void SetAxis(UInt_t iAxis)
HeadNode(BaseNode &rNode)
Namespace for new ROOT classes and functions.
virtual BinNode * Clone()
Bool_t operator>(const point_type &rPoint) const
Bool_t Insert(const point_type &rData)
const BaseNode * RightChild() const
BaseNode * fLeftChild
pointer to parent node
BinNode(BaseNode *pParent=0)
virtual void GetClosestPoints(const point_type &rRef, UInt_t nPoints, std::vector< std::pair< const _DataPoint *, Double_t > > &vFoundPoints) const
virtual void GetClosestPoints(const point_type &rRef, UInt_t nPoints, std::vector< std::pair< const _DataPoint *, Double_t > > &vFoundPoints) const
virtual BinNode * Clone()
static UInt_t Dimension()
virtual Bool_t Insert(const point_type &rPoint)
const Bin * operator->() const
void SetCutValue(Double_t fNewCutValue)
std::pair< value_type, value_type > tBoundary
virtual bool IsHeadNode() const
virtual void GetPointsWithinDist(const point_type &rRef, value_type fDist, std::vector< const point_type * > &vFoundPoints) const =0
virtual const BinNode * FindNode(const point_type &rPoint) const
Double_t GetEffectiveEntries() const
virtual void GetClosestPoints(const point_type &rRef, UInt_t nPoints, std::vector< std::pair< const _DataPoint *, Double_t > > &vFoundPoints) const
Bool_t operator()(const point_type *pFirst, const point_type *pSecond) const
virtual const BinNode * FindNode(const point_type &) const
virtual const std::vector< tBoundary > & GetBoundaries() const
HeadNode(const HeadNode &)
BaseNode * fRightChild
pointer to left child
virtual void GetPointsWithinDist(const point_type &, value_type, std::vector< const point_type * > &) const
virtual void Print(Int_t iRow=0) const
Double_t GetBinContent() const
KDTree< point_type > & operator=(const KDTree< point_type > &)
Cut(UInt_t iAxis, Double_t fNewCutValue)
void SetSplitOption(eSplitOption opt)
double pow(double, double)
virtual Bool_t Insert(const point_type &rPoint)=0
const BaseNode * Parent() const
void SetOwner(Bool_t bIsOwner=true)
const Cut * GetCut() const
const BaseNode * LeftChild() const
TerminalNode(Double_t iBucketSize, BaseNode *pParent=0)
virtual void Print(int iRow=0) const
TerminalNode(const TerminalNode &)
virtual const BinNode * FindNode(const point_type &rPoint) const
value_type GetCutValue() const
data_it SplitEffectiveEntries()
eSplitOption fSplitOption
virtual void GetPointsWithinDist(const point_type &rRef, value_type fDist, std::vector< const _DataPoint * > &vFoundPoints) const
BinNode * ConvertToBinNode()
std::vector< const _DataPoint * > fDataPoints
virtual void GetPointsWithinDist(const point_type &rRef, value_type fDist, std::vector< const _DataPoint * > &vFoundPoints) const
Bool_t operator<(const point_type &rPoint) const
const Bin & operator*() const
void SetOwner(Bool_t bIsOwner=true)
Double_t GetEffectiveEntries() const
virtual void Print(int iRow=0) const =0
virtual const BinNode * FindNode(const point_type &rPoint) const
bool operator==(const iterator &rIterator) const
SplitNode(const SplitNode &)
Double_t GetTotalSumw2() const
virtual const BinNode * FindNode(const point_type &rPoint) const =0
void GetClosestPoints(const point_type &rRef, UInt_t nPoints, std::vector< std::pair< const _DataPoint *, Double_t > > &vFoundPoints) const
std::pair< value_type, value_type > tBoundary
point_type GetBinCenter() const
Double_t GetTotalSumw() const
Double_t GetBucketSize() const
const std::vector< const point_type * > & GetPoints() const
BaseNode & operator=(const BaseNode &)
BaseNode(const BaseNode &)
BinNode & operator=(const BinNode &rhs)
virtual void GetPointsWithinDist(const point_type &rRef, value_type fDist, std::vector< const _DataPoint * > &vFoundPoints) const
Double_t GetVolume() const
SplitNode(UInt_t iAxis, Double_t fCutValue, BaseNode &rLeft, BaseNode &rRight, BaseNode *pParent=0)
const Bin * FindBin(const point_type &rPoint) const
virtual void Print(int iRow=0) const
iterator(const iterator ©)
virtual Bool_t Insert(const point_type &rPoint)
virtual BaseNode * Clone()=0
Namespace for new Math classes and functions.
TerminalNode & operator=(const TerminalNode &)
virtual void Print(Int_t) const
KDTree< _DataPoint > * GetFrozenCopy()
Bool_t IsLeftChild() const
UInt_t GetEntries() const
virtual Bool_t Insert(const point_type &rPoint)
virtual Bool_t IsHeadNode() const
std::vector< const point_type * >::const_iterator const_data_it
bool operator!=(const iterator &rIterator) const
Double_t GetSumw2() const
virtual void GetClosestPoints(const point_type &, UInt_t, std::vector< std::pair< const _DataPoint *, Double_t > > &) const
_DataPoint::value_type value_type
virtual const std::vector< tBoundary > & GetBoundaries() const
virtual Bool_t Insert(const point_type &rPoint)
void SetSplitOption(eSplitOption opt)
data_it SplitBinContent()
SplitNode & operator=(const SplitNode &)
Bool_t IsInBin(const point_type &rPoint) const
UInt_t GetEntries() const
BaseNode *& GetParentPointer()
virtual void GetClosestPoints(const point_type &rRef, UInt_t nPoints, std::vector< std::pair< const _DataPoint *, Double_t > > &vFoundPoints) const =0
void GetPointsWithinDist(const point_type &rRef, value_type fDist, std::vector< const point_type * > &vFoundPoints) const
void SetAxis(UInt_t iAxis)