As a brief aside, we will touch on a rather interesting side topic: the relation between integer multiplication and convolutions
As an example, let us consider the following multiplication:
In this case, we might line up the numbers, like so:
Here, each column represents another power of 10, such that in the number 123, there is 1 100, 2 10s, and 3 1s. So let us use a similar notation to perform the convolution, by reversing the second set of numbers and moving it to the right, performing an element-wise multiplication at each step:
For these operations, any blank space should be considered a
Now all that is left is to perform the carrying operation by moving any number in the 10s digit to its left-bound neighbor.
For example, the numbers
Which give us
This will be discussed in further detail when we talk about the Schonhage-Strassen algorithm, which uses this fact to perform multiplications for incredibly large integers.
<script> MathJax.Hub.Queue(["Typeset",MathJax.Hub]); </script>The text of this chapter was written by James Schloss and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
After initial licensing (#560), the following pull requests have modified the text or graphics of this chapter:
- none