@@ -612,7 +612,7 @@ defmodule Nx.Defn.Expr do
612612 { nil , range }
613613
614614 unroll when is_integer ( unroll ) and unroll > 0 ->
615- { internal , external } = split_range ( range , size - rem ( size , unroll ) )
615+ { internal , external } = Range . split ( range , size - rem ( size , unroll ) )
616616 { { internal , 0 .. ( unroll - 1 ) // 1 } , external }
617617
618618 unroll ->
@@ -730,33 +730,6 @@ defmodule Nx.Defn.Expr do
730730 end )
731731 end
732732
733- # TODO: Use Range.split/2 when we require Elixir v1.15+
734- defp split_range ( first .. last // step = range , split ) when is_integer ( split ) do
735- if split >= 0 do
736- split_range ( first , last , step , split )
737- else
738- split_range ( first , last , step , Range . size ( range ) + split )
739- end
740- end
741-
742- defp split_range ( first , last , step , split ) when first < last or ( first == last and step > 0 ) do
743- if step > 0 do
744- mid = max ( min ( first + step * ( split - 1 ) , last ) , first - step )
745- { first .. mid // step , ( mid + step ) .. last // step }
746- else
747- { first .. ( first - step ) // step , ( last + step ) .. last // step }
748- end
749- end
750-
751- defp split_range ( last , first , step , split ) do
752- if step < 0 do
753- mid = min ( max ( last + step * ( split - 1 ) , first ) , last - step )
754- { last .. mid // step , ( mid + step ) .. first // step }
755- else
756- { last .. ( last - step ) // step , ( first + step ) .. first // step }
757- end
758- end
759-
760733 defp compatible_while! ( file , line , initial , body ) do
761734 if not Nx . compatible? ( initial , body ) do
762735 raise CompileError ,
0 commit comments