The list of possible algorithms for multiplication is quite long:
- Schoolbook long multiplication
- Karatsuba algorithm
- 3-way Toom–Cook multiplication
- k-way Toom–Cook multiplication
- Mixed-level Toom–Cook
- Schönhage–Strassen algorithm
- Fürer's algorithm
Which one is used by Java by default and why? When does it switch to a "better performance" algorithm?