In <http://www.jsoftware.com/jwiki/RE%20Boss/J-blog/Special%20code%20for%20f/.% 40:g> http://www.jsoftware.com/jwiki/RE%20Boss/J-blog/Special%20code%20for%20f/.%4 0:g I define the conjunction 'obta' - oblique at table.
f obta g is equivalent to f/.@:(g/) but is much leaner and a bit faster. See the wiki-page for the detailed figures. obta=: 2 : 0 assert. 'dyad only' : assert. >{.(x *.&(1...@$) y) ; 'vectors only' if. x -: y do. (u@:(v|.)\y) , }.u@:(v|.)\.y else. 's t'=: x ,&# y z=. $0 if. s=t do. y=.|.y if. x-:y do. z=.(u@:(v@:(,:|.))\y) , }.u@:(v@:(,:|.))\.y else. NB. y=.|.y z=. i.0 1 for_j. i.&.<: s do. z=.z, ((j{.x) u@:v (-j){.y) , ((-j){.x) u@:v j{.y end. end. elseif. s<t do. y=.|.y for_j. i.&.<:s do. z=.z, (j{.x) u@:v (-j){.y end. z=.z, |.s x&(u@:v)\y for_j. |.i.&.<: s do. z=.z, ((-j){.x) u@:v j{.y end. elseif. s>t do. y=.|.y for_j. i.&.<:t do. z=.z, (j{.x) u@:v (-j){.y end. z=.z, t (u@:v)&y\x for_j. |.i.&.<: t do. z=.z, ((-j){.x) u@:v j{.y end. end. end. ) R.E. Boss ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm