yeah. we are out of luck with matlab syntax.

*&, *|, *^, *%, *#, *@, *~, *?, *!, *>, *<, *\ all work . '*.' or '*,' will
not work. "*:" or ":*" have special meaning.


On Sun, Jul 28, 2013 at 10:58 AM, Dmitriy Lyubimov <[email protected]>wrote:

> FWIW,
>
> one approach might be to separate DSL into several. E.g. RLikeOps and
> MatlabLikeOps or WhateverOps, none of which is imported by default. and
> then the code would have to say "import RLikeOps._" to enalbe R-like DSL,
> and vice versa.
>
> But matlab style '*.' symbol unfortunately doesn't seem to work in scala
> without backquotes. apparently scala treats '.' 'as a keyword and can't
> reduce it as a part of anything else.
>
>
> On Sat, Jul 27, 2013 at 6:43 PM, Dmitriy Lyubimov <[email protected]>wrote:
>
>>
>>
>>
>> On Sat, Jul 27, 2013 at 6:31 PM, Dmitriy Lyubimov <[email protected]>wrote:
>>
>>>
>>>
>>>
>>> >
>>>> > diagv(1 /: s)
>>>> >
>>>>
>>>> But since this is just the inverse of the matrix, and I imagine it's
>>>> actually
>>>> clearer to do just diagv(s).inverse instead of diagv(1 /: s)
>>>>
>>>>
>>> Well. DSL is just the icing. Nobody's taking the cake away.
>>>
>>> in a sense that, once/if/when Mahout supports inverse(), it would be
>>> exactly how one might use it. DSL is not about implementation, it is about
>>> semantic sugar only. It only maps to what exists.
>>>
>>> On a side note, it never actually occurred to me to call pinv() or
>>> solve() on a diagonal matrix. Or orthonormal for that matter. Their
>>> identities are so appealing it kind of becomes second nature after some
>>> time. the only use for solve() i had is actually for solving linear
>>> equations. In my R prototype for SSVD [1] one will find exactly the same
>>> style code, i.e.  diag(1/e$values) .
>>>
>>> pardon, this should read "non-signular" of course, an honest typo.
>>
>>
>>> Even then you probably actually want leftInverse() and rightInverse(),
>>> not just inverse, which is only defined for *non *singular square
>>> matrices and would be equal right and left inverses in that case. Which
>>> oddly enough brings us back to left-associative and right-associative
>>> operations.
>>>
>>> [1]
>>> https://cwiki.apache.org/confluence/download/attachments/27832158/ssvd.R?version=1&modificationDate=1323358453000
>>>
>>>
>>
>

Reply via email to