History log of /freebsd-10.0-release/include/complex.h
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 251121 30-May-2013 das

I'm happy to finally commit stephen@'s implementations of cacos,
cacosh, casin, casinh, catan, and catanh. Thanks to stephen@ and bde@
for working on these.

Submitted by: stephen@
Reviewed by: bde


# 250990 25-May-2013 ed

Add C11 macros CMPLX(), CMPLXF() and CMPLXL().

Clang allows us to initialize complex numbers using an array
initializer, casted to a complex type. GCC has a builtin called
__builtin_complex().


# 230278 17-Jan-2012 ed

Only use the static assertion when __generic is available.

Reported by: tijl


# 229594 05-Jan-2012 ed

Remove redundant inclusion of <sys/cdefs.h>.

Mea culpa.


# 229590 05-Jan-2012 ed

Make _Complex_I a proper float _Complex when using GCC 4.2.

It turns out our GCC has quite an interesting bug:

typeof(1.0fi) != float _Complex
typeof((float _Complex)1.0fi) != float _Complex
typeof((float _Complex)1.0i) == float _Complex

In other words: if casting to an equal size, GCC seems to take a
shortcut. By casting down from a double to a float, GCC doesn't take
this shortcut, yielding the proper type.

To prevent foot-shooting, add a _Static_assert() to guarantee that
_Complex_I is always a float _Complex. I'm not going to MFC this part of
the diff.

MFC after: 2 weeks


# 226458 17-Oct-2011 das

Add c{cos,sin,tan}{,h}{,f} functions. This is joint work with
bde and kargl.


# 219379 07-Mar-2011 das

Add missing declarations that I intended to commit with r219359.
Not sure why we have math.h in lib/msun/ and complex.h in include/.


# 181377 07-Aug-2008 das

Implement cproj{,f,l}().


# 181375 07-Aug-2008 das

Annotate creal(), cimag(), and conj() with __pure2.


# 177761 30-Mar-2008 das

Implement csqrtl().


# 177760 30-Mar-2008 das

Hook hypotl() and cabsl() up to the build.


# 174617 15-Dec-2007 das

Implement and document csqrt(3) and csqrtf(3).


# 174561 12-Dec-2007 das

Implement carg(3) and cargf(3).

Rotting in an old src tree since: March 2005


# 133725 14-Aug-2004 stefanf

Stop defining '_Complex' in a C99 environment, it is supposed to be a keyword.


# 133724 14-Aug-2004 stefanf

Use tabulators after '#define'.


# 129864 30-May-2004 stefanf

Add implementations for cimag{,f,l}, creal{,f,l} and conj{,f,l}. They are
needed for cases where GCC's builtin functions cannot be used and for
compilers that don't know about them.

Approved by: das (mentor)


# 129861 30-May-2004 stefanf

Remove the macros for creal{,f} and cimag{,f}. They failed to convert their
arguments to the needed type and so the result type depended on the argument
type. Fixing them isn't really worth the effort because GCC emits the same
assembler code with or without them.

Not minded by: ru
Approved by: das (mentor)


# 93032 23-Mar-2002 imp

Breath deep and take __P out of the system include files.

# This appears to not break X11, but I'm having problems compiling the
# glide part of the server with or without this patch, so I can't tell
# for sure.


# 78172 13-Jun-2001 ru

Added skeleton <complex.h> (aligned with the POSIX.1-200x), mostly
to fix the "-nostdinc WARNS=X" breakage caused by broken prototypes
for cabs() and cabsl() in <math.h>.

Reimplemented cabs() and cabsl() using new complex numbers types and
moved prototypes from <math.h> to <complex.h>.