Hi,

   - I don't see the benefit of returning Wnew; can you elaborate?
   - Good point - I'm using eps() now.
   - The reason for limiting the number of iterations was a *long* 
   computation time when calling the function with huge input.
   - The output was indeed inconsistent; I couldn't make up my mind about 
   what I prefer(ed). Now I've settled for NaN.
   - I'll have a look at the keyword approach.
   - I didn't know I could skip the array version if I want the function to 
   actually be able to evaluate arrays; isn't that part of the multiple 
   dispatch idea?

Thanks for all your suggestions!

Robert

On Saturday, October 18, 2014 4:33:36 AM UTC+2, Hans W Borchers wrote:
>
>
>    - Wouldn't it be better to return Wnew? (i.e., set Wnew = W before the 
>    loop)
>    - You can set the precision to eps(), because the convergence is 
>    quadratic;
>    - For the same reason, don't set a limit for n, or set it much higher 
>    (n < 100)
>    - The array version returns NaN where the scalar version throws an 
>    error, this is kind of inconsistent, I think.
>    - k could be a keyword instead of an option.
>    - For the array version, you could use map instead of a loop; or don't 
>    provide an array version, that might be more Julia-like.
>
>
> On Friday, October 17, 2014 10:23:53 PM UTC+2, Robert DJ wrote:
>>
>> That's a good point! I've added the repository to GitHub:
>>
>> https://github.com/robertdj/LambertW.jl
>>
>> Best,
>>
>> Robert
>>
>> On Friday, October 17, 2014 5:43:19 PM UTC+2, Stefan Karpinski wrote:
>>>
>>> It would be helpful to see some code. Otherwise, it's hard to tell 
>>> what's happening.
>>>
>>> On Fri, Oct 17, 2014 at 11:37 AM, Robert DJ <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> 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?
>>>> Also, I would prefer to have a type like Array{Real} instead 
>>>> Array{Float64}, but this does not seem to work.
>>>>
>>>> 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?
>>>>
>>>> Thanks,
>>>>
>>>> Robert
>>>>
>>>>
>>>

Reply via email to