5#include <metal_integer>
14constant
float inf = metal::numeric_limits<float>::infinity();
134 template <
typename T>
148 template <
typename T>
168 template <
typename T>
170 return static_cast<T
>(
erf(
static_cast<float>(x)));
175 template <
typename T>
177 return static_cast<T
>(
erfinv(
static_cast<float>(x)));
182 template <
typename T>
194 template <
typename T>
196 return static_cast<T
>(
expm1f(
static_cast<float>(x)));
201 template <
typename T>
244 template <
typename T>
251 template <
typename T>
258 template <
typename T>
265 template <
typename T>
272 template <
typename T>
279 template <
typename T>
286 template <
typename T>
297 template <
typename T>
300 return (x < 0) ? 1 - y : y;
305 template <
typename T>
307 return (x > T(0)) - (x < T(0));
316 template <
typename T>
330 template <
typename T>
344 template <
typename T>
351 template <
typename T>
358 template <
typename T>
365 template <
typename T>
374 float t1 = tan_a * tanh_b;
375 float denom = 1. + t1 * t1;
376 return {(tan_a - tanh_b * t1) / denom, (tanh_b + tan_a * t1) / denom};
381 template <
typename T>
390 float t1 = tanh_a * tan_b;
391 float denom = 1. + t1 * t1;
392 return {(tanh_a + tan_b * t1) / denom, (tan_b - tanh_a * t1) / denom};
float erfinv(float a)
Definition erf.h:43
float erf(float a)
Definition erf.h:12
float expm1f(float a)
Definition expm1f.h:80
uint8_t operator()(uint8_t x)
Definition unary.h:23
uint32_t operator()(uint32_t x)
Definition unary.h:31
T operator()(T x)
Definition unary.h:19
complex64_t operator()(complex64_t x)
Definition unary.h:43
bool operator()(bool x)
Definition unary.h:39
uint64_t operator()(uint64_t x)
Definition unary.h:35
uint16_t operator()(uint16_t x)
Definition unary.h:27
T operator()(T x)
Definition unary.h:50
T operator()(T x)
Definition unary.h:57
T operator()(T x)
Definition unary.h:64
T operator()(T x)
Definition unary.h:71
T operator()(T x)
Definition unary.h:78
T operator()(T x)
Definition unary.h:85
int16_t operator()(int16_t x)
Definition unary.h:100
bool operator()(bool x)
Definition unary.h:128
uint32_t operator()(uint32_t x)
Definition unary.h:120
int8_t operator()(int8_t x)
Definition unary.h:96
T operator()(T x)
Definition unary.h:92
int64_t operator()(int64_t x)
Definition unary.h:108
uint64_t operator()(uint64_t x)
Definition unary.h:124
uint8_t operator()(uint8_t x)
Definition unary.h:112
uint16_t operator()(uint16_t x)
Definition unary.h:116
int32_t operator()(int32_t x)
Definition unary.h:104
complex64_t operator()(complex64_t x)
Definition unary.h:162
complex64_t operator()(complex64_t x)
Definition unary.h:140
T operator()(T x)
Definition unary.h:135
T operator()(T x)
Definition unary.h:149
complex64_t operator()(complex64_t x)
Definition unary.h:154
T operator()(T x)
Definition unary.h:169
T operator()(T x)
Definition unary.h:176
complex64_t operator()(complex64_t x)
Definition unary.h:187
T operator()(T x)
Definition unary.h:183
T operator()(T x)
Definition unary.h:195
int8_t operator()(int8_t x)
Definition unary.h:206
int16_t operator()(int16_t x)
Definition unary.h:210
int32_t operator()(int32_t x)
Definition unary.h:214
uint16_t operator()(uint16_t x)
Definition unary.h:226
uint64_t operator()(uint64_t x)
Definition unary.h:234
uint32_t operator()(uint32_t x)
Definition unary.h:230
int64_t operator()(int64_t x)
Definition unary.h:218
bool operator()(bool x)
Definition unary.h:238
uint8_t operator()(uint8_t x)
Definition unary.h:222
T operator()(T x)
Definition unary.h:202
T operator()(T x)
Definition unary.h:259
T operator()(T x)
Definition unary.h:266
T operator()(T x)
Definition unary.h:252
T operator()(T x)
Definition unary.h:245
T operator()(T x)
Definition unary.h:273
T operator()(T x)
Definition unary.h:280
T operator()(T x)
Definition unary.h:287
complex64_t operator()(complex64_t x)
Definition unary.h:291
T operator()(T x)
Definition unary.h:359
T operator()(T x)
Definition unary.h:298
T operator()(T x)
Definition unary.h:306
uint32_t operator()(uint32_t x)
Definition unary.h:310
T operator()(T x)
Definition unary.h:317
complex64_t operator()(complex64_t x)
Definition unary.h:322
T operator()(T x)
Definition unary.h:331
complex64_t operator()(complex64_t x)
Definition unary.h:336
T operator()(T x)
Definition unary.h:352
T operator()(T x)
Definition unary.h:345
T operator()(T x)
Definition unary.h:366
complex64_t operator()(complex64_t x)
Definition unary.h:371
complex64_t operator()(complex64_t x)
Definition unary.h:387
T operator()(T x)
Definition unary.h:382
float imag
Definition complex.h:22
float real
Definition complex.h:21