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