1#![doc = include_str!("../README.md")]
2#![cfg_attr(not(test), no_std)]
3
4use core_math_sys as sys;
5
6#[must_use]
9#[inline]
10pub fn acosf(x: f32) -> f32 {
11 unsafe { sys::cr_acosf(x) }
12}
13
14#[must_use]
15#[inline]
16pub fn acoshf(x: f32) -> f32 {
17 unsafe { sys::cr_acoshf(x) }
18}
19
20#[must_use]
21#[inline]
22pub fn acospif(x: f32) -> f32 {
23 unsafe { sys::cr_acospif(x) }
24}
25
26#[must_use]
27#[inline]
28pub fn asinf(x: f32) -> f32 {
29 unsafe { sys::cr_asinf(x) }
30}
31
32#[must_use]
33#[inline]
34pub fn asinhf(x: f32) -> f32 {
35 unsafe { sys::cr_asinhf(x) }
36}
37
38#[must_use]
39#[inline]
40pub fn asinpif(x: f32) -> f32 {
41 unsafe { sys::cr_asinpif(x) }
42}
43
44#[must_use]
45#[inline]
46pub fn atanf(x: f32) -> f32 {
47 unsafe { sys::cr_atanf(x) }
48}
49
50#[must_use]
51#[inline]
52pub fn atan2f(y: f32, x: f32) -> f32 {
53 unsafe { sys::cr_atan2f(y, x) }
54}
55
56#[must_use]
57#[inline]
58pub fn atan2pif(y: f32, x: f32) -> f32 {
59 unsafe { sys::cr_atan2pif(y, x) }
60}
61
62#[must_use]
63#[inline]
64pub fn atanhf(x: f32) -> f32 {
65 unsafe { sys::cr_atanhf(x) }
66}
67
68#[must_use]
69#[inline]
70pub fn atanpif(x: f32) -> f32 {
71 unsafe { sys::cr_atanpif(x) }
72}
73
74#[must_use]
75#[inline]
76pub fn cbrtf(x: f32) -> f32 {
77 unsafe { sys::cr_cbrtf(x) }
78}
79
80#[must_use]
81#[inline]
82pub fn cosf(x: f32) -> f32 {
83 unsafe { sys::cr_cosf(x) }
84}
85
86#[must_use]
87#[inline]
88pub fn coshf(x: f32) -> f32 {
89 unsafe { sys::cr_coshf(x) }
90}
91
92#[must_use]
93#[inline]
94pub fn cospif(x: f32) -> f32 {
95 unsafe { sys::cr_cospif(x) }
96}
97
98#[must_use]
99#[inline]
100pub fn erff(x: f32) -> f32 {
101 unsafe { sys::cr_erff(x) }
102}
103
104#[must_use]
105#[inline]
106pub fn erfcf(x: f32) -> f32 {
107 unsafe { sys::cr_erfcf(x) }
108}
109
110#[must_use]
111#[inline]
112pub fn expf(x: f32) -> f32 {
113 unsafe { sys::cr_expf(x) }
114}
115
116#[must_use]
117#[inline]
118pub fn exp10f(x: f32) -> f32 {
119 unsafe { sys::cr_exp10f(x) }
120}
121
122#[must_use]
123#[inline]
124pub fn exp10m1f(x: f32) -> f32 {
125 unsafe { sys::cr_exp10m1f(x) }
126}
127
128#[must_use]
129#[inline]
130pub fn exp2f(x: f32) -> f32 {
131 unsafe { sys::cr_exp2f(x) }
132}
133
134#[must_use]
135#[inline]
136pub fn exp2m1f(x: f32) -> f32 {
137 unsafe { sys::cr_exp2m1f(x) }
138}
139
140#[must_use]
141#[inline]
142pub fn expm1f(x: f32) -> f32 {
143 unsafe { sys::cr_expm1f(x) }
144}
145
146#[must_use]
147#[inline]
148pub fn hypotf(x: f32, y: f32) -> f32 {
149 unsafe { sys::cr_hypotf(x, y) }
150}
151
152#[must_use]
153#[inline]
154pub fn lgammaf(x: f32) -> f32 {
155 unsafe { sys::cr_lgammaf(x) }
156}
157
158#[must_use]
159#[inline]
160pub fn logf(x: f32) -> f32 {
161 unsafe { sys::cr_logf(x) }
162}
163
164#[must_use]
165#[inline]
166pub fn log10f(x: f32) -> f32 {
167 unsafe { sys::cr_log10f(x) }
168}
169
170#[must_use]
171#[inline]
172pub fn log10p1f(x: f32) -> f32 {
173 unsafe { sys::cr_log10p1f(x) }
174}
175
176#[must_use]
177#[inline]
178pub fn log1pf(x: f32) -> f32 {
179 unsafe { sys::cr_log1pf(x) }
180}
181
182#[must_use]
183#[inline]
184pub fn log2f(x: f32) -> f32 {
185 unsafe { sys::cr_log2f(x) }
186}
187
188#[must_use]
189#[inline]
190pub fn log2p1f(x: f32) -> f32 {
191 unsafe { sys::cr_log2p1f(x) }
192}
193
194#[must_use]
195#[inline]
196pub fn powf(x: f32, y: f32) -> f32 {
197 unsafe { sys::cr_powf(x, y) }
198}
199
200#[must_use]
201#[inline]
202pub fn rsqrtf(x: f32) -> f32 {
203 unsafe { sys::cr_rsqrtf(x) }
204}
205
206#[must_use]
207#[inline]
208pub fn sinf(x: f32) -> f32 {
209 unsafe { sys::cr_sinf(x) }
210}
211
212#[must_use]
213#[inline]
214pub fn sincosf(x: f32) -> (f32, f32) {
215 use core::mem::MaybeUninit;
216 let mut s = MaybeUninit::uninit();
217 let mut c = MaybeUninit::uninit();
218
219 unsafe {
220 sys::cr_sincosf(x, s.as_mut_ptr(), c.as_mut_ptr());
221 (s.assume_init(), c.assume_init())
222 }
223}
224
225#[must_use]
226#[inline]
227pub fn sinhf(x: f32) -> f32 {
228 unsafe { sys::cr_sinhf(x) }
229}
230
231#[must_use]
232#[inline]
233pub fn sinpif(x: f32) -> f32 {
234 unsafe { sys::cr_sinpif(x) }
235}
236
237#[must_use]
238#[inline]
239pub fn tanf(x: f32) -> f32 {
240 unsafe { sys::cr_tanf(x) }
241}
242
243#[must_use]
244#[inline]
245pub fn tanhf(x: f32) -> f32 {
246 unsafe { sys::cr_tanhf(x) }
247}
248
249#[must_use]
250#[inline]
251pub fn tanpif(x: f32) -> f32 {
252 unsafe { sys::cr_tanpif(x) }
253}
254
255#[must_use]
256#[inline]
257pub fn tgammaf(x: f32) -> f32 {
258 unsafe { sys::cr_tgammaf(x) }
259}
260
261#[must_use]
264#[inline]
265pub fn acos(x: f64) -> f64 {
266 unsafe { sys::cr_acos(x) }
267}
268
269#[must_use]
270#[inline]
271pub fn acosh(x: f64) -> f64 {
272 unsafe { sys::cr_acosh(x) }
273}
274
275#[must_use]
276#[inline]
277pub fn acospi(x: f64) -> f64 {
278 unsafe { sys::cr_acospi(x) }
279}
280
281#[must_use]
282#[inline]
283pub fn asin(x: f64) -> f64 {
284 unsafe { sys::cr_asin(x) }
285}
286
287#[must_use]
288#[inline]
289pub fn asinh(x: f64) -> f64 {
290 unsafe { sys::cr_asinh(x) }
291}
292
293#[must_use]
294#[inline]
295pub fn asinpi(x: f64) -> f64 {
296 unsafe { sys::cr_asinpi(x) }
297}
298
299#[must_use]
300#[inline]
301pub fn atan(x: f64) -> f64 {
302 unsafe { sys::cr_atan(x) }
303}
304
305#[must_use]
306#[inline]
307pub fn atan2(y: f64, x: f64) -> f64 {
308 unsafe { sys::cr_atan2(y, x) }
309}
310
311#[must_use]
312#[inline]
313pub fn atan2pi(y: f64, x: f64) -> f64 {
314 unsafe { sys::cr_atan2pi(y, x) }
315}
316
317#[must_use]
318#[inline]
319pub fn atanh(x: f64) -> f64 {
320 unsafe { sys::cr_atanh(x) }
321}
322
323#[must_use]
324#[inline]
325pub fn atanpi(x: f64) -> f64 {
326 unsafe { sys::cr_atanpi(x) }
327}
328
329#[must_use]
330#[inline]
331pub fn cbrt(x: f64) -> f64 {
332 unsafe { sys::cr_cbrt(x) }
333}
334
335#[must_use]
336#[inline]
337pub fn cos(x: f64) -> f64 {
338 unsafe { sys::cr_cos(x) }
339}
340
341#[must_use]
342#[inline]
343pub fn cosh(x: f64) -> f64 {
344 unsafe { sys::cr_cosh(x) }
345}
346
347#[must_use]
348#[inline]
349pub fn cospi(x: f64) -> f64 {
350 unsafe { sys::cr_cospi(x) }
351}
352
353#[must_use]
354#[inline]
355pub fn erf(x: f64) -> f64 {
356 unsafe { sys::cr_erf(x) }
357}
358
359#[must_use]
360#[inline]
361pub fn erfc(x: f64) -> f64 {
362 unsafe { sys::cr_erfc(x) }
363}
364
365#[must_use]
366#[inline]
367pub fn exp(x: f64) -> f64 {
368 unsafe { sys::cr_exp(x) }
369}
370
371#[must_use]
372#[inline]
373pub fn exp10(x: f64) -> f64 {
374 unsafe { sys::cr_exp10(x) }
375}
376
377#[must_use]
378#[inline]
379pub fn exp10m1(x: f64) -> f64 {
380 unsafe { sys::cr_exp10m1(x) }
381}
382
383#[must_use]
384#[inline]
385pub fn exp2(x: f64) -> f64 {
386 unsafe { sys::cr_exp2(x) }
387}
388
389#[must_use]
390#[inline]
391pub fn exp2m1(x: f64) -> f64 {
392 unsafe { sys::cr_exp2m1(x) }
393}
394
395#[must_use]
396#[inline]
397pub fn expm1(x: f64) -> f64 {
398 unsafe { sys::cr_expm1(x) }
399}
400
401#[must_use]
402#[inline]
403pub fn hypot(x: f64, y: f64) -> f64 {
404 unsafe { sys::cr_hypot(x, y) }
405}
406
407#[must_use]
408#[inline]
409pub fn log(x: f64) -> f64 {
410 unsafe { sys::cr_log(x) }
411}
412
413#[must_use]
414#[inline]
415pub fn log10(x: f64) -> f64 {
416 unsafe { sys::cr_log10(x) }
417}
418
419#[must_use]
420#[inline]
421pub fn log10p1(x: f64) -> f64 {
422 unsafe { sys::cr_log10p1(x) }
423}
424
425#[must_use]
426#[inline]
427pub fn log1p(x: f64) -> f64 {
428 unsafe { sys::cr_log1p(x) }
429}
430
431#[must_use]
432#[inline]
433pub fn log2(x: f64) -> f64 {
434 unsafe { sys::cr_log2(x) }
435}
436
437#[must_use]
438#[inline]
439pub fn log2p1(x: f64) -> f64 {
440 unsafe { sys::cr_log2p1(x) }
441}
442
443#[must_use]
444#[inline]
445pub fn pow(x: f64, y: f64) -> f64 {
446 unsafe { sys::cr_pow(x, y) }
447}
448
449#[must_use]
450#[inline]
451pub fn rsqrt(x: f64) -> f64 {
452 unsafe { sys::cr_rsqrt(x) }
453}
454
455#[must_use]
456#[inline]
457pub fn sin(x: f64) -> f64 {
458 unsafe { sys::cr_sin(x) }
459}
460
461#[must_use]
462#[inline]
463pub fn sinh(x: f64) -> f64 {
464 unsafe { sys::cr_sinh(x) }
465}
466
467#[must_use]
468#[inline]
469pub fn sinpi(x: f64) -> f64 {
470 unsafe { sys::cr_sinpi(x) }
471}
472
473#[must_use]
474#[inline]
475pub fn tan(x: f64) -> f64 {
476 unsafe { sys::cr_tan(x) }
477}
478
479#[must_use]
480#[inline]
481pub fn tanh(x: f64) -> f64 {
482 unsafe { sys::cr_tanh(x) }
483}
484
485#[must_use]
486#[inline]
487pub fn tanpi(x: f64) -> f64 {
488 unsafe { sys::cr_tanpi(x) }
489}