forpy  2
forpy Namespace Reference

Namespaces

 threading
 

Classes

class  ClassificationError
 Computes the classification error as \(1-\max(p_i)\). More...
 
class  ClassificationForest
 
class  ClassificationLeaf
 Stores the probability distributions for n_classes at a leaf. More...
 
class  ClassificationOpt
 Optimize split thresholds to optimize classification results. More...
 
class  ClassificationTree
 
struct  DeciderDesk
 Desk for decider training. More...
 
struct  Desk
 Main thread desk object. More...
 
struct  Empty
 A struct to represent an empty variant. More...
 
class  EmptyException
 
class  EntropyGain
 Calculates the gain as difference of current entropy and the weighted sum of subgroup entropies. More...
 
class  FastClassOpt
 Optimize split thresholds to optimize classification results. More...
 
class  FastDecider
 A classifier manager for weak classifiers with a filter function, a feature calculation function and a thresholding. More...
 
class  FastDProv
 Use the provided data plain throughout the training. More...
 
class  Forest
 
class  ForpyException
 
struct  get_core
 Get the core datatype with removed pointer, reference and const modifiers. More...
 
class  IDataProvider
 A data provider for the training of one tree. More...
 
class  IDecider
 Interface for the decider. It does the optimization of the deciding classifier for each node and stores the parameters. More...
 
class  IEntropyFunction
 Interface for an entropy calculation functor. More...
 
class  IGainCalculator
 Interface for a gain calculator class. More...
 
class  ILeaf
 Stores and returns leaf values, and combines them to forest results. More...
 
class  InducedEntropy
 Computes the induced p entropy. More...
 
class  IThreshOpt
 Find an optimal threshold. More...
 
struct  LeafDesk
 Desk for leaf manager training. More...
 
struct  MatEqVis
 Comparison visitor. More...
 
struct  Name
 Struct for translating primitive types to a short name. More...
 
struct  Name< double >
 
struct  Name< float >
 
struct  Name< int >
 
struct  Name< int16_t >
 
struct  Name< uint >
 
struct  Name< uint8_t >
 
struct  ptr_variant
 
struct  RandomDesk
 Desk for coordinating the random engines. More...
 
class  RegressionForest
 
class  RegressionLeaf
 Manages the leaf nodes of regression trees. More...
 
class  RegressionOpt
 Optimize split thresholds to optimize regression results (MSE). More...
 
class  RegressionTree
 
class  RenyiEntropy
 Computes the Renyi entropy. More...
 
class  SamplingWithoutReplacement
 A lazy evaluation sampling without replacement. More...
 
class  ShannonEntropy
 Computes the classical Shannon-Entropy. More...
 
struct  SplitOptRes
 
class  ThreadControl
 
struct  TodoMark
 Stores the parameters for one marked tree node. More...
 
class  Tree
 The main tree class for the forpy framework. More...
 
struct  TreeDesk
 Desk for tree training. More...
 
class  TsallisEntropy
 Computes the Tsallis entropy. More...
 
struct  vector_hasher
 A simple vector<size_t> hasher. More...
 
struct  VReset
 Call the reset operation on a pointer variant. More...
 

Typedefs

template<typename DT >
using Mat = Eigen::Matrix< DT, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >
 Parameterized Matrix type (row major). More...
 
template<typename DT >
using MatCM = Eigen::Matrix< DT, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor >
 Parameterized column major matrix type. More...
 
template<typename DT >
using MatCRef = Eigen::Ref< const Mat< DT > >
 Parameterized const matrix ref type. More...
 
template<typename DT >
using MatCMCRef = Eigen::Ref< const MatCM< DT > >
 Parameterized const matrix column major matrix ref type. More...
 
template<typename DT >
using MatRef = Eigen::Ref< Mat< DT > >
 Parameterized standard non-const matrix ref type. More...
 
template<typename DT >
using Vec = Eigen::Matrix< DT, Eigen::Dynamic, 1, Eigen::ColMajor >
 
template<typename DT >
using VecRM = Eigen::Matrix< DT, 1, Eigen::Dynamic, Eigen::RowMajor >
 
template<typename DT >
using VecRef = Eigen::Ref< Vec< DT > >
 
template<typename DT >
using VecRMRef = Eigen::Ref< VecRM< DT > >
 
template<typename DT >
using VecCRef = Eigen::Ref< const Vec< DT > >
 
template<typename DT >
using VecCMap = Eigen::Map< const Eigen::Matrix< DT, 1, Eigen::Dynamic, Eigen::RowMajor >, Eigen::Unaligned, Eigen::InnerStride<> >
 
typedef size_t id_t
 Element id type. More...
 
typedef std::function< id_t(const Data< MatCRef > &, const id_t &, const std::function< void(void *)> &)> node_predf
 
typedef unsigned int uint
 Convenience typedef for unsigned int. More...
 
typedef mu::variant< SplitOptRes< float >, SplitOptRes< double >, SplitOptRes< uint >, SplitOptRes< uint8_t > > OptSplitV
 
typedef std::pair< id_t, id_tinterv_t
 
typedef std::pair< ptrdiff_t, ptrdiff_t > regint_t
 
typedef std::vector< std::pair< std::shared_ptr< std::vector< size_t > >, std::shared_ptr< std::vector< float > const > > > usage_map_t
 Describes how each sample is used for each tree. More...
 
typedef std::pair< std::shared_ptr< std::vector< id_t > >, id_tinclude_pair_t
 A pair containing information about newly included samples. More...
 
typedef std::unordered_set< std::vector< size_t >, vector_hasherproposal_set_t
 The type of a set of dimension selections. More...
 
template<template< typename > class STOT>
using DataStore = typename mu::variant< std::shared_ptr< const STOT< float > >, std::shared_ptr< const STOT< double > >, std::shared_ptr< const STOT< uint > >, std::shared_ptr< const STOT< uint8_t > >>
 Variant for storing shared_ptrs to the stored data matrix type. More...
 
template<template< typename > class STOT>
using Data = typename mu::variant< Empty, STOT< float >, STOT< double >, STOT< uint >, STOT< uint8_t > >
 Storing a variant of the provided data container type. More...
 
using DataV = typename mu::variant< std::vector< float >, std::vector< double >, std::vector< uint >, std::vector< uint8_t > >
 

Enumerations

enum  ECompletionLevel { ECompletionLevel::Node, ECompletionLevel::Level, ECompletionLevel::Complete }
 Specifies the completion level for one training step. More...
 
enum  EThresholdSelection { EThresholdSelection::LessEqOnly, EThresholdSelection::GreaterOnly, EThresholdSelection::Both }
 Specifies which thresholds should be used for a decision. More...
 
enum  ESearchType { ESearchType::DFS, ESearchType::BFS }
 

Functions

void init ()
 
const MatCRef< float > FORPY_ZERO_MATR (Mat< float >::Zero(0, 1))
 
template<typename T >
static std::vector< size_t > argsort (const T *v, const size_t n)
 Highly efficient argsort realized with few STL commands. More...
 
template<typename T >
static std::vector< size_t > argsort (const std::vector< T > &v)
 Highly efficient argsort realized with few STL commands. More...
 
template<typename T >
static bool safe_pos_sum_lessoe_than (const std::vector< T > &vec, const T &limit)
 Tests whether the sum of all elements in vec is less than limit. More...
 
template<typename T >
static bool safe_pos_sum_lessoe_than (const std::vector< T > &vec1, const std::vector< T > &vec2, const T &limit)
 Tests whether the sum of all elements in vec1 and vec2 is less than limit. More...
 
template<typename T >
static bool safe_pos_sum_lessoe_than (const std::vector< T > &vec)
 Tests whether the sum of all elements in vec is less than the numeric limit of its type. More...
 
template<typename T >
static bool safe_pos_sum_lessoe_than (const std::vector< T > &vec1, const std::vector< T > &vec2)
 Tests whether the sum of all elements in vec1 and vec2 is less than the numeric limit of their type. More...
 
static bool check_elem_ids_ok (const size_t &n_samples, const std::vector< size_t > &elem_ids)
 Tests whether all element ids are valid. More...
 
int ipow (int base, unsigned int exp)
 Computes an int power by an int. More...
 
float fpowi (float base, unsigned int exp)
 Computes a float power by an unsigned int. More...
 
static size_t hash_fnv_1a (const unsigned char *key, const size_t &len)
 Quick and easy implementation of 64-bit FNV 1a hash. More...
 
static int64_t ibinom (const int &n, int k)
 Integer binomial with overflow detection. More...
 
template<typename T >
static std::vector< T > unique_indices (T num, T min, const T &max, std::mt19937 *random_engine, bool return_sorted=false)
 Sampling without replacement. More...
 
template<typename V , class... VarArgs>
GetWithDefVar (const std::unordered_map< std::string, mu::variant< VarArgs... >> &m, std::string const &key, const V &defval)
 

Variables

const int DLOG_FD_V = 100
 
const size_t LOG_FD_NID = 12043
 
const bool LOG_FD_ALLN = true
 
static const bool SKLEARN_COMPAT
 
static const float ENTROPY_EPS = 1E-7
 
const float CLASSOPT_EPS = 1E-7f
 Classification epsilon. No differences less than this are considered existent. This is relevant for: More...
 
const float REGOPT_EPS = 1E-7f
 Regression epsilon. No differences less than this are considered existent. This is relevant for: More...
 
const double GAIN_EPS = 1E-7
 
static const double D_PI = 4. * atan(1.)
 
static const float TWO_PI = static_cast<float>(2. * D_PI)
 
static const float TWO_PI_E = TWO_PI * expf(1.f)
 
const int DLOG_COPT_V = 100
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const size_t LOG_COPT_NID = 0
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const bool LOG_COPT_ALLN = false
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const int DLOG_FCOPT_V = 100
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const size_t LOG_FCOPT_NID = 3
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const bool LOG_FCOPT_ALLN = true
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const int DLOG_ROPT_V = 1
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const size_t LOG_ROPT_NID = 12043
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 
const bool LOG_ROPT_ALLN = false
 Variables to control debugging and log output for the forpy::RegressionOpt. More...
 

Typedef Documentation

◆ Data

template<template< typename > class STOT>
using forpy::Data = typedef typename mu::variant<Empty, STOT<float>, STOT<double>, STOT<uint>, STOT<uint8_t> >

Storing a variant of the provided data container type.

Definition at line 126 of file storage.h.

◆ DataStore

template<template< typename > class STOT>
using forpy::DataStore = typedef typename mu::variant< std::shared_ptr<const STOT<float> >, std::shared_ptr<const STOT<double> >, std::shared_ptr<const STOT<uint> >, std::shared_ptr<const STOT<uint8_t> >>

Variant for storing shared_ptrs to the stored data matrix type.

Definition at line 119 of file storage.h.

◆ DataV

using forpy::DataV = typedef typename mu::variant<std::vector<float>, std::vector<double>, std::vector<uint>, std::vector<uint8_t> >

Definition at line 129 of file storage.h.

◆ id_t

typedef size_t forpy::id_t

Element id type.

Definition at line 106 of file types.h.

◆ include_pair_t

typedef std::pair<std::shared_ptr<std::vector<id_t> >, id_t> forpy::include_pair_t

A pair containing information about newly included samples.

The content is the following:

  1. A pointer to a vector of assigned sample ids.
  2. The threshold of already existing sample ids to new ones (old are up to excluding this value).

Definition at line 202 of file types.h.

◆ interv_t

typedef std::pair<id_t, id_t> forpy::interv_t

Definition at line 141 of file types.h.

◆ Mat

template<typename DT >
using forpy::Mat = typedef Eigen::Matrix<DT, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>

Parameterized Matrix type (row major).

Definition at line 52 of file types.h.

◆ MatCM

template<typename DT >
using forpy::MatCM = typedef Eigen::Matrix<DT, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor>

Parameterized column major matrix type.

Definition at line 57 of file types.h.

◆ MatCMCRef

template<typename DT >
using forpy::MatCMCRef = typedef Eigen::Ref<const MatCM<DT> >

Parameterized const matrix column major matrix ref type.

Definition at line 65 of file types.h.

◆ MatCRef

template<typename DT >
using forpy::MatCRef = typedef Eigen::Ref<const Mat<DT> >

Parameterized const matrix ref type.

Definition at line 61 of file types.h.

◆ MatRef

template<typename DT >
using forpy::MatRef = typedef Eigen::Ref<Mat<DT> >

Parameterized standard non-const matrix ref type.

Definition at line 69 of file types.h.

◆ node_predf

typedef std::function<id_t(const Data<MatCRef> &, const id_t &, const std::function<void(void *)> &)> forpy::node_predf

Definition at line 110 of file types.h.

◆ OptSplitV

typedef mu::variant<SplitOptRes<float>, SplitOptRes<double>, SplitOptRes<uint>, SplitOptRes<uint8_t> > forpy::OptSplitV

Definition at line 139 of file types.h.

◆ proposal_set_t

typedef std::unordered_set<std::vector<size_t>, vector_hasher> forpy::proposal_set_t

The type of a set of dimension selections.

Definition at line 208 of file types.h.

◆ regint_t

typedef std::pair<ptrdiff_t, ptrdiff_t> forpy::regint_t

Definition at line 187 of file types.h.

◆ uint

typedef unsigned int forpy::uint

Convenience typedef for unsigned int.

Definition at line 113 of file types.h.

◆ usage_map_t

typedef std::vector<std::pair<std::shared_ptr<std::vector<size_t> >, std::shared_ptr<std::vector<float> const> > > forpy::usage_map_t

Describes how each sample is used for each tree.

Definition at line 192 of file types.h.

◆ Vec

template<typename DT >
using forpy::Vec = typedef Eigen::Matrix<DT, Eigen::Dynamic, 1, Eigen::ColMajor>

Parameterized vector type.

Definition at line 73 of file types.h.

◆ VecCMap

template<typename DT >
using forpy::VecCMap = typedef Eigen::Map<const Eigen::Matrix<DT, 1, Eigen::Dynamic, Eigen::RowMajor>, Eigen::Unaligned, Eigen::InnerStride<> >

Definition at line 90 of file types.h.

◆ VecCRef

template<typename DT >
using forpy::VecCRef = typedef Eigen::Ref<const Vec<DT> >

Definition at line 85 of file types.h.

◆ VecRef

template<typename DT >
using forpy::VecRef = typedef Eigen::Ref<Vec<DT> >

Definition at line 79 of file types.h.

◆ VecRM

template<typename DT >
using forpy::VecRM = typedef Eigen::Matrix<DT, 1, Eigen::Dynamic, Eigen::RowMajor>

Definition at line 76 of file types.h.

◆ VecRMRef

template<typename DT >
using forpy::VecRMRef = typedef Eigen::Ref<VecRM<DT> >

Definition at line 82 of file types.h.

Enumeration Type Documentation

◆ ECompletionLevel

Specifies the completion level for one training step.

Enumerator
Node 

Train one node only.

Level 

Train one level of the tree (i.e. one depth level for BFS, one branch for DFS).

Complete 

Complete the training for the entire tree.

Definition at line 95 of file types.h.

◆ ESearchType

enum forpy::ESearchType
strong

Specifies the type of tree search.

Enumerator
DFS 
BFS 

Definition at line 205 of file types.h.

◆ EThresholdSelection

Specifies which thresholds should be used for a decision.

Enumerator
LessEqOnly 
GreaterOnly 
Both 

Definition at line 116 of file types.h.

Function Documentation

◆ argsort() [1/2]

template<typename T >
static std::vector<size_t> forpy::argsort ( const T *  v,
const size_t  n 
)
static

Highly efficient argsort realized with few STL commands.

Inspired by http://stackoverflow.com/questions/1577475/c-sorting-and-keeping-track-of-indexes.

Parameters
vVector to sort.
nNumber of vector elements.
Returns
Sorting permutation.

Definition at line 24 of file argsort.h.

◆ argsort() [2/2]

template<typename T >
static std::vector<size_t> forpy::argsort ( const std::vector< T > &  v)
static

Highly efficient argsort realized with few STL commands.

Inspired by http://stackoverflow.com/questions/1577475/c-sorting-and-keeping-track-of-indexes.

Parameters
vVector to sort.
Returns
Sorting permutation.

Definition at line 45 of file argsort.h.

◆ check_elem_ids_ok()

static bool forpy::check_elem_ids_ok ( const size_t &  n_samples,
const std::vector< size_t > &  elem_ids 
)
static

Tests whether all element ids are valid.

Definition at line 79 of file checks.h.

◆ FORPY_ZERO_MATR()

const MatCRef<float> forpy::FORPY_ZERO_MATR ( Mat< float >  ::Zero0, 1)

◆ fpowi()

float forpy::fpowi ( float  base,
unsigned int  exp 
)
inline

Computes a float power by an unsigned int.

Fast implementation similar to the cryptographic fast int pow ipow. For exp values up to including 5, the calculation is explicitly hard coded.

Returns
\(base^{exp}\).

Definition at line 56 of file exponentials.h.

◆ GetWithDefVar()

template<typename V , class... VarArgs>
V forpy::GetWithDefVar ( const std::unordered_map< std::string, mu::variant< VarArgs... >> &  m,
std::string const &  key,
const V &  defval 
)

Definition at line 143 of file storage.h.

◆ hash_fnv_1a()

static size_t forpy::hash_fnv_1a ( const unsigned char *  key,
const size_t &  len 
)
static

Quick and easy implementation of 64-bit FNV 1a hash.

The FNV 1a is easy to implement and has still good enough characteristics to be used for this application.

See http://www.isthe.com/chongo/tech/comp/fnv/index.html and for comparisons and more information http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx and http://burtleburtle.net/bob.

Definition at line 20 of file hash.h.

◆ ibinom()

static int64_t forpy::ibinom ( const int &  n,
int  k 
)
static

Integer binomial with overflow detection.

The code here is based on the following short article: http://etceterology.com/fast-binomial-coefficients. In the article, the possibility to use a lookup-table is introduced. This is not done here, since it is not particularly useful for the use-case. The code has been thoroughly reviewed and tested.

Returns
nChoosek or -1 if an overflow was detected.

Definition at line 30 of file sampling.h.

◆ init()

void forpy::init ( )
inline

Definition at line 70 of file global.h.

◆ ipow()

int forpy::ipow ( int  base,
unsigned int  exp 
)
inline

Computes an int power by an int.

Fast implementation using in-place multiplication and bit-shifts only. Original version can be found here: http://stackoverflow.com/questions/101439/the-most-efficient-way-to-implement-an-integer-based-power-function-powint-int/101613#101613, the signature of the method has been adjusted to unsigned int exp to avoid the mentioned problems with possible negative exponents.

Returns
\(base^{exp}\).

Definition at line 35 of file exponentials.h.

◆ safe_pos_sum_lessoe_than() [1/4]

template<typename T >
static bool forpy::safe_pos_sum_lessoe_than ( const std::vector< T > &  vec,
const T &  limit 
)
static

Tests whether the sum of all elements in vec is less than limit.

Definition at line 20 of file checks.h.

◆ safe_pos_sum_lessoe_than() [2/4]

template<typename T >
static bool forpy::safe_pos_sum_lessoe_than ( const std::vector< T > &  vec1,
const std::vector< T > &  vec2,
const T &  limit 
)
static

Tests whether the sum of all elements in vec1 and vec2 is less than limit.

Definition at line 46 of file checks.h.

◆ safe_pos_sum_lessoe_than() [3/4]

template<typename T >
static bool forpy::safe_pos_sum_lessoe_than ( const std::vector< T > &  vec)
static

Tests whether the sum of all elements in vec is less than the numeric limit of its type.

Definition at line 60 of file checks.h.

◆ safe_pos_sum_lessoe_than() [4/4]

template<typename T >
static bool forpy::safe_pos_sum_lessoe_than ( const std::vector< T > &  vec1,
const std::vector< T > &  vec2 
)
static

Tests whether the sum of all elements in vec1 and vec2 is less than the numeric limit of their type.

Definition at line 69 of file checks.h.

◆ unique_indices()

template<typename T >
static std::vector<T> forpy::unique_indices ( num,
min,
const T &  max,
std::mt19937 *  random_engine,
bool  return_sorted = false 
)
static

Sampling without replacement.

Returns a set of num unique numbers in range [min, max]. T must be an integral datatype.

This implementation does not need to be stateful, since the algorithm completes in one go. VERY efficient in any case. It is inspired by various algorithms from the below sources, but surpasses them in terms of efficiency and distribution of the values. The algorithm it was mainly inspired by iterates over the sample range once and picks the next number by a random distribution. In the original version, the random distribution is badly designed.

See: http://codegolf.stackexchange.com/questions/4772/random-sampling-without-replacement http://www.cplusplus.com/reference/cstdlib/rand/ http://stackoverflow.com/questions/311703/algorithm-for-sampling-without-replacement

Parameters
numNumber of examples to be selected from the range.
minMinimum of range (inclusive).
maxMaximum of range (inclusive).
random_engineThe random engine to use for random number generation.
return_sortedIf true, returns the numbers sorted (no overhead), otherwise they will be shuffled (overhead).

Definition at line 156 of file sampling.h.

Variable Documentation

◆ CLASSOPT_EPS

const float forpy::CLASSOPT_EPS = 1E-7f

Classification epsilon. No differences less than this are considered existent. This is relevant for:

  • if the difference between largest and smallest feature value at a node are less than this threshold, optimization is stopped (invalid),
  • if the difference between two consecutive feature values is leq than this threshold, they are considered the same,
  • it the difference between the largest feature value and the current one is leq than this value, optimization is stopped.

Definition at line 38 of file classification_opt.h.

◆ D_PI

const double forpy::D_PI = 4. * atan(1.)
static

Portable double pi value.

Definition at line 12 of file exponentials.h.

◆ DLOG_COPT_V

const int forpy::DLOG_COPT_V = 100

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 21 of file classification_opt.h.

◆ DLOG_FCOPT_V

const int forpy::DLOG_FCOPT_V = 100

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 22 of file fastclassopt.h.

◆ DLOG_FD_V

const int forpy::DLOG_FD_V = 100

Definition at line 24 of file fastdecider.h.

◆ DLOG_ROPT_V

const int forpy::DLOG_ROPT_V = 1

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 19 of file regression_opt.h.

◆ ENTROPY_EPS

const float forpy::ENTROPY_EPS = 1E-7
static

Definition at line 18 of file ientropyfunction.h.

◆ GAIN_EPS

const double forpy::GAIN_EPS = 1E-7

Definition at line 212 of file types.h.

◆ LOG_COPT_ALLN

const bool forpy::LOG_COPT_ALLN = false

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 23 of file classification_opt.h.

◆ LOG_COPT_NID

const size_t forpy::LOG_COPT_NID = 0

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 22 of file classification_opt.h.

◆ LOG_FCOPT_ALLN

const bool forpy::LOG_FCOPT_ALLN = true

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 24 of file fastclassopt.h.

◆ LOG_FCOPT_NID

const size_t forpy::LOG_FCOPT_NID = 3

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 23 of file fastclassopt.h.

◆ LOG_FD_ALLN

const bool forpy::LOG_FD_ALLN = true

Definition at line 26 of file fastdecider.h.

◆ LOG_FD_NID

const size_t forpy::LOG_FD_NID = 12043

Definition at line 25 of file fastdecider.h.

◆ LOG_ROPT_ALLN

const bool forpy::LOG_ROPT_ALLN = false

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 21 of file regression_opt.h.

◆ LOG_ROPT_NID

const size_t forpy::LOG_ROPT_NID = 12043

Variables to control debugging and log output for the forpy::RegressionOpt.

Definition at line 20 of file regression_opt.h.

◆ REGOPT_EPS

const float forpy::REGOPT_EPS = 1E-7f

Regression epsilon. No differences less than this are considered existent. This is relevant for:

  • if the difference between largest and smallest feature value at a node are less than this threshold, optimization is stopped (invalid),
  • if the difference between two consecutive feature values is leq than this threshold, they are considered the same,
  • it the difference between the largest feature value and the current one is leq than this value, optimization is stopped.

Definition at line 36 of file regression_opt.h.

◆ SKLEARN_COMPAT

const bool forpy::SKLEARN_COMPAT
static
Initial value:
=
false

Definition at line 82 of file global.h.

◆ TWO_PI

const float forpy::TWO_PI = static_cast<float>(2. * D_PI)
static

Precomputed value for the computation of the differential induced entropy.

Definition at line 16 of file exponentials.h.

◆ TWO_PI_E

const float forpy::TWO_PI_E = TWO_PI * expf(1.f)
static

Precomputed value for the computation of the differential shannon entropy.

Definition at line 22 of file exponentials.h.