This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCHv2 0/9] Generate Complex functions from a common template.


The initial patch for generic carg, cabs, creal, cimag and conj has
been reviewed and is tenatively approved pending the remainder of
this series. See below:

https://sourceware.org/ml/libc-alpha/2016-08/msg00444.html

The remaining 8 patches follow the form of copying the double
version of a complex function, and refactoring in the following
patch.

The only noteworthy differences are:

* s_clog10l.c persists in ldbl-opt as versioning the
  __clog10l symbol introduces more hackery than it would
  prevent in the macro headers.
* b_<func>.c files renamed to ?_<func>_template.c
* Remove indents on function-like macro usage.
* Revert any machine specific makefile changes.

Paul E. Murphy (9):
  Support for type-generic libm function implementations libm
  Prepare to convert _Complex cosine functions
  Convert _Complex cosine functions to generated code
  Prepare to convert _Complex sine functions
  Convert _Complex sine functions to generated code
  Prepare to convert _Complex tangent functions
  Convert _Complex tangent functions to generated code
  Prepare to convert remaining _Complex functions
  Convert remaining complex function to generated files

 math/Makefile                                      |  38 +++-
 math/cabs.c                                        |  32 ---
 math/{s_cpow.c => cabs_template.c}                 |  18 +-
 math/cabsf.c                                       |  28 ---
 math/cabsl.c                                       |  28 ---
 math/{carg.c => carg_template.c}                   |  17 +-
 math/cargf.c                                       |  28 ---
 math/cargl.c                                       |  28 ---
 math/{cimag.c => cimag_template.c}                 |  15 +-
 math/cimagf.c                                      |  27 ---
 math/cimagl.c                                      |  27 ---
 math/{conj.c => conj_template.c}                   |  15 +-
 math/conjf.c                                       |  27 ---
 math/conjl.c                                       |  27 ---
 math/{creal.c => creal_template.c}                 |  15 +-
 math/crealf.c                                      |  27 ---
 math/creall.c                                      |  27 ---
 math/k_casinh.c                                    | 210 --------------------
 math/k_casinh_template.c                           | 211 ++++++++++++++++++++
 math/k_casinhf.c                                   | 212 --------------------
 math/k_casinhl.c                                   | 219 ---------------------
 math/s_cacos.c                                     |  58 ------
 math/{s_cacosf.c => s_cacos_template.c}            |  27 +--
 math/{s_cacosh.c => s_cacosh_template.c}           |  50 ++---
 math/s_cacoshf.c                                   |  92 ---------
 math/s_cacoshl.c                                   |  90 ---------
 math/s_cacosl.c                                    |  54 -----
 math/s_casin.c                                     |  66 -------
 math/{s_casinf.c => s_casin_template.c}            |  29 +--
 math/s_casinh.c                                    |  73 -------
 math/{s_casinhf.c => s_casinh_template.c}          |  35 ++--
 math/s_casinhl.c                                   |  69 -------
 math/s_casinl.c                                    |  62 ------
 math/s_catan.c                                     | 143 --------------
 math/s_catan_template.c                            | 145 ++++++++++++++
 math/s_catanf.c                                    | 143 --------------
 math/s_catanh.c                                    | 137 -------------
 math/s_catanh_template.c                           | 140 +++++++++++++
 math/s_catanhf.c                                   | 137 -------------
 math/s_catanhl.c                                   | 141 -------------
 math/s_catanl.c                                    | 147 --------------
 math/s_ccos.c                                      |  40 ----
 math/{s_ccosf.c => s_ccos_template.c}              |  18 +-
 math/s_ccosh.c                                     | 147 --------------
 math/{s_ccoshf.c => s_ccosh_template.c}            |  75 +++----
 math/s_ccoshl.c                                    | 143 --------------
 math/s_ccosl.c                                     |  36 ----
 math/s_cexp.c                                      | 157 ---------------
 math/{s_cexpf.c => s_cexp_template.c}              |  64 +++---
 math/s_cexpl.c                                     | 153 --------------
 math/s_clog.c                                      | 118 -----------
 math/s_clog10.c                                    | 124 ------------
 math/s_clog10_template.c                           | 129 ++++++++++++
 math/s_clog10f.c                                   | 122 ------------
 math/s_clog10l.c                                   | 127 ------------
 math/{s_clogf.c => s_clog_template.c}              |  83 ++++----
 math/s_clogl.c                                     | 121 ------------
 math/{s_cpowf.c => s_cpow_template.c}              |  16 +-
 math/s_cpowl.c                                     |  29 ---
 math/s_cproj.c                                     |  44 -----
 math/{s_cprojf.c => s_cproj_template.c}            |  17 +-
 math/s_cprojl.c                                    |  40 ----
 math/s_csin.c                                      | 171 ----------------
 math/{s_csinf.c => s_csin_template.c}              |  77 ++++----
 math/s_csinh.c                                     | 166 ----------------
 math/{s_csinhf.c => s_csinh_template.c}            |  77 ++++----
 math/s_csinhl.c                                    | 162 ---------------
 math/s_csinl.c                                     | 167 ----------------
 math/s_csqrt.c                                     | 165 ----------------
 math/{s_csqrtf.c => s_csqrt_template.c}            | 103 +++++-----
 math/s_csqrtl.c                                    | 161 ---------------
 math/s_ctan.c                                      | 129 ------------
 math/{s_ctanf.c => s_ctan_template.c}              |  67 ++++---
 math/s_ctanh.c                                     | 129 ------------
 math/{s_ctanhf.c => s_ctanh_template.c}            |  67 ++++---
 math/s_ctanhl.c                                    | 132 -------------
 math/s_ctanl.c                                     | 132 -------------
 sysdeps/alpha/fpu/s_cacosf.c                       |  11 +-
 sysdeps/alpha/fpu/s_cacoshf.c                      |  10 +-
 sysdeps/alpha/fpu/s_casinf.c                       |  12 +-
 sysdeps/alpha/fpu/s_casinhf.c                      |  12 +-
 sysdeps/alpha/fpu/s_catanf.c                       |  12 +-
 sysdeps/alpha/fpu/s_catanhf.c                      |  12 +-
 sysdeps/alpha/fpu/s_ccosf.c                        |  12 +-
 sysdeps/alpha/fpu/s_ccoshf.c                       |  12 +-
 sysdeps/alpha/fpu/s_cexpf.c                        |  12 +-
 sysdeps/alpha/fpu/s_clog10f.c                      |  12 +-
 sysdeps/alpha/fpu/s_clogf.c                        |  12 +-
 sysdeps/alpha/fpu/s_cpowf.c                        |  12 +-
 sysdeps/alpha/fpu/s_cprojf.c                       |  12 +-
 sysdeps/alpha/fpu/s_csinf.c                        |  12 +-
 sysdeps/alpha/fpu/s_csinhf.c                       |  12 +-
 sysdeps/alpha/fpu/s_csqrtf.c                       |  12 +-
 sysdeps/alpha/fpu/s_ctanf.c                        |  12 +-
 sysdeps/alpha/fpu/s_ctanhf.c                       |  12 +-
 sysdeps/generic/math-type-macros-double.h          |  45 +++++
 .../generic/math-type-macros-float.h               |  31 ++-
 .../generic/math-type-macros-ldouble.h             |  27 ++-
 sysdeps/generic/math-type-macros.h                 | 121 ++++++++++++
 sysdeps/ieee754/ldbl-opt/cabs.c                    |   6 -
 sysdeps/ieee754/ldbl-opt/cabsl.c                   |   6 -
 sysdeps/ieee754/ldbl-opt/carg.c                    |   6 -
 sysdeps/ieee754/ldbl-opt/cargl.c                   |   6 -
 sysdeps/ieee754/ldbl-opt/cimag.c                   |   6 -
 sysdeps/ieee754/ldbl-opt/cimagl.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/conj.c                    |   6 -
 sysdeps/ieee754/ldbl-opt/conjl.c                   |   6 -
 sysdeps/ieee754/ldbl-opt/creal.c                   |   6 -
 sysdeps/ieee754/ldbl-opt/creall.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/math-type-macros-double.h |  58 ++++++
 .../ieee754/ldbl-opt/math-type-macros-ldouble.h    |  24 +--
 sysdeps/ieee754/ldbl-opt/s_cacos.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_cacosh.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_cacoshl.c               |   6 -
 sysdeps/ieee754/ldbl-opt/s_cacosl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_casin.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_casinh.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_casinhl.c               |   6 -
 sysdeps/ieee754/ldbl-opt/s_casinl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_catan.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_catanh.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_catanhl.c               |   6 -
 sysdeps/ieee754/ldbl-opt/s_catanl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_ccos.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/s_ccosh.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_ccoshl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_ccosl.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_cexp.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/s_cexpl.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_clog.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/s_clog10.c                |   7 -
 sysdeps/ieee754/ldbl-opt/s_clog10l.c               |  37 +++-
 sysdeps/ieee754/ldbl-opt/s_clogl.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_cpow.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/s_cpowl.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_cproj.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_cprojl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_csin.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/s_csinh.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_csinhl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_csinl.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_csqrt.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_csqrtl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_ctan.c                  |   6 -
 sysdeps/ieee754/ldbl-opt/s_ctanh.c                 |   6 -
 sysdeps/ieee754/ldbl-opt/s_ctanhl.c                |   6 -
 sysdeps/ieee754/ldbl-opt/s_ctanl.c                 |   6 -
 .../m680x0/fpu/{s_ccosh.c => s_ccosh_template.c}   |  18 +-
 sysdeps/m68k/m680x0/fpu/s_ccoshf.c                 |   3 -
 sysdeps/m68k/m680x0/fpu/s_ccoshl.c                 |   3 -
 .../m680x0/fpu/{s_cexp.c => s_cexp_template.c}     |  15 +-
 sysdeps/m68k/m680x0/fpu/s_cexpf.c                  |   3 -
 sysdeps/m68k/m680x0/fpu/s_cexpl.c                  |   3 -
 .../m680x0/fpu/{s_csin.c => s_csin_template.c}     |  18 +-
 sysdeps/m68k/m680x0/fpu/s_csinf.c                  |   3 -
 .../m680x0/fpu/{s_csinh.c => s_csinh_template.c}   |  17 +-
 sysdeps/m68k/m680x0/fpu/s_csinhf.c                 |   3 -
 sysdeps/m68k/m680x0/fpu/s_csinhl.c                 |   3 -
 sysdeps/m68k/m680x0/fpu/s_csinl.c                  |   3 -
 159 files changed, 1578 insertions(+), 6163 deletions(-)
 delete mode 100644 math/cabs.c
 copy math/{s_cpow.c => cabs_template.c} (78%)
 delete mode 100644 math/cabsf.c
 delete mode 100644 math/cabsl.c
 rename math/{carg.c => carg_template.c} (79%)
 delete mode 100644 math/cargf.c
 delete mode 100644 math/cargl.c
 rename math/{cimag.c => cimag_template.c} (82%)
 delete mode 100644 math/cimagf.c
 delete mode 100644 math/cimagl.c
 rename math/{conj.c => conj_template.c} (81%)
 delete mode 100644 math/conjf.c
 delete mode 100644 math/conjl.c
 rename math/{creal.c => creal_template.c} (82%)
 delete mode 100644 math/crealf.c
 delete mode 100644 math/creall.c
 delete mode 100644 math/k_casinh.c
 create mode 100644 math/k_casinh_template.c
 delete mode 100644 math/k_casinhf.c
 delete mode 100644 math/k_casinhl.c
 delete mode 100644 math/s_cacos.c
 rename math/{s_cacosf.c => s_cacos_template.c} (76%)
 rename math/{s_cacosh.c => s_cacosh_template.c} (65%)
 delete mode 100644 math/s_cacoshf.c
 delete mode 100644 math/s_cacoshl.c
 delete mode 100644 math/s_cacosl.c
 delete mode 100644 math/s_casin.c
 rename math/{s_casinf.c => s_casin_template.c} (75%)
 delete mode 100644 math/s_casinh.c
 rename math/{s_casinhf.c => s_casinh_template.c} (70%)
 delete mode 100644 math/s_casinhl.c
 delete mode 100644 math/s_casinl.c
 delete mode 100644 math/s_catan.c
 create mode 100644 math/s_catan_template.c
 delete mode 100644 math/s_catanf.c
 delete mode 100644 math/s_catanh.c
 create mode 100644 math/s_catanh_template.c
 delete mode 100644 math/s_catanhf.c
 delete mode 100644 math/s_catanhl.c
 delete mode 100644 math/s_catanl.c
 delete mode 100644 math/s_ccos.c
 copy math/{s_ccosf.c => s_ccos_template.c} (81%)
 delete mode 100644 math/s_ccosh.c
 rename math/{s_ccoshf.c => s_ccosh_template.c} (60%)
 delete mode 100644 math/s_ccoshl.c
 delete mode 100644 math/s_ccosl.c
 delete mode 100644 math/s_cexp.c
 rename math/{s_cexpf.c => s_cexp_template.c} (69%)
 delete mode 100644 math/s_cexpl.c
 delete mode 100644 math/s_clog.c
 delete mode 100644 math/s_clog10.c
 create mode 100644 math/s_clog10_template.c
 delete mode 100644 math/s_clog10f.c
 delete mode 100644 math/s_clog10l.c
 rename math/{s_clogf.c => s_clog_template.c} (51%)
 delete mode 100644 math/s_clogl.c
 rename math/{s_cpowf.c => s_cpow_template.c} (79%)
 delete mode 100644 math/s_cpowl.c
 delete mode 100644 math/s_cproj.c
 rename math/{s_cprojf.c => s_cproj_template.c} (78%)
 delete mode 100644 math/s_cprojl.c
 delete mode 100644 math/s_csin.c
 rename math/{s_csinf.c => s_csin_template.c} (65%)
 delete mode 100644 math/s_csinh.c
 rename math/{s_csinhf.c => s_csinh_template.c} (62%)
 delete mode 100644 math/s_csinhl.c
 delete mode 100644 math/s_csinl.c
 delete mode 100644 math/s_csqrt.c
 rename math/{s_csqrtf.c => s_csqrt_template.c} (51%)
 delete mode 100644 math/s_csqrtl.c
 delete mode 100644 math/s_ctan.c
 rename math/{s_ctanf.c => s_ctan_template.c} (64%)
 delete mode 100644 math/s_ctanh.c
 rename math/{s_ctanhf.c => s_ctanh_template.c} (64%)
 delete mode 100644 math/s_ctanhl.c
 delete mode 100644 math/s_ctanl.c
 create mode 100644 sysdeps/generic/math-type-macros-double.h
 rename math/s_ccosf.c => sysdeps/generic/math-type-macros-float.h (60%)
 copy math/s_cpow.c => sysdeps/generic/math-type-macros-ldouble.h (63%)
 create mode 100644 sysdeps/generic/math-type-macros.h
 delete mode 100644 sysdeps/ieee754/ldbl-opt/cabs.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/cabsl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/carg.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/cargl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/cimag.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/cimagl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/conj.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/conjl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/creal.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/creall.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/math-type-macros-double.h
 rename math/s_cpow.c => sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h (63%)
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacos.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacosh.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacoshl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacosl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casin.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casinh.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casinhl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casinl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catan.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catanh.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catanhl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catanl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccos.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccosh.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccoshl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccosl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cexp.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cexpl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_clog.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_clog10.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_clogl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cpow.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cpowl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cproj.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cprojl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csin.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csinh.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csinhl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csinl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csqrt.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csqrtl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctan.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctanh.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctanhl.c
 delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctanl.c
 rename sysdeps/m68k/m680x0/fpu/{s_ccosh.c => s_ccosh_template.c} (87%)
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_ccoshf.c
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_ccoshl.c
 rename sysdeps/m68k/m680x0/fpu/{s_cexp.c => s_cexp_template.c} (94%)
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_cexpf.c
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_cexpl.c
 rename sysdeps/m68k/m680x0/fpu/{s_csin.c => s_csin_template.c} (86%)
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinf.c
 rename sysdeps/m68k/m680x0/fpu/{s_csinh.c => s_csinh_template.c} (88%)
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinhf.c
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinhl.c
 delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinl.c

-- 
2.4.11


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]