code: public static int compare(String s1, String s2, int options) {
          return internalCompare(s1, s2, options);
      }
docs: Compare two strings for canonical equivalence.
  Further options include case-insensitive comparison and
  code point order (as opposed to code unit order).
  
  Canonical equivalence between two strings is defined as their normalized
  forms (NFD or NFC) being identical.
  This function compares strings incrementally instead of normalizing
  (and optionally case-folding) both strings entirely,
  improving performance significantly.
  
  Bulk normalization is only necessary if the strings do not fulfill the
  FCD conditions. Only in this case, and only if the strings are relatively
  long, is memory allocated temporarily.
  For FCD strings and short non-FCD strings there is no memory allocation.
  
  Semantically, this is equivalent to
  strcmp[CodePointOrder](foldCase(NFD(s1)), foldCase(NFD(s2)))
  where code point order and foldCase are all optional.
  
  @param s1 First source string.
  @param s2 Second source string.
  
  @param options A bit set of options:
  - FOLD_CASE_DEFAULT or 0 is used for default options:
  Case-sensitive comparison in code unit order, and the input strings
  are quick-checked for FCD.
  
  - INPUT_IS_FCD
  Set if the caller knows that both s1 and s2 fulfill the FCD
  conditions. If not set, the function will quickCheck for FCD
  and normalize if necessary.
  
  - COMPARE_CODE_POINT_ORDER
  Set to choose code point order instead of code unit order
  
  - COMPARE_IGNORE_CASE
  Set to compare strings case-insensitively using case folding,
  instead of case-sensitively.
  If set, then the following case folding options are used.
  
  @return &lt;0 or 0 or &gt;0 as usual for string comparisons
  
  @see #normalize
  @see #FCD