xref: /openbsd-src/lib/libm/src/s_cprojl.c (revision de3697aa9479c3be5ff81d594e19ca819a9fb9ec)
1*de3697aaSmartynas /*	$OpenBSD: s_cprojl.c,v 1.1 2011/07/08 19:25:31 martynas Exp $	*/
2*de3697aaSmartynas 
3*de3697aaSmartynas /*
4*de3697aaSmartynas  * Copyright (c) 2011 Martynas Venckus <martynas@openbsd.org>
5*de3697aaSmartynas  *
6*de3697aaSmartynas  * Permission to use, copy, modify, and distribute this software for any
7*de3697aaSmartynas  * purpose with or without fee is hereby granted, provided that the above
8*de3697aaSmartynas  * copyright notice and this permission notice appear in all copies.
9*de3697aaSmartynas  *
10*de3697aaSmartynas  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11*de3697aaSmartynas  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12*de3697aaSmartynas  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13*de3697aaSmartynas  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14*de3697aaSmartynas  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15*de3697aaSmartynas  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16*de3697aaSmartynas  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17*de3697aaSmartynas  */
18*de3697aaSmartynas 
19*de3697aaSmartynas #include <complex.h>
20*de3697aaSmartynas #include <math.h>
21*de3697aaSmartynas 
22*de3697aaSmartynas long double complex
cprojl(long double complex z)23*de3697aaSmartynas cprojl(long double complex z)
24*de3697aaSmartynas {
25*de3697aaSmartynas 	long double complex res;
26*de3697aaSmartynas 
27*de3697aaSmartynas 	if (isinf(__real__ z) || isinf(__imag__ z)) {
28*de3697aaSmartynas 		__real__ res = INFINITY;
29*de3697aaSmartynas 		__imag__ res = copysignl(0.0, __imag__ z);
30*de3697aaSmartynas 	} else {
31*de3697aaSmartynas 		res = z;
32*de3697aaSmartynas 	}
33*de3697aaSmartynas 
34*de3697aaSmartynas 	return res;
35*de3697aaSmartynas }
36