Internals

Internals

NDReducibles.planMethod.
plan(args::AccessPattern...) :: AccessPlan
plan(pairs::Pair...) :: AccessPlan

Try to find an index that is categorized as "fast" for all args with such index.

Examples

julia> using NDReducibles: plan

julia> A1 = ones(0)
       A2 = ones(0, 0)
       A3 = ones(0, 0, 0)
       A4 = ones(0, 0, 0, 0);

julia> plan(
           A1 => (:i,),
           A2 => (:i, :j),
       )
AccessPlan: j → i

julia> plan(
           A1 => (:i,),
           A2 => (:j, :i),
           A2 => (:j, :k),
       )
AccessPlan: i → k → j

julia> plan(
           A1 => (:i,),
           A2' => (:j, :i),
           A2 => (:j, :k),
       )
AccessPlan: j → k → i

julia> plan(
           A1 => (:i,),
           A2' => (:i, :j),
           A2 => (:i, :j),
           A3 => (:k, :i, :j),
           A4 => (:k, :j, :l, :m),
       )
AccessPlan: i → j → l → m → k
source