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