Skip to content

Commit

Permalink
remove Dimspec. fixes #1829
Browse files Browse the repository at this point in the history
  • Loading branch information
JeffBezanson committed Dec 28, 2012
1 parent cfc4fac commit 9aed1f9
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 21 deletions.
1 change: 0 additions & 1 deletion base/abstractarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ typealias AbstractVector{T} AbstractArray{T,1}
typealias AbstractMatrix{T} AbstractArray{T,2}

typealias Indices{T<:Integer} Union(Integer, AbstractVector{T})
typealias Dimspec Union(Int,Dims)

typealias RangeIndex Union(Int, Range{Int}, Range1{Int})

Expand Down
20 changes: 10 additions & 10 deletions base/array.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1270,7 +1270,7 @@ indmin(a::Array) = findmin(a)[2]

reduced_dims(A, region) = ntuple(ndims(A), i->(contains(region, i) ? 1 : size(A,i)))

areduce(f::Function, A, region::Dimspec, v0) =
areduce(f::Function, A, region, v0) =
areduce(f, A, region, v0, similar(A, reduced_dims(A, region)))

# TODO:
Expand Down Expand Up @@ -1314,7 +1314,7 @@ function gen_areduce_func(n, f)
end

global areduce
function areduce(f::Function, A, region::Dimspec, v0, R)
function areduce(f::Function, A, region, v0, R)
ndimsA = ndims(A)

if is(areduce_cache,nothing)
Expand Down Expand Up @@ -1347,19 +1347,19 @@ function areduce(f::Function, A, region::Dimspec, v0, R)
end
end

max{T}(A::AbstractArray{T}, b::(), region::Dimspec) = areduce(max,A,region,typemin(T))
min{T}(A::AbstractArray{T}, b::(), region::Dimspec) = areduce(min,A,region,typemax(T))
sum{T}(A::AbstractArray{T}, region::Dimspec) = areduce(+,A,region,zero(T))
prod{T}(A::AbstractArray{T}, region::Dimspec) = areduce(*,A,region,one(T))
max{T}(A::AbstractArray{T}, b::(), region) = areduce(max,A,region,typemin(T))
min{T}(A::AbstractArray{T}, b::(), region) = areduce(min,A,region,typemax(T))
sum{T}(A::AbstractArray{T}, region) = areduce(+,A,region,zero(T))
prod{T}(A::AbstractArray{T}, region) = areduce(*,A,region,one(T))

all(A::AbstractArray{Bool}, region::Dimspec) = areduce(all,A,region,true)
any(A::AbstractArray{Bool}, region::Dimspec) = areduce(any,A,region,false)
sum(A::AbstractArray{Bool}, region::Dimspec) = areduce(+,A,region,0,similar(A,Int,reduced_dims(A,region)))
all(A::AbstractArray{Bool}, region) = areduce(all,A,region,true)
any(A::AbstractArray{Bool}, region) = areduce(any,A,region,false)
sum(A::AbstractArray{Bool}, region) = areduce(+,A,region,0,similar(A,Int,reduced_dims(A,region)))
sum(A::AbstractArray{Bool}) = count(A)
sum(A::StridedArray{Bool}) = count(A)
prod(A::AbstractArray{Bool}) =
error("use all() instead of prod() for boolean arrays")
prod(A::AbstractArray{Bool}, region::Dimspec) =
prod(A::AbstractArray{Bool}, region) =
error("use all() instead of prod() for boolean arrays")

function sum{T}(A::StridedArray{T})
Expand Down
2 changes: 1 addition & 1 deletion base/bitarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1400,7 +1400,7 @@ nonzeros(B::BitArray) = trues(nnz(B))

## Reductions ##

sum(A::BitArray, region::Dimspec) = areduce(+,A,region,0,Array(Int,reduced_dims(A,region)))
sum(A::BitArray, region) = areduce(+,A,region,0,Array(Int,reduced_dims(A,region)))

sum(B::BitArray) = nnz(B)

Expand Down
2 changes: 1 addition & 1 deletion base/darray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -880,7 +880,7 @@ prod(d::DArray) = reduce(*, d)
min(d::DArray) = reduce(min, d)
max(d::DArray) = reduce(max, d)

areduce(f::Function, d::DArray, r::Dimspec, v0, T::Type) = error("not yet implemented")
areduce(f::Function, d::DArray, r, v0, T::Type) = error("not yet implemented")
cumsum(d::DArray) = error("not yet implemented")
cumprod(d::DArray) = error("not yet implemented")

Expand Down
16 changes: 8 additions & 8 deletions base/sparse.jl
Original file line number Diff line number Diff line change
Expand Up @@ -654,7 +654,7 @@ end # macro
# Reductions

# TODO: Should the results of sparse reductions be sparse?
function areduce{Tv,Ti}(f::Function, A::SparseMatrixCSC{Tv,Ti}, region::Dimspec, v0)
function areduce{Tv,Ti}(f::Function, A::SparseMatrixCSC{Tv,Ti}, region, v0)
if region == 1

S = Array(Tv, 1, A.n)
Expand Down Expand Up @@ -702,20 +702,20 @@ function areduce{Tv,Ti}(f::Function, A::SparseMatrixCSC{Tv,Ti}, region::Dimspec,
end

max{T}(A::SparseMatrixCSC{T}) = areduce(max,A,(1,2),typemin(T))
max{T}(A::SparseMatrixCSC{T}, b::(), region::Dimspec) = areduce(max,A,region,typemin(T))
max{T}(A::SparseMatrixCSC{T}, b::(), region) = areduce(max,A,region,typemin(T))

min{T}(A::SparseMatrixCSC{T}) = areduce(min,A,(1,2),typemax(T))
min{T}(A::SparseMatrixCSC{T}, b::(), region::Dimspec) = areduce(min,A,region,typemax(T))
min{T}(A::SparseMatrixCSC{T}, b::(), region) = areduce(min,A,region,typemax(T))

sum{T}(A::SparseMatrixCSC{T}) = areduce(+,A,(1,2),zero(T))
sum{T}(A::SparseMatrixCSC{T}, region::Dimspec) = areduce(+,A,region,zero(T))
sum{T}(A::SparseMatrixCSC{T}, region) = areduce(+,A,region,zero(T))

prod{T}(A::SparseMatrixCSC{T}) = areduce(*,A,(1,2),one(T))
prod{T}(A::SparseMatrixCSC{T}, region::Dimspec) = areduce(*,A,region,one(T))
prod{T}(A::SparseMatrixCSC{T}, region) = areduce(*,A,region,one(T))

#all(A::SparseMatrixCSC{Bool}, region::Dimspec) = areduce(all,A,region,true)
#any(A::SparseMatrixCSC{Bool}, region::Dimspec) = areduce(any,A,region,false)
#sum(A::SparseMatrixCSC{Bool}, region::Dimspec) = areduce(+,A,region,0,Int)
#all(A::SparseMatrixCSC{Bool}, region) = areduce(all,A,region,true)
#any(A::SparseMatrixCSC{Bool}, region) = areduce(any,A,region,false)
#sum(A::SparseMatrixCSC{Bool}, region) = areduce(+,A,region,0,Int)
#sum(A::SparseMatrixCSC{Bool}) = nnz(A)

## ref
Expand Down

0 comments on commit 9aed1f9

Please sign in to comment.