Just an unsolicited tip here.

Try not to "over type" your functions. Your function here would be 
cumbersome to use for someone on a 32-bit system for example. Unless you 
have a good reason, prefer Int instead of explicit Int32 / Int64.

On Thursday, January 7, 2016 at 7:18:31 PM UTC+1, Asbjørn Nilsen Riseth 
wrote:
>
> For future reference, I used the following:
>
> function traverse(numpoints::Int64, β::Array{Int64}, level::Int64 = 1)
>     N = length(β)
>     @assert 0 < level < N
>
>     for i = 0:numpoints-sum(β[1:level-1])
>         β[level] = i
>         if level < N-2
>             traverse(numpoints, β, level+1)
>         else
>             for j = 0:numpoints-sum(β[1:N-2])
>                 β[N-1] = j
>                 β[N] = numpoints - sum(β[1:N-1])
>                 @show β/numpoints
>             end
>         end
>     end
> end
> traverse(5, Array{Int64}(4))
>
> Asbjørn
>
>
> On Thursday, 7 January 2016 17:14:03 UTC, Asbjørn Nilsen Riseth wrote:
>>
>> Thank you both. I'll have a look at a recursion approach.
>>
>>
>> On Thursday, 7 January 2016 13:47:02 UTC, Tim Holy wrote:
>>>
>>> This is a problem for recursion. See, for example, the LightGraphs or 
>>> Graphs 
>>> packages. 
>>>
>>> Best, 
>>> --Tim 
>>>
>>> On Thursday, January 07, 2016 02:10:18 AM Asbjørn Nilsen Riseth wrote: 
>>> > I would like to loop over all the \beta_i values of the following 
>>> tree. 
>>> > 
>>> > <
>>> https://lh3.googleusercontent.com/-EBjanFs-BC4/Vo409IFAiTI/AAAAAAAAMEw/U7iq 
>>> > Ev9nPmU/s1600/tree.png> 
>>> > 
>>> > What is the best Julia way of doing this? I'm also interested in 
>>> > generalising this to N levels. 
>>> > 
>>> > 
>>> > For the given tree, the following works. *Is there a way to use 
>>> @nloops to 
>>> > shorten this?* 
>>> > n = Int(1/0.2) 
>>> > for i_3 = 0:n 
>>> >     for i_2 = 0:n-i_3 
>>> >         for i_1 = 0:n-i_2-i_3 
>>> >             i_0 = n-sum(@ntuple 3 i) 
>>> >             β = [i_3, i_2, i_1, i_0]/n 
>>> >             @show β 
>>> >         end 
>>> >     end 
>>> > end 
>>>
>>>

Reply via email to