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

📄 calcbits.cpp

📁 matlab的GA工具箱与vc混和实现遗传算法的源码
💻 CPP
字号:
  #include "matlib.h"
  #pragma hdrstop
  
  #include "calcbits.h"
  
  
  Mm calcbits(Mm bounds, Mm precision) {
    begin_scope
    bounds.setname("bounds"); precision.setname("precision"); 
    dMm(bits); 
    
    call_stack_begin;
    // nargin, nargout entry code
    double old_nargin=nargin_val; if (!nargin_set) nargin_val=2.0;
    nargin_set=0;
    double old_nargout=nargout_val; if (!nargout_set) nargout_val=1.0;
    nargout_set=0;
    
    // translated code
    
    // function [bits]=calcbits(bounds,precision)
    //
    // Determine the number of bits to represent a float number to the precision
    // provided.
    //
    // bits      - the number of bits required per variable
    // bounds    - the bounds on the variables
    // precision - the least difference to distinguish two numbers
    
    // Binary and Real-Valued Simulation Evolution for Matlab 
    // Copyright (C) 1996 C.R. Houck, J.A. Joines, M.G. Kay 
    //
    // C.R. Houck, J.Joines, and M.Kay. A genetic algorithm for function
    // optimization: A Matlab implementation. ACM Transactions on Mathmatical
    // Software, Submitted 1996.
    //
    // 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 1, 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. A copy of the GNU 
    // General Public License can be obtained from the 
    // Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    
    bits = ceil(log2(rdivide(ctranspose((bounds(c_p,2.0)-bounds(c_p,1.0))),precision)));
    // bits=ceil(log( (bounds(:,2)-bounds(:,1))' .* 10.^precision+1) ./ log(2));
    
    call_stack_end;
    
    // nargin, nargout exit code
    nargin_val=old_nargin; nargout_val=old_nargout;
    
    // function exit code
    bounds.setname(NULL); precision.setname(NULL); 
    return bits;
    end_scope
  }
  
  

⌨️ 快捷键说明

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