示例#1
0
 def approx_exp(x):
     x = relay.minimum(relay.maximum(x, C((- 88.0))), C(88.0))
     x = (C(127.0) + (x * C(1.44269504)))
     xf = relay.floor(x)
     i = relay.cast(xf, 'int32')
     x = (x - xf)
     Y = (C(0.99992522) + (x * (C(0.69583354) + (x * (C(0.22606716) + (x * C(0.078024523)))))))
     exponent = relay.left_shift(i, relay.expr.const(23, 'int32'))
     exponent = relay.reinterpret(exponent, 'float32')
     return (exponent * Y)
示例#2
0
 def approx_exp(x):
     # An approximation derived from Opus,
     # https://github.com/xiph/opus/blob/c1c247/celt/mathops.h#L147-L165
     x = relay.minimum(relay.maximum(x, C(-88.0)), C(88.0))
     x = C(127.0) + x * C(1.44269504)
     xf = relay.floor(x)
     i = relay.cast(xf, "int32")
     x = x - xf
     Y = C(0.99992522) + x * (C(0.69583354) + x * (C(0.22606716) + x * C(0.078024523)))
     exponent = relay.left_shift(i, relay.expr.const(23, "int32"))
     exponent = relay.reinterpret(exponent, "float32")
     return exponent * Y