public static int binarySearchValueOrHigher(ListNumber values, double value) {
        if (value <= values.getDouble(0)) {
            return 0;
        }
        if (value >= values.getDouble(values.size() -1)) {
            return values.size() - 1;
        }
        
        int index = binarySearch(0, values.size() - 1, values, value);
        
        while (index != values.size() - 1 && value > values.getDouble(index)) {
            index++;
        }
        
        while (index != values.size() - 1 && value == values.getDouble(index + 1)) {
            index++;
        }
        
        return index;
    }
public static int binarySearchValueOrHigher ( ListNumber values , double value ) { if ( value <= values . getDouble ( 0 ) ) { return 0 ; } if ( value >= values . getDouble ( values . size ( ) - 1 ) ) { return values . size ( ) - 1 ; } int index = binarySearch ( 0 , values . size ( ) - 1 , values , value ) ; while ( index != values . size ( ) - 1 && value > values . getDouble ( index ) ) { index ++ ; } while ( index != values . size ( ) - 1 && value == values . getDouble ( index + 1 ) ) { index ++ ; } return index ; }
Finds the value in the list, or the one right above it.

@param values a list of values
@param value a value
@return the index of the value