Dimensions of either A or B are padded with trailing 1s until both
dimensions have the same length. Dimension of the result is padded A
dimension times padded B dimension.

Values in the product are taken from the outer product of A and B.

Structure of the product, roughly speaking, would be the structure of
A tessellated with rectangles or cuboids with B's shape.

If this does not make adequate sense, it's best to look at examples
(such as A kp B, here).

See also: https://en.wikipedia.org/wiki/Kronecker_product

Thanks,

-- 
Raul

On Fri, Oct 1, 2021 at 5:40 AM 'Mike Day' via Beta <[email protected]> wrote:
>
> Raul’s found a work-round,  I think,  but, meanwhile,  how IS the generalised 
> kp defined,  if, for example,  A has dimensions IJK... and B has PQR... ?
>
> Thanks,
>
> Mike
>
> Sent from my iPad
>
> > On 1 Oct 2021, at 08:23, Jan-Pieter Jacobs <[email protected]> 
> > wrote:
> >
> > Hi,
> > Yesterday I was playing with the Kronecker product, trying to extend it to
> > arbitrary dimensions (not that I really needed, but it seemed fun). It
> > works on this J:
> > JVERSION
> > Engine: j902/j32/android
> > Release-a: commercial/2020-12-24T11:35:03
> > Library: 9.02.08
> > Platform: Android 32 (armeabi-v7a)
> > Installer: unknown
> > InstallPath: /mnt/sdcard/Android/data/com.jsoftware.j.android/files
> > Contact: www.jsoftware.com
> >
> > But not on beta-r, nor beta-s on windows 64, avx2.
> >
> > The definition is as follows (based on
> > https://wiki.jsoftware.com/wiki/Essays/Kronecker_Product):
> >
> > kp=: cs ($,) dp |: *"0 _
> > NB. cs calculates the eventual size of pairwise joining axes
> > cs=: ([: */&:> >.&# {.!.1&.> ;)&$
> > NB. dp calculates the axis shuffle needed to interleave corresponding axes
> > of x and y
> > dp=: (+ {. [: ,@|:@i. 2 , >.)&(#@$)
> >
> > A=: =i. 3   NB. identity, shape 3 3
> > B=: >:i. 2 2 NB. shape 2 2
> > AA=: 0 13 26 e.~i. 3 3 NB. shape 3 3 3
> >
> > 'A kp B' and 'AA kp B' fail because 'A cs B' and 'AA cs B' throw a domain
> > error in J903-beta-r/s I don't understand, but do work in J902. Dissect
> > mentions an inconsistency, but eventually shows the right result.
> >
> > however, removing &$ from cs and feeding in shapes directly does work.
> >
> >   3 3 3 ([: */&:> >.&# {.!.1&.> ;) 2 2
> > 6 6 3
> >
> > Am I missing something or is this an interpreter bug?
> >
> > Any comments on the Kronecker product as such, does it make sense? The 2x2
> > case is at least consistent with the definitions in the essay.
> > If it is sound, I'd add it to the Essay.
> >
> > Best regards,
> > Jan-Pieter.
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to