Skip to content

Commit aef0802

Browse files
hayatoikomaGaika
authored andcommitted
Implementation change of range (#198)
* Avoid indexing in range * Make return types of linspace and range explicite
1 parent bcb61a6 commit aef0802

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

src/array.jl

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,10 @@ imag{T<:Real}(a::AFArray{T}) = zeros(a)
9494
length(a::AFArray) = prod(size(a))
9595
inv{T<:Complex,N}(X::AFArray{T,N})::AFArray{T,N} = inverse(X,AF_MAT_NONE)
9696
inv{T<:Real,N}(X::AFArray{T,N})::AFArray{T,N} = inverse(X,AF_MAT_NONE)
97-
range{T}(::Type{AFArray{T}}, a::Integer, b::Integer) = range(1, [b], 0, T) + T(a)
98-
function range{T}(::Type{AFArray{T}}, start, step, len::Integer)
99-
x = step .* ones(AFArray{T}, len)
100-
x[1] = start
101-
cumsum(x)
102-
end
103-
range(::Type{AFArray}, a::Integer, b::Integer, c::Integer) = range(AFArray{Float64}, a, b, c)
104-
function linspace{T}(::Type{AFArray{T}}, start, stop, len::Integer)
97+
range{T}(::Type{AFArray{T}}, start::Integer, len::Integer)::AFArray{T,1} = range(1, [len], 0, T) .+ T(start)
98+
range{T}(::Type{AFArray{T}}, start, step, len::Integer)::AFArray{T,1} = range(1, [len], 0, T) .* T(step) .+ T(start)
99+
range(::Type{AFArray}, start::Integer, step::Integer, len::Integer)::AFArray{T,1} = range(AFArray{Float64}, start, step, len)
100+
function linspace{T}(::Type{AFArray{T}}, start, stop, len::Integer)::AFArray{T,1}
105101
dx = T((stop - start)/(len - 1))
106102
range(AFArray{T}, start, dx, len)
107103
end

0 commit comments

Comments
 (0)