summaryrefslogtreecommitdiff
path: root/soft-fp
Commit message (Collapse)AuthorAgeFilesLines
* Update to LGPL v2.1.Andreas Jaeger2001-07-0662-499/+500
| | | | | | | | | | | | | | 2001-07-06 Paul Eggert <eggert@twinsun.com> * manual/argp.texi: Remove ignored LGPL copyright notice; it's not appropriate for documentation anyway. * manual/libc-texinfo.sh: "Library General Public License" -> "Lesser General Public License". 2001-07-06 Andreas Jaeger <aj@suse.de> * All files under GPL/LGPL version 2: Place under LGPL version 2.1.
* Update.Ulrich Drepper2000-10-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | * sysdeps/i386/fpu/libm-test-ulps: Update for changes in libm-test.inc. 2000-10-16 Jakub Jelinek <jakub@redhat.com> * math/libm-test.inc (M_LOG_SQRT_PIl, M_LOG_2_SQRT_PIl): Increase precision. (acos_test, asin_text, cexp_test, cos_test, cproj_test, exp10_test, sin_test, sincos_test, sqrt_test): Likewise. Add L suffixes also to parameters. (acosh_test, asinh_test, atan2_test, atanh_test, atan_test, cabs_test, cacosh_test, cacos_test, casinh_test, casin_test, catanh_test, catan_test, cbrt_test, ccosh_test, ccos_test, clog10_test, cosh_test, csinh_test, csin_test, csqrt_test, ctanh_test, ctan_test, erfc_test, erf_test, exp2_test, expm1_test, exp_test, fmod_test, hypot_test, j0_test, j1_test, jn_test, lgamma_test, llrint_test, llround_test, log10_test, log1p_test, log2_test, log_test, lrint_test, lround_test, nextafter_test, nexttoward_test, pow_test, round_test, scalb_test, sinh_test, static void, tanh_test, tan_test, tgamma_test, y0_test, y1_test, yn_test): Add L suffixes also to parameters. * sysdeps/ieee754/ldbl-128/s_ceill.c (__ceill): Fix mask. * sysdeps/ieee754/ldbl-128/s_floorl.c (__floorl): Likewise. * soft-fp/op-2.h (_FP_FRAC_SRS_2): Fix computation of sticky bit. 2000-10-16 Ulrich Drepper <drepper@redhat.com>
* (distribute): Remove ChangeLog.Andreas Jaeger2000-09-061-2/+1
|
* Update.Andreas Jaeger2000-09-061-151/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-06 Andreas Jaeger <aj@suse.de> * sysdeps/powerpc/Makefile [$(subdir) = elf]: Modify sysdep-dl-routines and sysdep_routines instead of rtld-routines and dl-routines. * soft-fp/ChangeLog: Merged with this file. 2000-06-13 Ulrich Drepper <drepper@redhat.com> * soft-fp/Makefile (distribute): Add op-8.h and testit.c. * soft-fp/Makefile (distribute): Add the math functions, too. * soft-fp/Makefile (distribute): Add ChangeLog, Banner, and configure. 2000-03-03 Geoff Keating <geoffk@cygnus.com> * soft-fp/soft-fp.h (_FP_ROUND_ZERO): Cast 0 to void before using it as a statement. * soft-fp/sysdeps/powerpc/Makefile (routines): New file. * soft-fp/sysdeps/powerpc/q_*: New files.
* (distribute): Remove configure.Andreas Jaeger2000-09-051-1/+1
|
* Update.Andreas Jaeger2000-09-053-99/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-09-05 Andreas Jaeger <aj@suse.de> * sysdeps/sparc/sparc64/soft-fp/Versions: Use version glibc 2.2. * soft-fp/configure: Remove. * soft-fp/sysdeps/sparc/sparc64/qp_neg.S: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_neg.S: ... to here. * soft-fp/sysdeps/sparc/sparc32/Makefile: Move from here... * sysdeps/sparc/sparc32/soft-fp/Makefile: ... to here. * soft-fp/sysdeps/powerpc/Makefile: Move from here... * sysdeps/powerpc/soft-fp/Makefile: ... to here. * soft-fp/sysdeps/sparc/sparc64/Makefile: Move from here... * sysdeps/sparc/sparc64/soft-fp/Makefile: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_neg.S: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_neg.S: ... to here. * soft-fp/sysdeps/powerpc/q_add.c: Move from here... * sysdeps/powerpc/soft-fp/q_add.c: ... to here. * soft-fp/sysdeps/powerpc/q_cmp.c: Move from here... * sysdeps/powerpc/soft-fp/q_cmp.c: ... to here. * soft-fp/sysdeps/powerpc/q_cmpe.c: Move from here... * sysdeps/powerpc/soft-fp/q_cmpe.c: ... to here. * soft-fp/sysdeps/powerpc/q_div.c: Move from here... * sysdeps/powerpc/soft-fp/q_div.c: ... to here. * soft-fp/sysdeps/powerpc/q_dtoq.c: Move from here... * sysdeps/powerpc/soft-fp/q_dtoq.c: ... to here. * soft-fp/sysdeps/powerpc/q_feq.c: Move from here... * sysdeps/powerpc/soft-fp/q_feq.c: ... to here. * soft-fp/sysdeps/powerpc/q_fge.c: Move from here... * sysdeps/powerpc/soft-fp/q_fge.c: ... to here. * soft-fp/sysdeps/powerpc/q_fgt.c: Move from here... * sysdeps/powerpc/soft-fp/q_fgt.c: ... to here. * soft-fp/sysdeps/powerpc/q_fle.c: Move from here... * sysdeps/powerpc/soft-fp/q_fle.c: ... to here. * soft-fp/sysdeps/powerpc/q_flt.c: Move from here... * sysdeps/powerpc/soft-fp/q_flt.c: ... to here. * soft-fp/sysdeps/powerpc/q_fne.c: Move from here... * sysdeps/powerpc/soft-fp/q_fne.c: ... to here. * soft-fp/sysdeps/powerpc/q_itoq.c: Move from here... * sysdeps/powerpc/soft-fp/q_itoq.c: ... to here. * soft-fp/sysdeps/powerpc/q_lltoq.c: Move from here... * sysdeps/powerpc/soft-fp/q_lltoq.c: ... to here. * soft-fp/sysdeps/powerpc/q_mul.c: Move from here... * sysdeps/powerpc/soft-fp/q_mul.c: ... to here. * soft-fp/sysdeps/powerpc/q_neg.c: Move from here... * sysdeps/powerpc/soft-fp/q_neg.c: ... to here. * soft-fp/sysdeps/powerpc/q_qtod.c: Move from here... * sysdeps/powerpc/soft-fp/q_qtod.c: ... to here. * soft-fp/sysdeps/powerpc/q_qtoi.c: Move from here... * sysdeps/powerpc/soft-fp/q_qtoi.c: ... to here. * soft-fp/sysdeps/powerpc/q_qtoll.c: Move from here... * sysdeps/powerpc/soft-fp/q_qtoll.c: ... to here. * soft-fp/sysdeps/powerpc/q_qtos.c: Move from here... * sysdeps/powerpc/soft-fp/q_qtos.c: ... to here. * soft-fp/sysdeps/powerpc/q_qtou.c: Move from here... * sysdeps/powerpc/soft-fp/q_qtou.c: ... to here. * soft-fp/sysdeps/powerpc/q_qtoull.c: Move from here... * sysdeps/powerpc/soft-fp/q_qtoull.c: ... to here. * soft-fp/sysdeps/powerpc/q_sqrt.c: Move from here... * sysdeps/powerpc/soft-fp/q_sqrt.c: ... to here. * soft-fp/sysdeps/powerpc/q_stoq.c: Move from here... * sysdeps/powerpc/soft-fp/q_stoq.c: ... to here. * soft-fp/sysdeps/powerpc/q_sub.c: Move from here... * sysdeps/powerpc/soft-fp/q_sub.c: ... to here. * soft-fp/sysdeps/powerpc/q_ulltoq.c: Move from here... * sysdeps/powerpc/soft-fp/q_ulltoq.c: ... to here. * soft-fp/sysdeps/powerpc/q_util.c: Move from here... * sysdeps/powerpc/soft-fp/q_util.c: ... to here. * soft-fp/sysdeps/powerpc/q_utoq.c: Move from here... * sysdeps/powerpc/soft-fp/q_utoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_add.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_add.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_cmp.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_cmp.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_cmpe.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_cmpe.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_div.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_div.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_dtoq.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_dtoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_feq.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_feq.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_fge.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_fge.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_fgt.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_fgt.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_fle.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_fle.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_flt.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_flt.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_fne.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_fne.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_itoq.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_itoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_mul.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_mul.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_neg.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_neg.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_qtod.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_qtod.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_qtoi.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_qtoi.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_qtos.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_qtos.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_qtoui.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_qtoui.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_qtoux.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_qtoux.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_qtox.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_qtox.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_sqrt.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_sqrt.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_stoq.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_stoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_sub.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_sub.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_uitoq.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_uitoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_util.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_util.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_uxtoq.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_uxtoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc32/q_xtoq.c: Move from here... * sysdeps/sparc/sparc32/soft-fp/q_xtoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_add.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_add.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_cmp.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_cmp.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_cmpe.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_div.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_div.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_dtoq.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_feq.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_feq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_fge.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_fge.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_fgt.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_fgt.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_fle.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_fle.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_flt.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_flt.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_fne.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_fne.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_itoq.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_itoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_mul.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_mul.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_qtod.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_qtod.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_qtoi.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_qtos.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_qtos.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_qtoui.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_qtoux.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_qtox.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_sqrt.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_stoq.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_stoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_sub.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_sub.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_uitoq.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_util.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_util.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_uxtoq.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/qp_xtoq.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/s_frexpl.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/s_frexpl.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/s_ilogbl.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/s_ilogbl.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/s_scalblnl.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/s_scalblnl.c: ... to here. * soft-fp/sysdeps/sparc/sparc64/s_scalbnl.c: Move from here... * sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c: ... to here. * soft-fp/sysdeps/alpha/sfp-machine.h: Move from here... * sysdeps/alpha/soft-fp/sfp-machine.h: ... to here. * soft-fp/sysdeps/i386/sfp-machine.h: Move from here... * sysdeps/i386/soft-fp/sfp-machine.h: ... to here. * soft-fp/sysdeps/mips/mips64/sfp-machine.h: Move from here... * sysdeps/mips/mips64/soft-fp/sfp-machine.h: ... to here. * soft-fp/sysdeps/mips/sfp-machine.h: Move from here... * sysdeps/mips/soft-fp/sfp-machine.h: ... to here. * soft-fp/sysdeps/powerpc/sfp-machine.h: Move from here... * sysdeps/powerpc/soft-fp/sfp-machine.h: ... to here. * soft-fp/sysdeps/sparc/sparc32/sfp-machine.h: Move from here... * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h: ... to here. * soft-fp/sysdeps/sparc/sparc64/sfp-machine.h: Move from here... * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: ... to here. * soft-fp/sysdeps/powerpc/Versions: Move from here... * sysdeps/powerpc/soft-fp/Versions: ... to here. * soft-fp/sysdeps/sparc/sparc64/Versions: Move from here... * sysdeps/sparc/sparc64/soft-fp/Versions: ... to here. * libio/oldiofsetpos64.c: iofsetpos was introduced in glibc 2.1, change symbol version. * libio/oldiofgetpos64.c: Likewise. Reported by Martin v. Loewis <martin@loewis.home.cs.tu-berlin.de>. * locale/programs/ld-ctype.c (charclass_charcode_ellipsis): Fix typo. Reported by dyky@kondara.org, closes PR libc/1886. * stdlib/tst-strtod.c: Add testcases for denormal numbers from PR libc/1880.
* Moved to sysdeps/sparc/sparc64/soft-fp/qp_neg.S.Andreas Jaeger2000-09-051-31/+0
|
* Moved from soft-fp/sysdeps/sparc/sparc64/s_scalbnl.cAndreas Jaeger2000-09-0550-2618/+0
|
* Moved to sysdeps/sparc/sparc64/soft-fp/Versions.Andreas Jaeger2000-09-051-7/+0
|
* Moved to sysdeps/sparc/sparc32/soft-fp/q_neg.c.Andreas Jaeger2000-09-051-47/+0
|
* Moved from soft-fp/sysdeps/sparc/sparc32/q_mul.cAndreas Jaeger2000-09-052-79/+0
|
* Moved from soft-fp/sysdeps/sparc/sparc32/q_itoq.cAndreas Jaeger2000-09-0540-1555/+0
|
* Update.Ulrich Drepper2000-06-142-0/+3
| | | | * malloc/Makefile (distribute): Add memprof.sh and memprofstat.c.
* Update.Ulrich Drepper2000-06-141-0/+2
| | | | * crypt/Makefile (distribute): Add md5.h.
* Update.Ulrich Drepper2000-06-141-1/+4
| | | | * Makefile (distribute): Add include/shlib-compat.h.
* Update.Ulrich Drepper2000-06-142-2/+6
| | | | * Make-dist: Search for tests also in sysdeps hierachy.
* In libc/: Geoff Keating2000-03-0431-2/+1155
| | | | | | | | | | | | | | | | | * configure.in: Compute sizeof-long-double. * configure: Regenerated. * config.make.in: Make sizeof-long-double available to sub-makes. In libc/soft-fp/: * soft-fp.h (_FP_ROUND_ZERO): Cast 0 to void before using it as a statement. * sysdeps/powerpc/Makefile (routines): New file. * sysdeps/powerpc/q_*: New files. 2000-03-03 Geoff Keating <geoffk@cygnus.com> * configure.in: Compute sizeof-long-double. * configure: Regenerated. * config.make.in: Make sizeof-long-double available to sub-makes.
* Update.Ulrich Drepper2000-01-045-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-01-04 Andreas Jaeger <aj@suse.de> * nss/nss_db/dummy-db.h (struct db24): Add missing field flags. (struct db27): Add missing fields byteswapped, join and flags; remove wrong member handleq. (struct dbc27): Correct lock field. * nss/makedb.c: Remove __P. 2000-01-04 Andreas Jaeger <aj@suse.de> * nss/nss_db/db-open.c (internal_setent): Check for db_open for success, fix a memory leak and clean up function. 2000-01-04 Ulrich Drepper <drepper@cygnus.com> * Makefile (install): Pass $(install_root) to ldconfig. Patch by Akira YOSHIYAMA <yosshy@tkf.att.ne.jp>. 2000-01-03 Jakub Jelinek <jakub@redhat.com> * soft-fp/op-1.h: Fix division for machines using not normalizing version of udiv_qrnnd in longlong.h. * soft-fp/sysdeps/mips/sfp-machine.h: Likewise. * soft-fp/sysdeps/mips/mips64/sfp-machine.h: Likewise. * soft-fp/sysdeps/sparc/sparc64/sfp-machine.h: Likewise. Patch by Eddie C. Dost <ecd@skynet.be>. * soft-fp/soft-fp.h (QItype, UQItype): New types used by longlong.h. 2000-01-03 Andreas Schwab <schwab@suse.de> * sysdeps/generic/dl-sysdep.c: Initialize __libc_multiple_libcs, needed for change in common symbol handing in newer binutils.
* Update.Ulrich Drepper1999-12-29134-0/+9792
1999-12-29 Ulrich Drepper <drepper@cygnus.com> * soft-fp/*: Tons of new files to implement floating-point arithmetic in software. Contributed by Richard Henderson, Jakub Jelinek and others.