+Pow(x,0) returns x**0 = 1 for all x including x = 0,
+.if n \
+Infinity
+.if t \
+\(if
+(not found on a VAX), and \*(nn (the reserved
+operand on a VAX). Previous implementations of pow may
+have defined x**0 to be undefined in some or all of these
+cases. Here are reasons for returning x**0 = 1 always:
+.IP (1) \w'\0\0\0\0'u
+Any program that already tests whether x is zero (or
+infinite or \*(nn) before computing x**0 cannot care
+whether 0**0 = 1 or not. Any program that depends
+upon 0**0 to be invalid is dubious anyway since that
+expression's meaning and, if invalid, its consequences
+vary from one computer system to another.
+.IP (2) \w'\0\0\0\0'u
+Some Algebra texts (e.g. Sigler's) define x**0 = 1 for
+all x, including x = 0.
+This is compatible with the convention that accepts a[0]
+as the value of polynomial
+.ce
+p(x) = a[0]\(**x**0 + a[1]\(**x**1 + a[2]\(**x**2 +...+ a[n]\(**x**n
+.IP
+at x = 0 rather than reject a[0]\(**0**0 as invalid.
+.IP (3) \w'\0\0\0\0'u
+Analysts will accept 0**0 = 1 despite that x**y can
+approach anything or nothing as x and y approach 0
+independently.
+The reason for setting 0**0 = 1 anyway is this:
+.IP
+If x(z) and y(z) are \fIany\fR functions analytic (expandable
+in power series) in z around z = 0, and if there
+x(0) = y(0) = 0, then x(z)**y(z) \(-> 1 as z \(-> 0.
+.IP (4) \w'\0\0\0\0'u
+If 0**0 = 1, then
+.if n \
+infinity**0 = 1/0**0 = 1 too; and
+.if t \
+\(if**0 = 1/0**0 = 1 too; and
+then \*(nn**0 = 1 too because x**0 = 1 for all finite
+and infinite x, i.e., independently of x.
+.SH SEE ALSO
+math(3M), infnan(3M)
+.SH AUTHOR
+Kwok\-Choi Ng, W. Kahan