@staticmethod<EOL><INDENT>def _minimal_common_integer(si_0, si_1):<DEDENT>
si_0_splitted = si_0._ssplit()<EOL>si_1_splitted = si_1._ssplit()<EOL>len_0, len_1 = len(si_0_splitted), len(si_1_splitted)<EOL>if len_0 == <NUM_LIT:1> and len_1 == <NUM_LIT:2>:<EOL><INDENT>si_0_splitted, si_1_splitted = si_1_splitted, si_0_splitted<EOL>len_0, len_1 = len_1, len_0<EOL><DEDENT>if len_0 == <NUM_LIT:1> and len_1 == <NUM_LIT:1>:<EOL><INDENT>return StridedInterval._minimal_common_integer_splitted(si_0, si_1)<EOL><DEDENT>if len_0 == <NUM_LIT:2> and len_1 == <NUM_LIT:1>:<EOL><INDENT>int_0 = StridedInterval._minimal_common_integer_splitted(si_0_splitted[<NUM_LIT:0>], si_1_splitted[<NUM_LIT:0>])<EOL>int_1 = StridedInterval._minimal_common_integer_splitted(si_0_splitted[<NUM_LIT:1>], si_1_splitted[<NUM_LIT:0>])<EOL><DEDENT>else:<EOL><INDENT>int_0 = StridedInterval._minimal_common_integer_splitted(si_0_splitted[<NUM_LIT:0>], si_1_splitted[<NUM_LIT:0>])<EOL>int_1 = StridedInterval._minimal_common_integer_splitted(si_0_splitted[<NUM_LIT:1>], si_1_splitted[<NUM_LIT:1>])<EOL><DEDENT>if int_0 is None:<EOL><INDENT>return int_1<EOL><DEDENT>elif int_1 is None:<EOL><INDENT>return int_0<EOL><DEDENT>else:<EOL><INDENT>return int_0<EOL><DEDENT>
Calculates the minimal integer that appears in both StridedIntervals.
As a wrapper method of _minimal_common_integer_splitted(), this method takes arbitrary StridedIntervals.
For more information, please refer to the comment of _minimal_common_integer_splitted().

:param si_0:   the first StridedInterval
:type  si_0:   StridedInterval
:param si_1:   the second StridedInterval
:type  si_1:   StridedInterval

:return: the minimal common integer, or None if there is no common integer