>>> I am having some troubles understanding and selecting the right types.
>>>
>>> I have implemented an approximation of Lambert’s W function in two
>>> versions: One for scalar input and one for array input.
>>>
>>> I’ve chosen the type Real for the scalar version and Array{Float64} for
>>> the array version.
>>> But if I delete the array version I can still call the function with an
>>> array. How can this be?
I cannot reproduce this, I get a no method error. Do you restart Julia
between the tries?
>>> Also, I would prefer to have a type like Array{Real} instead
>>> Array{Float64}, but this does not seem to work.
try:
function lambertw{T<:Real}(x::Array{T}, k::Int=0, prec=10e-10)
...
end
>>> A third thing is that the function takes a second input that is either -1
>>> or 0. Now I specify the type as Int and check if it is -1 or 0. Is there a
>>> smarter way to do this?
I think this is fine. You could use a Boolean instead.