I agree on the consistency part with other in-place operations. I certainly
don’t feel it’s hard to just use A_mul_B!, but my familiarity with BLAS
shouldn’t be taken for granted. And if an in-place operator syntax exists
in the language already…

How about the flip side of the argument, it appears to works now — but
doesn’t do what one expects. I understand why it doesn’t, and not a big
deal with an evolving landscape of a developing language, but it certainly
can be confusing and suggests matrices are a different beast. I’m not sure
that is consistent with Julian way.  But yeah, no fusing like broadcast so
the gain is much reduced in implementing this.

Cameron

On Wed, Oct 19, 2016 at 8:58 AM, Milan Bouchet-Valat <nalimi...@club.fr>
wrote:

> Le mardi 18 octobre 2016 à 15:28 -0700, Steven G. Johnson a écrit :
> >
> >
> > > Since it uses the in-place assignment operator .= it could be made
> > > to work as desired, but there's some designing to do.
> > >
> >
> > The problem is that it doesn't know that * is a matrix multiplication
> > until compile-time.
> >
> > In any case, I don't think there's a huge amount to be gained from
> > special syntax here.  Unlike broadcast operations, matrix
> > multiplications cannot in general be fused with other operations.
> > So you might as well do A_mul_B!.
> I think the biggest gain would be discoverability and consistency with
> other in-place operations. A_mul_B! isn't the most Julian of our APIs
> (to say the least)...
>
>
> Regards
>

Reply via email to