@@ -1088,7 +1088,7 @@ algorithms for sparse matrices: multiplication and permuted transposition," ACM
10881088beyond that passed in.
10891089"""
10901090function halfperm! (X:: AbstractSparseMatrixCSC{Tv,Ti} , A:: AbstractSparseMatrixCSC{TvA,Ti} ,
1091- q:: AbstractVector{<:Integer} , f:: Function = identity) where {Tv,TvA,Ti}
1091+ q:: AbstractVector{<:Integer} , f:: F = identity) where {Tv,TvA,Ti,F <: Function }
10921092 _computecolptrs_halfperm! (X, A)
10931093 _distributevals_halfperm! (X, A, q, f)
10941094 return X
@@ -1119,7 +1119,7 @@ distributing `rowvals(A)` and `f`-transformed `nonzeros(A)` into `rowvals(X)` an
11191119respectively. Simultaneously fixes the one-position-forward shift in `getcolptr(X)`.
11201120"""
11211121@noinline function _distributevals_halfperm! (X:: AbstractSparseMatrixCSC{Tv,Ti} ,
1122- A:: AbstractSparseMatrixCSC{TvA,Ti} , q:: AbstractVector{<:Integer} , f:: Function ) where {Tv,TvA,Ti}
1122+ A:: AbstractSparseMatrixCSC{TvA,Ti} , q:: AbstractVector{<:Integer} , f:: F ) where {Tv,TvA,Ti,F <: Function }
11231123 resize! (nonzeros (X), nnz (A))
11241124 resize! (rowvals (X), nnz (A))
11251125 @inbounds for Xi in 1 : size (A, 2 )
@@ -1143,7 +1143,7 @@ No additonal memory is allocated other than resizing the rowval and nzval of `X`
11431143
11441144See `halfperm!`
11451145"""
1146- function ftranspose! (X:: AbstractSparseMatrixCSC{Tv,Ti} , A:: AbstractSparseMatrixCSC{Tv,Ti} , f:: Function ) where {Tv,Ti}
1146+ function ftranspose! (X:: AbstractSparseMatrixCSC{Tv,Ti} , A:: AbstractSparseMatrixCSC{Tv,Ti} , f:: F ) where {Tv,Ti,F <: Function }
11471147 # Check compatibility of source argument A and destination argument X
11481148 if size (X, 2 ) != size (A, 1 )
11491149 throw (DimensionMismatch (string (" destination argument `X`'s column count, " ,
0 commit comments