Dudom. Implementace besselových fcí v chodu.
Former-commit-id: 63827799543f410dfb1a83cab7ca10287d76f7c2
This commit is contained in:
parent
fb9bbff4b8
commit
e06cdd3171
|
@ -1,8 +1,11 @@
|
|||
#include <assert.h>
|
||||
#include "qpms_specfunc.h"
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <kahansum.h>
|
||||
#include <gsl/gsl_sf_bessel.h>
|
||||
|
||||
// There is a big issue with gsl's precision of spherical bessel function; these have to be implemented differently
|
||||
qpms_errno_t qpms_sph_bessel_fill(qpms_bessel_t typ, qpms_l_t lmax, double x, complex double *result_array) {
|
||||
int retval;
|
||||
double tmparr[lmax+1];
|
||||
|
@ -36,3 +39,16 @@ qpms_errno_t qpms_sph_bessel_fill(qpms_bessel_t typ, qpms_l_t lmax, double x, co
|
|||
assert(0);
|
||||
}
|
||||
|
||||
static inline ptrdiff_t akn_index(qpms_l_t n, qpms_l_t k) {
|
||||
assert(k <= n);
|
||||
return ((ptrdiff_t) n + 1) * n / 2 + k;
|
||||
}
|
||||
static inline ptrdiff_t bkn_index(qpms_l_t n, qpms_l_t k) {
|
||||
assert(k <= n+1);
|
||||
return ((ptrdiff_t) n + 2) * (n + 1) / 2 - 1 + k;
|
||||
}
|
||||
|
||||
|
||||
qpms_bessel_calculator_t *qpms_bessel_calculator_init(...){
|
||||
TODO dudom;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,20 @@
|
|||
qpms_errno_t qpms_sph_bessel_fill(qpms_bessel_t typ, qpms_l_t lmax, double x, complex double *result_array);
|
||||
|
||||
|
||||
|
||||
typedef struct qpms_bessel_calculator_t {
|
||||
qpms_l_t lMax;
|
||||
double *akn; // coefficients as in DLMF 10.49.1
|
||||
complex double *bkn; // coefficients of the derivatives
|
||||
};
|
||||
|
||||
qpms_bessel_calculator_t *qpms_bessel_calculator_init(qpms_l_t lMax);
|
||||
void qpms_bessel_calculator_free(qpms_bessel_calculator_t *c);
|
||||
|
||||
qpms_errno_t qpms_sph_bessel_calc_fill(qpms_bessel_calculator_t *c, qpms_bessel_t typ, qpms_l_t lmax,
|
||||
double x, complex double *result_array);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* Legendre functions and their "angular derivatives" *
|
||||
******************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue