Spaces:
Running
Running
import SpecialFunctions: gamma, lgamma, erf, erfc, beta | |
# Define allowed operators. Any julia operator can also be used. | |
plus(x::Float32, y::Float32)::Float32 = x+y #Do not change the name of this operator. | |
mult(x::Float32, y::Float32)::Float32 = x*y #Do not change the name of this operator. | |
pow(x::Float32, y::Float32)::Float32 = sign(x)*abs(x)^y | |
div(x::Float32, y::Float32)::Float32 = x/y | |
logm(x::Float32)::Float32 = log(abs(x) + 1f-8) | |
logm2(x::Float32)::Float32 = log2(abs(x) + 1f-8) | |
logm10(x::Float32)::Float32 = log10(abs(x) + 1f-8) | |
sqrtm(x::Float32)::Float32 = sqrt(abs(x)) | |
neg(x::Float32)::Float32 = -x | |
function greater(x::Float32, y::Float32)::Float32 | |
if x > y | |
return 1f0 | |
end | |
return 0f0 | |
end | |
function relu(x::Float32)::Float32 | |
if x > 0f0 | |
return x | |
end | |
return 0f0 | |
end | |
function logical_or(x::Float32, y::Float32)::Float32 | |
if x > 0f0 || y > 0f0 | |
return 1f0 | |
end | |
return 0f0 | |
end | |
# (Just use multiplication normally) | |
function logical_and(x::Float32, y::Float32)::Float32 | |
if x > 0f0 && y > 0f0 | |
return 1f0 | |
end | |
return 0f0 | |
end | |