interface.h

来自「C++神经网络开发包,基于C++语言」· C头文件 代码 · 共 62 行

H
62
字号
#ifndef _PUBLIC_ANN_INTERFACE_H
#define _PUBLIC_ANN_INTERFACE_H

/*
 * public/ann/interface.h
 * 2004-04-24 by ShanLanshan
 *
 * Define ann lib interface
 */

#include "public/ann/annbase.h"

namespace ann {

	class ISerialObj {
	public:
		virtual ostream& operator >>(ostream &os) = 0;
		virtual istream& operator <<(istream &is) = 0;
	};
	inline ostream& operator << (ostream &os, ISerialObj &so) {return so >> os;}
	inline istream& operator >> (istream &is, ISerialObj &so) {return so << is;}

	class IAnnVector {
	public:
		virtual ~IAnnVector();
		virtual IAnnVector* get_sub_vector(int off, int len, IAnnVector *vec) = 0;
		virtual void set_size(ann_int size) = 0;
		virtual ann_int get_size() = 0;
		virtual ann_float get_element(int n) = 0;
		virtual void set_element(int n, ann_float v) = 0;
		virtual void get_element(int i, ann_float a[], int n) = 0;
		virtual void set_element(int i, ann_float a[], int n) = 0;
		virtual ann_float *get_buffer() = 0;
		virtual void release_buffer() = 0;
		virtual IAnnVector& operator=(IAnnVector &av) = 0;
		virtual bool operator ==(IAnnVector &av) = 0;
		//virtual ostream& operator >>(ostream &os) = 0;
	};
	
	//inline ostream& operator << (ostream &os, IAnnVector &av) {return av >> os;}

	class IAnnVectorContainer {
	public:
		virtual ~IAnnVectorContainer();
		virtual bool add(IAnnVector &vec) = 0;
		virtual IAnnVector *get_vector(int i) = 0;
		virtual ann_uint get_count() = 0;
	};

	class IAnnVectorConverter {
	public:
		virtual ~IAnnVectorConverter();
		virtual bool set_input(IAnnVector *vecin) = 0;
		virtual bool get_output(IAnnVector *vecout) = 0;
		virtual bool learn(IAnnVector *vecout) = 0;
		virtual bool convert() = 0;
	};

}	// namespace ann

#endif /* !_PUBLIC_ANN_INTERFACE_H */

⌨️ 快捷键说明

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