|
|
|
@@ -63,8 +63,14 @@ void main() |
|
|
|
#endif |
|
|
|
|
|
|
|
// y = 0.5x * (1 + tanh(sqrt(2/Pi) * (x + 0.044715x^3))) |
|
|
|
|
|
|
|
#if NCNN_moltenvk |
|
|
|
v[0] = 0.5f * v[0] * (1.0f + afpvec4(tanh(vec4(0.79788452f * (v[0] + 0.044715f * v[0] * v[0] * v[0]))))); |
|
|
|
v[1] = 0.5f * v[1] * (1.0f + afpvec4(tanh(vec4(0.79788452f * (v[1] + 0.044715f * v[1] * v[1] * v[1]))))); |
|
|
|
#else |
|
|
|
v[0] = 0.5f * v[0] * (1.0f + tanh(0.79788452f * (v[0] + 0.044715f * v[0] * v[0] * v[0]))); |
|
|
|
v[1] = 0.5f * v[1] * (1.0f + tanh(0.79788452f * (v[1] + 0.044715f * v[1] * v[1] * v[1]))); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if NCNN_image_shader |
|
|
|
image3d_st8(top_blob_3d, ivec3(gx, gy, gz), v); |
|
|
|
|