// findCrossings(xvec, theta, tvec)
// Returns vector of times that the signal crosses the threshold theta
obfunc find_crossings() { localobj xvec, tvec, tcross
    xvec = $o1
    theta = $2
    tvec = $o3
    type = $4
    
    tcross = new Vector()
    for i=0,xvec.size()-2 {
        // +ve going times
        if (type == 1) {
            if ((xvec.x(i) < theta) && xvec.x(i+1) >= theta) {
                tcross.append(tvec.x(i))
            }
        }
        if (type == 2) {
            if ((xvec.x(i) > theta) && xvec.x(i+1) <= theta) {
                tcross.append(tvec.x(i))
            }
        }
    }
    return tcross
}