sub kronecker_product { my ($x, $y) = @_; return $x-> dummy( 0 ) -> dummy( 0 ) -> mult( $y, 0 ) -> clump( 0, 2 ) -> clump( 1, 2 ) } #### use PDL::NiceSlice; sub kronecker_product { my ($x, $y) = @_; ( $x( *1, *1 ) * $y ) -> clump( 0, 2 ) -> clump( 1, 2 ) }