gaussian.c

来自「用于OMNeT++的模板」· C语言 代码 · 共 35 行

C
35
字号
#include <Python.h>double gaussian(double x1, double x2, double mu, double sigma){	static double sq2 = M_SQRT2;	double z = (x1-mu)/sigma;	double ret1 = 0.5 * (1.0+erf(z/sq2));	assert(ret1 <= 1 && ret1 >= -1);	z = (x2-mu)/sigma;	double ret2 = 0.5* (1.0+erf(z/sq2));	assert(ret2 <= 1 && ret2 >= -1);	double ret = ret2 - ret1;	assert(ret <= 1 && ret >= 0);	return ret;}static PyObject * calc_gaussian(PyObject *self, PyObject *args){	double x1,x2,mu,sigma,ret;	if (!(PyArg_ParseTuple(args,"dddd",&x1,&x2,&mu,&sigma)))		return NULL;	ret = gaussian(x1,x2,mu,sigma);	return Py_BuildValue("d",ret);}static PyMethodDef GaussMethods[] = {	{"gaussian",calc_gaussian,METH_VARARGS,"Calculate a gaussian"},	{NULL, NULL, 0, NULL}};PyMODINIT_FUNC initgauss(void){	(void) Py_InitModule("gauss",GaussMethods);}

⌨️ 快捷键说明

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