This thread is tragically long on opinions and short on arguments backing
them up. It occurs to me that we can write specialized methods for
collect(::LinSpace) that generate the collected version more efficiently
than generic iteration does, which eliminates one of the potential
arguments for just generating an array.

On Wednesday, October 21, 2015, Gabriel Gellner <[email protected]>
wrote:

> I agree with this downvote so much it hurts. The logspace/linspace is
> painfully ugly. linrange is the right name in my find for the iterator
> version.
>
> On Wednesday, 30 September 2015 10:31:55 UTC-7, Alex Ames wrote:
>>
>> Another downvote on linspace returning a range object. It seems odd for
>> linspace and logspace to return different types, and linrange provides the
>> low-memory option where needed. Numpy's `linspace` also returns an array
>> object.
>>  I ran into errors when trying to plot a function over a linspace of x
>> values, since plotting libs currently expect vectors as arguments, not
>> range objects. Easily fixed if you know Julia well, but Matlab/Python
>> converts may be stymied.
>>
>> On Wednesday, September 30, 2015 at 12:19:22 PM UTC-5, J Luis wrote:
>>>
>>> I want to add my voice to the dislikers. Those are the type of surprises
>>> that are not welcome mainly for matlab users.
>>>
>>> quarta-feira, 30 de Setembro de 2015 às 16:53:57 UTC+1, Christoph Ortner
>>> escreveu:
>>>>
>>>> I also strongly dislike the `linspace` change; I like the idea though
>>>> of having `linspace` and `linrange`, where the former should give the 
>>>> array.
>>>> Christoph
>>>>
>>>>
>>>> On Wednesday, 30 September 2015 10:21:36 UTC+1, Michele Zaffalon wrote:
>>>>>
>>>>> I just realize that the thread is about 0.3.11 and I am showing output
>>>>> for 0.4.0-rc2. Sorry for the noise.
>>>>>
>>>>> On Wed, Sep 30, 2015 at 11:17 AM, Michele Zaffalon <
>>>>> [email protected]> wrote:
>>>>>
>>>>>>
>>>>>> On Wed, Sep 30, 2015 at 9:50 AM, Milan Bouchet-Valat <[email protected]
>>>>>> > wrote:
>>>>>>
>>>>>>> Le mercredi 30 septembre 2015 à 08:55 +0200, Michele Zaffalon a
>>>>>>> écrit :
>>>>>>> > Just curious: linspace returns a Range object, but logspace
>>>>>>> returns a
>>>>>>> > vector because there is no much use case for a LogRange object?
>>>>>>> >
>>>>>>> > @feza: I have also seen the deprecation warning going away after a
>>>>>>> > couple of calls, but I am not sure why. If you restart Julia, the
>>>>>>> > deprecations reappear.
>>>>>>> Deprecation warnings are only printed once for each call place. The
>>>>>>> idea is that once you're aware of it, there's no point in nagging
>>>>>>> you.
>>>>>>>
>>>>>>> Anyway, that warning is most probably not related to linspace at all,
>>>>>>> but rather to the array concatenation syntax resulting in an effect
>>>>>>> equivalent to collect(). If you show us a piece of code that prints
>>>>>>> the
>>>>>>> warning, we can give you more details.
>>>>>>>
>>>>>>>
>>>>>>> Regards
>>>>>>>
>>>>>>
>>>>>> Sorry, you are right, I was referring to the concatenation.
>>>>>> It prints it exaclty twice if I type it in the REPL, it always prints
>>>>>> it if I define it within a function e.g. a() = [1:3].
>>>>>>
>>>>>> C:\Users\michele.zaffalon>julia
>>>>>>                _
>>>>>>    _       _ _(_)_     |  A fresh approach to technical computing
>>>>>>   (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
>>>>>>    _ _   _| |_  __ _   |  Type "?help" for help.
>>>>>>   | | | | | | |/ _` |  |
>>>>>>   | | |_| | | | (_| |  |  Version 0.4.0-rc2 (2015-09-18 17:51 UTC)
>>>>>>  _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
>>>>>> |__/                   |  x86_64-w64-mingw32
>>>>>>
>>>>>> julia> [1:3]
>>>>>> WARNING: [a] concatenation is deprecated; use collect(a) instead
>>>>>>  in depwarn at deprecated.jl:73
>>>>>>  in oldstyle_vcat_warning at abstractarray.jl:29
>>>>>>  in vect at abstractarray.jl:32
>>>>>> while loading no file, in expression starting on line 0
>>>>>> 3-element Array{Int64,1}:
>>>>>>  1
>>>>>>  2
>>>>>>  3
>>>>>>
>>>>>> julia> [1:3]
>>>>>> WARNING: [a] concatenation is deprecated; use collect(a) instead
>>>>>>  in depwarn at deprecated.jl:73
>>>>>>  in oldstyle_vcat_warning at abstractarray.jl:29
>>>>>>  in vect at abstractarray.jl:32
>>>>>> while loading no file, in expression starting on line 0
>>>>>> 3-element Array{Int64,1}:
>>>>>>  1
>>>>>>  2
>>>>>>  3
>>>>>>
>>>>>> julia> [1:3]
>>>>>> 3-element Array{Int64,1}:
>>>>>>  1
>>>>>>  2
>>>>>>  3
>>>>>>
>>>>>> julia> a() = [1:3]
>>>>>> a (generic function with 1 method)
>>>>>>
>>>>>> julia> a()
>>>>>> WARNING: [a] concatenation is deprecated; use collect(a) instead
>>>>>>  in depwarn at deprecated.jl:73
>>>>>>  in oldstyle_vcat_warning at abstractarray.jl:29
>>>>>>  in a at none:1
>>>>>> while loading no file, in expression starting on line 0
>>>>>> 3-element Array{Int64,1}:
>>>>>>  1
>>>>>>  2
>>>>>>  3
>>>>>>
>>>>>> julia> a()
>>>>>> WARNING: [a] concatenation is deprecated; use collect(a) instead
>>>>>>  in depwarn at deprecated.jl:73
>>>>>>  in oldstyle_vcat_warning at abstractarray.jl:29
>>>>>>  in a at none:1
>>>>>> while loading no file, in expression starting on line 0
>>>>>> 3-element Array{Int64,1}:
>>>>>>  1
>>>>>>  2
>>>>>>  3
>>>>>>
>>>>>> julia> a()
>>>>>> WARNING: [a] concatenation is deprecated; use collect(a) instead
>>>>>>  in depwarn at deprecated.jl:73
>>>>>>  in oldstyle_vcat_warning at abstractarray.jl:29
>>>>>>  in a at none:1
>>>>>> while loading no file, in expression starting on line 0
>>>>>> 3-element Array{Int64,1}:
>>>>>>  1
>>>>>>  2
>>>>>>  3
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> > On Wed, Sep 30, 2015 at 5:40 AM, feza <[email protected]> wrote:
>>>>>>> > > Strange it *was* giving me an error saying deprecated and that I
>>>>>>> > > should use collect, but now it's fine.
>>>>>>> > >
>>>>>>> > >
>>>>>>> > > On Tuesday, September 29, 2015 at 10:28:12 PM UTC-4, Sheehan
>>>>>>> Olver
>>>>>>> > > wrote:
>>>>>>> > > > fez, I'm pretty sure the code works fine without the collect:
>>>>>>> > > > when exp is called on linspace it converts it to a vector.
>>>>>>> > > > Though the returned t will be linspace object.
>>>>>>> > > >
>>>>>>> > > > On Wednesday, September 30, 2015 at 12:10:55 PM UTC+10, feza
>>>>>>> > > > wrote:
>>>>>>> > > > > Here's the code I was using where I needed to use collect
>>>>>>> (I've
>>>>>>> > > > > been playing around with Julia, so any suggestions on this
>>>>>>> code
>>>>>>> > > > > for perf is welcome ;) ) . In general linspace (or the :
>>>>>>> > > > > notation)  is also used commonly to lay  a grid in space for
>>>>>>> > > > > solving a PDE for some other use cases.
>>>>>>> > > > >
>>>>>>> > > > > function gp(n)
>>>>>>> > > > >         n = convert(Int,n)
>>>>>>> > > > >         t0 = 0
>>>>>>> > > > >         tf = 5
>>>>>>> > > > >         t = collect( linspace(t0, tf, n+1) )
>>>>>>> > > > >         sigma = exp( -(t - t[1]) )
>>>>>>> > > > >
>>>>>>> > > > >         c = [sigma; sigma[(end-1):-1:2]]
>>>>>>> > > > >         lambda = fft(c)
>>>>>>> > > > >         eta = sqrt(lambda./(2*n))
>>>>>>> > > > >
>>>>>>> > > > >         Z = randn(2*n) + im*randn(2*n)
>>>>>>> > > > >         x = real( fft( Z.*eta ) )
>>>>>>> > > > >         return (x, t)
>>>>>>> > > > > end
>>>>>>> > > > >
>>>>>>> > > > >
>>>>>>> > > > > On Tuesday, September 29, 2015 at 8:59:52 PM UTC-4, Stefan
>>>>>>> > > > > Karpinski wrote:
>>>>>>> > > > > > I'm curious why you need a vector rather than an object. Do
>>>>>>> > > > > > you mutate it after creating it? Having linspace return an
>>>>>>> > > > > > object instead of a vector was a bit of a unclear judgement
>>>>>>> > > > > >  call so getting feedback would be good.
>>>>>>> > > > > >
>>>>>>> > > > > > On Tuesday, September 29, 2015, Patrick Kofod Mogensen <
>>>>>>> > > > > > [email protected]> wrote:
>>>>>>> > > > > > > No:
>>>>>>> > > > > > >
>>>>>>> > > > > > > julia> logspace(0,3,5)
>>>>>>> > > > > > > 5-element Array{Float64,1}:
>>>>>>> > > > > > >     1.0
>>>>>>> > > > > > >     5.62341
>>>>>>> > > > > > >    31.6228
>>>>>>> > > > > > >   177.828
>>>>>>> > > > > > >  1000.0
>>>>>>> > > > > > >
>>>>>>> > > > > > > On Tuesday, September 29, 2015 at 8:50:47 PM UTC-4, Luke
>>>>>>> > > > > > > Stagner wrote:
>>>>>>> > > > > > > > Thats interesting. Does logspace also return a range?
>>>>>>> > > > > > > >
>>>>>>> > > > > > > > On Tuesday, September 29, 2015 at 5:43:28 PM UTC-7,
>>>>>>> Chris
>>>>>>> > > > > > > > wrote:
>>>>>>> > > > > > > > > In 0.4 the linspace function returns a range object,
>>>>>>> > > > > > > > > and you need to use collect() to expand it. I'm also
>>>>>>> > > > > > > > > interested in nicer syntax.
>>>>>>>
>>>>>>
>>>>>>
>>>>>

Reply via email to