Changeset fe8cff


Ignore:
Timestamp:
03/23/12 05:58:43 (3 years ago)
Author:
Raymond Toy <toy.raymond@…>
Branches:
master
Children:
4c1ed0, b1d9be
Parents:
e10e40
Message:

Clean up implemenation of s-exp-integral-e a bit.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • qd-gamma.lisp

    re10e40 rfe8cff  
    498498             (= v (ftruncate v)))
    499499        ;; v is an integer
    500         (let ((n (truncate v)))
    501           (- (* (/ (expt -z (- v 1))
     500        (let* ((n (truncate v))
     501               (n-1 (1- n)))
     502          (- (* (/ (expt -z n-1)
    502503                   (gamma v))
    503504                (- (psi v) (log z)))
    504505             (loop for k from 0
    505                        for term = 1 then (* term (/ -z k))
    506                    for sum = (/ (- 1 v)) then (+ sum (let ((denom (+ k 1 (- n))))
     506                   for term = 1 then (* term (/ -z k))
     507                   for sum = (/ (- 1 v)) then (+ sum (let ((denom (- k n-1)))
    507508                                                       (if (zerop denom)
    508509                                                           0
    509                                                            (/ term (+ k 1 -v)))))
    510                        when (< (abs term) (* (abs sum) eps))
    511                         return sum)))
     510                                                           (/ term denom))))
     511                   when (< (abs term) (* (abs sum) eps))
     512                    return sum)))
    512513        (loop for k from 0
    513514              for term = 1 then (* term (/ -z k))
Note: See TracChangeset for help on using the changeset viewer.