OSDN Git Service

(split) Apply minor changes from v3.32 to v3.35 in the upstream.
[linuxjm/LDP_man-pages.git] / release / man3 / catan.3
index 82c2cfa..9774fe2 100644 (file)
@@ -1,4 +1,5 @@
 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
+.\" and Copyright (C) 2011 Michael Kerrisk <mtk.manpages@gamil.com>
 .\" Distributed under GPL
 .\"
 .\" Japanese Version Copyright (c) 2003  Akihiro MOTOKI
@@ -12,7 +13,7 @@
 .\"WORD:       real part       ¼ÂÉô
 .\"WORD:       imaginary part  µõÉô
 .\"
-.TH CATAN 3 2008-08-06 "" "Linux Programmer's Manual"
+.TH CATAN 3 2011-09-15 "" "Linux Programmer's Manual"
 .SH Ì¾Á°
 catan, catanf, catanl \- Ê£ÁÇ¿ô¤ÎµÕÀµÀÜ (arc tangent)
 .SH ½ñ¼°
@@ -37,13 +38,45 @@ catan, catanf, catanl \- ʣ
 ¼¡¤Î´Ø·¸¤¬À®Î©¤¹¤ë:
 .nf
 
-    catan(z) = 1 / 2i clog((1 + iz) / (1 \- iz))
+    catan(z) = (clog(1 + i * z) \- clog(1 \- i * z)) / (2 * i)
 .fi
 .SH ¥Ð¡¼¥¸¥ç¥ó
 ¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 ¤Ç½é¤á¤ÆÅо줷¤¿¡£
 .SH ½àµò
 C99.
+.SH Îã
+.nf
+/* Link with "\-lm" */
+
+#include <complex.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+
+int
+main(int argc, char *argv[])
+{
+    double complex z, c, f;
+    double complex i = I;
+
+    if (argc != 3) {
+        fprintf(stderr, "Usage: %s <real> <imag>\\n", argv[0]);
+        exit(EXIT_FAILURE);
+    }
+
+    z = atof(argv[1]) + atof(argv[2]) * I;
+
+    c = catan(z);
+    printf("catan() = %6.3f %6.3f*i\\n", creal(c), cimag(c));
+
+    f = (clog(1 + i * z) \- clog(1 \- i * z)) / (2 * i);
+    printf("formula = %6.3f %6.3f*i\\n", creal(f2), cimag(f2));
+
+    exit(EXIT_SUCCESS);
+}
+.fi
 .SH ´ØÏ¢¹àÌÜ
 .BR ccos (3),
 .BR clog (3),
+.BR ctan (3),
 .BR complex (7)