File indexing completed on 2025-02-21 10:03:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #ifndef __GSL_SF_MATHIEU_H__
0023 #define __GSL_SF_MATHIEU_H__
0024
0025 #include <gsl/gsl_sf_result.h>
0026 #include <gsl/gsl_eigen.h>
0027
0028 #undef __BEGIN_DECLS
0029 #undef __END_DECLS
0030 #ifdef __cplusplus
0031 # define __BEGIN_DECLS extern "C" {
0032 # define __END_DECLS }
0033 #else
0034 # define __BEGIN_DECLS
0035 # define __END_DECLS
0036 #endif
0037
0038 __BEGIN_DECLS
0039
0040 #define GSL_SF_MATHIEU_COEFF 100
0041
0042 typedef struct
0043 {
0044 size_t size;
0045 size_t even_order;
0046 size_t odd_order;
0047 int extra_values;
0048 double qa;
0049 double qb;
0050 double *aa;
0051 double *bb;
0052 double *dd;
0053 double *ee;
0054 double *tt;
0055 double *e2;
0056 double *zz;
0057 gsl_vector *eval;
0058 gsl_matrix *evec;
0059 gsl_eigen_symmv_workspace *wmat;
0060 } gsl_sf_mathieu_workspace;
0061
0062
0063
0064
0065 int gsl_sf_mathieu_a_array(int order_min, int order_max, double qq, gsl_sf_mathieu_workspace *work, double result_array[]);
0066 int gsl_sf_mathieu_b_array(int order_min, int order_max, double qq, gsl_sf_mathieu_workspace *work, double result_array[]);
0067
0068
0069
0070 int gsl_sf_mathieu_a_e(int order, double qq, gsl_sf_result *result);
0071 double gsl_sf_mathieu_a(int order, double qq);
0072 int gsl_sf_mathieu_b_e(int order, double qq, gsl_sf_result *result);
0073 double gsl_sf_mathieu_b(int order, double qq);
0074
0075
0076 int gsl_sf_mathieu_a_coeff(int order, double qq, double aa, double coeff[]);
0077 int gsl_sf_mathieu_b_coeff(int order, double qq, double aa, double coeff[]);
0078
0079
0080 gsl_sf_mathieu_workspace *gsl_sf_mathieu_alloc(const size_t nn,
0081 const double qq);
0082 void gsl_sf_mathieu_free(gsl_sf_mathieu_workspace *workspace);
0083
0084
0085 int gsl_sf_mathieu_ce_e(int order, double qq, double zz, gsl_sf_result *result);
0086 double gsl_sf_mathieu_ce(int order, double qq, double zz);
0087 int gsl_sf_mathieu_se_e(int order, double qq, double zz, gsl_sf_result *result);
0088 double gsl_sf_mathieu_se(int order, double qq, double zz);
0089 int gsl_sf_mathieu_ce_array(int nmin, int nmax, double qq, double zz,
0090 gsl_sf_mathieu_workspace *work,
0091 double result_array[]);
0092 int gsl_sf_mathieu_se_array(int nmin, int nmax, double qq, double zz,
0093 gsl_sf_mathieu_workspace *work,
0094 double result_array[]);
0095
0096
0097 int gsl_sf_mathieu_Mc_e(int kind, int order, double qq, double zz,
0098 gsl_sf_result *result);
0099 double gsl_sf_mathieu_Mc(int kind, int order, double qq, double zz);
0100 int gsl_sf_mathieu_Ms_e(int kind, int order, double qq, double zz,
0101 gsl_sf_result *result);
0102 double gsl_sf_mathieu_Ms(int kind, int order, double qq, double zz);
0103 int gsl_sf_mathieu_Mc_array(int kind, int nmin, int nmax, double qq,
0104 double zz, gsl_sf_mathieu_workspace *work,
0105 double result_array[]);
0106 int gsl_sf_mathieu_Ms_array(int kind, int nmin, int nmax, double qq,
0107 double zz, gsl_sf_mathieu_workspace *work,
0108 double result_array[]);
0109
0110
0111 __END_DECLS
0112
0113 #endif