www.pudn.com > bp_cpp.zip > annfunc.cpp
/* * public/ann/annfunc/annfunc.cpp * 2004-02-16 by ShanLanshan */ #include#include "public/ann/annfunc/annfunc.h" #include "public/ann/annfunc/hyperbola_tangent.h" #include "public/ann/annfunc/sigmoid.h" #include "public/ann/annfunc/sign.h" #include "public/ann/annfunc/sin.h" #include "public/ann/annfunc/sech6.h" using namespace ann::annfunc; namespace ann { AnnFuncGroupFactory g_func_factory; AnnFuncGroupFactory::AnnFuncGroupFactory():m_inited(false){} AnnFuncGroupFactory::~AnnFuncGroupFactory() { finalize(); } void AnnFuncGroupFactory::finalize() { if (!m_inited) return; for (int i=0; i finalize != NULL); m_funcgroup[i]->finalize(); } m_inited = false; } bool AnnFuncGroupFactory::init() { int i = 0; if (m_inited) return true; m_funcgroup[i++] = &hyperbola_tangent::g_funcgroup; m_funcgroup[i++] = &sigmoid::g_funcgroup; m_funcgroup[i++] = &sign::g_funcgroup; m_funcgroup[i++] = &sin::g_funcgroup; m_funcgroup[i++] = &sech6::g_funcgroup; m_funcgroup[i++] = &sech6::g_funcgroup_cache; m_funcgroup_count = i; for (i=0; i init != NULL); if (!m_funcgroup[i]->init()) return false; } m_inited = true; return true; } AnnFuncGroup *annfunc_get(const char *name) { AnnFuncGroup *func; for (int i=0; i name, name)) continue; return func; } return NULL; } } // namespace ann