Uploaded Test files
This commit is contained in:
parent
f584ad9d97
commit
2e81cb7d99
16627 changed files with 2065359 additions and 102444 deletions
101
venv/Lib/site-packages/sklearn/neighbors/_quad_tree.pxd
Normal file
101
venv/Lib/site-packages/sklearn/neighbors/_quad_tree.pxd
Normal file
|
@ -0,0 +1,101 @@
|
|||
# cython: boundscheck=False
|
||||
# cython: wraparound=False
|
||||
# cython: cdivision=True
|
||||
#
|
||||
# Author: Thomas Moreau <thomas.moreau.2010@gmail.com>
|
||||
# Author: Olivier Grisel <olivier.grisel@ensta.fr>
|
||||
|
||||
# See quad_tree.pyx for details.
|
||||
|
||||
import numpy as np
|
||||
cimport numpy as np
|
||||
|
||||
ctypedef np.npy_float32 DTYPE_t # Type of X
|
||||
ctypedef np.npy_intp SIZE_t # Type for indices and counters
|
||||
ctypedef np.npy_int32 INT32_t # Signed 32 bit integer
|
||||
ctypedef np.npy_uint32 UINT32_t # Unsigned 32 bit integer
|
||||
|
||||
# This is effectively an ifdef statement in Cython
|
||||
# It allows us to write printf debugging lines
|
||||
# and remove them at compile time
|
||||
cdef enum:
|
||||
DEBUGFLAG = 0
|
||||
|
||||
cdef float EPSILON = 1e-6
|
||||
|
||||
# XXX: Careful to not change the order of the arguments. It is important to
|
||||
# have is_leaf and max_width consecutive as it permits to avoid padding by
|
||||
# the compiler and keep the size coherent for both C and numpy data structures.
|
||||
cdef struct Cell:
|
||||
# Base storage structure for cells in a QuadTree object
|
||||
|
||||
# Tree structure
|
||||
SIZE_t parent # Parent cell of this cell
|
||||
SIZE_t[8] children # Array pointing to childrens of this cell
|
||||
|
||||
# Cell description
|
||||
SIZE_t cell_id # Id of the cell in the cells array in the Tree
|
||||
SIZE_t point_index # Index of the point at this cell (only defined
|
||||
# in non empty leaf)
|
||||
bint is_leaf # Does this cell have children?
|
||||
DTYPE_t squared_max_width # Squared value of the maximum width w
|
||||
SIZE_t depth # Depth of the cell in the tree
|
||||
SIZE_t cumulative_size # Number of points included in the subtree with
|
||||
# this cell as a root.
|
||||
|
||||
# Internal constants
|
||||
DTYPE_t[3] center # Store the center for quick split of cells
|
||||
DTYPE_t[3] barycenter # Keep track of the center of mass of the cell
|
||||
|
||||
# Cell boundaries
|
||||
DTYPE_t[3] min_bounds # Inferior boundaries of this cell (inclusive)
|
||||
DTYPE_t[3] max_bounds # Superior boundaries of this cell (exclusive)
|
||||
|
||||
|
||||
cdef class _QuadTree:
|
||||
# The QuadTree object is a quad tree structure constructed by inserting
|
||||
# recursively points in the tree and splitting cells in 4 so that each
|
||||
# leaf cell contains at most one point.
|
||||
# This structure also handle 3D data, inserted in trees with 8 children
|
||||
# for each node.
|
||||
|
||||
# Parameters of the tree
|
||||
cdef public int n_dimensions # Number of dimensions in X
|
||||
cdef public int verbose # Verbosity of the output
|
||||
cdef SIZE_t n_cells_per_cell # Number of children per node. (2 ** n_dimension)
|
||||
|
||||
# Tree inner structure
|
||||
cdef public SIZE_t max_depth # Max depth of the tree
|
||||
cdef public SIZE_t cell_count # Counter for node IDs
|
||||
cdef public SIZE_t capacity # Capacity of tree, in terms of nodes
|
||||
cdef public SIZE_t n_points # Total number of points
|
||||
cdef Cell* cells # Array of nodes
|
||||
|
||||
# Point insertion methods
|
||||
cdef int insert_point(self, DTYPE_t[3] point, SIZE_t point_index,
|
||||
SIZE_t cell_id=*) nogil except -1
|
||||
cdef SIZE_t _insert_point_in_new_child(self, DTYPE_t[3] point, Cell* cell,
|
||||
SIZE_t point_index, SIZE_t size=*
|
||||
) nogil
|
||||
cdef SIZE_t _select_child(self, DTYPE_t[3] point, Cell* cell) nogil
|
||||
cdef bint _is_duplicate(self, DTYPE_t[3] point1, DTYPE_t[3] point2) nogil
|
||||
|
||||
# Create a summary of the Tree compare to a query point
|
||||
cdef long summarize(self, DTYPE_t[3] point, DTYPE_t* results,
|
||||
float squared_theta=*, int cell_id=*, long idx=*
|
||||
) nogil
|
||||
|
||||
# Internal cell initialization methods
|
||||
cdef void _init_cell(self, Cell* cell, SIZE_t parent, SIZE_t depth) nogil
|
||||
cdef void _init_root(self, DTYPE_t[3] min_bounds, DTYPE_t[3] max_bounds
|
||||
) nogil
|
||||
|
||||
# Private methods
|
||||
cdef int _check_point_in_cell(self, DTYPE_t[3] point, Cell* cell
|
||||
) nogil except -1
|
||||
|
||||
# Private array manipulation to manage the ``cells`` array
|
||||
cdef int _resize(self, SIZE_t capacity) nogil except -1
|
||||
cdef int _resize_c(self, SIZE_t capacity=*) nogil except -1
|
||||
cdef int _get_cell(self, DTYPE_t[3] point, SIZE_t cell_id=*) nogil except -1
|
||||
cdef np.ndarray _get_cell_ndarray(self)
|
Loading…
Add table
Add a link
Reference in a new issue