Files
mlpack/fastlib/u/nvasil/tree/tree_definitions.h
T

101 lines
3.3 KiB
C

/*
* =====================================================================================
*
* Filename: tree_definiions.h
*
* Description:
*
* Version: 1.0
* Created: 05/18/2007 07:08:44 PM EDT
* Revision: none
* Compiler: gcc
*
* Author: Nikolaos Vasiloglou (NV), nvasil@ieee.org
* Company: Georgia Tech Fastlab-ESP Lab
*
* =====================================================================================
*/
#include "fastlib/fastlib.h"
#include "u/nvasil/mmanager/memory_manager.h"
#include "u/nvasil/mmanager_with_tpie/memory_manager.h"
#include "u/nvasil/tree/tree_parameters_macro.h"
#include "u/nvasil/tree/euclidean_metric.h"
#include "u/nvasil/tree/null_statistics.h"
#include "u/nvasil/tree/hyper_rectangle.h"
#include "u/nvasil/tree/point_identity_discriminator.h"
#include "u/nvasil/tree/kd_pivoter1.h"
#include "u/nvasil/tree/node.h"
#include "u/nvasil/tree/knn_node.h"
#include "u/nvasil/tree/binary_tree.h"
TREE_PARAMETERS(TPIEMM,
float32,
tpiemm::MemoryManager<false>,
EuclideanMetric,
HyperRectangle,
NullStatistics,
SimpleDiscriminator,
KdPivoter1,
false);
TREE_PARAMETERS(MMAPMM,
float32,
mmapmm::MemoryManager<false>,
EuclideanMetric,
HyperRectangle,
NullStatistics,
SimpleDiscriminator,
KdPivoter1,
false);
struct BasicTypes1 {
typedef float32 Precision_t;
typedef tpiemm::MemoryManager<false> Allocator_t;
typedef EuclideanMetric<float32> Metric_t;
};
struct NodeParameters1 {
typedef float32 Precision_t;
typedef tpiemm::MemoryManager<false> Allocator_t;
typedef EuclideanMetric<float32> Metric_t;
typedef HyperRectangle<BasicTypes1, false> BoundingBox_t;
typedef NullStatistics<Loki::NullType> NodeCachedStatistics_t;
typedef SimpleDiscriminator PointIdDiscriminator_t;
};
struct TreeParameters1 {
typedef Node<NodeParameters1, false> Node_t;
typedef KdPivoter1<BasicTypes1, false> Pivot_t;
};
struct BasicTypes2 {
typedef float32 Precision_t;
typedef mmapmm::MemoryManager<false> Allocator_t;
typedef EuclideanMetric<float32> Metric_t;
};
struct NodeParameters2 {
typedef float32 Precision_t;
typedef mmapmm::MemoryManager<false> Allocator_t;
typedef EuclideanMetric<float32> Metric_t;
typedef HyperRectangle<BasicTypes2, false> BoundingBox_t;
typedef NullStatistics<Loki::NullType> NodeCachedStatistics_t;
typedef SimpleDiscriminator PointIdDiscriminator_t;
typedef KdPivoter1<BasicTypes2, false> Pivot_t;
};
struct TreeParameters2 {
typedef Node<NodeParameters2, false> Node_t;
typedef KdPivoter1<BasicTypes2, false> Pivot_t;
};
struct TreeParameters3 {
typedef KnnNode<NodeParameters1, false> Node_t;
typedef KdPivoter1<BasicTypes1, false> Pivot_t;
};
struct TreeParameters4 {
typedef KnnNode<NodeParameters2, false> Node_t;
typedef KdPivoter1<BasicTypes2, false> Pivot_t;
};
typedef BinaryTree<TreeParameters1, false> BinaryKdTreeTPIEMM_t;
typedef BinaryTree<TreeParameters2, false> BinaryKdTreeMMAPMM_t;
typedef BinaryTree<TreeParameters3, false> BinaryKdTreeTPIEMMKnnNode_t;
typedef BinaryTree<TreeParameters4, false> BinaryKdTreeMMAPMMKnnNode_t;