swh:1:snp:3a44eb759780145deea094ac2a25c5049546a085
Raw File
Tip revision: 9bf6f03951ba62e84fc9c6e1728865f199ce4bb0 authored by Han Lin Shang on 01 November 2018, 18:40:03 UTC
version 5.2
Tip revision: 9bf6f03
hyman.filter.R
hyman.filter <- function(z)
{
    n <- length(z$x)
    ss <- (z$y[2:n] - z$y[1:(n - 1)])/(z$x[2:n] - z$x[1:(n - 1)])
    S0 <- c(ss[1], ss)
    S1 <- c(ss, ss[n - 1])
    sig <- z$b
    ind <- (S0 * S1 > 0)
    sig[ind] <- S1[ind]
    ind <- (sig >= 0)
    if (sum(ind))
        z$b[ind] <- pmin(pmax(0, z$b[ind]), 3 * pmin(abs(S0[ind]),
            abs(S1[ind])))
    ind <- !ind
    if (sum(ind))
        z$b[ind] <- pmax(pmin(0, z$b[ind]), -3 * pmin(abs(S0[ind]),
            abs(S1[ind])))
    z
}
back to top