|
1 | 1 | using DynamicExpressions |
2 | 2 |
|
3 | 3 | maximum_residual = 1e-2 |
4 | | -safe_log(x::T) where {T} = (x <= 0) ? T(NaN) : log(x) |
5 | | -safe_log2(x::T) where {T} = (x <= 0) ? T(NaN) : log2(x) |
6 | | -safe_log10(x::T) where {T} = (x <= 0) ? T(NaN) : log10(x) |
7 | | -safe_log1p(x::T) where {T} = (x <= -1) ? T(NaN) : log1p(x) |
8 | | -safe_sqrt(x::T) where {T} = (x < 0) ? T(NaN) : sqrt(x) |
9 | | -safe_pow(x::T, y::T) where {T} = (x < 0 && y != round(y)) ? T(NaN) : x^y |
10 | | -relu(x::T) where {T} = (x < 0) ? zero(T) : x |
11 | | -safe_acosh(x::T) where {T} = (x < 1) ? T(NaN) : acosh(x) |
12 | | -sub(x::T, y::T) where {T} = x - y |
13 | | -greater(x::T, y::T) where {T} = (x > y) ? one(T) : zero(T) |
14 | 4 |
|
15 | | -safe_log(x) = log(x) |
16 | | -safe_log2(x) = log2(x) |
17 | | -safe_log10(x) = log10(x) |
18 | | -safe_log1p(x) = log1p(x) |
19 | | -safe_sqrt(x) = sqrt(x) |
20 | | -safe_pow(x, y) = x^y |
21 | | -relu(x) = max(x, 0) |
22 | | -safe_acosh(x) = acosh(x) |
23 | | -sub(x, y) = x - y |
24 | | -square(x) = x * x |
25 | | -cube(x) = x * x * x |
26 | | -greater(x, y) = (x > y) |
| 5 | +(@isdefined HEADER_GUARD_TEST_PARAMS) || @eval begin |
| 6 | + safe_log(x::T) where {T<:Number} = (x <= 0) ? T(NaN) : log(x) |
| 7 | + safe_log2(x::T) where {T<:Number} = (x <= 0) ? T(NaN) : log2(x) |
| 8 | + safe_log10(x::T) where {T<:Number} = (x <= 0) ? T(NaN) : log10(x) |
| 9 | + safe_log1p(x::T) where {T<:Number} = (x <= -1) ? T(NaN) : log1p(x) |
| 10 | + safe_sqrt(x::T) where {T<:Number} = (x < 0) ? T(NaN) : sqrt(x) |
| 11 | + safe_pow(x::T, y::T) where {T<:Number} = (x < 0 && y != round(y)) ? T(NaN) : x^y |
| 12 | + relu(x::T) where {T<:Number} = (x < 0) ? zero(T) : x |
| 13 | + safe_acosh(x::T) where {T<:Number} = (x < 1) ? T(NaN) : acosh(x) |
| 14 | + sub(x::T, y::T) where {T<:Number} = x - y |
| 15 | + greater(x::T, y::T) where {T<:Number} = (x > y) ? one(T) : zero(T) |
27 | 16 |
|
28 | | -custom_cos(x) = cos(x) |
| 17 | + safe_log(x) = log(x) |
| 18 | + safe_log2(x) = log2(x) |
| 19 | + safe_log10(x) = log10(x) |
| 20 | + safe_log1p(x) = log1p(x) |
| 21 | + safe_sqrt(x) = sqrt(x) |
| 22 | + safe_pow(x, y) = x^y |
| 23 | + relu(x) = max(x, 0) |
| 24 | + safe_acosh(x) = acosh(x) |
| 25 | + sub(x, y) = x - y |
| 26 | + square(x) = x * x |
| 27 | + cube(x) = x * x * x |
| 28 | + greater(x, y) = (x > y) |
| 29 | + |
| 30 | + custom_cos(x) = cos(x) |
| 31 | +end |
| 32 | + |
| 33 | +HEADER_GUARD_TEST_PARAMS = true |
29 | 34 |
|
30 | 35 | default_params = (binary_operators=(/, +, *), unary_operators=(exp, custom_cos)) |
0 commit comments