mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 17:53:37 +08:00
ce6698ea0a
This defines a new classes of libm objects. The <func>_template.c file which is used in conjunction with the new makefile hooks to derive variants for each type supported by the target machine. The headers math-type-macros-TYPE.h are used to supply macros to a common implementation of a function in a file named FUNC_template.c and glued togethor via a generated file matching existing naming in the build directory. This has the properties of preserving the existing override mechanism and not requiring any arcane build system twiddling. Likewise, it enables machines to override these files without any additional work. I have verified the built objects for ppc64, x86_64, alpha, arm, and m68k do not change in any meaningful way with these changes using the Fedora cross toolchains. I have verified the x86_64 and ppc64 changes still run.
34 lines
1.1 KiB
C
34 lines
1.1 KiB
C
/* Compute argument of complex float type.
|
|
Copyright (C) 1997-2016 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#include <complex.h>
|
|
#include <math.h>
|
|
|
|
FLOAT
|
|
M_DECL_FUNC (__carg) (CFLOAT x)
|
|
{
|
|
return M_SUF (__atan2) (__imag__ x, __real__ x);
|
|
}
|
|
|
|
declare_mgen_alias (__carg, carg)
|
|
|
|
#if M_LIBM_NEED_COMPAT (carg)
|
|
declare_mgen_libm_compat (__carg, carg)
|
|
#endif
|