I agree that there are just too many different popular definitions of < between vectors/matrices/arrays to just pick one arbitrarily.
Also, another reason not to define A < B as elementwise: <, when it is implemented, is expected to correspond to at least a partial order. In particular, it is expected to return a bool value. On Sunday, 6 April 2014 11:58:04 UTC+2, Tony Kelman wrote: > > Whole-array inequalities between matrices can have context-dependent > meanings. For example, you can define a very useful ordering among the set > of positive semidefinite symmetric matrices - this is used in constrained > optimization (semidefinite programming) since the space of positive > semidefinite matrices is a convex cone. There are special symbols often > used for this (\succeq, \preceq, etc) but not always consistently. > > > On Sunday, April 6, 2014 1:57:35 AM UTC-7, Mikael Simberg wrote: >> >> >> >> >> On Sat, Apr 5, 2014, at 15:45, [email protected] wrote: >> >> Sorry, the dot makes it not clear, but even more confusing. Actually, >> ".*" reads like dot (.) product (*). >> E.g. in Python/Numpy and IDL +,-,*,/ are used for element-wise operation. >> >> Moreover, >> julia> [1 2 3] + [1 2 3] >> 1x3 Array{Int64,2}: >> 2 4 6 >> julia> [1 2 3] * [1 2 3] >> DimensionMismatch("*") >> >> The more complicated symbols (as ".*") should be used for more >> complicated operations like inner/outer product, i.e. when I have to think >> about dimension shapes. >> >> In which situation I can use "<" for arrays? Never? Then we carry all the >> time the dot with us. >> >> >> Just an idea: I don't know how common this use would be in code, but a < >> b (without the dot) could be used to compare if array b dominates a i.e. >> all elements of b are strictly greater than a. Likewise for >, <= and >=. >> This is certainly used as mathematical notation and they're currently not >> defined in Julia and could be implemented more efficiently than the >> element-wise comparisons. >> >> >> So I find a very inconvenient decision was made. >> >> Friedrich >> >> >> >> The `.` in `.<` makes it clear that the operation is element-wise; this >> is especially important in `.*`, for example. >> >> >>
