Thanks. That makes sense.
On Tuesday, June 24, 2014 8:20:37 AM UTC-6, John Myles White wrote:
>
> (1) The size of arrays isn’t part of their type signature, so you can’t
> use multiple dispatch to do this. You’ll end up overwriting the existing
> Array multiplication function.
>
> (2) You’d want to do something like *{S <: Number, T <:
> Number}(a::Array{S, 2},b::Array{T,1}) to indicate that you’re allowing
> arbitrary types. For your use case, you need to use Number because Julia’s
> Complex type is a concrete type, so Real isn’t a subtype of it. In Base
> Julia, I don’t believe there are any types that descend from Number that
> wouldn’t interact properly with Complex.
>
> — John
>
> On Jun 24, 2014, at 6:10 AM, Rick Muller <[email protected] <javascript:>>
> wrote:
>
> > I want to create a function signature for the *(a,b) operator where a is
> a 2x2 matrix. Can I do this?
> >
> > *(a::Array{??,2},b) = whatever
> >
> > ??? is anything than can multiply a Complex vector. Do I have to
> explicitly promote this to Complex, in which case I guess it would be
> >
> > *(a::Array{Complex,(2,2)},b::Array{Complex,1}) = whatever
> >
> > Thanks in advance for any help you can offer.
>
>