@@ -461,10 +461,9 @@ function solve_unroll_lagrange(X, R, u₁L, u₂L, u₁step::Int, u₂step::Int,
461
461
u₁float_finite = isfinite (u₁float)
462
462
u₂float_finite = isfinite (u₂float)
463
463
if ! (u₁float_finite & u₂float_finite) # brute force
464
- u₁low = u₂low = 1
465
- u₁high = Core. ifelse (iszero (X₃), 1 , Core. ifelse (atleast31registers, 8 , 6 ))
466
- u₂high = Core. ifelse (iszero (X₂), 1 , Core. ifelse (atleast31registers, 8 , 6 ))
467
- return solve_unroll_iter (X, R, u₁L, u₂L, u₁low: u₁step: u₁high, u₂low: u₂step: u₂high)
464
+ u₁high = Core. ifelse (iszero (X₃), u₁step, Core. ifelse (atleast31registers, 8 , 6 ))
465
+ u₂high = Core. ifelse (iszero (X₂), u₂step, Core. ifelse (atleast31registers, 8 , 6 ))
466
+ return solve_unroll_iter (X, R, u₁L, u₂L, u₁step: u₁step: u₁high, u₂step: u₂step: u₂high)
468
467
end
469
468
u₁low = floor (Int, u₁float)
470
469
u₂low = max (u₂step, floor (Int, 0.8 u₂float)) # must be at least 1
@@ -477,8 +476,8 @@ function solve_unroll_lagrange(X, R, u₁L, u₂L, u₁step::Int, u₂step::Int,
477
476
u₂low = solve_unroll_constU (R, u₁high)
478
477
end
479
478
maxunroll = atleast31registers ? (((X₂ > 0 ) & (X₃ > 0 )) ? 10 : 8 ) : 6
480
- u₁low = (clamp (u₁low, 1 , maxunroll) ÷ u₁step) * u₁step
481
- u₂low = (clamp (u₂low, 1 , maxunroll) ÷ u₂step) * u₂step
479
+ u₁low = (clamp (u₁low, u₁step , maxunroll) ÷ u₁step) * u₁step
480
+ u₂low = (clamp (u₂low, u₂step , maxunroll) ÷ u₂step) * u₂step
482
481
u₁high = clamp (u₁high, 1 , maxunroll)
483
482
u₂high = clamp (u₂high, 1 , maxunroll)
484
483
solve_unroll_iter (X, R, u₁L, u₂L, reverse (u₁low: u₁step: u₁high), reverse (u₂low: u₂step: u₂high))
0 commit comments