asceticism.cpp: In instantiation of 'void karatsuba(int*, int*, int*, int*, int) [with int n = 1]':
asceticism.cpp:71:16: recursively required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 65536]'
asceticism.cpp:71:16: required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 131072]'
asceticism.cpp:100:49: required from here
asceticism.cpp:71:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
71 | karatsuba<n/2>(a, a+n/2, ans, b, rem);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:76:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
76 | karatsuba<n/2>(a, a+n/2, ans+n, b, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:81:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
81 | karatsuba<n/2>(a, a+n/2, b, tmp, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp: In instantiation of 'void karatsuba(int*, int*, int*, int*, int) [with int n = 0]':
asceticism.cpp:71:16: recursively required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 65536]'
asceticism.cpp:71:16: required from 'void karatsuba(int*, int*, int*, int*, int) [with int n = 131072]'
asceticism.cpp:100:49: required from here
asceticism.cpp:71:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
71 | karatsuba<n/2>(a, a+n/2, ans, b, rem);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:76:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
76 | karatsuba<n/2>(a, a+n/2, ans+n, b, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
asceticism.cpp:81:16: warning: passing argument 1 to 'restrict'-qualified parameter aliases with argument 2 [-Wrestrict]
81 | karatsuba<n/2>(a, a+n/2, b, tmp, rem - n/2);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~