Show
Ignore:
Timestamp:
04/17/12 16:15:37 (2 years ago)
Author:
Raymond Toy <rtoy@…>
Children:
de65a54b545af76b6df16f3de36e54763ce97235
Parents:
581a0a08f04a985424c09b6a7b3661d2eb58c3e9
git-committer:
Raymond Toy <rtoy@…> (04/17/12 16:15:37)
Message:

Add function to compute J(1/2,z) and use it in the tests.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • rt-tests.lisp

    r5566bc rfb7212  
    16181618  nil) 
    16191619 
     1620(defun bessel-j-1/2 (z) 
     1621  ;; bessel_j(1/2,z) = sin(x)/sqrt(x)*sqrt(2/pi) 
     1622  (* (/ (sin z) (sqrt z)) 
     1623     (sqrt (/ 2 (float-pi z))))) 
     1624 
    16201625;; Bessel J for half integer order and real args 
    16211626(rt:deftest bessel-j-1/2.d.1 
     
    16261631          for x = (+ 1 (random (/ pi 2))) 
    16271632          for b = (bessel-j 0.5d0 x) 
    1628           for true = (* (/ (sin x) (sqrt x)) (sqrt (/ 2 pi))) 
     1633          for true = (bessel-j-1/2 x) 
    16291634          for result = (check-accuracy 48.42 b true) 
    16301635          when result 
     
    16351640    (let* ((x 2.3831631289164497d0) 
    16361641           (b (bessel-j 0.5d0 x)) 
    1637            (true (* (/ (sin x) (sqrt x)) (sqrt (/ 2 pi))))) 
     1642           (true (bessel-j-1/2 x))) 
    16381643      (check-accuracy 48.42 b true)) 
    16391644  nil) 
     
    16461651          for x = (+ 1 (random (/ (float-pi #q1) 2))) 
    16471652          for b = (bessel-j #q0.5 x) 
    1648           for true = (* (/ (sin x) (sqrt x)) (sqrt (/ 2 (float-pi #q1)))) 
     1653          for true = (bessel-j-1/2 x) 
    16491654          for result = (check-accuracy 169.45 b true) 
    16501655          when result 
     
    16551660    (let* ((x #q1.1288834862545916200627583005758663687705443417892789067029865493882q0) 
    16561661           (b (bessel-j #q0.5 x)) 
    1657            (true (* (/ (sin x) (sqrt x)) (sqrt (/ 2 (float-pi #q1)))))) 
     1662           (true (bessel-j-1/2 x))) 
    16581663      (check-accuracy 182.92 b true)) 
    16591664  nil) 
     
    16621667    (let* ((x #q1.1288834862545916200627583005758663687705443417892789067029865493882q0) 
    16631668           (b (bessel-j #q0.5 x)) 
    1664            (true (* (/ (sin x) (sqrt x)) (sqrt (/ 2 (float-pi #q1)))))) 
     1669           (true (bessel-j-1/2 x))) 
    16651670      (check-accuracy 173.28 b true)) 
    16661671  nil) 
     
    16691674    (let* ((x #q1.0360263937639582798798376485114581552570020473846457752365459851056q0) 
    16701675           (b (bessel-j #q0.5 x)) 
    1671            (true (* (/ (sin x) (sqrt x)) (sqrt (/ 2 (float-pi #q1)))))) 
     1676           (true (bessel-j-1/2 x))) 
    16721677      (check-accuracy 169.45 b true)) 
    16731678  nil) 
     
    17091714                           (random (/ pi 2))) 
    17101715          for b = (bessel-j 0.5d0 x) 
    1711           for true = (* (/ (sin x) (sqrt x)) (sqrt (/ 2 pi))) 
     1716          for true = (bessel-j-1/2 x) 
    17121717          for result = (check-accuracy 49.8 b true) 
    17131718          when result 
     
    17201725                           (random (/ (float-pi #q1) 2))) 
    17211726          for b = (bessel-j #q0.5 x) 
    1722           for true = (* (/ (sin x) (sqrt x)) (sqrt (/ 2 (float-pi #q1)))) 
     1727          for true = (bessel-j-1/2 x) 
    17231728          for result = (check-accuracy 212 b true) 
    17241729          when result