File indexing completed on 2025-01-18 10:01:00
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #ifndef __GSL_SF_LEGENDRE_H__
0024 #define __GSL_SF_LEGENDRE_H__
0025
0026 #include <stdlib.h>
0027 #include <gsl/gsl_inline.h>
0028 #include <gsl/gsl_sf_result.h>
0029
0030 #undef __BEGIN_DECLS
0031 #undef __END_DECLS
0032 #ifdef __cplusplus
0033 # define __BEGIN_DECLS extern "C" {
0034 # define __END_DECLS }
0035 #else
0036 # define __BEGIN_DECLS
0037 # define __END_DECLS
0038 #endif
0039
0040 __BEGIN_DECLS
0041
0042
0043
0044
0045
0046
0047 int gsl_sf_legendre_Pl_e(const int l, const double x, gsl_sf_result * result);
0048 double gsl_sf_legendre_Pl(const int l, const double x);
0049
0050
0051
0052
0053
0054
0055 int gsl_sf_legendre_Pl_array(
0056 const int lmax, const double x,
0057 double * result_array
0058 );
0059
0060
0061
0062
0063
0064
0065 int gsl_sf_legendre_Pl_deriv_array(
0066 const int lmax, const double x,
0067 double * result_array,
0068 double * result_deriv_array
0069 );
0070
0071
0072
0073
0074
0075
0076 int gsl_sf_legendre_P1_e(double x, gsl_sf_result * result);
0077 int gsl_sf_legendre_P2_e(double x, gsl_sf_result * result);
0078 int gsl_sf_legendre_P3_e(double x, gsl_sf_result * result);
0079 double gsl_sf_legendre_P1(const double x);
0080 double gsl_sf_legendre_P2(const double x);
0081 double gsl_sf_legendre_P3(const double x);
0082
0083
0084
0085
0086
0087
0088 int gsl_sf_legendre_Q0_e(const double x, gsl_sf_result * result);
0089 double gsl_sf_legendre_Q0(const double x);
0090
0091
0092
0093
0094
0095
0096 int gsl_sf_legendre_Q1_e(const double x, gsl_sf_result * result);
0097 double gsl_sf_legendre_Q1(const double x);
0098
0099
0100
0101
0102
0103
0104 int gsl_sf_legendre_Ql_e(const int l, const double x, gsl_sf_result * result);
0105 double gsl_sf_legendre_Ql(const int l, const double x);
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125 int gsl_sf_legendre_Plm_e(const int l, const int m, const double x, gsl_sf_result * result);
0126 double gsl_sf_legendre_Plm(const int l, const int m, const double x);
0127
0128
0129
0130
0131
0132
0133
0134 int gsl_sf_legendre_Plm_array(
0135 const int lmax, const int m, const double x,
0136 double * result_array
0137 );
0138
0139
0140
0141
0142
0143
0144
0145 int gsl_sf_legendre_Plm_deriv_array(
0146 const int lmax, const int m, const double x,
0147 double * result_array,
0148 double * result_deriv_array
0149 );
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164 int gsl_sf_legendre_sphPlm_e(const int l, int m, const double x, gsl_sf_result * result);
0165 double gsl_sf_legendre_sphPlm(const int l, const int m, const double x);
0166
0167
0168
0169
0170
0171
0172
0173
0174 int gsl_sf_legendre_sphPlm_array(
0175 const int lmax, int m, const double x,
0176 double * result_array
0177 );
0178
0179
0180
0181
0182
0183
0184
0185
0186 int gsl_sf_legendre_sphPlm_deriv_array(
0187 const int lmax, const int m, const double x,
0188 double * result_array,
0189 double * result_deriv_array
0190 );
0191
0192
0193
0194
0195
0196
0197 int gsl_sf_legendre_array_size(const int lmax, const int m);
0198
0199
0200
0201
0202
0203
0204
0205 int gsl_sf_conicalP_half_e(const double lambda, const double x, gsl_sf_result * result);
0206 double gsl_sf_conicalP_half(const double lambda, const double x);
0207
0208
0209
0210
0211
0212
0213
0214
0215 int gsl_sf_conicalP_mhalf_e(const double lambda, const double x, gsl_sf_result * result);
0216 double gsl_sf_conicalP_mhalf(const double lambda, const double x);
0217
0218
0219
0220
0221
0222
0223
0224
0225 int gsl_sf_conicalP_0_e(const double lambda, const double x, gsl_sf_result * result);
0226 double gsl_sf_conicalP_0(const double lambda, const double x);
0227
0228
0229
0230
0231
0232
0233
0234
0235 int gsl_sf_conicalP_1_e(const double lambda, const double x, gsl_sf_result * result);
0236 double gsl_sf_conicalP_1(const double lambda, const double x);
0237
0238
0239
0240
0241
0242
0243
0244
0245 int gsl_sf_conicalP_sph_reg_e(const int l, const double lambda, const double x, gsl_sf_result * result);
0246 double gsl_sf_conicalP_sph_reg(const int l, const double lambda, const double x);
0247
0248
0249
0250
0251
0252
0253
0254
0255 int gsl_sf_conicalP_cyl_reg_e(const int m, const double lambda, const double x, gsl_sf_result * result);
0256 double gsl_sf_conicalP_cyl_reg(const int m, const double lambda, const double x);
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276
0277 int gsl_sf_legendre_H3d_0_e(const double lambda, const double eta, gsl_sf_result * result);
0278 double gsl_sf_legendre_H3d_0(const double lambda, const double eta);
0279
0280
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294 int gsl_sf_legendre_H3d_1_e(const double lambda, const double eta, gsl_sf_result * result);
0295 double gsl_sf_legendre_H3d_1(const double lambda, const double eta);
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307 int gsl_sf_legendre_H3d_e(const int l, const double lambda, const double eta, gsl_sf_result * result);
0308 double gsl_sf_legendre_H3d(const int l, const double lambda, const double eta);
0309
0310
0311
0312
0313 int gsl_sf_legendre_H3d_array(const int lmax, const double lambda, const double eta, double * result_array);
0314
0315
0316
0317 typedef enum
0318 {
0319 GSL_SF_LEGENDRE_SCHMIDT,
0320 GSL_SF_LEGENDRE_SPHARM,
0321 GSL_SF_LEGENDRE_FULL,
0322 GSL_SF_LEGENDRE_NONE
0323 } gsl_sf_legendre_t;
0324
0325 int gsl_sf_legendre_array(const gsl_sf_legendre_t norm,
0326 const size_t lmax, const double x,
0327 double result_array[]);
0328 int gsl_sf_legendre_array_e(const gsl_sf_legendre_t norm,
0329 const size_t lmax, const double x,
0330 const double csphase,
0331 double result_array[]);
0332 int gsl_sf_legendre_deriv_array(const gsl_sf_legendre_t norm,
0333 const size_t lmax, const double x,
0334 double result_array[],
0335 double result_deriv_array[]);
0336 int gsl_sf_legendre_deriv_array_e(const gsl_sf_legendre_t norm,
0337 const size_t lmax, const double x,
0338 const double csphase,
0339 double result_array[],
0340 double result_deriv_array[]);
0341 int gsl_sf_legendre_deriv_alt_array(const gsl_sf_legendre_t norm,
0342 const size_t lmax, const double x,
0343 double result_array[],
0344 double result_deriv_array[]);
0345 int gsl_sf_legendre_deriv_alt_array_e(const gsl_sf_legendre_t norm,
0346 const size_t lmax, const double x,
0347 const double csphase,
0348 double result_array[],
0349 double result_deriv_array[]);
0350 int gsl_sf_legendre_deriv2_array(const gsl_sf_legendre_t norm,
0351 const size_t lmax, const double x,
0352 double result_array[],
0353 double result_deriv_array[],
0354 double result_deriv2_array[]);
0355 int gsl_sf_legendre_deriv2_array_e(const gsl_sf_legendre_t norm,
0356 const size_t lmax, const double x,
0357 const double csphase,
0358 double result_array[],
0359 double result_deriv_array[],
0360 double result_deriv2_array[]);
0361 int gsl_sf_legendre_deriv2_alt_array(const gsl_sf_legendre_t norm,
0362 const size_t lmax, const double x,
0363 double result_array[],
0364 double result_deriv_array[],
0365 double result_deriv2_array[]);
0366 int gsl_sf_legendre_deriv2_alt_array_e(const gsl_sf_legendre_t norm,
0367 const size_t lmax, const double x,
0368 const double csphase,
0369 double result_array[],
0370 double result_deriv_array[],
0371 double result_deriv2_array[]);
0372 size_t gsl_sf_legendre_array_n(const size_t lmax);
0373 size_t gsl_sf_legendre_nlm(const size_t lmax);
0374
0375 INLINE_DECL size_t gsl_sf_legendre_array_index(const size_t l, const size_t m);
0376
0377 #ifdef HAVE_INLINE
0378
0379
0380
0381
0382
0383
0384 INLINE_FUN
0385 size_t
0386 gsl_sf_legendre_array_index(const size_t l, const size_t m)
0387 {
0388 return (((l * (l + 1)) >> 1) + m);
0389 }
0390
0391 #endif
0392
0393 __END_DECLS
0394
0395 #endif