On Friday, September 12, 2014, Douglas Bates <dmba...@gmail.com> wrote:

> On Friday, September 12, 2014 12:41:49 AM UTC-5, Christoph Ortner wrote:
>>
>> That did work - thank you, see code below.  To explain: this came from a
>> bottleneck in a bigger code, so my problem there must be a different one.
>>   -- Christoph
>>
>> function testtime()
>>     a1 = rand(10, 10, 100, 100)
>>     b1 = rand(10, 100, 100)
>>     c1 = rand(10, 100, 100)
>>     d1 = []
>>     const a2 = rand(10,10,100,100)
>>     const b2 = rand(10,100,100)
>>     const c2 = rand(10,100,100)
>>     d2 = []
>>     @time(begin
>>         for n = 1:10
>>             d1 = [ a1[a,b,i,j] .* b1[a,i,j] .* c1[b,i,j] for a = 1:10, b
>> = 1:10, i=1:100,j=1:100 ]
>>         end
>>     end)
>>     println(typeof(d1))
>>     @time(begin
>>         for n = 1:10
>>             d2 = [ a2[a,b,i,j] .* b2[a,i,j] .* c2[b,i,j] for a = 1:10, b
>> = 1:10, i=1:100,j=1:100 ]
>>         end
>>     end)
>>     println(typeof(d2))
>> end
>>
>
> A small point about the code. The initialization
>
>     d1 = []
>
> is unnecessary.  In fact, this assignment initializes d1 to a
> 1-dimensional array with 0 elements.
>
> The comprehension creates the array of the correct dimension and populates
> it so that initial 1-dimensional array is discarded.
>

Even more, [ ] creates an empty array with element type None, so it can't
even be extended!

Reply via email to