Commit Graph

39 Commits

Author SHA1 Message Date
Gregory Nutt
6e5010e0d0 floor(), floorf(), and floorl(): Fix logic error. Was not correctly handling negative integral value. 2016-08-11 18:21:29 -06:00
Gregory Nutt
4daa553328 lib_asinl.c edited online with Bitbucket. Add missing # on endif. Noted by David Alessio. 2016-07-31 16:47:25 +00:00
David S. Alessio
c145159c6b This commit fixes the following libc/math issues:
1) asin[f l]() use Newton’s method to converge on a solution. But Newton’s method converges very slowly (> 500,000 iterations) for values of x close to 1.0; and, in the case of asinl(), sometimes fails to converge (loops forever). The attached patch uses an trig identity for values of x > sqrt(2). The resultant functions converge in no more than 5 iterations, 6 for asinl().

2) The NuttX erf[f l]() functions are based on Chebyshev fitting to a good guess. The problem there’s a bug in the implementation that causes the functions to blow up with x near -3.0. This patch fixes that problem. It should be noted that this method returns the error function erf(x) with fractional error less than 1.2E-07 and that’s fine for the float version erff(), but the same method is used for double and long double version which will yield only slightly better precision. This patch doesn't address the issue of lower precision for erf() and erfl().

3) a faster version of copysignf() for floats is included.
2016-07-30 15:43:56 -06:00
Gregory Nutt
23a876ab9c Move include/nuttx/math.h to include/nuttx/lib/math.h 2016-07-21 13:58:09 -06:00
David Alessio
912ad2d345 Fix bug in logf() algorithm that caused erroneous INFINITY results. 2016-07-14 20:15:37 -06:00
Gregory Nutt
96edfdb4c7 libm: Fix/improve range checks in lib_expi() and lib_expif(). 2016-07-12 09:59:10 -06:00
Gregory Nutt
3bc504b685 Per comment from David Alession: M_E128 will never be used since it is greater than FLT_MAX. 2016-07-12 09:59:08 -06:00
Gregory Nutt
dfe8596e53 Cosmetic 2016-07-11 14:15:34 -06:00
Gregory Nutt
29eae10232 lib_expi/f(): Exponental table should be 'const'. Dimension was wrong for float version. 2016-07-11 13:53:31 -06:00
Gregory Nutt
6a081e118d Add guess at missing lib_libexpif.c file 2016-07-11 13:43:43 -06:00
David Alessio
261358f1f5 This change should significantly improve the performance of single precision floating point math library functions. The vast majority of changes have to do with preventing the compiler from needlessly promoting floats to doubles, performing the calculation with doubles, only to demote the result to float. These changes only affect the math lib functions that return float. 2016-07-11 07:02:50 -06:00
Gregory Nutt
4f81a60ef6 Add a NAN test on 'x' in asin function of lib_asin.c. Suggested by Pierre-noel Bouteville. 2016-05-31 06:31:04 -06:00
Gregory Nutt
0fb035f76b Standardize some naming in code section comments 2016-02-21 18:09:04 -06:00
Gregory Nutt
b682190f52 Rename all head files in main NuttX repository with names like *internal.h, removing the internal 2015-12-29 17:31:17 -06:00
Gregory Nutt
e9bd8bceb4 nuttx/libc: Fix some spacing and alignment issues 2015-10-12 07:45:02 -06:00
Gregory Nutt
af086c40ff Remove dangling whitespace 2015-10-04 15:28:54 -06:00
Gregory Nutt
5b51a9fcdd Standardize the width of all comment boxes in C files 2015-10-02 17:43:18 -06:00
Gregory Nutt
cb9e27c3b0 Standardize naming used for public data and function groupings 2015-10-02 16:30:35 -06:00
Stefan Kolb
5ac6de118e libc/math/lib_asin.c: The function did not convert for some input values. Asin did not convert for values which do not belong to the domain of the function. But aside of that the function also did not convert for sine allowed values. I achieved a conversion of the function by reducing the DBL_EPSION and by checking if the input value is in the domain of the function. This is a fix for the problem but the function should always terminate after a given number of iterations. From Stefan Kolb. 2015-09-01 08:45:14 -06:00
Gregory Nutt
342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt
1025c3fb21 Fixes to asinh(), atanh(), and sinh(): The 'basic' expansions all exhibited bad cancellation errors near zero (<= 1E-10). This can be easily seen e.g. with x = 1E-30, the results are all zero though they should be extremely close to x. The cutoff values (1E-5, 1E-9) are chosen so that the next term in the Taylor series is negligible (for double). Functions could maybe be optimized to use only first term (x) and a smaller cutoff, just bigger than where the cancellation occurs. 2015-04-09 10:35:07 -06:00
Gregory Nutt
1018296e27 Make some file section headers more consistent with standard 2015-04-08 07:32:08 -06:00
Gregory Nutt
b12cf6d2f5 Add math library support for trunc functions. From Brennan Ashton. 2015-01-26 19:00:35 -06:00
Gregory Nutt
0a11f9b669 Cosmetic 2015-01-26 18:55:17 -06:00
Gregory Nutt
06337a4f7a Add math library support for copysign. From Brennan Ashton 2015-01-26 18:52:28 -06:00
Gregory Nutt
7e177e1c12 Add error function to math library. From Brennan Ashton. 2015-01-26 13:58:47 -06:00
Gregory Nutt
e153959eea Add support for inverse hyperbolic functions. From Brennan Ashton 2015-01-26 13:52:53 -06:00
Gregory Nutt
5e285b8bc4 More NxWM build fixes 2014-09-20 16:47:00 -06:00
Gregory Nutt
28ad8e7cfd Change commenting style to agree with coding standard 2014-09-08 08:02:37 -06:00
Gregory Nutt
9d03879c8b Correct atan2 implementations from Denis Arnst 2014-09-08 07:55:09 -06:00
Gregory Nutt
f0c90a39ca Change double_t to double in rint. Add rintf and rintl while we are at it 2014-06-28 10:14:29 -06:00
Gregory Nutt
33121dd0d0 Various changes associated with symbol tables. Most from Pelle Windestam 2014-06-27 08:14:07 -06:00
Gregory Nutt
3a1324741a More trailing whilespace removal 2014-04-13 14:32:20 -06:00
Gregory Nutt
bdf1ad69d6 libc logic should not directly assign errno, but should use set_errno() macro. This is because in the kernel build, errno is a system call 2013-12-11 14:54:22 -06:00
Gregory Nutt
b553609351 New Kconfig convention: Extra indentation in comments will render as HTML preformatted text 2013-04-22 09:10:58 -06:00
patacongo
d028533b8a Verified USB HID KBD driver encoding of special characters; apps/examples/hidkbd now decodes encoded keyboar characters.
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5463 42af7a65-404d-4744-a932-0658087f49c3
2012-12-26 21:37:50 +00:00
patacongo
5306523bce Patches from Petteri Aimonen + stdbool and rand() changes for Freddie Chopin
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5415 42af7a65-404d-4744-a932-0658087f49c3
2012-12-07 16:00:56 +00:00
patacongo
5cb8226727 OK.. I think the directory has been recovered and renamed
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5331 42af7a65-404d-4744-a932-0658087f49c3
2012-11-10 16:34:46 +00:00
patacongo
42997ede83 Still trying to recover directory contents
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5330 42af7a65-404d-4744-a932-0658087f49c3
2012-11-10 16:19:12 +00:00