Numerical Reproducibility in ML Systems
scikit-learn 1.9.1 l2-normalisation kernel, arm64 disassembly
scikit-learn 1.9.1, wheel cp312-cp312-macosx_12_0_arm64, extension sklearn/utils/sparsefuncs_fast.cpython-312-darwin.so
Function: ___pyx_fuse_1_1__pyx_pw_7sklearn_5utils_16sparsefuncs_fast_85_inplace_csr_row_normalize_l2
(the float64 specialisation of _inplace_csr_row_normalize_l2; Cython source: for j in range(indptr[i], indptr[i+1]): sum_ += data[j] * data[j])
Command: otool -tv sparsefuncs_fast.cpython-312-darwin.so (macOS, 2026-10-11)
Whole function: 561 instructions; fmadd 1, fmul 0, fadd 0, fsqrt 1, fdiv 1.
Excerpt around the fused multiply-add (the accumulation loop), then the whole function below.
=== excerpt ===
000000000006244c ldr x10, [x27, x10]
0000000000062450 ldr x11, [x27, x9]
0000000000062454 cmp x11, x10
0000000000062458 b.ge 0x62438
000000000006245c madd x9, x26, x11, x25
0000000000062460 movi d0, #0000000000000000
0000000000062464 mov x12, x9
0000000000062468 mov x13, x11
000000000006246c ldr d1, [x12]
0000000000062470 fmadd d0, d1, d1, d0
0000000000062474 add x13, x13, #0x1
0000000000062478 add x12, x12, x26
000000000006247c cmp x10, x13
0000000000062480 b.ne 0x6246c
0000000000062484 fcmp d0, #0.0
0000000000062488 b.eq 0x62438
000000000006248c sub x10, x10, x11
=== whole function ===
___pyx_fuse_1_1__pyx_pw_7sklearn_5utils_16sparsefuncs_fast_85_inplace_csr_row_normalize_l2:
0000000000062008 sub sp, sp, #0x1d0
000000000006200c stp x28, x27, [sp, #0x170]
0000000000062010 stp x26, x25, [sp, #0x180]
0000000000062014 stp x24, x23, [sp, #0x190]
0000000000062018 stp x22, x21, [sp, #0x1a0]
000000000006201c stp x20, x19, [sp, #0x1b0]
0000000000062020 stp x29, x30, [sp, #0x1c0]
0000000000062024 add x29, sp, #0x1c0
0000000000062028 mov x21, x1
000000000006202c adrp x8, 22 ; 0x78000
0000000000062030 ldr x8, [x8, #0xe0] ; literal pool symbol address: ___stack_chk_guard
0000000000062034 ldr x8, [x8]
0000000000062038 stur x8, [x29, #-0x60]
000000000006203c movi.2d v0, #0000000000000000
0000000000062040 stp q0, q0, [x29, #-0x90]
0000000000062044 ldr x19, [x1, #0x10]
0000000000062048 adrp x8, 27 ; 0x7d000
000000000006204c add x8, x8, #0x7c8
0000000000062050 add x9, x8, #0x418
0000000000062054 stp x8, x9, [x29, #-0xb8]
0000000000062058 add x9, x8, #0x18
000000000006205c add x8, x8, #0x20
0000000000062060 stur x9, [x29, #-0xa8]
0000000000062064 stp x8, xzr, [x29, #-0xa0]
0000000000062068 adrp x24, 22 ; 0x78000
000000000006206c ldr x24, [x24, #0xd0] ; literal pool symbol address: __Py_NoneStruct
0000000000062070 cbz x2, 0x621a8
0000000000062074 mov x20, x2
0000000000062078 mov x0, x2
000000000006207c bl 0x72d98 ; symbol stub for: _PyDict_Size
0000000000062080 tbnz x0, #0x3f, 0x62730
0000000000062084 mov x6, x0
0000000000062088 cbz x0, 0x621a8
000000000006208c cmp x19, #0x4
0000000000062090 b.hi 0x625cc
0000000000062094 adrp x8, 17 ; 0x73000
0000000000062098 add x8, x8, #0x93b
000000000006209c adr x9, #16
00000000000620a0 ldrb w10, [x8, x19]
00000000000620a4 add x9, x9, x10, lsl #2
00000000000620a8 br x9
00000000000620ac ldr x8, [x21, #0x30]
00000000000620b0 ldr w9, [x8]
00000000000620b4 adds w9, w9, #0x1
00000000000620b8 b.hs 0x620c0
00000000000620bc str w9, [x8]
00000000000620c0 stur x8, [x29, #-0x78]
00000000000620c4 ldr x8, [x21, #0x28]
00000000000620c8 ldr w9, [x8]
00000000000620cc adds w9, w9, #0x1
00000000000620d0 b.hs 0x620d8
00000000000620d4 str w9, [x8]
00000000000620d8 stur x8, [x29, #-0x80]
00000000000620dc ldr x8, [x21, #0x20]
00000000000620e0 ldr w9, [x8]
00000000000620e4 adds w9, w9, #0x1
00000000000620e8 b.hs 0x620f0
00000000000620ec str w9, [x8]
00000000000620f0 stur x8, [x29, #-0x88]
00000000000620f4 ldr x8, [x21, #0x18]
00000000000620f8 ldr w9, [x8]
00000000000620fc adds w9, w9, #0x1
0000000000062100 b.hs 0x62108
0000000000062104 str w9, [x8]
0000000000062108 stur x8, [x29, #-0x90]
000000000006210c ldr x8, [x20, #0x8]
0000000000062110 ldrb w8, [x8, #0xab]
0000000000062114 tbz w8, #0x2, 0x626b8
0000000000062118 adrp x8, 27 ; 0x7d000
000000000006211c ldr x8, [x8, #0x430]
0000000000062120 str wzr, [sp]
0000000000062124 adrp x7, 21 ; 0x77000
0000000000062128 add x7, x7, #0xaaa ; literal pool for: "_inplace_csr_row_normalize_l2"
000000000006212c sub x2, x29, #0xb8
0000000000062130 sub x4, x29, #0x90
0000000000062134 mov x0, x20
0000000000062138 mov x1, #0x0
000000000006213c mov x3, #0x0
0000000000062140 mov x5, x19
0000000000062144 blr x8
0000000000062148 tbnz w0, #0x1f, 0x62730
000000000006214c cmp x19, #0x3
0000000000062150 b.hi 0x62204
0000000000062154 sub x8, x29, #0x90
0000000000062158 ldr x8, [x8, x19, lsl #3]
000000000006215c cbz x8, 0x626f0
0000000000062160 add x9, x19, #0x1
0000000000062164 cmp x9, #0x4
0000000000062168 b.eq 0x62204
000000000006216c sub x8, x29, #0x90
0000000000062170 add x8, x8, x19, lsl #3
0000000000062174 ldr x10, [x8, #0x8]
0000000000062178 cbz x10, 0x626ec
000000000006217c add x9, x19, #0x2
0000000000062180 cmp x9, #0x4
0000000000062184 b.eq 0x62204
0000000000062188 ldr x10, [x8, #0x10]
000000000006218c cbz x10, 0x626ec
0000000000062190 add x19, x19, #0x3
0000000000062194 cmp x19, #0x4
0000000000062198 b.eq 0x62204
000000000006219c ldr x8, [x8, #0x18]
00000000000621a0 cbnz x8, 0x62204
00000000000621a4 b 0x626f0
00000000000621a8 cmp x19, #0x4
00000000000621ac b.ne 0x625cc
00000000000621b0 ldr x8, [x21, #0x18]
00000000000621b4 ldr w9, [x8]
00000000000621b8 adds w9, w9, #0x1
00000000000621bc b.lo 0x62304
00000000000621c0 stur x8, [x29, #-0x90]
00000000000621c4 ldr x8, [x21, #0x20]
00000000000621c8 ldr w9, [x8]
00000000000621cc adds w9, w9, #0x1
00000000000621d0 b.lo 0x6231c
00000000000621d4 stur x8, [x29, #-0x88]
00000000000621d8 ldr x8, [x21, #0x28]
00000000000621dc ldr w9, [x8]
00000000000621e0 adds w9, w9, #0x1
00000000000621e4 b.lo 0x62334
00000000000621e8 stur x8, [x29, #-0x80]
00000000000621ec ldr x8, [x21, #0x30]
00000000000621f0 ldr w9, [x8]
00000000000621f4 adds w9, w9, #0x1
00000000000621f8 b.hs 0x62200
00000000000621fc str w9, [x8]
0000000000062200 stur x8, [x29, #-0x78]
0000000000062204 ldur x7, [x29, #-0x90]
0000000000062208 movi.2d v0, #0000000000000000
000000000006220c stp q0, q0, [sp, #0x30]
0000000000062210 stp q0, q0, [sp, #0x50]
0000000000062214 stp q0, q0, [sp, #0x70]
0000000000062218 stp q0, q0, [sp, #0x90]
000000000006221c stp q0, q0, [sp, #0xb0]
0000000000062220 stp q0, q0, [sp, #0xd0]
0000000000062224 mov w8, #0x11
0000000000062228 stur w8, [x29, #-0xbc]
000000000006222c adrp x21, 27 ; 0x7d000
0000000000062230 str q0, [sp, #0xf0]
0000000000062234 cmp x7, x24
0000000000062238 b.eq 0x62280
000000000006223c ldr x8, [x21, #0x448]
0000000000062240 adrp x4, 22 ; 0x78000
0000000000062244 add x4, x4, #0x440
0000000000062248 sub x0, x29, #0xbc
000000000006224c sub x5, x29, #0x70
0000000000062250 add x6, sp, #0x30
0000000000062254 mov w1, #0x0
0000000000062258 mov w2, #0x1d
000000000006225c mov w3, #0x1
0000000000062260 blr x8
0000000000062264 cmn w0, #0x1
0000000000062268 b.eq 0x62694
000000000006226c ldr x19, [sp, #0x30]
0000000000062270 cbz x19, 0x626a0
0000000000062274 ldr x25, [sp, #0x38]
0000000000062278 ldr x26, [sp, #0x80]
000000000006227c b 0x62290
0000000000062280 mov x25, #0x0
0000000000062284 mov x26, #0x0
0000000000062288 adrp x19, 22 ; 0x78000
000000000006228c ldr x19, [x19, #0xd0] ; literal pool symbol address: __Py_NoneStruct
0000000000062290 ldp x22, x7, [x29, #-0x88]
0000000000062294 movi.2d v0, #0000000000000000
0000000000062298 stp q0, q0, [sp, #0x30]
000000000006229c stp q0, q0, [sp, #0x50]
00000000000622a0 stp q0, q0, [sp, #0x70]
00000000000622a4 stp q0, q0, [sp, #0x90]
00000000000622a8 stp q0, q0, [sp, #0xb0]
00000000000622ac stp q0, q0, [sp, #0xd0]
00000000000622b0 str q0, [sp, #0xf0]
00000000000622b4 mov w8, #0x11
00000000000622b8 stur w8, [x29, #-0xbc]
00000000000622bc cmp x7, x24
00000000000622c0 b.eq 0x62350
00000000000622c4 ldr x8, [x21, #0x448]
00000000000622c8 adrp x4, 22 ; 0x78000
00000000000622cc add x4, x4, #0x370
00000000000622d0 sub x0, x29, #0xbc
00000000000622d4 sub x5, x29, #0x70
00000000000622d8 add x6, sp, #0x30
00000000000622dc mov w1, #0x0
00000000000622e0 mov w2, #0x1c
00000000000622e4 mov w3, #0x1
00000000000622e8 blr x8
00000000000622ec cmn w0, #0x1
00000000000622f0 b.eq 0x626ac
00000000000622f4 ldr x20, [sp, #0x30]
00000000000622f8 cbnz x20, 0x62358
00000000000622fc mov w21, #0x245
0000000000062300 b 0x6273c
0000000000062304 str w9, [x8]
0000000000062308 stur x8, [x29, #-0x90]
000000000006230c ldr x8, [x21, #0x20]
0000000000062310 ldr w9, [x8]
0000000000062314 adds w9, w9, #0x1
0000000000062318 b.hs 0x621d4
000000000006231c str w9, [x8]
0000000000062320 stur x8, [x29, #-0x88]
0000000000062324 ldr x8, [x21, #0x28]
0000000000062328 ldr w9, [x8]
000000000006232c adds w9, w9, #0x1
0000000000062330 b.hs 0x621e8
0000000000062334 str w9, [x8]
0000000000062338 stur x8, [x29, #-0x80]
000000000006233c ldr x8, [x21, #0x30]
0000000000062340 ldr w9, [x8]
0000000000062344 adds w9, w9, #0x1
0000000000062348 b.lo 0x621fc
000000000006234c b 0x62200
0000000000062350 adrp x20, 22 ; 0x78000
0000000000062354 ldr x20, [x20, #0xd0] ; literal pool symbol address: __Py_NoneStruct
0000000000062358 ldur x7, [x29, #-0x78]
000000000006235c movi.2d v0, #0000000000000000
0000000000062360 stp q0, q0, [sp, #0x30]
0000000000062364 stp q0, q0, [sp, #0x50]
0000000000062368 stp q0, q0, [sp, #0x70]
000000000006236c stp q0, q0, [sp, #0x90]
0000000000062370 stp q0, q0, [sp, #0xb0]
0000000000062374 stp q0, q0, [sp, #0xd0]
0000000000062378 str q0, [sp, #0xf0]
000000000006237c mov w8, #0x11
0000000000062380 stur w8, [x29, #-0xbc]
0000000000062384 cmp x7, x24
0000000000062388 b.eq 0x623d0
000000000006238c ldr x8, [x21, #0x448]
0000000000062390 adrp x4, 22 ; 0x78000
0000000000062394 add x4, x4, #0x370
0000000000062398 sub x0, x29, #0xbc
000000000006239c sub x5, x29, #0x70
00000000000623a0 add x6, sp, #0x30
00000000000623a4 mov w1, #0x0
00000000000623a8 mov w2, #0x1c
00000000000623ac mov w3, #0x1
00000000000623b0 blr x8
00000000000623b4 cmn w0, #0x1
00000000000623b8 b.eq 0x625c4
00000000000623bc ldr x21, [sp, #0x30]
00000000000623c0 cbz x21, 0x625c4
00000000000623c4 ldr x27, [sp, #0x38]
00000000000623c8 ldr x28, [sp, #0x80]
00000000000623cc b 0x623e0
00000000000623d0 mov x27, #0x0
00000000000623d4 mov x28, #0x0
00000000000623d8 adrp x21, 22 ; 0x78000
00000000000623dc ldr x21, [x21, #0xd0] ; literal pool symbol address: __Py_NoneStruct
00000000000623e0 mov x0, x22
00000000000623e4 mov x1, #0x0
00000000000623e8 bl ___Pyx_GetItemInt_Fast
00000000000623ec mov x23, x0
00000000000623f0 cbz x0, 0x6261c
00000000000623f4 mov x0, x23
00000000000623f8 bl ___Pyx_PyLong_As_unsigned_PY_LONG_LONG
00000000000623fc mov x22, x0
0000000000062400 cmn x0, #0x1
0000000000062404 b.ne 0x62410
0000000000062408 bl 0x72de0 ; symbol stub for: _PyErr_Occurred
000000000006240c cbnz x0, 0x6261c
0000000000062410 ldr x8, [x23]
0000000000062414 tbnz w8, #0x1f, 0x6242c
0000000000062418 subs x8, x8, #0x1
000000000006241c str x8, [x23]
0000000000062420 b.ne 0x6242c
0000000000062424 mov x0, x23
0000000000062428 bl 0x7323c ; symbol stub for: __Py_Dealloc
000000000006242c cbz x22, 0x624b0
0000000000062430 mov x8, #0x0
0000000000062434 b 0x62440
0000000000062438 cmp x8, x22
000000000006243c b.eq 0x624b0
0000000000062440 mul x9, x8, x28
0000000000062444 add x8, x8, #0x1
0000000000062448 mul x10, x8, x28
000000000006244c ldr x10, [x27, x10]
0000000000062450 ldr x11, [x27, x9]
0000000000062454 cmp x11, x10
0000000000062458 b.ge 0x62438
000000000006245c madd x9, x26, x11, x25
0000000000062460 movi d0, #0000000000000000
0000000000062464 mov x12, x9
0000000000062468 mov x13, x11
000000000006246c ldr d1, [x12]
0000000000062470 fmadd d0, d1, d1, d0
0000000000062474 add x13, x13, #0x1
0000000000062478 add x12, x12, x26
000000000006247c cmp x10, x13
0000000000062480 b.ne 0x6246c
0000000000062484 fcmp d0, #0.0
0000000000062488 b.eq 0x62438
000000000006248c sub x10, x10, x11
0000000000062490 fsqrt d0, d0
0000000000062494 ldr d1, [x9]
0000000000062498 fdiv d1, d1, d0
000000000006249c str d1, [x9]
00000000000624a0 add x9, x9, x26
00000000000624a4 subs x10, x10, #0x1
00000000000624a8 b.ne 0x62494
00000000000624ac b 0x62438
00000000000624b0 ldr w8, [x24]
00000000000624b4 mov x22, x24
00000000000624b8 adds w8, w8, #0x1
00000000000624bc b.hs 0x624c8
00000000000624c0 str w8, [x24]
00000000000624c4 mov x22, x24
00000000000624c8 ldur x0, [x29, #-0x90]
00000000000624cc cbz x0, 0x624e8
00000000000624d0 ldr x8, [x0]
00000000000624d4 tbnz w8, #0x1f, 0x624e8
00000000000624d8 subs x8, x8, #0x1
00000000000624dc str x8, [x0]
00000000000624e0 b.ne 0x624e8
00000000000624e4 bl 0x7323c ; symbol stub for: __Py_Dealloc
00000000000624e8 ldur x0, [x29, #-0x88]
00000000000624ec cbz x0, 0x62508
00000000000624f0 ldr x8, [x0]
00000000000624f4 tbnz w8, #0x1f, 0x62508
00000000000624f8 subs x8, x8, #0x1
00000000000624fc str x8, [x0]
0000000000062500 b.ne 0x62508
0000000000062504 bl 0x7323c ; symbol stub for: __Py_Dealloc
0000000000062508 ldur x0, [x29, #-0x80]
000000000006250c cbz x0, 0x62528
0000000000062510 ldr x8, [x0]
0000000000062514 tbnz w8, #0x1f, 0x62528
0000000000062518 subs x8, x8, #0x1
000000000006251c str x8, [x0]
0000000000062520 b.ne 0x62528
0000000000062524 bl 0x7323c ; symbol stub for: __Py_Dealloc
0000000000062528 ldur x0, [x29, #-0x78]
000000000006252c cbz x0, 0x62548
0000000000062530 ldr x8, [x0]
0000000000062534 tbnz w8, #0x1f, 0x62548
0000000000062538 subs x8, x8, #0x1
000000000006253c str x8, [x0]
0000000000062540 b.ne 0x62548
0000000000062544 bl 0x7323c ; symbol stub for: __Py_Dealloc
0000000000062548 cmp x19, x24
000000000006254c b.eq 0x62564
0000000000062550 add x8, x19, #0x38
0000000000062554 mov w9, #-0x1
0000000000062558 ldaddal w9, w8, [x8]
000000000006255c subs w8, w8, #0x1
0000000000062560 b.le 0x6264c
0000000000062564 cbz x20, 0x62584
0000000000062568 cmp x20, x24
000000000006256c b.eq 0x62584
0000000000062570 add x8, x20, #0x38
0000000000062574 mov w9, #-0x1
0000000000062578 ldaddal w9, w8, [x8]
000000000006257c subs w8, w8, #0x1
0000000000062580 b.le 0x62670
0000000000062584 cmp x21, x24
0000000000062588 b.eq 0x62818
000000000006258c add x8, x21, #0x38
0000000000062590 mov w9, #-0x1
0000000000062594 ldaddal w9, w8, [x8]
0000000000062598 subs w8, w8, #0x1
000000000006259c b.gt 0x62818
00000000000625a0 b.ne 0x628a0
00000000000625a4 ldr x8, [x21]
00000000000625a8 tbnz w8, #0x1f, 0x62818
00000000000625ac subs x8, x8, #0x1
00000000000625b0 str x8, [x21]
00000000000625b4 b.ne 0x62818
00000000000625b8 mov x0, x21
00000000000625bc bl 0x7323c ; symbol stub for: __Py_Dealloc
00000000000625c0 b 0x62818
00000000000625c4 mov w21, #0x246
00000000000625c8 b 0x6273c
00000000000625cc adrp x8, 22 ; 0x78000
00000000000625d0 ldr x8, [x8, #0x70] ; literal pool symbol address: _PyExc_TypeError
00000000000625d4 ldr x0, [x8]
00000000000625d8 adrp x8, 20 ; 0x76000
00000000000625dc add x8, x8, #0xec3 ; literal pool for: "s"
00000000000625e0 mov w10, #0x4
00000000000625e4 stp x8, x19, [sp, #0x18]
00000000000625e8 adrp x8, 20 ; 0x76000
00000000000625ec add x8, x8, #0xe7f ; literal pool for: "exactly"
00000000000625f0 adrp x9, 21 ; 0x77000
00000000000625f4 add x9, x9, #0xaaa ; literal pool for: "_inplace_csr_row_normalize_l2"
00000000000625f8 stp x8, x10, [sp, #0x8]
00000000000625fc str x9, [sp]
0000000000062600 adrp x1, 20 ; 0x76000
0000000000062604 add x1, x1, #0xe87 ; literal pool for: "%.200s() takes %.8s %zd positional argument%.1s (%zd given)"
0000000000062608 bl 0x72dbc ; symbol stub for: _PyErr_Format
000000000006260c mov x20, #0x0
0000000000062610 mov x19, #0x0
0000000000062614 mov w21, #0x242
0000000000062618 b 0x6275c
000000000006261c mov x0, x23
0000000000062620 bl _Py_XDECREF
0000000000062624 adrp x0, 21 ; 0x77000
0000000000062628 add x0, x0, #0xac8 ; literal pool for: "sklearn.utils.sparsefuncs_fast._inplace_csr_row_normalize_l2"
000000000006262c adrp x2, 20 ; 0x76000
0000000000062630 add x2, x2, #0x555 ; literal pool for: "sklearn/utils/sparsefuncs_fast.pyx"
0000000000062634 mov w1, #0x249
0000000000062638 bl ___Pyx_AddTraceback
000000000006263c mov x22, #0x0
0000000000062640 ldur x0, [x29, #-0x90]
0000000000062644 cbnz x0, 0x624d0
0000000000062648 b 0x624e8
000000000006264c b.ne 0x628a8
0000000000062650 ldr x8, [x19]
0000000000062654 tbnz w8, #0x1f, 0x62564
0000000000062658 subs x8, x8, #0x1
000000000006265c str x8, [x19]
0000000000062660 b.ne 0x62564
0000000000062664 mov x0, x19
0000000000062668 bl 0x7323c ; symbol stub for: __Py_Dealloc
000000000006266c b 0x62564
0000000000062670 b.ne 0x628b0
0000000000062674 ldr x8, [x20]
0000000000062678 tbnz w8, #0x1f, 0x62584
000000000006267c subs x8, x8, #0x1
0000000000062680 str x8, [x20]
0000000000062684 b.ne 0x62584
0000000000062688 mov x0, x20
000000000006268c bl 0x7323c ; symbol stub for: __Py_Dealloc
0000000000062690 b 0x62584
0000000000062694 mov x20, #0x0
0000000000062698 mov x19, #0x0
000000000006269c b 0x626a4
00000000000626a0 mov x20, #0x0
00000000000626a4 mov w21, #0x243
00000000000626a8 b 0x6273c
00000000000626ac mov x20, #0x0
00000000000626b0 mov w21, #0x245
00000000000626b4 b 0x6273c
00000000000626b8 adrp x8, 27 ; 0x7d000
00000000000626bc ldr x8, [x8, #0x438]
00000000000626c0 adrp x5, 21 ; 0x77000
00000000000626c4 add x5, x5, #0xaaa ; literal pool for: "_inplace_csr_row_normalize_l2"
00000000000626c8 sub x1, x29, #0xb8
00000000000626cc sub x2, x29, #0x90
00000000000626d0 mov x0, x20
00000000000626d4 mov x3, x19
00000000000626d8 mov x4, x6
00000000000626dc mov w6, #0x0
00000000000626e0 blr x8
00000000000626e4 tbz w0, #0x1f, 0x6214c
00000000000626e8 b 0x62730
00000000000626ec mov x19, x9
00000000000626f0 adrp x8, 22 ; 0x78000
00000000000626f4 ldr x8, [x8, #0x70] ; literal pool symbol address: _PyExc_TypeError
00000000000626f8 ldr x0, [x8]
00000000000626fc adrp x8, 20 ; 0x76000
0000000000062700 add x8, x8, #0xec3 ; literal pool for: "s"
0000000000062704 mov w10, #0x4
0000000000062708 stp x8, x19, [sp, #0x18]
000000000006270c adrp x8, 20 ; 0x76000
0000000000062710 add x8, x8, #0xe7f ; literal pool for: "exactly"
0000000000062714 adrp x9, 21 ; 0x77000
0000000000062718 add x9, x9, #0xaaa ; literal pool for: "_inplace_csr_row_normalize_l2"
000000000006271c stp x8, x10, [sp, #0x8]
0000000000062720 str x9, [sp]
0000000000062724 adrp x1, 20 ; 0x76000
0000000000062728 add x1, x1, #0xe87 ; literal pool for: "%.200s() takes %.8s %zd positional argument%.1s (%zd given)"
000000000006272c bl 0x72dbc ; symbol stub for: _PyErr_Format
0000000000062730 mov x20, #0x0
0000000000062734 mov x19, #0x0
0000000000062738 mov w21, #0x242
000000000006273c ldur x0, [x29, #-0x90]
0000000000062740 cbz x0, 0x6275c
0000000000062744 ldr x8, [x0]
0000000000062748 tbnz w8, #0x1f, 0x6275c
000000000006274c subs x8, x8, #0x1
0000000000062750 str x8, [x0]
0000000000062754 b.ne 0x6275c
0000000000062758 bl 0x7323c ; symbol stub for: __Py_Dealloc
000000000006275c ldur x0, [x29, #-0x88]
0000000000062760 cbz x0, 0x6277c
0000000000062764 ldr x8, [x0]
0000000000062768 tbnz w8, #0x1f, 0x6277c
000000000006276c subs x8, x8, #0x1
0000000000062770 str x8, [x0]
0000000000062774 b.ne 0x6277c
0000000000062778 bl 0x7323c ; symbol stub for: __Py_Dealloc
000000000006277c ldur x0, [x29, #-0x80]
0000000000062780 cbz x0, 0x6279c
0000000000062784 ldr x8, [x0]
0000000000062788 tbnz w8, #0x1f, 0x6279c
000000000006278c subs x8, x8, #0x1
0000000000062790 str x8, [x0]
0000000000062794 b.ne 0x6279c
0000000000062798 bl 0x7323c ; symbol stub for: __Py_Dealloc
000000000006279c ldur x0, [x29, #-0x78]
00000000000627a0 cbz x0, 0x627bc
00000000000627a4 ldr x8, [x0]
00000000000627a8 tbnz w8, #0x1f, 0x627bc
00000000000627ac subs x8, x8, #0x1
00000000000627b0 str x8, [x0]
00000000000627b4 b.ne 0x627bc
00000000000627b8 bl 0x7323c ; symbol stub for: __Py_Dealloc
00000000000627bc cbz x19, 0x627dc
00000000000627c0 cmp x19, x24
00000000000627c4 b.eq 0x627dc
00000000000627c8 add x8, x19, #0x38
00000000000627cc mov w9, #-0x1
00000000000627d0 ldaddal w9, w8, [x8]
00000000000627d4 subs w8, w8, #0x1
00000000000627d8 b.le 0x62854
00000000000627dc cbz x20, 0x627fc
00000000000627e0 cmp x20, x24
00000000000627e4 b.eq 0x627fc
00000000000627e8 add x8, x20, #0x38
00000000000627ec mov w9, #-0x1
00000000000627f0 ldaddal w9, w8, [x8]
00000000000627f4 subs w8, w8, #0x1
00000000000627f8 b.le 0x62878
00000000000627fc adrp x0, 21 ; 0x77000
0000000000062800 add x0, x0, #0xac8 ; literal pool for: "sklearn.utils.sparsefuncs_fast._inplace_csr_row_normalize_l2"
0000000000062804 adrp x2, 20 ; 0x76000
0000000000062808 add x2, x2, #0x555 ; literal pool for: "sklearn/utils/sparsefuncs_fast.pyx"
000000000006280c mov x1, x21
0000000000062810 bl ___Pyx_AddTraceback
0000000000062814 mov x22, #0x0
0000000000062818 ldur x8, [x29, #-0x60]
000000000006281c adrp x9, 22 ; 0x78000
0000000000062820 ldr x9, [x9, #0xe0] ; literal pool symbol address: ___stack_chk_guard
0000000000062824 ldr x9, [x9]
0000000000062828 cmp x9, x8
000000000006282c b.ne 0x6289c
0000000000062830 mov x0, x22
0000000000062834 ldp x29, x30, [sp, #0x1c0]
0000000000062838 ldp x20, x19, [sp, #0x1b0]
000000000006283c ldp x22, x21, [sp, #0x1a0]
0000000000062840 ldp x24, x23, [sp, #0x190]
0000000000062844 ldp x26, x25, [sp, #0x180]
0000000000062848 ldp x28, x27, [sp, #0x170]
000000000006284c add sp, sp, #0x1d0
0000000000062850 ret
0000000000062854 b.ne 0x628b8
0000000000062858 ldr x8, [x19]
000000000006285c tbnz w8, #0x1f, 0x627dc
0000000000062860 subs x8, x8, #0x1
0000000000062864 str x8, [x19]
0000000000062868 b.ne 0x627dc
000000000006286c mov x0, x19
0000000000062870 bl 0x7323c ; symbol stub for: __Py_Dealloc
0000000000062874 b 0x627dc
0000000000062878 b.ne 0x628c0
000000000006287c ldr x8, [x20]
0000000000062880 tbnz w8, #0x1f, 0x627fc
0000000000062884 subs x8, x8, #0x1
0000000000062888 str x8, [x20]
000000000006288c b.ne 0x627fc
0000000000062890 mov x0, x20
0000000000062894 bl 0x7323c ; symbol stub for: __Py_Dealloc
0000000000062898 b 0x627fc
000000000006289c bl 0x73254 ; symbol stub for: ___stack_chk_fail
00000000000628a0 mov w9, #0x7a88
00000000000628a4 b 0x628c4
00000000000628a8 mov w9, #0x7a86
00000000000628ac b 0x628c4
00000000000628b0 mov w9, #0x7a87
00000000000628b4 b 0x628c4
00000000000628b8 mov w9, #0x7a79
00000000000628bc b 0x628c4
00000000000628c0 mov w9, #0x7a7a
00000000000628c4 stp x8, x9, [sp]
00000000000628c8 bl ___pyx_fatalerror
