Commit Graph

127 Commits

Author SHA1 Message Date
Jorge Aparicio ce02130e55 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 #129
2018-07-25 13:16:10 -05:00
Jorge Aparicio 6f04dab39d v0.1.2 2018-07-18 11:48:47 -05:00
bors[bot] d65f60f242 Merge #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 7e5fe7c2e1 update changelog; add more copyright notices 2018-07-17 20:04:33 -05:00
Jorge Aparicio ea9f617cd4 cargo fmt 2018-07-17 19:46:12 -05:00
Rahul Butani 422532b33d rustfmt'ed + some clean up 2018-07-17 15:08:22 -05:00
Rahul Butani 24768f42dd Enable tests and expose 2018-07-17 15:08:22 -05:00
Rahul Butani 0a09954701 pow! 2018-07-17 15:08:22 -05:00
Joseph Ryan ef47df3b35 rustfmt 2018-07-16 21:22:35 -05:00
Joseph Ryan bf94d54243 Merge branch 'master' of github.com:P1n3appl3/libm 2018-07-16 21:18:49 -05:00
Joseph Ryan 70b27a0f6f Add unit tests for atan2 2018-07-16 21:18:38 -05:00
Jorge Aparicio 99981facaf cargo fmt 2018-07-16 20:03:30 -05:00
Jorge Aparicio 59cfaf5dd0 fix another rebase error 2018-07-16 18:54:19 -05:00
Jorge Aparicio aa9c941f64 fix rebase error 2018-07-16 18:46:59 -05:00
Jorge Aparicio 9e1bc8e5ee Merge branch 'master' into master 2018-07-16 18:46:26 -05:00
Richard Dodd d731dcbe53 Implement atan 2018-07-16 21:04:57 +01:00
bors[bot] 3932e2ea8e Merge #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 7175c5b64c words insertion on k_expo2 2018-07-15 21:36:22 -03:00
Cássio Kirch 41c5d03fa9 unused cast removed 2018-07-15 21:35:08 -03:00
Cássio Kirch abcf9e72c2 implement cosh 2018-07-15 19:49:12 -03:00
Jorge Aparicio 745b3020c0 inline more functions; add more methods to F{32,64}Ext 2018-07-15 16:00:09 -05:00
Jorge Aparicio 54af49db47 add more copyright notices 2018-07-15 14:50:00 -05:00
Jorge Aparicio 7f2e0b5776 update CHANGELOG; make utility functions private 2018-07-15 13:24:09 -05:00
bors[bot] e71de04c07 Merge #106
106: implement fmaf r=japaric a=erikdesjardins

closes #20

Co-authored-by: Erik <erikdesjardins@users.noreply.github.com>
2018-07-15 18:09:03 +00:00
Erik 1b5d43853a add dummy fenv implementation 2018-07-15 13:32:18 -04:00
Erik 806c723d56 implement fmaf 2018-07-15 13:31:07 -04:00
C Jones 935c393b4d Implement tanh
Closes #37
2018-07-15 04:47:23 -04:00
Joseph Ryan a2e80d485a implement atan2 2018-07-15 01:17:46 -05:00
Andrey Zgarbul 1216667189 sinf, fix constant in k_expo2f 2018-07-15 07:01:26 +03:00
Zgarbul Andrey 413dad5bf1 Merge branch 'master' into master 2018-07-15 06:19:57 +03:00
bors[bot] da0ae67b4a Merge #110
110: Implement tan r=japaric a=porglezomp

Also includes implementing the private `k_tan` function.

Closes #36

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

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

Closes #35
2018-07-14 19:37:30 -04:00
Zgarbul Andrey b4ac457df7 Merge branch 'master' into master 2018-07-15 02:35:29 +03:00
Andrey Zgarbul 1bd629d078 coshf tanhf and atan2f 2018-07-15 02:06:20 +03:00
C Jones 4fb6e339b5 Fix x1p24 constant 2018-07-14 18:48:14 -04:00
C Jones 97d9af7b0d Convert rem_pio2 code, split up modules 2018-07-14 18:48:14 -04:00
C Jones 7d2ed62446 Implement part of sin/cos with quadrant selection unimplemented 2018-07-14 18:47:35 -04:00
vjackson725 600a238a64 add an implemetation of asin
Fixes #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] 446d07954e Merge #105
105: acosf asinf atanf expm1f sinf tanf r=japaric a=japaric

rebased version of #97
closes #97
cc @burrbull

Co-authored-by: Andrey Zgarbul <zgarbul.andrey@gmail.com>
2018-07-14 21:19:37 +00:00
Andrey Zgarbul ea42447bd5 acosf asinf atanf expm1f sinf tanf 2018-07-14 16:18:30 -05:00
bors[bot] 61d958fb2d Merge #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] 4e7504a0f4 Merge #100 #103
100: Implement expm1 r=japaric a=Veykril

~~Closes 13~~, closes #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 #90 lands then.

103: implement fma r=japaric a=erikdesjardins

closes #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 a27975efdc rustfmt 2018-07-14 22:41:48 +02:00
Erik f1172af46e allow some functions to be inlined 2018-07-14 16:24:10 -04:00
Lukas Wirth 4856da10d0 fix bit shifting error 2018-07-14 22:22:00 +02:00
Erik 6d67a06226 implement fma 2018-07-14 16:17:31 -04:00
bors[bot] f9f234fca4 Merge #91
91: Implement exp2 and exp2f r=japaric a=porglezomp

Closes #15
Closes #16

Co-authored-by: C Jones <code@calebjones.net>
2018-07-14 19:33:54 +00:00
C Jones b1055504c0 DRY up the exp2 and exp2f data tables 2018-07-14 15:31:22 -04:00
C Jones a1238fc535 Implement exp2 2018-07-14 15:31:22 -04:00