gstlearn  1.0.0
CCC
NeighMoving Class Reference

#include <NeighMoving.hpp>

Inheritance diagram for NeighMoving:
ANeigh ASpaceObject ASerializable AStringable

Public Member Functions

 NeighMoving (bool flag_xvalid=false, int nmaxi=1000, double radius=TEST, int nmini=1, int nsect=1, int nsmax=ITEST, VectorDouble coeffs=VectorDouble(), VectorDouble angles=VectorDouble(), const ASpace *space=nullptr)
 
 NeighMoving (const NeighMoving &r)
 
NeighMovingoperator= (const NeighMoving &r)
 
virtual ~NeighMoving ()
 
virtual int attach (const Db *dbin, const Db *dbout=nullptr) override
 Interface for ANeigh. More...
 
virtual VectorInt getNeigh (int iech_out) override
 
virtual bool hasChanged (int iech_out) const override
 
virtual VectorDouble summary (int iech_out) override
 
virtual int getMaxSampleNumber (const Db *db) const override
 
virtual ENeigh getType () const override
 
virtual bool getFlagContinuous () const override
 
virtual String toString (const AStringFormat *strfmt=nullptr) const override
 Interface for AStringable. More...
 
void addBiTargetCheck (ABiTargetCheck *abpc)
 
bool getFlagSector () const
 
int getNMaxi () const
 
int getNMini () const
 
int getNSect () const
 
int getNSMax () const
 
double getDistCont () const
 
const BiTargetCheckDistancegetBiPtDist () const
 
bool getFlagAniso () const
 
bool getFlagRotation () const
 
double getRadius () const
 
const VectorDoublegetAnisoRotMats () const
 
const VectorDoublegetAnisoCoeffs () const
 
double getAnisoCoeff (int i) const
 
const std::vector< ABiTargetCheck * > getBipts () const
 
const ABiTargetCheckgetBipts (int rank) const
 
void setNMaxi (int nmaxi)
 
void setNMini (int nmini)
 
void setNSect (int nsect)
 
void setNSMax (int nsmax)
 
void setDistCont (double distCont)
 
VectorVectorDouble getEllipsoid (const VectorDouble &target, int count=360) const
 
VectorVectorDouble getSectors (const VectorDouble &target) const
 
VectorVectorDouble getZoomLimits (const VectorDouble &target, double percent=20) const
 
- Public Member Functions inherited from ANeigh
 ANeigh (const ASpace *space=nullptr)
 
 ANeigh (const ANeigh &r)
 
ANeighoperator= (const ANeigh &r)
 
virtual ~ANeigh ()
 
virtual bool isConsistent (const ASpace *space) const override
 ASpaceObject Interface. More...
 
VectorInt select (int iech_out)
 
bool isUnchanged () const
 
void setIsChanged ()
 
void reset ()
 
bool getFlagXvalid () const
 
bool getFlagKFold () const
 
void setFlagXvalid (bool flagXvalid)
 
void setFlagKFold (bool flagKFold)
 
void setFlagSimu (bool flagSimu)
 
void setRankColCok (const VectorInt &rankColCok)
 
- Public Member Functions inherited from ASpaceObject
 ASpaceObject (const ASpace *space=nullptr)
 
 ASpaceObject (const ASpace &space)
 
 ASpaceObject (const ASpaceObject &r)
 
ASpaceObjectoperator= (const ASpaceObject &r)
 
virtual ~ASpaceObject ()
 
const ASpacegetSpace () const
 Accessor to the current object space context. More...
 
bool isConsistent () const
 Indicate if I am consistent with my current space context. More...
 
VectorDouble getUnitaryVector () const
 Return unitary vector for the current space context. More...
 
unsigned int getNDim () const
 Shortcuts to ASpace methods. More...
 
const VectorDoublegetOrigin () const
 Return the current space context origin coordinates. More...
 
double getDistance (const SpacePoint &p1, const SpacePoint &p2) const
 Return the distance between two space points for the current space context. More...
 
double getDistance1D (const SpacePoint &p1, const SpacePoint &p2, int idim) const
 Return the distance along one direction between two space points. More...
 
VectorDouble getIncrement (const SpacePoint &p1, const SpacePoint &p2) const
 Return the increment vector between two space points for the current space context. More...
 
- Public Member Functions inherited from AStringable
 AStringable ()
 
 AStringable (const AStringable &r)
 
AStringableoperator= (const AStringable &r)
 
virtual ~AStringable ()
 
virtual void display (const AStringFormat *strfmt=nullptr) const final
 
virtual void display (int level) const final
 
- Public Member Functions inherited from ASerializable
 ASerializable ()
 
 ASerializable (const ASerializable &r)
 
ASerializableoperator= (const ASerializable &r)
 
virtual ~ASerializable ()
 
bool deserialize (std::istream &is, bool verbose=true)
 
bool serialize (std::ostream &os, bool verbose=true) const
 
bool dumpToNF (const String &neutralFilename, bool verbose=false) const
 

Static Public Member Functions

static NeighMovingcreate (bool flag_xvalid=false, int nmaxi=1000, double radius=TEST, int nmini=1, int nsect=1, int nsmax=ITEST, VectorDouble coeffs=VectorDouble(), VectorDouble angles=VectorDouble(), const ASpace *space=nullptr)
 
static NeighMovingcreateFromNF (const String &neutralFilename, bool verbose=true)
 
- Static Public Member Functions inherited from ASerializable
static String buildFileName (int status, const String &filename, bool ensureDirExist=false)
 
static String getHomeDirectory (const String &sub="")
 
static String getWorkingDirectory ()
 
static String getTestData (const String &subdir, const String &filename)
 
static String getFileIdentity (const String &filename, bool verbose=false)
 
static void setContainerName (bool useDefault, const String &containerName="", bool verbose=false)
 
static void unsetContainerName ()
 
static void setPrefixName (const String &prefixName)
 
static void unsetPrefixName ()
 
static const StringgetContainerName ()
 
static const StringgetPrefixName ()
 
static bool createDirectory (const String &dir)
 
static String getExecDirectory ()
 
static String getDirectory (const String &path)
 

Protected Member Functions

virtual bool _deserialize (std::istream &is, bool verbose=false) override
 Interface for ASerializable. More...
 
virtual bool _serialize (std::ostream &os, bool verbose=false) const override
 
String _getNFName () const override
 
- Protected Member Functions inherited from ANeigh
bool _isNbghMemoEmpty () const
 
void _neighCompress (VectorInt &ranks)
 
void _display (const VectorInt &ranks)
 
bool _discardUndefined (int iech)
 
int _xvalid (int iech_in, int iech_out, double eps=EPSILON9)
 
bool _isDimensionValid (int idim) const
 
- Protected Member Functions inherited from ASpaceObject
void setNDim (int ndim)
 Modify the Space dimension of an already created item (To be used only during creation ... in particular when reading NF) More...
 
- Protected Member Functions inherited from ASerializable
bool _fileOpenWrite (const String &filename, std::ofstream &os, bool verbose=false) const
 
bool _fileOpenRead (const String &filename, std::ifstream &is, bool verbose=false) const
 

Private Member Functions

int _getBiPtsNumber () const
 
int _moving (int iech_out, VectorInt &ranks, double eps=EPSILON9)
 
int _movingSectorDefine (double dx, double dy)
 
void _movingSectorNsmax (int nsel, VectorInt &ranks)
 
void _movingSelect (int nsel, VectorInt &ranks)
 
double _getRadius () const
 

Private Attributes

int _nMini
 
int _nMaxi
 
int _nSect
 
int _nSMax
 
double _distCont
 
BiTargetCheckDistance_biPtDist
 
std::vector< ABiTargetCheck * > _bipts
 
VectorInt _movingInd
 
VectorInt _movingIsect
 
VectorInt _movingNsect
 
VectorDouble _movingDst
 
const DbGrid_dbgrid
 
SpaceTarget _T1
 
SpaceTarget _T2
 

Additional Inherited Members

- Static Protected Member Functions inherited from ASerializable
static bool _commentWrite (std::ostream &os, const String &comment)
 
template<typename T >
static bool _recordWrite (std::ostream &os, const String &title, const T &val)
 
template<typename T >
static bool _recordWriteVec (std::ostream &os, const String &title, const VectorT< T > &vec)
 
template<typename T >
static bool _recordRead (std::istream &is, const String &title, T &val)
 
template<typename T >
static bool _recordReadVec (std::istream &is, const String &title, VectorT< T > &vec, int nvalues)
 
static bool _onlyBlanks (char *string)
 
static bool _tableRead (std::istream &is, const String &string, int ntab, double *tab)
 
static bool _tableWrite (std::ostream &os, const String &string, int ntab, const VectorDouble &tab)
 
- Protected Attributes inherited from ANeigh
const Db_dbin
 
const Db_dbout
 
const DbGrid_dbgrid
 
VectorInt _rankColCok
 
int _iechMemo
 
bool _flagSimu
 
bool _flagXvalid
 
bool _flagKFold
 
- Protected Attributes inherited from ASpaceObject
const ASpace_space
 Current space context of the object. More...
 

Constructor & Destructor Documentation

◆ NeighMoving() [1/2]

NeighMoving::NeighMoving ( bool  flag_xvalid = false,
int  nmaxi = 1000,
double  radius = TEST,
int  nmini = 1,
int  nsect = 1,
int  nsmax = ITEST,
VectorDouble  coeffs = VectorDouble(),
VectorDouble  angles = VectorDouble(),
const ASpace space = nullptr 
)

◆ NeighMoving() [2/2]

NeighMoving::NeighMoving ( const NeighMoving r)

◆ ~NeighMoving()

NeighMoving::~NeighMoving ( )
virtual

Member Function Documentation

◆ _deserialize()

bool NeighMoving::_deserialize ( std::istream &  is,
bool  verbose = false 
)
overrideprotectedvirtual

Interface for ASerializable.

Reimplemented from ANeigh.

◆ _getBiPtsNumber()

int NeighMoving::_getBiPtsNumber ( ) const
inlineprivate

◆ _getNFName()

String NeighMoving::_getNFName ( ) const
inlineoverrideprotectedvirtual

Reimplemented from ANeigh.

◆ _getRadius()

double NeighMoving::_getRadius ( ) const
inlineprivate

◆ _moving()

int NeighMoving::_moving ( int  iech_out,
VectorInt ranks,
double  eps = EPSILON9 
)
private

Moving neighborhood search

Returns
Error return code
0 : No error
1 : The number of data is smaller than the minimum number of
data in Moving Neighborhood
Parameters
[in]iech_outRank of the target in the output Db structure
[in]epsTolerance
[out]ranksVector of samples elected in the Neighborhood

◆ _movingSectorDefine()

int NeighMoving::_movingSectorDefine ( double  dx,
double  dy 
)
private

Returns the rank of the sector (using the first two coordinates)

Returns
Sector index
Parameters
[in]dxincrement along X
[in]dyincrement along Y

◆ _movingSectorNsmax()

void NeighMoving::_movingSectorNsmax ( int  nsel,
VectorInt ranks 
)
private

For each angular sector, select the first samples until the maximum number of samples is reached

Parameters
[in]nselNumber of selected samples
[out]ranksArray of active data point ranks

◆ _movingSelect()

void NeighMoving::_movingSelect ( int  nsel,
VectorInt ranks 
)
private

Select the closest data per sector, until the maximum number neighbors is reached

Parameters
[in]nselNumber of ellegible data points
[in]ranksRank of the ellegible samples
Remarks
The samples beyond the maximum number of neighbors have their
rank turned into -1

◆ _serialize()

bool NeighMoving::_serialize ( std::ostream &  os,
bool  verbose = false 
) const
overrideprotectedvirtual

Reimplemented from ANeigh.

◆ addBiTargetCheck()

void NeighMoving::addBiTargetCheck ( ABiTargetCheck abpc)

◆ attach()

int NeighMoving::attach ( const Db dbin,
const Db dbout = nullptr 
)
overridevirtual

Interface for ANeigh.

Initialize the neighborhood search

Parameters
[in]dbininput Db structure
[in]dboutoutput Db structure (optional)

Reimplemented from ANeigh.

◆ create()

NeighMoving * NeighMoving::create ( bool  flag_xvalid = false,
int  nmaxi = 1000,
double  radius = TEST,
int  nmini = 1,
int  nsect = 1,
int  nsmax = ITEST,
VectorDouble  coeffs = VectorDouble(),
VectorDouble  angles = VectorDouble(),
const ASpace space = nullptr 
)
static

◆ createFromNF()

NeighMoving * NeighMoving::createFromNF ( const String neutralFilename,
bool  verbose = true 
)
static

Create a NeighMovingborhood by loading the contents of a Neutral File

Parameters
neutralFilenameName of the Neutral File
verboseVerbose flag
Returns

◆ getAnisoCoeff()

double NeighMoving::getAnisoCoeff ( int  i) const
inline

◆ getAnisoCoeffs()

const VectorDouble& NeighMoving::getAnisoCoeffs ( ) const
inline

◆ getAnisoRotMats()

const VectorDouble& NeighMoving::getAnisoRotMats ( ) const
inline

◆ getBiPtDist()

const BiTargetCheckDistance* NeighMoving::getBiPtDist ( ) const
inline

◆ getBipts() [1/2]

const std::vector<ABiTargetCheck*> NeighMoving::getBipts ( ) const
inline

◆ getBipts() [2/2]

const ABiTargetCheck* NeighMoving::getBipts ( int  rank) const
inline

◆ getDistCont()

double NeighMoving::getDistCont ( ) const
inline

◆ getEllipsoid()

VectorVectorDouble NeighMoving::getEllipsoid ( const VectorDouble target,
int  count = 360 
) const

◆ getFlagAniso()

bool NeighMoving::getFlagAniso ( ) const
inline

◆ getFlagContinuous()

virtual bool NeighMoving::getFlagContinuous ( ) const
inlineoverridevirtual

Reimplemented from ANeigh.

◆ getFlagRotation()

bool NeighMoving::getFlagRotation ( ) const
inline

◆ getFlagSector()

bool NeighMoving::getFlagSector ( ) const

◆ getMaxSampleNumber()

int NeighMoving::getMaxSampleNumber ( const Db db) const
overridevirtual

Given a Db, returns the maximum number of samples per NeighMovingborhood

Parameters
dbPointer to the target Db
Returns

Implements ANeigh.

◆ getNeigh()

VectorInt NeighMoving::getNeigh ( int  iech_out)
overridevirtual

Select the neighborhood

Returns
Vector of sample ranks in neighborhood (empty when error)
Parameters
[in]iech_outValid Rank of the sample in the output Db

Implements ANeigh.

◆ getNMaxi()

int NeighMoving::getNMaxi ( ) const
inline

◆ getNMini()

int NeighMoving::getNMini ( ) const
inline

◆ getNSect()

int NeighMoving::getNSect ( ) const
inline

◆ getNSMax()

int NeighMoving::getNSMax ( ) const
inline

◆ getRadius()

double NeighMoving::getRadius ( ) const
inline

◆ getSectors()

VectorVectorDouble NeighMoving::getSectors ( const VectorDouble target) const

Generate the end-points of the sectors. By default, the extension is set to radius

Parameters
targetCoordinates of the Target
Returns

◆ getType()

virtual ENeigh NeighMoving::getType ( ) const
inlineoverridevirtual

Reimplemented from ANeigh.

◆ getZoomLimits()

VectorVectorDouble NeighMoving::getZoomLimits ( const VectorDouble target,
double  percent = 20 
) const

◆ hasChanged()

bool NeighMoving::hasChanged ( int  iech_out) const
overridevirtual

Reimplemented from ANeigh.

◆ operator=()

NeighMoving & NeighMoving::operator= ( const NeighMoving r)

◆ setDistCont()

void NeighMoving::setDistCont ( double  distCont)
inline

◆ setNMaxi()

void NeighMoving::setNMaxi ( int  nmaxi)
inline

◆ setNMini()

void NeighMoving::setNMini ( int  nmini)
inline

◆ setNSect()

void NeighMoving::setNSect ( int  nsect)
inline

◆ setNSMax()

void NeighMoving::setNSMax ( int  nsmax)
inline

◆ summary()

VectorDouble NeighMoving::summary ( int  iech_out)
overridevirtual

Returns the main Neighborhood Parameters for a given target as a vector:

  • 0 : Number of active samples
  • 1 : Minimum distance
  • 2 : Maximum distance
  • 3 : Number of non-empty sectors
  • 4 : Number of consecutive empty sectors
Parameters
[in]iech_outValid Rank of the sample in the output Db

Reimplemented from ANeigh.

◆ toString()

String NeighMoving::toString ( const AStringFormat strfmt = nullptr) const
overridevirtual

Interface for AStringable.

Reimplemented from ASpaceObject.

Member Data Documentation

◆ _biPtDist

BiTargetCheckDistance* NeighMoving::_biPtDist
private

◆ _bipts

std::vector<ABiTargetCheck*> NeighMoving::_bipts
private

◆ _dbgrid

const DbGrid* NeighMoving::_dbgrid
mutableprivate

◆ _distCont

double NeighMoving::_distCont
private

◆ _movingDst

VectorDouble NeighMoving::_movingDst
mutableprivate

◆ _movingInd

VectorInt NeighMoving::_movingInd
mutableprivate

◆ _movingIsect

VectorInt NeighMoving::_movingIsect
mutableprivate

◆ _movingNsect

VectorInt NeighMoving::_movingNsect
mutableprivate

◆ _nMaxi

int NeighMoving::_nMaxi
private

◆ _nMini

int NeighMoving::_nMini
private

◆ _nSect

int NeighMoving::_nSect
private

◆ _nSMax

int NeighMoving::_nSMax
private

◆ _T1

SpaceTarget NeighMoving::_T1
mutableprivate

◆ _T2

SpaceTarget NeighMoving::_T2
mutableprivate

The documentation for this class was generated from the following files: