Extend level and field_values to work with lazy Fields - #2356
Conversation
imreddyTeja
left a comment
There was a problem hiding this comment.
At some point we may want to add documentation for the different broadcast style types, even though most of the names are self explanatory. I also couldn't find much about NonExtrudedBroadcasted, and I'm not exactly sure what it does, or where it is used.
The type-name suggests that |
|
My plan for this section of code is to eventually remove it altogether, since it is just duplicating the array slicing code in DataLayouts.jl for broadcast expressions. If we appropriately abstract out the slicing logic, we should not need to duplicate all of it like this (and we should not have this issue of some slicing being implemented for arrays but not for broadcasts). More generally, I think the slicing code can be simplified to a single method that unrolls over DataLayout axes, so that we don't need to have three different methods (column/level/slab) for each of our 15 available layouts. Reducing all of the slicing code in this module to one method should make documentation and unit testing much easier. And I'm also not sure what |
|
@akshaysridhar I think the word "extruded" in this context refers to broadcast axis extrusion (e.g., the ability to do something like |
Ah; noted. thanks. |
0138781 to
cc7bdd1
Compare
cc7bdd1 to
11875a0
Compare
This PR extends
levelandfield_valuesto work withBroadcastedexpressions that represent lazy pointwise field operations. This builds on the work from #2331, which extendedcolumnandslabto work with lazy fields. In order to testfield_valueswith lazy fields, it was also necessary to define==for DataLayouts.