On Sat, Dec 28, 2013 at 07:35:00PM +0100, Joseph Rushton Wakeling wrote: > On 28/12/13 18:50, John Colvin wrote: > >how about: > > > >a.elementWise * b > > > >where a.elementWise returns a wrapper struct around a that implements > >elementwise arithmetic as opposed to the normal arithmetic. > > > >The operators would return instances of Matrix, not elementWise, to > >avoid accidentally spilling a Matrix.ElementWise struct in to ensuing > >code unintentionally. With a shorter alias it's rather neat. > > > >auto e = ((a .EW* b) .EW/ c ) * d; > > That's a rather cool idea -- thanks for that! :-) > > That said, I think it'd be difficult to really justify it as a > pattern for general use. If you're doing mathematical work à la > MATLAB, you want a proper operator, not a trick which lets you sort > of write something that looks a little like one. I'm a little > disappointed there's no ready way to do this :-(
The other way is to use a compile-time DSL, which lets you implement whatever operators you want in whatever syntax you fancy. T -- Today's society is one of specialization: as you grow, you learn more and more about less and less. Eventually, you know everything about nothing.