# Triu and tril on Matrix

**URL:** https://discourse.julialang.org/t/triu-and-tril-on-matrix/94917
**Category:** Internals & Design
**Tags:** linearalgebra
**Created:** [February 20, 2023, 3:59pm UTC](https://discourse.julialang.org/t/triu-and-tril-on-matrix/94917 "2023-02-20T15:59:21Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![putianyi888](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/putianyi888/32/32279_2.png) [@putianyi888](https://discourse.julialang.org/u/putianyi888)
#### Post date: [February 20, 2023, 3:59pm UTC](https://discourse.julialang.org/t/triu-and-tril-on-matrix/94917/1 "2023-02-20T15:59:21Z")

</div>

The current codes are

```julia
# dense.jl
triu(M::Matrix, k::Integer) = triu!(copy(M), k)
tril(M::Matrix, k::Integer) = tril!(copy(M), k)

# generic.jl
triu(M::AbstractMatrix,k::Integer) = triu!(copy(M),k)
tril(M::AbstractMatrix,k::Integer) = tril!(copy(M),k)

```

Is there a reason for the dense codes to exist?

---

<div class="post-metadata">

### Author: ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)
#### Post date: [February 20, 2023, 4:15pm UTC](https://discourse.julialang.org/t/triu-and-tril-on-matrix/94917/2 "2023-02-20T16:15:39Z")

</div>

Quite possibly not.
