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

📄 gsl_integration.h

📁 该文件为c++的数学函数库!是一个非常有用的编程工具.它含有各种数学函数,为科学计算、工程应用等程序编写提供方便!
💻 H
字号:
/* integration/gsl_integration.h *  * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough *  * 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., 675 Mass Ave, Cambridge, MA 02139, USA. */#ifndef __GSL_INTEGRATION_H__#define __GSL_INTEGRATION_H__#include <stdlib.h>#include <gsl/gsl_math.h>#undef __BEGIN_DECLS#undef __END_DECLS#ifdef __cplusplus# define __BEGIN_DECLS extern "C" {# define __END_DECLS }#else# define __BEGIN_DECLS /* empty */# define __END_DECLS /* empty */#endif__BEGIN_DECLS/* Workspace for adaptive integrators */typedef struct  {    size_t limit;    size_t size;    size_t nrmax;    size_t i;    size_t maximum_level;    double *alist;    double *blist;    double *rlist;    double *elist;    size_t *order;    size_t *level;  }gsl_integration_workspace;gsl_integration_workspace *  gsl_integration_workspace_alloc (const size_t n);void  gsl_integration_workspace_free (gsl_integration_workspace * w);/* Workspace for QAWS integrator */typedef struct{  double alpha;  double beta;  int mu;  int nu;  double ri[25];  double rj[25];  double rg[25];  double rh[25];}gsl_integration_qaws_table;gsl_integration_qaws_table * gsl_integration_qaws_table_alloc (double alpha, double beta, int mu, int nu);intgsl_integration_qaws_table_set (gsl_integration_qaws_table * t,                                double alpha, double beta, int mu, int nu);voidgsl_integration_qaws_table_free (gsl_integration_qaws_table * t);/* Workspace for QAWO integrator */enum gsl_integration_qawo_enum { GSL_INTEG_COSINE, GSL_INTEG_SINE };typedef struct{  size_t n;  double omega;  double L;  double par;  enum gsl_integration_qawo_enum sine;  double *chebmo;}gsl_integration_qawo_table;gsl_integration_qawo_table * gsl_integration_qawo_table_alloc (double omega, double L,                                   enum gsl_integration_qawo_enum sine,                                  size_t n);intgsl_integration_qawo_table_set (gsl_integration_qawo_table * t,                                double omega, double L,                                enum gsl_integration_qawo_enum sine);intgsl_integration_qawo_table_set_length (gsl_integration_qawo_table * t,                                       double L);voidgsl_integration_qawo_table_free (gsl_integration_qawo_table * t);/* Definition of an integration rule */typedef void gsl_integration_rule (const gsl_function * f,                                   double a, double b,                                   double *result, double *abserr,                                   double *defabs, double *resabs);void gsl_integration_qk15 (const gsl_function * f, double a, double b,                           double *result, double *abserr,                           double *resabs, double *resasc);void gsl_integration_qk21 (const gsl_function * f, double a, double b,                           double *result, double *abserr,                           double *resabs, double *resasc);void gsl_integration_qk31 (const gsl_function * f, double a, double b,                           double *result, double *abserr,                           double *resabs, double *resasc);void gsl_integration_qk41 (const gsl_function * f, double a, double b,                           double *result, double *abserr,                           double *resabs, double *resasc);void gsl_integration_qk51 (const gsl_function * f, double a, double b,                           double *result, double *abserr,                           double *resabs, double *resasc);void gsl_integration_qk61 (const gsl_function * f, double a, double b,                           double *result, double *abserr,                           double *resabs, double *resasc);void gsl_integration_qcheb (gsl_function * f, double a, double b,                             double *cheb12, double *cheb24);/* The low-level integration rules in QUADPACK are identified by small   integers (1-6). We'll use symbolic constants to refer to them.  */enum  {    GSL_INTEG_GAUSS15 = 1,      /* 15 point Gauss-Kronrod rule */    GSL_INTEG_GAUSS21 = 2,      /* 21 point Gauss-Kronrod rule */    GSL_INTEG_GAUSS31 = 3,      /* 31 point Gauss-Kronrod rule */    GSL_INTEG_GAUSS41 = 4,      /* 41 point Gauss-Kronrod rule */    GSL_INTEG_GAUSS51 = 5,      /* 51 point Gauss-Kronrod rule */    GSL_INTEG_GAUSS61 = 6       /* 61 point Gauss-Kronrod rule */  };void gsl_integration_qk (const int n, const double xgk[],                     const double wg[], const double wgk[],                    double fv1[], double fv2[],                    const gsl_function *f, double a, double b,                    double * result, double * abserr,                     double * resabs, double * resasc);int gsl_integration_qng (const gsl_function * f,                         double a, double b,                         double epsabs, double epsrel,                         double *result, double *abserr,                         size_t * neval);int gsl_integration_qag (const gsl_function * f,                         double a, double b,                         double epsabs, double epsrel, size_t limit,                         int key,                         gsl_integration_workspace * workspace,                         double *result, double *abserr);int gsl_integration_qagi (gsl_function * f,                          double epsabs, double epsrel, size_t limit,                          gsl_integration_workspace * workspace,                          double *result, double *abserr);int gsl_integration_qagiu (gsl_function * f,                           double a,                           double epsabs, double epsrel, size_t limit,                           gsl_integration_workspace * workspace,                           double *result, double *abserr);int gsl_integration_qagil (gsl_function * f,                           double b,                           double epsabs, double epsrel, size_t limit,                           gsl_integration_workspace * workspace,                           double *result, double *abserr);int gsl_integration_qags (const gsl_function * f,                          double a, double b,                          double epsabs, double epsrel, size_t limit,                          gsl_integration_workspace * workspace,                          double *result, double *abserr);int gsl_integration_qagp (const gsl_function * f,                          double *pts, size_t npts,                          double epsabs, double epsrel, size_t limit,                          gsl_integration_workspace * workspace,                          double *result, double *abserr);int gsl_integration_qawc (gsl_function *f,                          const double a, const double b, const double c,                          const double epsabs, const double epsrel, const size_t limit,                          gsl_integration_workspace * workspace,                          double * result, double * abserr);int gsl_integration_qaws (gsl_function * f,                          const double a, const double b,                          gsl_integration_qaws_table * t,                          const double epsabs, const double epsrel,                          const size_t limit,                          gsl_integration_workspace * workspace,                          double *result, double *abserr);int gsl_integration_qawo (gsl_function * f,                          const double a,                          const double epsabs, const double epsrel,                          const size_t limit,                          gsl_integration_workspace * workspace,                          gsl_integration_qawo_table * wf,                          double *result, double *abserr);int gsl_integration_qawf (gsl_function * f,                          const double a,                          const double epsabs,                          const size_t limit,                          gsl_integration_workspace * workspace,                          gsl_integration_workspace * cycle_workspace,                          gsl_integration_qawo_table * wf,                          double *result, double *abserr);__END_DECLS#endif /* __GSL_INTEGRATION_H__ */

⌨️ 快捷键说明

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