Created
August 10, 2015 21:27
-
-
Save calebsmith/2b7673e39219545d901f to your computer and use it in GitHub Desktop.
Lisp hell
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn perlin4 [x y z w] | |
(let [X (bit-and (int x) 255) | |
Y (bit-and (int y) 255) | |
Z (bit-and (int z) 255) | |
W (bit-and (int w) 255) | |
xx (- x (int x)) | |
yy (- y (int y)) | |
zz (- z (int z)) | |
ww (- w (int w)) | |
u (fade xx) | |
v (fade yy) | |
t (fade zz) | |
s (fade ww) | |
A (+ (p X) Y) | |
AA (+ (p A) Z) | |
AB (+ (p (+ A 1)) Z) | |
B (+ (p (+ X 1)) Y) | |
BA (+ (p B) Z) | |
BB (+ (p (+ B 1)) Z) | |
AAA (+ (p AA) W) | |
AAB (+ (p (+ AA 1)) W) | |
ABA (+ (p AB) W) | |
ABB (+ (p (+ AB 1)) W) | |
BAA (+ (p BA) W) | |
BAB (+ (p (+ BA 1)) W) | |
BBA (+ (p BB) W) | |
BBB (+ (p (+ BB 1)) W)] | |
(linear-erp s | |
(linear-erp t | |
(linear-erp v | |
(linear-erp u (grad4 (p AAA) xx yy zz ww) (grad4 (p BAA) (dec xx) yy zz ww)) | |
(linear-erp u (grad4 (p ABA) xx (dec yy) zz ww) (grad4 (p BBA) (dec xx) (dec yy) zz ww))) | |
(linear-erp v | |
(linear-erp u (grad4 (p AAB) xx yy (dec zz) ww) (grad4 (p BAB) (dec xx) yy (dec zz) ww)) | |
(linear-erp u (grad4 (p ABB) xx (dec yy) (dec zz) ww) (grad4 (p BBB) (dec xx) (dec yy) (dec zz) ww)))) | |
(linear-erp t | |
(linear-erp v | |
(linear-erp u (grad4 (p (inc AAA)) xx yy zz (dec ww)) (grad4 (p (inc BAA)) (dec xx) yy zz (dec ww))) | |
(linear-erp u (grad4 (p (inc ABA)) xx (dec yy) zz (dec ww)) (grad4 (p (inc BBA)) (dec xx) (dec yy) zz (dec ww)))) | |
(linear-erp v | |
(linear-erp u (grad4 (p (inc AAB)) xx yy (dec zz) (dec ww)) (grad4 (p (inc BAB)) (dec xx) yy (dec zz) (dec ww))) | |
(linear-erp u (grad4 (p (inc ABB)) xx (dec yy) (dec zz) (dec ww)) (grad4 (p (inc BBB)) (dec xx) (dec yy) (dec zz) (dec ww)))))))) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment