X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fcmath%2Fcasinh.c;h=f2b3fef83333bb38e274d97b306edc721556cdcf;hb=5b0b42043c70ae677322aba55af6558eb2db6bb8;hp=8c8d9fa5110795648e3b00ec24b7ffe24017979e;hpb=1eb8d023d8b5c286908af676cb405a2ba598d286;p=libm diff --git a/src/cmath/casinh.c b/src/cmath/casinh.c index 8c8d9fa..f2b3fef 100644 --- a/src/cmath/casinh.c +++ b/src/cmath/casinh.c @@ -1,47 +1,9 @@ -/* origin: OpenBSD /usr/src/lib/libm/src/s_casinh.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 sine - * - * - * SYNOPSIS: - * - * double complex casinh(); - * double complex z, w; - * - * w = casinh (z); - * - * - * DESCRIPTION: - * - * casinh z = -i casin iz . - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE -10,+10 30000 1.8e-14 2.6e-15 - * - */ - #include "libm.h" +/* asinh(z) = -i asin(i z) */ + double complex casinh(double complex z) { - // FIXME: -I, reeval - return -1.0 * I * casin(z * I); + z = casin(cpack(-cimag(z), creal(z))); + return cpack(cimag(z), -creal(z)); }