@@ -3413,49 +3413,6 @@ function trace(A::SparseMatrixCSC{Tv}) where Tv
3413
3413
return s
3414
3414
end
3415
3415
3416
- function diagm (v:: SparseMatrixCSC{Tv,Ti} ) where {Tv,Ti}
3417
- if size (v,1 ) != 1 && size (v,2 ) != 1
3418
- throw (DimensionMismatch (" input should be nx1 or 1xn" ))
3419
- end
3420
-
3421
- n = length (v)
3422
- numnz = nnz (v)
3423
- colptr = Vector {Ti} (n+ 1 )
3424
- rowval = Vector {Ti} (numnz)
3425
- nzval = Vector {Tv} (numnz)
3426
-
3427
- if size (v,1 ) == 1
3428
- copy! (colptr, 1 , v. colptr, 1 , n+ 1 )
3429
- ptr = 1
3430
- for col = 1 : n
3431
- if colptr[col] != colptr[col+ 1 ]
3432
- rowval[ptr] = col
3433
- nzval[ptr] = v. nzval[ptr]
3434
- ptr += 1
3435
- end
3436
- end
3437
- else
3438
- copy! (rowval, 1 , v. rowval, 1 , numnz)
3439
- copy! (nzval, 1 , v. nzval, 1 , numnz)
3440
- colptr[1 ] = 1
3441
- ptr = 1
3442
- col = 1
3443
- while col <= n && ptr <= numnz
3444
- while rowval[ptr] > col
3445
- colptr[col+ 1 ] = colptr[col]
3446
- col += 1
3447
- end
3448
- colptr[col+ 1 ] = colptr[col] + 1
3449
- ptr += 1
3450
- col += 1
3451
- end
3452
- if col <= n
3453
- colptr[(col+ 1 ): (n+ 1 )] = colptr[col]
3454
- end
3455
- end
3456
-
3457
- return SparseMatrixCSC (n, n, colptr, rowval, nzval)
3458
- end
3459
3416
3460
3417
# Sort all the indices in each column of a CSC sparse matrix
3461
3418
# sortSparseMatrixCSC!(A, sortindices = :sortcols) # Sort each column with sort()
0 commit comments