2 * Copyright (c) 2011 William Pitcock <nenolod@dereferenced.org>
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
9 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
10 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
11 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
12 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
13 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
14 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
16 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
17 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
18 * POSSIBILITY OF SUCH DAMAGE.
25 __complex__
double cexp(__complex__
double z
)
27 __complex__
double ret
;
28 double r_exponent
= exp(__real__ z
);
30 __real__ ret
= r_exponent
* cos(__imag__ z
);
31 __imag__ ret
= r_exponent
* sin(__imag__ z
);
37 libm_hidden_proto(cexpf
)
38 __complex__
float cexpf(__complex__
float z
)
40 __complex__
float ret
;
41 double r_exponent
= exp(__real__ z
);
43 __real__ ret
= r_exponent
* cosf(__imag__ z
);
44 __imag__ ret
= r_exponent
* sinf(__imag__ z
);
48 libm_hidden_def(cexpf
)
50 #if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH
51 libm_hidden_proto(cexpl
)
52 __complex__
long double cexpl(__complex__
long double z
)
54 __complex__
long double ret
;
55 long double r_exponent
= expl(__real__ z
);
57 __real__ ret
= r_exponent
* cosl(__imag__ z
);
58 __imag__ ret
= r_exponent
* sinl(__imag__ z
);
62 libm_hidden_def(cexpl
)