Commit Graph

508 Commits

Author SHA1 Message Date
Jorge Aparicio
6454687134 omit bounds check in release mode
this eliminates panicking branches in the optimized version of the functions. We keep the bounds
checks when running the test suite to check that we never do an out of bounds access.

This commit also adds a "must link" test that ensures that future changes in our implementation
won't add panicking branches.

closes rust-lang/libm#129
2018-07-25 13:16:10 -05:00
Jorge Aparicio
7774eac962 README: all the math functions we needed are now supported 2018-07-21 12:01:49 -05:00
Jorge Aparicio
ddd9a3c5ba v0.1.2 2018-07-18 11:48:47 -05:00
bors[bot]
e2569e64ad Merge rust-lang/libm#127
127: update changelog; add more copyright notices r=japaric a=japaric



Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2018-07-18 03:10:48 +00:00
Jorge Aparicio
a8cce5bda1 update changelog; add more copyright notices 2018-07-17 20:04:33 -05:00
Jorge Aparicio
9f920e739a cargo fmt 2018-07-17 19:46:12 -05:00
Rahul Butani
1c555103ae rustfmt'ed + some clean up 2018-07-17 15:08:22 -05:00
Rahul Butani
440e835967 Enable tests and expose 2018-07-17 15:08:22 -05:00
Rahul Butani
f12ba75f67 pow! 2018-07-17 15:08:22 -05:00
Joseph Ryan
203a8aea86 rustfmt 2018-07-16 21:22:35 -05:00
Joseph Ryan
4394b4f070 Merge branch 'master' of github.com:P1n3appl3/libm 2018-07-16 21:18:49 -05:00
Joseph Ryan
fe84c2050e Add unit tests for atan2 2018-07-16 21:18:38 -05:00
Jorge Aparicio
29c1188f1f cargo fmt 2018-07-16 20:03:30 -05:00
Jorge Aparicio
addfefd63f fix another rebase error 2018-07-16 18:54:19 -05:00
Jorge Aparicio
579a0ad4fd fix rebase error 2018-07-16 18:46:59 -05:00
Jorge Aparicio
d6edc4b6ab Merge branch 'master' into master 2018-07-16 18:46:26 -05:00
Richard Dodd
e6f9e77006 Implement atan 2018-07-16 21:04:57 +01:00
Jorge Aparicio
99830bac40 test edge cases 2018-07-16 13:03:40 -05:00
bors[bot]
9252cdd3fa Merge rust-lang/libm#117
117: implement cosh r=japaric a=kirch7

`cosh(f64)` implemented. I had to implement `__expo2(f64)` also.

Co-authored-by: Cássio Kirch <cassio.kirch@inf.ufrgs.br>
Co-authored-by: Jorge Aparicio <jorge@japaric.io>
2018-07-16 00:51:17 +00:00
Cássio Kirch
e8e1197629 words insertion on k_expo2 2018-07-15 21:36:22 -03:00
Cássio Kirch
1e61787694 unused cast removed 2018-07-15 21:35:08 -03:00
Jorge Aparicio
bbf1c5432a enable tests for cosh 2018-07-15 18:13:09 -05:00
Cássio Kirch
06aba07681 implement cosh 2018-07-15 19:49:12 -03:00
Jorge Aparicio
57848a7309 inline more functions; add more methods to F{32,64}Ext 2018-07-15 16:00:09 -05:00
Jorge Aparicio
60db814b54 add more copyright notices 2018-07-15 14:50:00 -05:00
Jorge Aparicio
ee33990f46 update CHANGELOG; make utility functions private 2018-07-15 13:24:09 -05:00
bors[bot]
d04494b693 Merge rust-lang/libm#106
106: implement fmaf r=japaric a=erikdesjardins

closes rust-lang/libm#20

Co-authored-by: Erik <erikdesjardins@users.noreply.github.com>
2018-07-15 18:09:03 +00:00
Erik
7084ce52b7 add dummy fenv implementation 2018-07-15 13:32:18 -04:00
Erik
865fedeac6 implement fmaf 2018-07-15 13:31:07 -04:00
C Jones
14c3113694 Implement tanh
Closes rust-lang/libm#37
2018-07-15 04:47:23 -04:00
Joseph Ryan
76b675c202 implement atan2 2018-07-15 01:17:46 -05:00
Andrey Zgarbul
f8e937fa46 sinf, fix constant in k_expo2f 2018-07-15 07:01:26 +03:00
Zgarbul Andrey
3b24b8ffc5 Merge branch 'master' into master 2018-07-15 06:19:57 +03:00
bors[bot]
c062ce3377 Merge rust-lang/libm#110
110: Implement tan r=japaric a=porglezomp

Also includes implementing the private `k_tan` function.

Closes rust-lang/libm#36

Co-authored-by: C Jones <code@calebjones.net>
2018-07-15 00:40:57 +00:00
C Jones
0be652de3a Implement tan
Also includes implementing the private k_tan function.

Closes rust-lang/libm#36
2018-07-14 19:40:23 -04:00
C Jones
dde8131c1e Implement sinh
This also adds expo2 for the __expo2 function, and combine_words() to replace
the INSERT_WORDS macro.

Closes rust-lang/libm#35
2018-07-14 19:37:30 -04:00
Zgarbul Andrey
6b7bd7fc3d Merge branch 'master' into master 2018-07-15 02:35:29 +03:00
Andrey Zgarbul
b61b0046c0 coshf tanhf and atan2f 2018-07-15 02:06:20 +03:00
C Jones
75428a13cf Fix x1p24 constant 2018-07-14 18:48:14 -04:00
C Jones
b2751897d2 Convert rem_pio2 code, split up modules 2018-07-14 18:48:14 -04:00
C Jones
440a1b7273 Implement part of sin/cos with quadrant selection unimplemented 2018-07-14 18:47:35 -04:00
Jorge Aparicio
802f6a2b46 v0.1.1 2018-07-14 16:58:24 -05:00
vjackson725
1d39d059e5 add an implemetation of asin
Fixes rust-lang/libm#7

Additonally adds inline functions for macros dealing with low and high words of f64s to the root module.

Also, the muslc code used a hexdecimal float. This shouldn't be needed because Rust implements
floating point parsing well.
2018-07-14 16:44:26 -05:00
bors[bot]
e51fef4c66 Merge rust-lang/libm#105
105: acosf asinf atanf expm1f sinf tanf r=japaric a=japaric

rebased version of rust-lang/libm#97
closes rust-lang/libm#97
cc @burrbull

Co-authored-by: Andrey Zgarbul <zgarbul.andrey@gmail.com>
2018-07-14 21:19:37 +00:00
Andrey Zgarbul
ccde9e02e7 acosf asinf atanf expm1f sinf tanf 2018-07-14 16:18:30 -05:00
bors[bot]
1e3afc4f1b Merge rust-lang/libm#104
104: add more #[inline] r=japaric a=erikdesjardins

Some of these are pretty big so they may not get inlined in practice, but we might as well make them consistent with the rest.

Co-authored-by: Erik <erikdesjardins@users.noreply.github.com>
2018-07-14 20:57:09 +00:00
bors[bot]
f6bbea901b Merge rust-lang/libm#100 rust-lang/libm#103
100: Implement expm1 r=japaric a=Veykril

~~Closes 13~~, closes rust-lang/libm#18 and ~~closes 14~~.

~~I wasn't sure where to put `__expo2(x: f64) -> f64` so I left it in `src/math/cosh.rs` for now.~~ Moved the function into it's own module.

Edit: Didn't see that `exp` was already done in a pull request, I'll take it out once rust-lang/libm#90 lands then.

103: implement fma r=japaric a=erikdesjardins

closes rust-lang/libm#19

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Co-authored-by: Erik <erikdesjardins@users.noreply.github.com>
2018-07-14 20:42:52 +00:00
Lukas Wirth
f03a65b372 rustfmt 2018-07-14 22:41:48 +02:00
Erik
a377d0d79b allow some functions to be inlined 2018-07-14 16:24:10 -04:00
Lukas Wirth
a4602adbb5 fix bit shifting error 2018-07-14 22:22:00 +02:00