Isoraqathedh

infinite-range=

Feb 23rd, 2014
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.88 KB | None | 0 0
  1. (defmethod infinite-range= ((range-1 cons) (range-2 infinite-range))
  2.   (with-slots (x-increment y-increment) range-2
  3.     ; for cell (a, b) in range (pn, qn)
  4.     ; (a, b) is in (pn, qn)
  5.     ; if any of these are true:
  6.     ;   a = b = p = q = 0
  7.     ;   a = p = 0 and b mod q = 0 and b/q > 0
  8.     ;   b = q = 0 and a mod p = 0 and a/p > 0
  9.     ;   None of a, b, p or q = 0 and a mod p = 0 and b mod q = 0 and a/p = b/q and a/p > 0 and b/q > 0
  10.     (let ((p x-increment)
  11.       (q y-increment)
  12.       (a (car range-1))
  13.       (b (cdr range-1)))
  14.       (or
  15.        (= a b p q 0)
  16.        (and (= a p 0) (zerop (mod b q)) (plusp (/ b q)))
  17.        (and (= b q 0) (zerop (mod a p)) (plusp (/ a p)))
  18.        (and (not (zerop a))
  19.         (not (zerop b))
  20.         (not (zerop p))
  21.         (not (zerop q))
  22.         (zerop (mod a p))
  23.         (zerop (mod b q))
  24.         (plusp (/ a p))
  25.         (plusp (/ b q))
  26.         (= (/ a p) (/ b q)))))))
Advertisement
Add Comment
Please, Sign In to add comment