⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kd_util.h

📁 c++实现的KNN库:建立高维度的K-d tree,实现K邻域搜索
💻 H
字号:
//----------------------------------------------------------------------// File:			kd_util.h// Programmer:		Sunil Arya and David Mount// Description:		Common utilities for kd- trees// Last modified:	01/04/05 (Version 1.0)//----------------------------------------------------------------------// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and// David Mount.  All Rights Reserved.// // This software and related documentation is part of the Approximate// Nearest Neighbor Library (ANN).  This software is provided under// the provisions of the Lesser GNU Public License (LGPL).  See the// file ../ReadMe.txt for further information.// // The University of Maryland (U.M.) and the authors make no// representations about the suitability or fitness of this software for// any purpose.  It is provided "as is" without express or implied// warranty.//----------------------------------------------------------------------// History://	Revision 0.1  03/04/98//		Initial release//----------------------------------------------------------------------#ifndef ANN_kd_util_H#define ANN_kd_util_H#include "kd_tree.h"					// kd-tree declarations//----------------------------------------------------------------------//	externally accessible functions//----------------------------------------------------------------------double annAspectRatio(			// compute aspect ratio of box	int					dim,			// dimension	const ANNorthRect	&bnd_box);		// bounding cubevoid annEnclRect(				// compute smallest enclosing rectangle	ANNpointArray		pa,				// point array	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					dim,			// dimension	ANNorthRect &bnds);					// bounding cube (returned)void annEnclCube(				// compute smallest enclosing cube	ANNpointArray		pa,				// point array	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					dim,			// dimension	ANNorthRect &bnds);					// bounding cube (returned)ANNdist annBoxDistance(			// compute distance from point to box	const ANNpoint		q,				// the point	const ANNpoint		lo,				// low point of box	const ANNpoint		hi,				// high point of box	int					dim);			// dimension of spaceANNcoord annSpread(				// compute point spread along dimension	ANNpointArray		pa,				// point array	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					d);				// dimension to checkvoid annMinMax(					// compute min and max coordinates along dim	ANNpointArray		pa,				// point array	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					d,				// dimension to check	ANNcoord&			min,			// minimum value (returned)	ANNcoord&			max);			// maximum value (returned)int annMaxSpread(				// compute dimension of max spread	ANNpointArray		pa,				// point array	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					dim);			// dimension of spacevoid annMedianSplit(			// split points along median value	ANNpointArray		pa,				// points to split	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					d,				// dimension along which to split	ANNcoord			&cv,			// cutting value	int					n_lo);			// split into n_lo and n-n_lovoid annPlaneSplit(				// split points by a plane	ANNpointArray		pa,				// points to split	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					d,				// dimension along which to split	ANNcoord			cv,				// cutting value	int					&br1,			// first break (values < cv)	int					&br2);			// second break (values == cv)void annBoxSplit(				// split points by a box	ANNpointArray		pa,				// points to split	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					dim,			// dimension of space	ANNorthRect			&box,			// the box	int					&n_in);			// number of points inside (returned)int annSplitBalance(			// determine balance factor of a split	ANNpointArray		pa,				// points to split	ANNidxArray			pidx,			// point indices	int					n,				// number of points	int					d,				// dimension along which to split	ANNcoord			cv);			// cutting valuevoid annBox2Bnds(				// convert inner box to bounds	const ANNorthRect	&inner_box,		// inner box	const ANNorthRect	&bnd_box,		// enclosing box	int					dim,			// dimension of space	int					&n_bnds,		// number of bounds (returned)	ANNorthHSArray		&bnds);			// bounds array (returned)void annBnds2Box(				// convert bounds to inner box	const ANNorthRect	&bnd_box,		// enclosing box	int					dim,			// dimension of space	int					n_bnds,			// number of bounds	ANNorthHSArray		bnds,			// bounds array	ANNorthRect			&inner_box);	// inner box (returned)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -