Subject: CVS commit: src
To: None <source-changes@NetBSD.org>
From: Matthias Drochner <drochner@netbsd.org>
List: source-changes
Date: 08/20/2007 16:01:40
Module Name:	src
Committed By:	drochner
Date:		Mon Aug 20 16:01:40 UTC 2007

Modified Files:
	src/distrib/sets/lists/base: shl.mi
	src/distrib/sets/lists/comp: mi
	src/include: Makefile
	src/lib/libm: Makefile shlib_version
	src/lib/libm/src: e_j0.c e_j0f.c e_j1.c e_j1f.c e_jn.c namespace.h
	    s_cos.c s_cosf.c s_sin.c s_sinf.c w_asin.c w_asinf.c w_cosh.c
	    w_coshf.c w_exp.c w_expf.c w_log.c w_logf.c w_sinh.c w_sinhf.c
Added Files:
	src/include: complex.h
	src/lib/libm/complex: cabs.c cabsf.c cacos.c cacosf.c cacosh.c
	    cacoshf.c carg.c cargf.c casin.c casinf.c casinh.c casinhf.c
	    catan.c catanf.c catanh.c catanhf.c ccos.c ccosf.c ccosh.c ccoshf.c
	    cephes_subr.c cephes_subr.h cephes_subrf.c cephes_subrf.h cexp.c
	    cexpf.c cimag.c cimagf.c clog.c clogf.c conj.c conjf.c cpow.c
	    cpowf.c creal.c crealf.c csin.c csinf.c csinh.c csinhf.c csqrt.c
	    csqrtf.c ctan.c ctanf.c ctanh.c ctanhf.c

Log Message:
Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.


To generate a diff of this commit:
cvs rdiff -r1.399 -r1.400 src/distrib/sets/lists/base/shl.mi
cvs rdiff -r1.1063 -r1.1064 src/distrib/sets/lists/comp/mi
cvs rdiff -r1.128 -r1.129 src/include/Makefile
cvs rdiff -r0 -r1.1 src/include/complex.h
cvs rdiff -r1.78 -r1.79 src/lib/libm/Makefile
cvs rdiff -r1.8 -r1.9 src/lib/libm/shlib_version
cvs rdiff -r0 -r1.1 src/lib/libm/complex/cabs.c src/lib/libm/complex/cabsf.c \
    src/lib/libm/complex/cacos.c src/lib/libm/complex/cacosf.c \
    src/lib/libm/complex/cacosh.c src/lib/libm/complex/cacoshf.c \
    src/lib/libm/complex/carg.c src/lib/libm/complex/cargf.c \
    src/lib/libm/complex/casin.c src/lib/libm/complex/casinf.c \
    src/lib/libm/complex/casinh.c src/lib/libm/complex/casinhf.c \
    src/lib/libm/complex/catan.c src/lib/libm/complex/catanf.c \
    src/lib/libm/complex/catanh.c src/lib/libm/complex/catanhf.c \
    src/lib/libm/complex/ccos.c src/lib/libm/complex/ccosf.c \
    src/lib/libm/complex/ccosh.c src/lib/libm/complex/ccoshf.c \
    src/lib/libm/complex/cephes_subr.c src/lib/libm/complex/cephes_subr.h \
    src/lib/libm/complex/cephes_subrf.c src/lib/libm/complex/cephes_subrf.h \
    src/lib/libm/complex/cexp.c src/lib/libm/complex/cexpf.c \
    src/lib/libm/complex/cimag.c src/lib/libm/complex/cimagf.c \
    src/lib/libm/complex/clog.c src/lib/libm/complex/clogf.c \
    src/lib/libm/complex/conj.c src/lib/libm/complex/conjf.c \
    src/lib/libm/complex/cpow.c src/lib/libm/complex/cpowf.c \
    src/lib/libm/complex/creal.c src/lib/libm/complex/crealf.c \
    src/lib/libm/complex/csin.c src/lib/libm/complex/csinf.c \
    src/lib/libm/complex/csinh.c src/lib/libm/complex/csinhf.c \
    src/lib/libm/complex/csqrt.c src/lib/libm/complex/csqrtf.c \
    src/lib/libm/complex/ctan.c src/lib/libm/complex/ctanf.c \
    src/lib/libm/complex/ctanh.c src/lib/libm/complex/ctanhf.c
cvs rdiff -r1.11 -r1.12 src/lib/libm/src/e_j0.c src/lib/libm/src/e_j1.c
cvs rdiff -r1.9 -r1.10 src/lib/libm/src/e_j0f.c src/lib/libm/src/w_asin.c \
    src/lib/libm/src/w_cosh.c src/lib/libm/src/w_exp.c \
    src/lib/libm/src/w_log.c src/lib/libm/src/w_sinh.c
cvs rdiff -r1.10 -r1.11 src/lib/libm/src/e_j1f.c src/lib/libm/src/s_cos.c \
    src/lib/libm/src/s_sin.c
cvs rdiff -r1.12 -r1.13 src/lib/libm/src/e_jn.c
cvs rdiff -r1.1 -r1.2 src/lib/libm/src/namespace.h
cvs rdiff -r1.8 -r1.9 src/lib/libm/src/s_cosf.c
cvs rdiff -r1.7 -r1.8 src/lib/libm/src/s_sinf.c
cvs rdiff -r1.6 -r1.7 src/lib/libm/src/w_asinf.c src/lib/libm/src/w_coshf.c \
    src/lib/libm/src/w_expf.c src/lib/libm/src/w_logf.c \
    src/lib/libm/src/w_sinhf.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.