<p>Notes:<br></p>
      <ul>
        <li>
Four different integer types are used (instead of a single
big_int_type) to slightly improve algorithm performance and memory
usage.</li>
        <li>As the maximum required size of the big_int_type is known in advance
(based on the size of the integer type), library provided
implementation of a fixed integer could be used (it is much faster than
heap-allocated big integers).</li>
        <li>
Two separate floating-point types are defined because for the input
with
