## 指数分布 −log u 每个 TC VREG 的变换指令(含生成 (0, 1] 均匀数的 3 条)7.0 条:vsub.8x128.f32 2,vshrl.8x128.s32 1,vor.8x128.u32 1,vlog2.8x128.f32 1,vpop.8x128 1,vmul.8x128.f32 1 u 的最小值 1.22786e-05,最大值 0.999995;结果的最小 0.0000,最大 11.3077,均值 0.9952(理论值 1.0000) 与同一 u 的 float64 公式相比:最大绝对误差 1.07e-04,最大相对误差 3.63e-04;非有限值 0 个 { va0: vlog2.8x128.f32 erf, v25 ; vst: vst.8x128 [vmem:0x0], v25 ; .encoding { vst.opcode = s0 } } { va0: vrng.8x128.u32 v26 } { va1: vshrl.8x128.s32 v27, v26, 0x9 } { va0: vor.8x128.u32 v28, 0x3f800000, v27 } ## Gumbel 分布 −log(−log u) 每个 TC VREG 的变换指令(含生成 (0, 1] 均匀数的 3 条)11.0 条:vsub.8x128.f32 3,vlog2.8x128.f32 2,vpop.8x128 2,vmul.8x128.f32 2,vshrl.8x128.s32 1,vor.8x128.u32 1 u 的最小值 1.22786e-05,最大值 0.999995;结果的最小 -2.4255,最大 12.1136,均值 0.5833(理论值 0.5772) 与同一 u 的 float64 公式相比:最大绝对误差 3.58e-04,最大相对误差 2.40e-01;非有限值 0 个 { va0: vlog2.8x128.f32 erf, v25 ; vst: vst.8x128 [vmem:0x0], v25 ; .encoding { vst.opcode = s0 } } { va0: vrng.8x128.u32 v26 } { va1: vshrl.8x128.s32 v27, v26, 0x9 } { va0: vor.8x128.u32 v28, 0x3f800000, v27 } u ≥ 2^-23 时 −log u 的上限 23 · ln 2 = 15.9424;u = 1 时 Gumbel 为 +∞,概率 2^-23