!TobkTZMOkZJCvcSvwq:matrix.org

APL

148 Members
Discussion about the APL language10 Servers

Load older messages


SenderMessageTime
30 Nov 2021
@eris:chat.unix.lgbterisid personally put 0,0 at the top left since thats where most people look first 14:45:31
@eris:chat.unix.lgbterisand also because 14:45:56
@loke:dhsdevelopments.comlokeWhoops. You're right.14:46:11
@eris:chat.unix.lgbterisimage.png
Download image.png
14:48:00
@eris:chat.unix.lgbterisyea14:48:03
@loke:dhsdevelopments.comlokeThe generation of the SVG got it wrong. Easy to fix.14:48:25
@loke:dhsdevelopments.comlokeOK, fixed the 2-dimensional diagram14:58:32
@_discord_651823008347979793:t2bot.ioAdám#2156 'aeiou' are already normalised, so you don't need ⎕C to apply to the left argument of 15:02:55
@_discord_346616332726304768:t2bot.iomaybe William changed their display name from maybe William to maybe William#2431.18:23:12
@_discord_346616332726304768:t2bot.iomaybe William changed their display name from maybe William#2431 to maybe William.18:23:13
@_discord_346616332726304768:t2bot.iomaybe William if i dont recall there exsists an NGN in here, assuming this NGN is the same as http://archive.vector.org.uk/art10501160 i were wondering, how does your Strided representation of arrays stack up when it comes to SIMD instructions and cache misses [of the L1 cache]? 18:23:13
@mlochbaum:matrix.orgMarshallngn/apl ended up dropping that strided representation and using shape only. NumPy uses strides though.18:28:59
@mlochbaum:matrix.orgMarshallDepends on the operation, but a ravel-ordered array is easier to handle in a cache-friendly way than a strided one. In particular, if the strided array is a scattered selection from a larger array then accessing its elements inherently breaks cache locality.18:32:28
@mlochbaum:matrix.orgMarshallThe advantage of a strided representation is that you can skip many kinds of operations, that is, things like reverse, drop, and transpose can be done only by manipulating metadata. The problem is that later operations have to have those transformations built in somehow.18:34:10
@mlochbaum:matrix.orgMarshallTranspose can be done in blocks to make optimal use of the cache; fusing a blocked transpose with another operation would be pretty hard and I doubt NumPy does it. I have no idea whether they have block transpose code in the first place. Dyalog only does that for booleans.18:38:06
@ngn:matrix.orgngn
In reply to @_discord_346616332726304768:t2bot.io
if i dont recall there exsists an NGN in here, assuming this NGN is the same as http://archive.vector.org.uk/art10501160 i were wondering, how does your Strided representation of arrays stack up when it comes to SIMD instructions and cache misses [of the L1 cache]?
me exists :)
18:42:19
@ngn:matrix.orgngnjs ÷ l2 cache ≈ snail ÷ aerodynamics18:43:11
@eris:chat.unix.lgbterissnail :)18:44:38
@_discord_346616332726304768:t2bot.iomaybe William awesome thanks a lot, this cleares up a lot, i guess ill just end up implementing a system like classes in haskell or traits in rust where i can have multiple representations work in different ways. i guess that would be the best solution, thanks for the information, this was really interesting 18:47:46
@eris:chat.unix.lgbterisscreenshot_20211130-184849_fennec.png
Download screenshot_20211130-184849_fennec.png
18:49:01
@eris:chat.unix.lgbteristhis is cool :)18:49:06
@eris:chat.unix.lgbterisso like, with 1 2 3 4 5 6 7 8 918:49:55
@ngn:matrix.orgngn eris: an idea stolen from numpy. marshall described its drawbacks well. 18:50:03
@eris:chat.unix.lgbteriswhat would the stride be18:50:05
@ngn:matrix.orgngn eris: 1 3 18:50:23
@ngn:matrix.orgngnor 3 118:50:33
@eris:chat.unix.lgbteris huh 18:50:41
@eris:chat.unix.lgbterisok18:50:43
@eris:chat.unix.lgbteris i get the meaning of axis now :) 18:50:51
@eris:chat.unix.lgbteristook a while.........18:51:32

There are no newer messages yet.


Back to Room List