private static int uarimaxLt(double value,double[] bv,int[] bvi,BinaryOperator bOp) throws DMLRuntimeException {
  int ixMax=bv.length;
  if (value < bv[0] || value >= bv[bv.length - 1])   return ixMax;
  int ix=Arrays.binarySearch(bv,value);
  if (ix < 0)   ix=Math.abs(ix) - 2;
  ixMax=bvi[ix] + 1;
  return ixMax;
}

private static int uarimaxLt ( double value , double [ ] bv , int [ ] bvi , BinaryOperator bOp ) throws DMLRuntimeException { int ixMax = bv . length ; if ( value < bv [ 0 ] || value >= bv [ bv . length - 1 ] ) return ixMax ; int ix = Arrays . binarySearch ( bv , value ) ; if ( ix < 0 ) ix = Math . abs ( ix ) - 2 ; ixMax = bvi [ ix ] + 1 ; return ixMax ; }
find out rowindexmax for lessthan operator .
