Re: [julia-users] The "sub" function behaves differently in v0.3 and master

2015-02-07 Thread Daniel Casimiro
A subtle difference for Julia v0.3:

const nchans = size(userData.samples, 2)
const samples = sub(userData.samples, tuple(rng, ntuple(nchans - 1, _
->:)...)...)

because (I think) of https://github.com/JuliaLang/julia/issues/4869

On Saturday, February 7, 2015 at 1:44:28 PM UTC-5, Daniel Casimiro wrote:
>
> FWIW, I came up with the following snippet to get the behavior that I want:
>
> const nchans = size(userData.samples, 2)
> const samples = sub(userData.samples, tuple(rng, ntuple(nchans - 1, _
> ->:)...))
>
> It appears to work.
>
> On Sunday, February 1, 2015 at 8:38:09 PM UTC-5, Tim Holy wrote:
>>
>> SubArrays have been entirely rewritten in 0.4, and can do quite a few 
>> tricks 
>> that the old ones can't. Changing the dimensionality of the view compared 
>> to 
>> the parent, as in your example, is one of them. Here's another example of 
>> something you simply can't do on 0.3: 
>>
>> julia> A = reshape(1:15, 3, 5) 
>> 3x5 Array{Int64,2}: 
>>  1  4  7  10  13 
>>  2  5  8  11  14 
>>  3  6  9  12  15 
>>
>> julia> b = sub(A, [2, 7, 8]) 
>> 3-element SubArray{Int64,1,Array{Int64,2},(Array{Int64,1},),0}: 
>>  2 
>>  7 
>>  8 
>>
>> julia> b[2] = -1 
>> -1 
>>
>> julia> A 
>> 3x5 Array{Int64,2}: 
>>  1  4  -1  10  13 
>>  2  5   8  11  14 
>>  3  6   9  12  15 
>>
>> If anything, the divergence between the two will grow further once 
>> https://github.com/JuliaLang/julia/issues/9874 is addressed. 
>>
>> Best, 
>> --Tim 
>>
>> On Sunday, February 01, 2015 12:02:56 PM Daniel Casimiro wrote: 
>> > Hi, 
>> > 
>> > I noticed that the "sub" function behaves differently in master and 
>> version 
>> > 0.3.5, when handling data of type Array{Float64, 1}. I am not sure if 
>> the 
>> > change is intentional. 
>> > 
>> > The following works as expected on Julia master: 
>> > 
>> > *julia>* *sub([1.0; 2; 3; 4], 1:3, :)* 
>> > 
>> > but, fails in version 0.3.5 with the following error: 
>> > > *ERROR: `sub` has no method matching sub(::Array{Float64,1}, 
>> > > 
>> > > ::(UnitRange{Int64},UnitRange{Int64}))* 
>> > > 
>> > > * in sub at subarray.jl:80** in sub at subarray.jl:132* 
>> > 
>> > Is this a bug in Julia 0.3.5 or master? 
>> > 
>> > This came up in this pull request: 
>> > https://github.com/dancasimiro/WAV.jl/pull/20. I just figured out that 
>> my 
>> > "fix" is broken too. 
>> > 
>> > Thanks. 
>>
>>

Re: [julia-users] The "sub" function behaves differently in v0.3 and master

2015-02-07 Thread Daniel Casimiro
FWIW, I came up with the following snippet to get the behavior that I want:

const nchans = size(userData.samples, 2)
const samples = sub(userData.samples, tuple(rng, ntuple(nchans - 1, _
->:)...))

It appears to work.

On Sunday, February 1, 2015 at 8:38:09 PM UTC-5, Tim Holy wrote:
>
> SubArrays have been entirely rewritten in 0.4, and can do quite a few 
> tricks 
> that the old ones can't. Changing the dimensionality of the view compared 
> to 
> the parent, as in your example, is one of them. Here's another example of 
> something you simply can't do on 0.3: 
>
> julia> A = reshape(1:15, 3, 5) 
> 3x5 Array{Int64,2}: 
>  1  4  7  10  13 
>  2  5  8  11  14 
>  3  6  9  12  15 
>
> julia> b = sub(A, [2, 7, 8]) 
> 3-element SubArray{Int64,1,Array{Int64,2},(Array{Int64,1},),0}: 
>  2 
>  7 
>  8 
>
> julia> b[2] = -1 
> -1 
>
> julia> A 
> 3x5 Array{Int64,2}: 
>  1  4  -1  10  13 
>  2  5   8  11  14 
>  3  6   9  12  15 
>
> If anything, the divergence between the two will grow further once 
> https://github.com/JuliaLang/julia/issues/9874 is addressed. 
>
> Best, 
> --Tim 
>
> On Sunday, February 01, 2015 12:02:56 PM Daniel Casimiro wrote: 
> > Hi, 
> > 
> > I noticed that the "sub" function behaves differently in master and 
> version 
> > 0.3.5, when handling data of type Array{Float64, 1}. I am not sure if 
> the 
> > change is intentional. 
> > 
> > The following works as expected on Julia master: 
> > 
> > *julia>* *sub([1.0; 2; 3; 4], 1:3, :)* 
> > 
> > but, fails in version 0.3.5 with the following error: 
> > > *ERROR: `sub` has no method matching sub(::Array{Float64,1}, 
> > > 
> > > ::(UnitRange{Int64},UnitRange{Int64}))* 
> > > 
> > > * in sub at subarray.jl:80** in sub at subarray.jl:132* 
> > 
> > Is this a bug in Julia 0.3.5 or master? 
> > 
> > This came up in this pull request: 
> > https://github.com/dancasimiro/WAV.jl/pull/20. I just figured out that 
> my 
> > "fix" is broken too. 
> > 
> > Thanks. 
>
>

Re: [julia-users] The "sub" function behaves differently in v0.3 and master

2015-02-01 Thread Tim Holy
SubArrays have been entirely rewritten in 0.4, and can do quite a few tricks 
that the old ones can't. Changing the dimensionality of the view compared to 
the parent, as in your example, is one of them. Here's another example of 
something you simply can't do on 0.3:

julia> A = reshape(1:15, 3, 5)
3x5 Array{Int64,2}:
 1  4  7  10  13
 2  5  8  11  14
 3  6  9  12  15

julia> b = sub(A, [2, 7, 8])
3-element SubArray{Int64,1,Array{Int64,2},(Array{Int64,1},),0}:
 2
 7
 8

julia> b[2] = -1
-1

julia> A
3x5 Array{Int64,2}:
 1  4  -1  10  13
 2  5   8  11  14
 3  6   9  12  15

If anything, the divergence between the two will grow further once 
https://github.com/JuliaLang/julia/issues/9874 is addressed.

Best,
--Tim

On Sunday, February 01, 2015 12:02:56 PM Daniel Casimiro wrote:
> Hi,
> 
> I noticed that the "sub" function behaves differently in master and version
> 0.3.5, when handling data of type Array{Float64, 1}. I am not sure if the
> change is intentional.
> 
> The following works as expected on Julia master:
> 
> *julia>* *sub([1.0; 2; 3; 4], 1:3, :)*
> 
> but, fails in version 0.3.5 with the following error:
> > *ERROR: `sub` has no method matching sub(::Array{Float64,1},
> > 
> > ::(UnitRange{Int64},UnitRange{Int64}))*
> > 
> > * in sub at subarray.jl:80** in sub at subarray.jl:132*
> 
> Is this a bug in Julia 0.3.5 or master?
> 
> This came up in this pull request:
> https://github.com/dancasimiro/WAV.jl/pull/20. I just figured out that my
> "fix" is broken too.
> 
> Thanks.



[julia-users] The "sub" function behaves differently in v0.3 and master

2015-02-01 Thread Daniel Casimiro
Hi,

I noticed that the "sub" function behaves differently in master and version 
0.3.5, when handling data of type Array{Float64, 1}. I am not sure if the 
change is intentional.

The following works as expected on Julia master:

*julia>* *sub([1.0; 2; 3; 4], 1:3, :)*

but, fails in version 0.3.5 with the following error:


> *ERROR: `sub` has no method matching sub(::Array{Float64,1}, 
> ::(UnitRange{Int64},UnitRange{Int64}))*
> * in sub at subarray.jl:80** in sub at subarray.jl:132*


Is this a bug in Julia 0.3.5 or master?

This came up in this pull request: 
https://github.com/dancasimiro/WAV.jl/pull/20. I just figured out that my 
"fix" is broken too. 

Thanks.