Skip to content

Upper or lower triangular part of an array #176

Open
@ivan-pi

Description

@ivan-pi

triu and tril

tril - lower triangular part of an array
triu - upper triangular part of an array

Return a copy of the lower/upper triangular part of a rank-2 array. The elements below/above the k-th diagonal are replaced with zeroes (default k=0)

Useful to recover the lower or upper part of a matrix factorization.

Interface

interface tril
    module function tril_rsp(A) result(L)
        real(sp), intent(in) :: A(:,:)
        real(sp) :: L(size(A,1),size(A,2))
    end function
    module function tril_k_rsp(A,k) result(L)
        real(sp), intent(in) :: A(:,:)
        integer, intent(in) :: k
        real(sp) :: L(size(A,1),size(A,2))
    end function
    ! .. repeat for all real and integer kinds ..
end interface

Analogous interface for triu. The interfaces would go to the file stdlib_experimental_linalg.f90. Implementations would go to the submodule stdlib_experimental_linalg_trilu.f90.

Point for discussion: two separate functions (without or with diagonal) as shown above or only a single interface using the present intrinsic?

Other languages

Julia

MATLAB

Python (NumPy)

C++

Other

  • Would we like a subroutine version which works in-place? In Julia they use the tril!(M) and triu!(M) syntax for this purpose.

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic: mathematicslinear algebra, sparse matrices, special functions, FFT, random numbers, statistics, ...

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions