Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 1.37 KB

README.md

File metadata and controls

65 lines (47 loc) · 1.37 KB

logbesselk

Provide function to calculate the modified Bessel function of the second kind and its derivatives.

Author

TAKEKAWA Takashi takekawa@tk2lab.org

Reference

Takashi Takekawa, Fast parallel calculation of modified Bessel function of the second kind and its derivatives, arXiv:2018.11560, 2021.

Require

  • python >= 3.8
  • tensorflow >= 2.5

Installation

pip install logbesselk

Examples

import tensorflow as tf
from logbesselk.integral import log_bessel_k


log_k = log_bessel_k(v=1.0, x=1.0)
log_dkdv = log_bessel_k(v=1.0, x=1.0, 1, 0)
log_dkdx = log_bessel_k(v=1.0, x=1.0, 0, 1)


# build graph at first execution time
log_bessel_k_tensor = tf.function(log_bessel_k)
log_bessel_dkdv_tensor = tf.function(lambda v, x: log_bessel_k(v, x, 1, 0))
log_bessel_dkdx_tensor = tf.function(lambda v, x: log_bessel_k(v, x, 0, 1))

n = 1000
for i in range(10):
    v = 10. ** (2. * tf.random.uniform((n,), dtype=tf.float64) - 1.
    x = 10. ** (3. * tf.random.uniform((n,), dtype=tf.float64) - 1.)

    log_k = log_bessel_k_tensor(v, x)
    log_dkdv = log_bessel_dkdv_tensor(v, x)
    log_dkdx = log_bessel_dkdx_tensor(v, x)

Evaluation

python -m eval.prec
python -m eval.time
python -m eval.scale
python -m eval.fig1
python -m eval.fig2
python -m eval.fig3
python -m eval.fig4
python -m eval.fig5
python -m eval.fig6
python -m eval.fig7