summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/examples/gamma3.asy
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/examples/gamma3.asy')
-rw-r--r--Build/source/utils/asymptote/examples/gamma3.asy33
1 files changed, 33 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/examples/gamma3.asy b/Build/source/utils/asymptote/examples/gamma3.asy
new file mode 100644
index 00000000000..6fc56065cb2
--- /dev/null
+++ b/Build/source/utils/asymptote/examples/gamma3.asy
@@ -0,0 +1,33 @@
+import graph3;
+import palette;
+
+size(12cm,IgnoreAspect);
+currentprojection=orthographic(1,-2,1);
+
+real X=4.5;
+real M=abs(gamma((X,0)));
+
+pair Gamma(pair z)
+{
+ return (z.x > 0 || z != floor(z.x)) ? gamma(z) : M;
+}
+
+real f(pair z) {return min(abs(Gamma(z)),M);}
+
+surface s=surface(f,(-2.1,-2),(X,2),70,Spline);
+
+real Arg(triple v)
+{
+ return degrees(Gamma((v.x,v.y)),warn=false);
+}
+
+s.colors(palette(s.map(Arg),Wheel()));
+draw(s,render(compression=Low,merge=true));
+
+real xmin=point((-1,-1,-1)).x;
+real xmax=point((1,1,1)).x;
+draw((xmin,0,0)--(xmax,0,0),dashed);
+
+xaxis3("$\mathop{\rm Re} z$",Bounds,InTicks);
+yaxis3("$\mathop{\rm Im} z$",Bounds,InTicks(beginlabel=false));
+zaxis3("$|\Gamma(z)|$",Bounds,InTicks);