stdafx.h

来自「OpenSVM was developped under Visual C++ 」· C头文件 代码 · 共 156 行

H
156
字号
// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//

#if !defined(AFX_STDAFX_H__F9228995_B67D_481A_AEF3_AEADD8F4E494__INCLUDED_)
#define AFX_STDAFX_H__F9228995_B67D_481A_AEF3_AEADD8F4E494__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
#include <afxdisp.h>        // MFC Automation classes
#include <afxdtctl.h>		// MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>			// MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

//////////////////////////////////////////////////////////////////////////
// svm.h of libsvm is followed
/*
	Copyright (c) 2000-2007 Chih-Chung Chang and Chih-Jen Lin
	All rights reserved.

	Redistribution and use in source and binary forms, with or without
	modification, are permitted provided that the following conditions
	are met:
  
	1. Redistributions of source code must retain the above copyright
	notice, this list of conditions and the following disclaimer.
	
	2. Redistributions in binary form must reproduce the above copyright
	notice, this list of conditions and the following disclaimer in the
	documentation and/or other materials provided with the distribution.
	  
	3. Neither name of copyright holders nor the names of its contributors
	may be used to endorse or promote products derived from this software
	without specific prior written permission.
		
		  
	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
	``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
	LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
	A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
	CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
	EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
	PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
	PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
	LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
	NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
	SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


*/
#ifndef _LIBSVM_H
#define _LIBSVM_H

#ifdef __cplusplus
extern "C" {
#endif
	
	struct svm_node
	{
		int index;
		double value;
	};
	
	struct svm_problem
	{
		int l;
		double *y;
		struct svm_node **x;
	};
	
	enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR };	/* svm_type */
	enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */
	
	struct svm_parameter
	{
		int svm_type;
		int kernel_type;
		int degree;	/* for poly */
		double gamma;	/* for poly/rbf/sigmoid */
		double coef0;	/* for poly/sigmoid */
		
		/* these are for training only */
		double cache_size; /* in MB */
		double eps;	/* stopping criteria */
		double C;	/* for C_SVC, EPSILON_SVR and NU_SVR */
		int nr_weight;		/* for C_SVC */
		int *weight_label;	/* for C_SVC */
		double* weight;		/* for C_SVC */
		double nu;	/* for NU_SVC, ONE_CLASS, and NU_SVR */
		double p;	/* for EPSILON_SVR */
		int shrinking;	/* use the shrinking heuristics */
		int probability; /* do probability estimates */
	};
	
	struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);
	void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target);
	
	int svm_save_model(const char *model_file_name, const struct svm_model *model);
	struct svm_model *svm_load_model(const char *model_file_name);
	
	int svm_get_svm_type(const struct svm_model *model);
	int svm_get_nr_class(const struct svm_model *model);
	void svm_get_labels(const struct svm_model *model, int *label);
	double svm_get_svr_probability(const struct svm_model *model);
	
	void svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values);
	double svm_predict(const struct svm_model *model, const struct svm_node *x);
	double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates);
	
	void svm_destroy_model(struct svm_model *model);
	void svm_destroy_param(struct svm_parameter *param);
	
	const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param);
	int svm_check_probability_model(const struct svm_model *model);
	
#ifdef __cplusplus
}
#endif

#endif /* _LIBSVM_H */




// svm.h of libsvm is ended here
//////////////////////////////////////////////////////////////////////////

extern char AppPath[MAX_PATH];

//////////////////////////////////////////////////////////////////////////
// Global define for predict
extern char* line;
extern int max_line_len;
extern struct svm_node *x;
extern int max_nr_attr;

extern struct svm_model* model;
extern int predict_probability;
//////////////////////////////////////////////////////////////////////////


//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif
 // !defined(AFX_STDAFX_H__F9228995_B67D_481A_AEF3_AEADD8F4E494__INCLUDED_)

⌨️ 快捷键说明

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