mymath.cc

来自「PostsBayesian Optimization Algorithm wit」· CC 代码 · 共 108 行

CC
108
字号
// ################################################################################//// name:          mymath.cc//// author:        Martin Pelikan//// purpose:       commonly used mathematical functions//// last modified: February 1999//// #################################################################################include "mymath.h"#include "memalloc.h"// ---------------------------------------------------------// an array consisting of precomputed cummulative logarithms// ---------------------------------------------------------double *precomputedCummulativeLogarithm;// ================================================================================//// name:          getPrecomputedCummulativeLog//// function:      returns a precomputed cummulative logarithm (log(i)+...+log(j))//// parameters:    i............starting number//                j............ending number//  // returns:       (float) sum_{k=i}^{k=j}{log(k)}//// ================================================================================float getPrecomputedCummulativeLog(long i, long j){  return (float) ((double) (precomputedCummulativeLogarithm[j]-precomputedCummulativeLogarithm[i-1]));};// ================================================================================//// name:          precomputeCummulativeLogarithms//// function:      allocates memory for and precomputes cummulative logarithm //                (log(1)+...+log(j)) for all j up to a specified number//// parameters:    n............maximal number of cummulative logarithm to //                             precompute//  // returns:       (int) 0//// ================================================================================int precomputeCummulativeLogarithms(long n){  long i;  double sum;    precomputedCummulativeLogarithm = (double*) Calloc(n+1,sizeof(double));  sum = 0;  precomputedCummulativeLogarithm[0]=0;    for (i=1; i<=n; i++)    {      sum += log(i);      precomputedCummulativeLogarithm[i] = sum;    };  return 0;};// ================================================================================//// name:          freePrecomputedCummulativeLogarithms//// function:      frees the memory used by the array of precomputed cummulative //                logarithms //// parameters:    (none)//  // returns:       (int) 0//// ================================================================================int freePrecomputedCummulativeLogarithms(){  Free(precomputedCummulativeLogarithm);  return 0;};// ================================================================================//// name:          round//// function:      rounds a float//// parameters:    x............the input floating-point number//  // returns:       (long) integer closest to the input number//// ================================================================================long round(float x){  return (long) (x+0.5);};

⌨️ 快捷键说明

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