"rankscore" <-
function(scores.orig,scores.know,s=1,rev=FALSE)
{
    if(length(scores.orig) != length(scores.know)) stop("Dimensions of score vectors aren't compatible!")

    N <- length(scores.orig)
    ro <- rank(-1*scores.orig)
    rk <- rank(-1*scores.know)
    dr <- ro-rk

    if(rev) { dr <- -1*dr; r <- ro }
    else r <- rk

    xp <- dr
    y <- r-1
    y[dr<0] <- N-r[dr<0]

    R <- xp/(N-1)*cos(pi/2/(N-1)*y)^s
    return(R)
}