Visual Stdio C++ 编译器 编译 (GSL) GNU Scientific Library 的方法介绍(5)

来源:互联网 发布:如何卸载mac上的软件 编辑:程序博客网 时间:2024/05/16 12:34

编译好的版本放到了这里,包括静态库和动态库。大家直接用吧。
http://download.csdn.net/detail/liyuanbhu/9618257

Visual Stdio C++ 编译器 编译 (GSL) GNU Scientific Library 的方法介绍(5)

gsl_blas 模块

项目文件:

#-------------------------------------------------## Project created by QtCreator 2016-08-26T20:38:46##-------------------------------------------------QT       -= core guiTARGET = gsl_blasTEMPLATE = libCONFIG += staticlibINCLUDEPATH += ./include/SOURCES += \    source/blas/blas.cunix {    target.path = /usr/lib    INSTALLS += target}DISTFILES +=

测试代码如下:

#include <stdio.h>#include <gsl/gsl_blas.h>void blas_test (void){    double a[] = { 0.11, 0.12, 0.13,                     0.21, 0.22, 0.23 };    double b[] = { 1011, 1012,                    1021, 1022,                    1031, 1032 };    double c[] = { 0.00, 0.00,                    0.00, 0.00 };    gsl_matrix_view A = gsl_matrix_view_array(a, 2, 3);    gsl_matrix_view B = gsl_matrix_view_array(b, 3, 2);    gsl_matrix_view C = gsl_matrix_view_array(c, 2, 2);    /* Compute C = A B */    gsl_blas_dgemm (CblasNoTrans, CblasNoTrans, 1.0, &A.matrix, &B.matrix, 0.0, &C.matrix);    printf ("[ %g, %g\n", c[0], c[1]);    printf (" %g, %g ]\n", c[2], c[3]);}

链接时还需链接上 gsl_err 和 gsl_matrix 模块。

输出为:

[ 367.76, 368.12 674.06, 674.72 ]

gsl_linalg 模块

cholesky.c 中的多处 inline 需改为 __inline。
apply_givens.c 中的多处 inline 需改为 __inline。
exponential.c 中 第 33 行:

#include "gsl_linalg.h"

需改为:

#include <gsl/gsl_linalg.h>

项目文件:

#-------------------------------------------------## Project created by QtCreator 2016-08-26T20:38:46##-------------------------------------------------QT       -= core guiTARGET = gsl_linalgTEMPLATE = libCONFIG += staticlibINCLUDEPATH += ./include/SOURCES += \    source/linalg/balance.c \    source/linalg/balancemat.c \    source/linalg/bidiag.c \    source/linalg/cholesky.c \    source/linalg/choleskyc.c \    source/linalg/exponential.c \    source/linalg/hermtd.c \    source/linalg/hessenberg.c \    source/linalg/hesstri.c \    source/linalg/hh.c \    source/linalg/householder.c \    source/linalg/householdercomplex.c \    source/linalg/inline.c \    source/linalg/lq.c \    source/linalg/lu.c \    source/linalg/luc.c \    source/linalg/multiply.c \    source/linalg/ptlq.c \    source/linalg/qr.c \    source/linalg/qrpt.c \    source/linalg/svd.c \    source/linalg/symmtd.c \    source/linalg/tridiag.cunix {    target.path = /usr/lib    INSTALLS += target}DISTFILES +=HEADERS += \    source/linalg/tridiag.h

测试代码如下:

#include <stdio.h>#include <gsl/gsl_linalg.h>void linalg_test (void){    double a_data[] = { 0.18, 0.60, 0.57, 0.96,    0.41, 0.24, 0.99, 0.58,    0.14, 0.30, 0.97, 0.66,    0.51, 0.13, 0.19, 0.85 };    double b_data[] = { 1.0, 2.0, 3.0, 4.0 };    gsl_matrix_view m    = gsl_matrix_view_array (a_data, 4, 4);    gsl_vector_view b    = gsl_vector_view_array (b_data, 4);    gsl_vector *x = gsl_vector_alloc (4);    int s;    gsl_permutation * p = gsl_permutation_alloc (4);    gsl_linalg_LU_decomp (&m.matrix, p, &s);    gsl_linalg_LU_solve (&m.matrix, p, &b.vector, x);    printf ("x = \n");    gsl_vector_fprintf (stdout, x, "%g");    gsl_permutation_free (p);    gsl_vector_free (x);}

输出结果为:

x =-4.05205-12.60561.660918.69377

gsl_eigen 模块

francis.c、gen.c、qrstep.c、jacobi.c 文件中 inline 替换为 __inline。

项目文件:

#-------------------------------------------------## Project created by QtCreator 2016-08-26T20:38:46##-------------------------------------------------QT       -= core guiTARGET = gsl_eigenTEMPLATE = libCONFIG += staticlibINCLUDEPATH += ./include/SOURCES += \    source/eigen/francis.c \    source/eigen/gen.c \    source/eigen/genherm.c \    source/eigen/genhermv.c \    source/eigen/gensymm.c \    source/eigen/gensymmv.c \    source/eigen/genv.c \    source/eigen/herm.c \    source/eigen/hermv.c \    source/eigen/jacobi.c \    source/eigen/nonsymm.c \    source/eigen/nonsymmv.c \    source/eigen/qrstep.c \    source/eigen/schur.c \    source/eigen/sort.c \    source/eigen/symm.c \    source/eigen/symmv.cunix {    target.path = /usr/lib    INSTALLS += target}DISTFILES +=

测试文件为:

#include <stdio.h>#include <gsl/gsl_math.h>#include <gsl/gsl_eigen.h>void eigen_test (void){    double data[] = { -1.0, 1.0, -1.0, 1.0,                        -8.0, 4.0, -2.0, 1.0,                        27.0, 9.0, 3.0, 1.0,                        64.0, 16.0, 4.0, 1.0 };    gsl_matrix_view m  = gsl_matrix_view_array (data, 4, 4);    gsl_vector_complex *eval = gsl_vector_complex_alloc (4);    gsl_matrix_complex *evec = gsl_matrix_complex_alloc (4, 4);    gsl_eigen_nonsymmv_workspace * w = gsl_eigen_nonsymmv_alloc (4);    gsl_eigen_nonsymmv (&m.matrix, eval, evec, w);    gsl_eigen_nonsymmv_free (w);    gsl_eigen_nonsymmv_sort (eval, evec, GSL_EIGEN_SORT_ABS_DESC);    int i, j;    for (i = 0; i < 4; i++)    {        gsl_complex eval_i = gsl_vector_complex_get (eval, i);        gsl_vector_complex_view evec_i = gsl_matrix_complex_column (evec, i);        printf ("eigenvalue = %g + %gi\n", GSL_REAL(eval_i), GSL_IMAG(eval_i));        printf ("eigenvector = \n");        for (j = 0; j < 4; ++j)        {            gsl_complex z = gsl_vector_complex_get(&evec_i.vector, j);            printf("%g + %gi\n", GSL_REAL(z), GSL_IMAG(z));        }    }    gsl_vector_complex_free(eval);    gsl_matrix_complex_free(evec);}

输出结果:

eigenvalue = -6.41391 + 0ieigenvector =0.0998822 + 0i0.111251 + 0i-0.292501 + 0i-0.944505 + 0ieigenvalue = 5.54555 + 3.08545ieigenvector =0.0430757 + 0.00968662i-0.0709124 + 0.138917i0.516595 + -0.0160059i0.839574 + 0.0413888ieigenvalue = 5.54555 + -3.08545ieigenvector =0.0430757 + -0.00968662i-0.0709124 + -0.138917i0.516595 + 0.0160059i0.839574 + -0.0413888ieigenvalue = 2.3228 + 0ieigenvector =-0.144933 + 0i0.356601 + 0i0.919369 + 0i0.0811836 + 0i

gsl_fft 模块

项目文件:

#-------------------------------------------------## Project created by QtCreator 2016-08-26T20:38:46##-------------------------------------------------QT       -= core guiTARGET = gsl_fftTEMPLATE = libCONFIG += staticlibINCLUDEPATH += ./include/SOURCES += \    source/fft/dft.c \    source/fft/factorize.c \    source/fft/fft.c \    source/fft/signals.cunix {    target.path = /usr/lib    INSTALLS += target}DISTFILES +=HEADERS += \    source/fft/bitreverse.h \    source/fft/c_pass.h \    source/fft/compare.h \    source/fft/complex_internal.h \    source/fft/factorize.h \    source/fft/hc_pass.h \    source/fft/real_pass.h \    source/fft/signals.h

测试代码为:

#include <stdio.h>#include <math.h>#include <gsl/gsl_errno.h>#include <gsl/gsl_fft_real.h>#include <gsl/gsl_fft_halfcomplex.h>void fft_test (void){    int i, n = 100;    double data[100];    gsl_fft_real_wavetable * real;    gsl_fft_halfcomplex_wavetable * hc;    gsl_fft_real_workspace * work;    for (i = 0; i < n; i++)    {        data[i] = 0.0;    }    for (i = n / 3; i < 2 * n / 3; i++)    {        data[i] = 1.0;    }    for (i = 0; i < n; i++)    {        printf ("%d: %e\n", i, data[i]);    }    printf ("\n");    work = gsl_fft_real_workspace_alloc (n);    real = gsl_fft_real_wavetable_alloc (n);    gsl_fft_real_transform (data, 1, n,    real, work);    gsl_fft_real_wavetable_free (real);    for (i = 11; i < n; i++)    {    data[i] = 0;    }    hc = gsl_fft_halfcomplex_wavetable_alloc (n);    gsl_fft_halfcomplex_inverse (data, 1, n, hc, work);    gsl_fft_halfcomplex_wavetable_free (hc);    for (i = 0; i < n; i++)    {        printf ("%d: %e\n", i, data[i]);    }    gsl_fft_real_workspace_free (work);}

输出结果为:

0: 0.000000e+0001: 0.000000e+0002: 0.000000e+0003: 0.000000e+0004: 0.000000e+0005: 0.000000e+0006: 0.000000e+0007: 0.000000e+0008: 0.000000e+0009: 0.000000e+00010: 0.000000e+00011: 0.000000e+00012: 0.000000e+00013: 0.000000e+00014: 0.000000e+00015: 0.000000e+00016: 0.000000e+00017: 0.000000e+00018: 0.000000e+00019: 0.000000e+00020: 0.000000e+00021: 0.000000e+00022: 0.000000e+00023: 0.000000e+00024: 0.000000e+00025: 0.000000e+00026: 0.000000e+00027: 0.000000e+00028: 0.000000e+00029: 0.000000e+00030: 0.000000e+00031: 0.000000e+00032: 0.000000e+00033: 1.000000e+00034: 1.000000e+00035: 1.000000e+00036: 1.000000e+00037: 1.000000e+00038: 1.000000e+00039: 1.000000e+00040: 1.000000e+00041: 1.000000e+00042: 1.000000e+00043: 1.000000e+00044: 1.000000e+00045: 1.000000e+00046: 1.000000e+00047: 1.000000e+00048: 1.000000e+00049: 1.000000e+00050: 1.000000e+00051: 1.000000e+00052: 1.000000e+00053: 1.000000e+00054: 1.000000e+00055: 1.000000e+00056: 1.000000e+00057: 1.000000e+00058: 1.000000e+00059: 1.000000e+00060: 1.000000e+00061: 1.000000e+00062: 1.000000e+00063: 1.000000e+00064: 1.000000e+00065: 1.000000e+00066: 0.000000e+00067: 0.000000e+00068: 0.000000e+00069: 0.000000e+00070: 0.000000e+00071: 0.000000e+00072: 0.000000e+00073: 0.000000e+00074: 0.000000e+00075: 0.000000e+00076: 0.000000e+00077: 0.000000e+00078: 0.000000e+00079: 0.000000e+00080: 0.000000e+00081: 0.000000e+00082: 0.000000e+00083: 0.000000e+00084: 0.000000e+00085: 0.000000e+00086: 0.000000e+00087: 0.000000e+00088: 0.000000e+00089: 0.000000e+00090: 0.000000e+00091: 0.000000e+00092: 0.000000e+00093: 0.000000e+00094: 0.000000e+00095: 0.000000e+00096: 0.000000e+00097: 0.000000e+00098: 0.000000e+00099: 0.000000e+0000: 3.122705e-0021: 2.450194e-0022: 1.427646e-0023: 1.899536e-0034: -1.097701e-0025: -2.260263e-0026: -3.134804e-0027: -3.591554e-0028: -3.551489e-0029: -2.998321e-00210: -1.983327e-00211: -6.221841e-00312: 9.161253e-00313: 2.427436e-00214: 3.695824e-00215: 4.519985e-00216: 4.739798e-00217: 4.260194e-00218: 3.069621e-00219: 1.250816e-00220: -1.017626e-00221: -3.469604e-00222: -5.769429e-00223: -7.538051e-00224: -8.385398e-00225: -7.945977e-00226: -5.914429e-00227: -2.077636e-00228: 3.659819e-00229: 1.125953e-00130: 2.054434e-00131: 3.120546e-00132: 4.282146e-00133: 5.488770e-00134: 6.685387e-00135: 7.816653e-00136: 8.831282e-00137: 9.686159e-00138: 1.034981e+00039: 1.080492e+00040: 1.104967e+00041: 1.109770e+00042: 1.097677e+00043: 1.072623e+00044: 1.039334e+00045: 1.002904e+00046: 9.683306e-00147: 9.400659e-00148: 9.216117e-00149: 9.152040e-00150: 9.216117e-00151: 9.400659e-00152: 9.683306e-00153: 1.002904e+00054: 1.039334e+00055: 1.072623e+00056: 1.097677e+00057: 1.109770e+00058: 1.104967e+00059: 1.080492e+00060: 1.034981e+00061: 9.686159e-00162: 8.831282e-00163: 7.816653e-00164: 6.685387e-00165: 5.488770e-00166: 4.282146e-00167: 3.120546e-00168: 2.054434e-00169: 1.125953e-00170: 3.659819e-00271: -2.077636e-00272: -5.914429e-00273: -7.945977e-00274: -8.385398e-00275: -7.538051e-00276: -5.769429e-00277: -3.469604e-00278: -1.017626e-00279: 1.250816e-00280: 3.069621e-00281: 4.260194e-00282: 4.739798e-00283: 4.519985e-00284: 3.695824e-00285: 2.427436e-00286: 9.161253e-00387: -6.221841e-00388: -1.983327e-00289: -2.998321e-00290: -3.551489e-00291: -3.591554e-00292: -3.134804e-00293: -2.260263e-00294: -1.097701e-00295: 1.899536e-00396: 1.427646e-00297: 2.450194e-00298: 3.122705e-00299: 3.357077e-002

gsl_integration 模块

多个文件中的 inline 需改为 __inline。
项目文件:

#-------------------------------------------------## Project created by QtCreator 2016-08-26T20:38:46##-------------------------------------------------QT       -= core guiTARGET = gsl_integrationTEMPLATE = libCONFIG += staticlibINCLUDEPATH += ./include/SOURCES += \    source/integration/cquad.c \    source/integration/glfixed.c \    source/integration/ptsort.c \    source/integration/qag.c \    source/integration/qagp.c \    source/integration/qags.c \    source/integration/qawc.c \    source/integration/qawf.c \    source/integration/qawo.c \    source/integration/qaws.c \    source/integration/qc25c.c \    source/integration/qc25f.c \    source/integration/qc25s.c \    source/integration/qcheb.c \    source/integration/qelg.c \    source/integration/qk.c \    source/integration/qk15.c \    source/integration/qk21.c \    source/integration/qk31.c \    source/integration/qk41.c \    source/integration/qk51.c \    source/integration/qk61.c \    source/integration/qmomo.c \    source/integration/qmomof.c \    source/integration/qng.c \    source/integration/workspace.cunix {    target.path = /usr/lib    INSTALLS += target}DISTFILES +=

测试代码:

#include <stdio.h>#include <math.h>#include <gsl/gsl_integration.h>double f (double x, void * params){    double alpha = *(double *) params;    double f = log(alpha*x) / sqrt(x);    return f;}void integration_test (void){    gsl_integration_workspace * w = gsl_integration_workspace_alloc (1000);    double result, error;    double expected = -4.0;    double alpha = 1.0;    gsl_function F;    F.function = &f;    F.params = &alpha;    gsl_integration_qags (&F, 0, 1, 0, 1e-7, 1000, w, &result, &error);    printf ("result = % .18f\n", result);    printf ("exact result = % .18f\n", expected);    printf ("estimated error = % .18f\n", error);    printf ("actual error = % .18f\n", result - expected);    printf ("intervals = %d\n", w->size);    gsl_integration_workspace_free (w);}

输出结果:

result = -4.000000000000085300exact result = -4.000000000000000000estimated error =  0.000000000000135447actual error = -0.000000000000085265intervals = 8

gsl_rng 模块

源文件中有多处 inline 需改为 __inline。

项目文件:

#-------------------------------------------------## Project created by QtCreator 2016-08-26T20:38:46##-------------------------------------------------QT       -= core guiTARGET = gsl_rngTEMPLATE = libCONFIG += staticlibINCLUDEPATH += ./include/SOURCES += \    source/rng/borosh13.c \    source/rng/cmrg.c \    source/rng/coveyou.c \    source/rng/default.c \    source/rng/file.c \    source/rng/fishman2x.c \    source/rng/fishman18.c \    source/rng/fishman20.c \    source/rng/gfsr4.c \    source/rng/inline.c \    source/rng/knuthran.c \    source/rng/knuthran2.c \    source/rng/knuthran2002.c \    source/rng/lecuyer21.c \    source/rng/minstd.c \    source/rng/mrg.c \    source/rng/mt.c \    source/rng/r250.c \    source/rng/ran0.c \    source/rng/ran1.c \    source/rng/ran2.c \    source/rng/ran3.c \    source/rng/rand.c \    source/rng/rand48.c \    source/rng/random.c \    source/rng/randu.c \    source/rng/ranf.c \    source/rng/ranlux.c \    source/rng/ranlxd.c \    source/rng/ranlxs.c \    source/rng/ranmar.c \    source/rng/rng.c \    source/rng/slatec.c \    source/rng/taus.c \    source/rng/taus113.c \    source/rng/transputer.c \    source/rng/tt.c \    source/rng/types.c \    source/rng/uni.c \    source/rng/uni32.c \    source/rng/vax.c \    source/rng/waterman14.c \    source/rng/zuf.cunix {    target.path = /usr/lib    INSTALLS += target}DISTFILES +=

测试文件:

#include <math.h>#include <stdio.h>#include <gsl/gsl_rng.h>void rng_test (void){    const gsl_rng_type * T;    gsl_rng * r;    int i, n = 10;    gsl_rng_env_setup();    T = gsl_rng_default;    r = gsl_rng_alloc (T);    for (i = 0; i < n; i++)    {        double u = gsl_rng_uniform (r);        printf ("%.5f\n", u);    }    gsl_rng_free (r);}

输出结果:

0.999740.162910.282620.947200.231660.484970.957480.744310.540040.73995

gsl_qrng 模块

项目文件:

#-------------------------------------------------## Project created by QtCreator 2016-08-26T20:38:46##-------------------------------------------------QT       -= core guiTARGET = gsl_qrngTEMPLATE = libCONFIG += staticlibINCLUDEPATH += ./include/SOURCES += \    source/qrng/halton.c \    source/qrng/inline.c \    source/qrng/niederreiter-2.c \    source/qrng/qrng.c \    source/qrng/reversehalton.c \    source/qrng/sobol.cunix {    target.path = /usr/lib    INSTALLS += target}DISTFILES +=

测试代码:

#include <stdio.h>#include <gsl/gsl_qrng.h>void qrng_test (void){    int i;    gsl_qrng * q = gsl_qrng_alloc (gsl_qrng_sobol, 2);    for (i = 0; i < 1024; i++)    {        double v[2];        gsl_qrng_get (q, v);        printf ("%.5f %.5f\n", v[0], v[1]);    }    gsl_qrng_free (q);}

输出结果:

0.74121 0.168950.24121 0.668950.17871 0.356450.67871 0.856450.92871 0.106450.42871 0.606450.30371 0.231450.80371 0.731450.55371 0.481450.05371 0.981450.03809 0.215820.53809 0.715820.78809 0.465820.28809 0.965820.41309 0.340820.91309 0.840820.66309 0.090820.16309 0.590820.22559 0.403320.72559 0.903320.97559 0.153320.47559 0.653320.35059 0.028320.85059 0.528320.60059 0.278320.10059 0.778320.06934 0.309570.56934 0.809570.81934 0.059570.31934 0.559570.44434 0.184570.94434 0.684570.69434 0.434570.19434 0.934570.13184 0.122070.63184 0.622070.88184 0.372070.38184 0.872070.25684 0.497070.75684 0.997070.50684 0.247070.00684 0.747070.00488 0.249020.50488 0.749020.75488 0.499020.25488 0.999020.37988 0.374020.87988 0.874020.62988 0.124020.12988 0.624020.19238 0.436520.69238 0.936520.94238 0.186520.44238 0.686520.31738 0.061520.81738 0.561520.56738 0.311520.06738 0.811520.09863 0.280270.59863 0.780270.84863 0.030270.34863 0.530270.47363 0.155270.97363 0.655270.72363 0.405270.22363 0.905270.16113 0.092770.66113 0.592770.91113 0.342770.41113 0.842770.28613 0.467770.78613 0.967770.53613 0.217770.03613 0.717770.05176 0.483400.55176 0.983400.80176 0.233400.30176 0.733400.42676 0.108400.92676 0.608400.67676 0.358400.17676 0.858400.23926 0.170900.73926 0.670900.98926 0.420900.48926 0.920900.36426 0.295900.86426 0.795900.61426 0.045900.11426 0.545900.08301 0.014650.58301 0.514650.83301 0.264650.33301 0.764650.45801 0.389650.95801 0.889650.70801 0.139650.20801 0.639650.14551 0.327150.64551 0.827150.89551 0.077150.39551 0.577150.27051 0.202150.77051 0.702150.52051 0.452150.02051 0.952150.02832 0.350590.52832 0.850590.77832 0.100590.27832 0.600590.40332 0.225590.90332 0.725590.65332 0.475590.15332 0.975590.21582 0.038090.71582 0.538090.96582 0.288090.46582 0.788090.34082 0.413090.84082 0.913090.59082 0.163090.09082 0.663090.12207 0.131840.62207 0.631840.87207 0.381840.37207 0.881840.49707 0.256840.99707 0.756840.74707 0.006840.24707 0.506840.18457 0.444340.68457 0.944340.93457 0.194340.43457 0.694340.30957 0.069340.80957 0.569340.55957 0.319340.05957 0.819340.04395 0.116210.54395 0.616210.79395 0.366210.29395 0.866210.41895 0.491210.91895 0.991210.66895 0.241210.16895 0.741210.23145 0.303710.73145 0.803710.98145 0.053710.48145 0.553710.35645 0.178710.85645 0.678710.60645 0.428710.10645 0.928710.07520 0.397460.57520 0.897460.82520 0.147460.32520 0.647460.45020 0.022460.95020 0.522460.70020 0.272460.20020 0.772460.13770 0.209960.63770 0.709960.88770 0.459960.38770 0.959960.26270 0.334960.76270 0.834960.51270 0.084960.01270 0.584960.00879 0.416990.50879 0.916990.75879 0.166990.25879 0.666990.38379 0.041990.88379 0.541990.63379 0.291990.13379 0.791990.19629 0.229490.69629 0.729490.94629 0.479490.44629 0.979490.32129 0.354490.82129 0.854490.57129 0.104490.07129 0.604490.10254 0.073240.60254 0.573240.85254 0.323240.35254 0.823240.47754 0.448240.97754 0.948240.72754 0.198240.22754 0.698240.16504 0.260740.66504 0.760740.91504 0.010740.41504 0.510740.29004 0.135740.79004 0.635740.54004 0.385740.04004 0.885740.05566 0.182620.55566 0.682620.80566 0.432620.30566 0.932620.43066 0.307620.93066 0.807620.68066 0.057620.18066 0.557620.24316 0.495120.74316 0.995120.99316 0.245120.49316 0.745120.36816 0.120120.86816 0.620120.61816 0.370120.11816 0.870120.08691 0.338870.58691 0.838870.83691 0.088870.33691 0.588870.46191 0.213870.96191 0.713870.71191 0.463870.21191 0.963870.14941 0.026370.64941 0.526370.89941 0.276370.39941 0.776370.27441 0.401370.77441 0.901370.52441 0.151370.02441 0.651370.01660 0.049800.51660 0.549800.76660 0.299800.26660 0.799800.39160 0.424800.89160 0.924800.64160 0.174800.14160 0.674800.20410 0.362300.70410 0.862300.95410 0.112300.45410 0.612300.32910 0.237300.82910 0.737300.57910 0.487300.07910 0.987300.11035 0.456050.61035 0.956050.86035 0.206050.36035 0.706050.48535 0.081050.98535 0.581050.73535 0.331050.23535 0.831050.17285 0.143550.67285 0.643550.92285 0.393550.42285 0.893550.29785 0.268550.79785 0.768550.54785 0.018550.04785 0.518550.03223 0.284180.53223 0.784180.78223 0.034180.28223 0.534180.40723 0.159180.90723 0.659180.65723 0.409180.15723 0.909180.21973 0.096680.71973 0.596680.96973 0.346680.46973 0.846680.34473 0.471680.84473 0.971680.59473 0.221680.09473 0.721680.06348 0.190430.56348 0.690430.81348 0.440430.31348 0.940430.43848 0.315430.93848 0.815430.68848 0.065430.18848 0.565430.12598 0.377930.62598 0.877930.87598 0.127930.37598 0.627930.25098 0.002930.75098 0.502930.50098 0.252930.00098 0.752930.00146 0.37646

画出图像是这样的:
这里写图片描述
与 gsl ref 上的图有蛮大的差异。有待进一步确认。

1 0
原创粉丝点击