X-Git-Url: http://nsz.repo.hu/git/?p=libm;a=blobdiff_plain;f=src%2Fcmath%2Fcatanh.c;fp=src%2Fcmath%2Fcatanh.c;h=b162802230b3de67b0c4c4b152bab3f0b3679d99;hp=5545747b04d9ead61402062d0c05ae3cd9ba6415;hb=5718e964d8a5c273a91b4d86d16926f54151c58f;hpb=1305df184d9d04274ce170864c92af8cbeae23e2 diff --git a/src/cmath/catanh.c b/src/cmath/catanh.c index 5545747..b162802 100644 --- a/src/cmath/catanh.c +++ b/src/cmath/catanh.c @@ -1,47 +1,9 @@ -/* origin: OpenBSD /usr/src/lib/libm/src/s_catanh.c */ -/* - * Copyright (c) 2008 Stephen L. Moshier - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ -/* - * Complex inverse hyperbolic tangent - * - * - * SYNOPSIS: - * - * double complex catanh(); - * double complex z, w; - * - * w = catanh (z); - * - * - * DESCRIPTION: - * - * Inverse tanh, equal to -i catan (iz); - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE -10,+10 30000 2.3e-16 6.2e-17 - * - */ - #include "libm.h" +/* atanh = -i atan(i z) */ + double complex catanh(double complex z) { - // FIXME: -i, reeval - return -1.0 * I * catan(z * I); + z = catan(cpack(-cimag(z), creal(z))); + return cpack(cimag(z), -creal(z)); }