forlab_linalg_linspace.f90 Source File


Contents


Source Code

submodule(forlab_linalg) forlab_linalg_linspace

    implicit none

contains

    module procedure linspace_sp
    integer :: i, n
    real(sp) :: by
    n = size(X)
    by = (to - from)/real(n - 1, sp)
    X = from + by*real([(i - 1, i=1, n)], sp)
    return
    end procedure linspace_sp

    module procedure logspace_sp
    call linspace(X, log10(from), log10(to))
    X = 10._sp**X
    return
    end procedure logspace_sp
    module procedure linspace_dp
    integer :: i, n
    real(dp) :: by
    n = size(X)
    by = (to - from)/real(n - 1, dp)
    X = from + by*real([(i - 1, i=1, n)], dp)
    return
    end procedure linspace_dp

    module procedure logspace_dp
    call linspace(X, log10(from), log10(to))
    X = 10._dp**X
    return
    end procedure logspace_dp

end submodule forlab_linalg_linspace