https://github.com/JuliaLang/julia
Revision 163393448c9df1fa0a3a3d051913eadd4f94a3ac authored by Jishnu Bhattacharya on 20 December 2023, 04:06:26 UTC, committed by GitHub on 20 December 2023, 04:06:26 UTC
Only looping over the triangular part provides a performance boost:
```julia
julia> U = UpperTriangular(rand(3000,3000));

julia> @btime zero($U);
  23.575 ms (3 allocations: 68.66 MiB) # master
  15.739 ms (3 allocations: 68.66 MiB) # PR
```
This is only really applicable when filling a triangular matrix with
zeros, but this has several applications (e.g. imaginary part of a real
matrix).

---------

Co-authored-by: Daniel Karrasch <daniel.karrasch@posteo.de>
1 parent 24e43ad
History
Tip revision: 163393448c9df1fa0a3a3d051913eadd4f94a3ac authored by Jishnu Bhattacharya on 20 December 2023, 04:06:26 UTC
Specialize `fill!` for `Lower`/`UpperTriangular` (#52570)
Tip revision: 1633934
File Mode Size
checksums
patches
tools
valgrind
.gitignore -rw-r--r-- 26 bytes
JuliaSyntax.mk -rw-r--r-- 677 bytes
JuliaSyntax.version -rw-r--r-- 244 bytes
Makefile -rw-r--r-- 6.0 KB
blastrampoline.mk -rw-r--r-- 2.1 KB
blastrampoline.version -rw-r--r-- 196 bytes
clang.version -rw-r--r-- 124 bytes
csl.mk -rw-r--r-- 5.2 KB
csl.version -rw-r--r-- 57 bytes
curl.mk -rw-r--r-- 3.4 KB
curl.version -rw-r--r-- 95 bytes
dsfmt.mk -rw-r--r-- 2.2 KB
dsfmt.version -rw-r--r-- 76 bytes
gfortblas.alias -rw-r--r-- 706 bytes
gfortblas.c -rw-r--r-- 4.4 KB
gmp.mk -rw-r--r-- 3.5 KB
gmp.version -rw-r--r-- 70 bytes
ittapi.mk -rw-r--r-- 1.6 KB
ittapi.version -rw-r--r-- 91 bytes
libgit2.mk -rw-r--r-- 3.7 KB
libgit2.version -rw-r--r-- 429 bytes
libssh2.mk -rw-r--r-- 2.4 KB
libssh2.version -rw-r--r-- 167 bytes
libsuitesparse.mk -rw-r--r-- 3.9 KB
libsuitesparse.version -rw-r--r-- 161 bytes
libtracyclient.mk -rw-r--r-- 3.4 KB
libtracyclient.version -rw-r--r-- 227 bytes
libuv.mk -rw-r--r-- 2.4 KB
libuv.version -rw-r--r-- 154 bytes
libwhich.mk -rw-r--r-- 1.2 KB
libwhich.version -rw-r--r-- 78 bytes
lld.version -rw-r--r-- 61 bytes
llvm-options.mk -rw-r--r-- 564 bytes
llvm-tools.version -rw-r--r-- 184 bytes
llvm-ver.make -rw-r--r-- 664 bytes
llvm.mk -rw-r--r-- 11.8 KB
llvm.version -rw-r--r-- 922 bytes
llvmunwind.version -rw-r--r-- 95 bytes
mbedtls.mk -rw-r--r-- 3.4 KB
mbedtls.version -rw-r--r-- 83 bytes
mpfr.mk -rw-r--r-- 2.4 KB
mpfr.version -rw-r--r-- 73 bytes
nghttp2.mk -rw-r--r-- 2.0 KB
nghttp2.version -rw-r--r-- 102 bytes
objconv.mk -rw-r--r-- 1.0 KB
objconv.version -rw-r--r-- 264 bytes
openblas.mk -rw-r--r-- 8.3 KB
openblas.version -rw-r--r-- 227 bytes
openlibm.mk -rw-r--r-- 1.3 KB
openlibm.version -rw-r--r-- 163 bytes
p7zip.mk -rw-r--r-- 1.6 KB
p7zip.version -rw-r--r-- 76 bytes
patchelf.mk -rw-r--r-- 2.2 KB
patchelf.version -rw-r--r-- 112 bytes
pcre.mk -rw-r--r-- 2.2 KB
pcre.version -rw-r--r-- 74 bytes
sanitizers.mk -rw-r--r-- 1017 bytes
unwind.mk -rw-r--r-- 6.5 KB
unwind.version -rw-r--r-- 106 bytes
utf8proc.mk -rw-r--r-- 1.5 KB
utf8proc.version -rw-r--r-- 78 bytes
zlib.mk -rw-r--r-- 1.4 KB
zlib.version -rw-r--r-- 164 bytes

back to top