// Peter Luschny's Condor function // http://www.luschny.de/math/asy/ElCondorYElGamma.html import palette; import graph3; size(300,300,IgnoreAspect); currentprojection=orthographic(0,-1,0,center=true); currentlight=White; real K=7; triple condor(pair t) { real y=t.y; real x=t.x*y; real e=gamma(y+1); real ymx=y-x; real ypx=y+x; real a=gamma((ymx+1)/2); real b=gamma((ymx+2)/2); real c=gamma((ypx+1)/2); real d=gamma((ypx+2)/2); real A=cos(pi*ymx); real B=cos(pi*ypx); return (x,y,log(e)+log(a)*((A-1)/2)+log(b)*((-A-1)/2)+log(c)*((B-1)/2)+ log(d)*((-B-1)/2)); } surface s=surface(condor,(-1,0),(1,K),16,Spline); s.colors(palette(s.map(zpart),Rainbow())); draw(s,render(compression=Low,merge=true));