1
我正在尝试将GSL库提供的dilogarithm函数用于C++程序。我得到如何调用一个真正的参数的函数(它返回一个实数):在C++中使用GSL Dilogarithm函数
gsl_sf_dilog(double x)
但在参数是复杂的情况下,我不知道如何正确地调用该函数。在GSL手册说,对于一个复杂的参数,调用函数如下:
int gsl_sf_complex_dilog_e (double r, double theta, gsl_sf_result *result_re, gsl_sf_result * result_im)
我想出来的方案是result_re
:在dilogarithm的实部。但是,到目前为止,我只尝试过所有我尝试过的错误。
#include <iostream>
#include <gsl/gsl_sf_dilog.h>
#include <gsl/gsl_sf_result.h>
#include <cmath>
#include <complex>
int main (void)
{
double res1, res2;
double dilog = gsl_sf_complex_dilog_e(3.,M_PI/2., gsl_sf_result*res1,gsl_sf_result*res2);
return 0;
}
我得到这个错误,当我尝试编译:error: expected primary-expression before ‘*’ token
和error: expression list treated as compound expression in initializer [-fpermissive]
谁能告诉我怎样才能让此功能工作?谢谢
什么是在'gsl_sf_complex_dilog_e'称之为 '\' 反斜线? – emsr 2015-04-02 19:22:18
我的不好。我把它们放在一起表示它应该全部在同一行上,函数调用中没有反斜杠。我已经编辑它使其更清晰。 – talkingpie 2015-04-03 22:27:08