[Jprogramming] A new episode of the ArrayCast podcast is available

2023-02-03 Thread 'robert therriault' via Programming
On this episode we speak to Michael Higginson, a q programmer who won the professional class of the 2022 Dyalog competition. Host: Conor Hoekstra Guest: Michael Higginson Panel: Marshall Lochbaum, Rich Park, Stephen Taylor and Bob Therriault. https://www.arraycast.com/episodes/episode46-mich

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-17 Thread Elijah Stone
As I said, I am speaking only of semantics, not implementation details. On Fri, 17 Jun 2022, Henry Rich wrote: u&.> Is backed by special code that avoids explicit boxing and unboxing. And, if the contents of the boxes are inplaceable, u is executed inplace. Henry Rich On Fri, Jun 17, 2022, 1

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-17 Thread Henry Rich
u&.> Is backed by special code that avoids explicit boxing and unboxing. And, if the contents of the boxes are inplaceable, u is executed inplace. Henry Rich On Fri, Jun 17, 2022, 1:39 AM Elijah Stone wrote: > On Thu, 16 Jun 2022, Marshall Lochbaum wrote: > > > You seem to think building these

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-16 Thread Elijah Stone
On Thu, 16 Jun 2022, Marshall Lochbaum wrote: You seem to think building these out of boxes makes some philosophical difference. I disagree. Boxes are used to implement array nesting. I do think it makes a difference. But there is also a practical question: what patterns does the language

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-16 Thread Marshall Lochbaum
The problems you're seeing in BQN appear in J as well as soon as you start making inhomogeneous boxed arrays (compare J {:: to BQN ⊑). You seem to think building these out of boxes makes some philosophical difference. I disagree. Boxes are used to implement array nesting. > Exactly. Wouldn't it m

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Raul Miller
On Wed, Jun 15, 2022 at 11:53 PM Elijah Stone wrote: > Six isn't enough? (Actually, j has three: L: S: L.; I don't think they were > worthwhile.) Personally, I have found J's L: S: and L. to be useful. That said, the most frequently relevant numbers are 0 and 1. (This seems to be a recurring th

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Elijah Stone
On Wed, 15 Jun 2022, Marshall Lochbaum wrote: I do agree that using nesting for homogeneous shapes is inelegant. What they're doing in this case is like putting a marker in the shape, which could be written 2 3|3 4 in the boxed array A *&.> < B. It's weird that the way to do this is to switch

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Marshall Lochbaum
Ah, sorry to mischaracterize. Substitute "it would be madness" for "it's madness", please! I do agree that using nesting for homogeneous shapes is inelegant. What they're doing in this case is like putting a marker in the shape, which could be written 2 3|3 4 in the boxed array A *&.> < B. It's we

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Elijah Stone
Modifying strides only means you can't reason about data locality. What if you are doing fft and you need to transpose to make it go fast? And yes, numpy's lack of rank as well as its braindead conformability rules mean you need to munge shape in superfluous ways. On Wed, 15 Jun 2022, Alex S

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Elijah Stone
On Wed, 15 Jun 2022, Marshall Lochbaum wrote: my opposition to J's flat array model (I think it's almost always worse than BQN's based model) is different from my stance on flat arrays BQN can also represent and optimize these, although there's no name for the category; they'd be called arrays

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Alex Shroyer
I use NumPy a lot for work, and something I realized when listening to this podcast was that I use NumPy's equivalent to dyadic transpose _all the time_ for machine learning tasks. Recently I had to transpose an array of N 64x64 RGB images (shape: N, 3, 64, 64) into something like (shape: N, 64, 6

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Marshall Lochbaum
I think it's quite reasonable to solve your "general" problem by applying a transpose, and maybe filling in some length-1 axes, before an n-dimensional Kronecker product. There's a reason BQN still has a Reorder Axes primitive! The Kronecker product alone is interesting because it can easily be see

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Elijah Stone
1. Refer to henry baker, 'On the Permutations of a Vector Obtainable through the Restructure and Transpose Operators of APL' (https://plover.com/~mjd/misc/hbaker-archive/APLPerms.ps.Z). I don't think it is a _particularly_ good paper, but it is alright, and it is relevant. 2. Your join is int

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Jan-Pieter Jacobs
Thanks Marshall, That's indeed very slick, and something I reached for in J on more than one occasion, when handling block matrices. Best regards, Jan-Pieter On Wed, 15 Jun 2022, 23:06 Marshall Lochbaum, wrote: > It's an interesting transpose, but BQN has a much more elegant solution: > with m

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Marshall Lochbaum
It's an interesting transpose, but BQN has a much more elegant solution: with multidimensional Join, the product of arrays is just ∾a×https://mlochbaum.github.io/BQN/try.html#code=YSDihpAgMTArMuKAvzPipYrihpU2CmIg4oaQIDPigL804qWK4oaVMTIK4oi+YcOXPGI= Docs: https://mlochbaum.github.io/BQN/doc/join.ht

Re: [Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-15 Thread Jan-Pieter Jacobs
Hi, I'd like to thank the entire Arraycast crew for this excellent podcast, I'm always looking forward to the next episode. I find it super informative, with a healthy dose of humour. Great job; please continue ;). Since you didn't seem to find many applications of dyadic transpose, I'd like to p

[Jprogramming] A new episode of the ArrayCast podcast is available

2022-06-11 Thread 'robert therriault' via Programming
Hi everyone, In this episode we explore monadic and dyadic transpose and the ways it is interpreted in APL, BQN and J. Host: Conor Hoekstra Panel: Marshall Lochbaum, Adám Brudzewsky, Stephen Taylor and Bob Therriault. https://www.arraycast.com/episodes/episode28-rank-and-leading-axis-gbbpe Ch