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

📄 adjustanalysis.cpp

📁 模糊聚類分析源碼。包含教學文件
💻 CPP
字号:
/*    Context       : Fuzzy Clustering Algorithms  Author        : Frank Hoeppner, see also AUTHORS file   Description   : implementation of class module AdjustAnalysis                    History       :      Comment       :     This file was generated automatically. DO NOT EDIT.  Copyright     : Copyright (C) 1999-2000 Frank Hoeppner    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//*  The University of Applied Sciences Oldenburg/Ostfriesland/Wilhelmshaven  hereby disclaims all copyright interests in the program package `fc'   (tool package for fuzzy cluster analysis) written by Frank Hoeppner.    Prof. Haass, President of Vice, 2000-Mar-10*/#ifndef AdjustAnalysis_SOURCE#define AdjustAnalysis_SOURCE/* configuration include */#ifdef HAVE_CONFIG_H/*//FILETREE_IFDEF HAVE_CONFIG_H*/#include "config.h"/*//FILETREE_ENDIF*/#endif// necessary includes#include "AdjustAnalysis.hpp"// data// implementationtemplate < class ANALYSIS >AdjustAnalysis< ANALYSIS >::AdjustAnalysis  (  int a_adjust,  Algorithm<ANALYSIS>* ap_alg  )  : mp_succ_alg(ap_alg)  , m_adjust(a_adjust)    {    }template < class ANALYSIS >AdjustAnalysis< ANALYSIS >::~AdjustAnalysis  (  )  {  FUNCLOG("~AdjustAnalysis");    delete mp_succ_alg;  }template < class ANALYSIS >voidAdjustAnalysis< ANALYSIS >::operator()  (  ANALYSIS& a_analysis  )  {  FUNCLOG("AdjustAnalysis");    int c( a_analysis.option().number_prototypes() );  if (c<1)    {    c=a_analysis.option().max_no_of_clusters();    invariant(c>=1,"max number of clusters > 0",SOURCELOC);    if (a_analysis.option().init()==FC_INIT_PROT)      { a_analysis.option().init()=FC_INIT_AUTO; }    }  int n( a_analysis.option().number_features() );  int p( a_analysis.option().data_dimension() );    adjust_set_size(a_analysis.prototypes(),c);    if (n>0) adjust_set_size(a_analysis.links(),n*c);    a_analysis.option().number_prototypes()=c;       for (        typename ANALYSIS::prot_iter i_prot(a_analysis.prototypes().begin());        i_prot != a_analysis.prototypes().end();        ++i_prot        )      {      if (IS_TAG(m_adjust,FC_ADJUST_CENTER))         (*i_prot).center().adjust(p);      if (IS_TAG(m_adjust,FC_ADJUST_COEFF))        (*i_prot).coefficient().adjust(p);      if (IS_TAG(m_adjust,FC_ADJUST_LINE))        { (*i_prot).center().adjust(0); (*i_prot).start().adjust(p); (*i_prot).delta().adjust(p); }      }    (*mp_succ_alg)(a_analysis);  //  }    }template <class SET>void adjust_set_size  (  SET& a_set,  int wanted  )  {  if (wanted<=0)    {    a_set.erase(a_set.begin(),a_set.end());    return;    }  int found = a_set.size();  if (found != wanted)    if (found > wanted)      {      for (int i=0;i<found-wanted;++i)         { a_set.pop_back(); }      }    else      {      typename SET::value_type entry;      for (int i=0;i<wanted-found;++i)         { a_set.insert( a_set.end(), entry); }      }  }// template instantiation#endif // AdjustAnalysis_SOURCE

⌨️ 快捷键说明

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