OK thanks Tim!

Is there some way/plan to fix this in the future, to make it more 
convenient?

Andy

On Wednesday, February 10, 2016 at 10:27:38 PM UTC+10, Tim Holy wrote:
>
> Slightly modifying an example from the docs: 
>
> julia> function mysub2ind_gen(N) 
>            ex = :(I[$N] - 1) 
>            for i = N-1:-1:1 
>                ex = :(I[$i] - 1 + dims[$i]*$ex) 
>            end 
>            return :($ex + 1) 
>        end 
> mysub2ind_gen (generic function with 1 method) 
>
> julia> @generated function mysub2ind{N}(dims::NTuple{N}, I::Integer...) 
>            length(I) == N || error("wrong number of indexes") 
>            mysub2ind_gen(N) 
>        end 
> mysub2ind (generic function with 1 method) 
>
> julia> mysub2ind_gen(3) 
> :(((I[1] - 1) + dims[1] * ((I[2] - 1) + dims[2] * (I[3] - 1))) + 1) 
>
> julia> mysub2ind((5,5,5), 1, 2, 3) 
> 56 
>
> julia> sub2ind((5,5,5), 1, 2, 3) 
> 56 
>
>
> On Wednesday, February 10, 2016 03:31:15 AM Jeffrey Sarnoff wrote: 
> > Tim -- would you repeat that with some simple content illustrative of a 
> > useful use for generation --- thx 
> > 
> > On Wednesday, February 10, 2016 at 5:27:12 AM UTC-5, Tim Holy wrote: 
> > > On Tuesday, February 09, 2016 08:52:22 PM Andy Ferris wrote: 
> > > > What's the best way to find the code generated by a @generated 
> function? 
> > > 
> > > This isn't easy unless you (or the author) provides a function to do 
> so: 
> > >     @generated function foo(x, y) 
> > >     
> > >         foo_generator(x, y) 
> > >     
> > >     end 
> > >     
> > >     function foo_generator{Tx,Ty}(::Type{Tx}, ::Type{Ty}) 
> > >     
> > >         # generate and return the expression for the function body 
> > >     
> > >     end 
> > > 
> > > Then you can call `foo_generator(typeof(x), typeof(y))` to see the 
> > > returned 
> > > code. 
> > > 
> > > Best, 
> > > --Tim 
>
>

Reply via email to