1 // table of quotients and remainders for [-15...16] / [-15...16]
2 
3 // numerator = -15
4 {1, 0},
5 {1, -1},
6 {1, -2},
7 {1, -3},
8 {1, -4},
9 {1, -5},
10 {1, -6},
11 {1, -7},
12 {2, -1},
13 {2, -3},
14 {3, 0},
15 {3, -3},
16 {5, 0},
17 {7, -1},
18 {15, 0},
19 {0, 0},
20 {-15, 0},
21 {-8, 1},
22 {-5, 0},
23 {-4, 1},
24 {-3, 0},
25 {-3, 3},
26 {-3, 6},
27 {-2, 1},
28 {-2, 3},
29 {-2, 5},
30 {-2, 7},
31 {-2, 9},
32 {-2, 11},
33 {-2, 13},
34 {-1, 0},
35 {-1, 1},
36 // numerator = -14
37 {0, -14},
38 {1, 0},
39 {1, -1},
40 {1, -2},
41 {1, -3},
42 {1, -4},
43 {1, -5},
44 {1, -6},
45 {2, 0},
46 {2, -2},
47 {2, -4},
48 {3, -2},
49 {4, -2},
50 {7, 0},
51 {14, 0},
52 {0, 0},
53 {-14, 0},
54 {-7, 0},
55 {-5, 1},
56 {-4, 2},
57 {-3, 1},
58 {-3, 4},
59 {-2, 0},
60 {-2, 2},
61 {-2, 4},
62 {-2, 6},
63 {-2, 8},
64 {-2, 10},
65 {-2, 12},
66 {-1, 0},
67 {-1, 1},
68 {-1, 2},
69 // numerator = -13
70 {0, -13},
71 {0, -13},
72 {1, 0},
73 {1, -1},
74 {1, -2},
75 {1, -3},
76 {1, -4},
77 {1, -5},
78 {1, -6},
79 {2, -1},
80 {2, -3},
81 {3, -1},
82 {4, -1},
83 {6, -1},
84 {13, 0},
85 {0, 0},
86 {-13, 0},
87 {-7, 1},
88 {-5, 2},
89 {-4, 3},
90 {-3, 2},
91 {-3, 5},
92 {-2, 1},
93 {-2, 3},
94 {-2, 5},
95 {-2, 7},
96 {-2, 9},
97 {-2, 11},
98 {-1, 0},
99 {-1, 1},
100 {-1, 2},
101 {-1, 3},
102 // numerator = -12
103 {0, -12},
104 {0, -12},
105 {0, -12},
106 {1, 0},
107 {1, -1},
108 {1, -2},
109 {1, -3},
110 {1, -4},
111 {1, -5},
112 {2, 0},
113 {2, -2},
114 {3, 0},
115 {4, 0},
116 {6, 0},
117 {12, 0},
118 {0, 0},
119 {-12, 0},
120 {-6, 0},
121 {-4, 0},
122 {-3, 0},
123 {-3, 3},
124 {-2, 0},
125 {-2, 2},
126 {-2, 4},
127 {-2, 6},
128 {-2, 8},
129 {-2, 10},
130 {-1, 0},
131 {-1, 1},
132 {-1, 2},
133 {-1, 3},
134 {-1, 4},
135 // numerator = -11
136 {0, -11},
137 {0, -11},
138 {0, -11},
139 {0, -11},
140 {1, 0},
141 {1, -1},
142 {1, -2},
143 {1, -3},
144 {1, -4},
145 {1, -5},
146 {2, -1},
147 {2, -3},
148 {3, -2},
149 {5, -1},
150 {11, 0},
151 {0, 0},
152 {-11, 0},
153 {-6, 1},
154 {-4, 1},
155 {-3, 1},
156 {-3, 4},
157 {-2, 1},
158 {-2, 3},
159 {-2, 5},
160 {-2, 7},
161 {-2, 9},
162 {-1, 0},
163 {-1, 1},
164 {-1, 2},
165 {-1, 3},
166 {-1, 4},
167 {-1, 5},
168 // numerator = -10
169 {0, -10},
170 {0, -10},
171 {0, -10},
172 {0, -10},
173 {0, -10},
174 {1, 0},
175 {1, -1},
176 {1, -2},
177 {1, -3},
178 {1, -4},
179 {2, 0},
180 {2, -2},
181 {3, -1},
182 {5, 0},
183 {10, 0},
184 {0, 0},
185 {-10, 0},
186 {-5, 0},
187 {-4, 2},
188 {-3, 2},
189 {-2, 0},
190 {-2, 2},
191 {-2, 4},
192 {-2, 6},
193 {-2, 8},
194 {-1, 0},
195 {-1, 1},
196 {-1, 2},
197 {-1, 3},
198 {-1, 4},
199 {-1, 5},
200 {-1, 6},
201 // numerator = -9
202 {0, -9},
203 {0, -9},
204 {0, -9},
205 {0, -9},
206 {0, -9},
207 {0, -9},
208 {1, 0},
209 {1, -1},
210 {1, -2},
211 {1, -3},
212 {1, -4},
213 {2, -1},
214 {3, 0},
215 {4, -1},
216 {9, 0},
217 {0, 0},
218 {-9, 0},
219 {-5, 1},
220 {-3, 0},
221 {-3, 3},
222 {-2, 1},
223 {-2, 3},
224 {-2, 5},
225 {-2, 7},
226 {-1, 0},
227 {-1, 1},
228 {-1, 2},
229 {-1, 3},
230 {-1, 4},
231 {-1, 5},
232 {-1, 6},
233 {-1, 7},
234 // numerator = -8
235 {0, -8},
236 {0, -8},
237 {0, -8},
238 {0, -8},
239 {0, -8},
240 {0, -8},
241 {0, -8},
242 {1, 0},
243 {1, -1},
244 {1, -2},
245 {1, -3},
246 {2, 0},
247 {2, -2},
248 {4, 0},
249 {8, 0},
250 {0, 0},
251 {-8, 0},
252 {-4, 0},
253 {-3, 1},
254 {-2, 0},
255 {-2, 2},
256 {-2, 4},
257 {-2, 6},
258 {-1, 0},
259 {-1, 1},
260 {-1, 2},
261 {-1, 3},
262 {-1, 4},
263 {-1, 5},
264 {-1, 6},
265 {-1, 7},
266 {-1, 8},
267 // numerator = -7
268 {0, -7},
269 {0, -7},
270 {0, -7},
271 {0, -7},
272 {0, -7},
273 {0, -7},
274 {0, -7},
275 {0, -7},
276 {1, 0},
277 {1, -1},
278 {1, -2},
279 {1, -3},
280 {2, -1},
281 {3, -1},
282 {7, 0},
283 {0, 0},
284 {-7, 0},
285 {-4, 1},
286 {-3, 2},
287 {-2, 1},
288 {-2, 3},
289 {-2, 5},
290 {-1, 0},
291 {-1, 1},
292 {-1, 2},
293 {-1, 3},
294 {-1, 4},
295 {-1, 5},
296 {-1, 6},
297 {-1, 7},
298 {-1, 8},
299 {-1, 9},
300 // numerator = -6
301 {0, -6},
302 {0, -6},
303 {0, -6},
304 {0, -6},
305 {0, -6},
306 {0, -6},
307 {0, -6},
308 {0, -6},
309 {0, -6},
310 {1, 0},
311 {1, -1},
312 {1, -2},
313 {2, 0},
314 {3, 0},
315 {6, 0},
316 {0, 0},
317 {-6, 0},
318 {-3, 0},
319 {-2, 0},
320 {-2, 2},
321 {-2, 4},
322 {-1, 0},
323 {-1, 1},
324 {-1, 2},
325 {-1, 3},
326 {-1, 4},
327 {-1, 5},
328 {-1, 6},
329 {-1, 7},
330 {-1, 8},
331 {-1, 9},
332 {-1, 10},
333 // numerator = -5
334 {0, -5},
335 {0, -5},
336 {0, -5},
337 {0, -5},
338 {0, -5},
339 {0, -5},
340 {0, -5},
341 {0, -5},
342 {0, -5},
343 {0, -5},
344 {1, 0},
345 {1, -1},
346 {1, -2},
347 {2, -1},
348 {5, 0},
349 {0, 0},
350 {-5, 0},
351 {-3, 1},
352 {-2, 1},
353 {-2, 3},
354 {-1, 0},
355 {-1, 1},
356 {-1, 2},
357 {-1, 3},
358 {-1, 4},
359 {-1, 5},
360 {-1, 6},
361 {-1, 7},
362 {-1, 8},
363 {-1, 9},
364 {-1, 10},
365 {-1, 11},
366 // numerator = -4
367 {0, -4},
368 {0, -4},
369 {0, -4},
370 {0, -4},
371 {0, -4},
372 {0, -4},
373 {0, -4},
374 {0, -4},
375 {0, -4},
376 {0, -4},
377 {0, -4},
378 {1, 0},
379 {1, -1},
380 {2, 0},
381 {4, 0},
382 {0, 0},
383 {-4, 0},
384 {-2, 0},
385 {-2, 2},
386 {-1, 0},
387 {-1, 1},
388 {-1, 2},
389 {-1, 3},
390 {-1, 4},
391 {-1, 5},
392 {-1, 6},
393 {-1, 7},
394 {-1, 8},
395 {-1, 9},
396 {-1, 10},
397 {-1, 11},
398 {-1, 12},
399 // numerator = -3
400 {0, -3},
401 {0, -3},
402 {0, -3},
403 {0, -3},
404 {0, -3},
405 {0, -3},
406 {0, -3},
407 {0, -3},
408 {0, -3},
409 {0, -3},
410 {0, -3},
411 {0, -3},
412 {1, 0},
413 {1, -1},
414 {3, 0},
415 {0, 0},
416 {-3, 0},
417 {-2, 1},
418 {-1, 0},
419 {-1, 1},
420 {-1, 2},
421 {-1, 3},
422 {-1, 4},
423 {-1, 5},
424 {-1, 6},
425 {-1, 7},
426 {-1, 8},
427 {-1, 9},
428 {-1, 10},
429 {-1, 11},
430 {-1, 12},
431 {-1, 13},
432 // numerator = -2
433 {0, -2},
434 {0, -2},
435 {0, -2},
436 {0, -2},
437 {0, -2},
438 {0, -2},
439 {0, -2},
440 {0, -2},
441 {0, -2},
442 {0, -2},
443 {0, -2},
444 {0, -2},
445 {0, -2},
446 {1, 0},
447 {2, 0},
448 {0, 0},
449 {-2, 0},
450 {-1, 0},
451 {-1, 1},
452 {-1, 2},
453 {-1, 3},
454 {-1, 4},
455 {-1, 5},
456 {-1, 6},
457 {-1, 7},
458 {-1, 8},
459 {-1, 9},
460 {-1, 10},
461 {-1, 11},
462 {-1, 12},
463 {-1, 13},
464 {-1, 14},
465 // numerator = -1
466 {0, -1},
467 {0, -1},
468 {0, -1},
469 {0, -1},
470 {0, -1},
471 {0, -1},
472 {0, -1},
473 {0, -1},
474 {0, -1},
475 {0, -1},
476 {0, -1},
477 {0, -1},
478 {0, -1},
479 {0, -1},
480 {1, 0},
481 {0, 0},
482 {-1, 0},
483 {-1, 1},
484 {-1, 2},
485 {-1, 3},
486 {-1, 4},
487 {-1, 5},
488 {-1, 6},
489 {-1, 7},
490 {-1, 8},
491 {-1, 9},
492 {-1, 10},
493 {-1, 11},
494 {-1, 12},
495 {-1, 13},
496 {-1, 14},
497 {-1, 15},
498 // numerator = 0
499 {0, 0},
500 {0, 0},
501 {0, 0},
502 {0, 0},
503 {0, 0},
504 {0, 0},
505 {0, 0},
506 {0, 0},
507 {0, 0},
508 {0, 0},
509 {0, 0},
510 {0, 0},
511 {0, 0},
512 {0, 0},
513 {0, 0},
514 {0, 0},
515 {0, 0},
516 {0, 0},
517 {0, 0},
518 {0, 0},
519 {0, 0},
520 {0, 0},
521 {0, 0},
522 {0, 0},
523 {0, 0},
524 {0, 0},
525 {0, 0},
526 {0, 0},
527 {0, 0},
528 {0, 0},
529 {0, 0},
530 {0, 0},
531 // numerator = 1
532 {-1, -14},
533 {-1, -13},
534 {-1, -12},
535 {-1, -11},
536 {-1, -10},
537 {-1, -9},
538 {-1, -8},
539 {-1, -7},
540 {-1, -6},
541 {-1, -5},
542 {-1, -4},
543 {-1, -3},
544 {-1, -2},
545 {-1, -1},
546 {-1, 0},
547 {0, 0},
548 {1, 0},
549 {0, 1},
550 {0, 1},
551 {0, 1},
552 {0, 1},
553 {0, 1},
554 {0, 1},
555 {0, 1},
556 {0, 1},
557 {0, 1},
558 {0, 1},
559 {0, 1},
560 {0, 1},
561 {0, 1},
562 {0, 1},
563 {0, 1},
564 // numerator = 2
565 {-1, -13},
566 {-1, -12},
567 {-1, -11},
568 {-1, -10},
569 {-1, -9},
570 {-1, -8},
571 {-1, -7},
572 {-1, -6},
573 {-1, -5},
574 {-1, -4},
575 {-1, -3},
576 {-1, -2},
577 {-1, -1},
578 {-1, 0},
579 {-2, 0},
580 {0, 0},
581 {2, 0},
582 {1, 0},
583 {0, 2},
584 {0, 2},
585 {0, 2},
586 {0, 2},
587 {0, 2},
588 {0, 2},
589 {0, 2},
590 {0, 2},
591 {0, 2},
592 {0, 2},
593 {0, 2},
594 {0, 2},
595 {0, 2},
596 {0, 2},
597 // numerator = 3
598 {-1, -12},
599 {-1, -11},
600 {-1, -10},
601 {-1, -9},
602 {-1, -8},
603 {-1, -7},
604 {-1, -6},
605 {-1, -5},
606 {-1, -4},
607 {-1, -3},
608 {-1, -2},
609 {-1, -1},
610 {-1, 0},
611 {-2, -1},
612 {-3, 0},
613 {0, 0},
614 {3, 0},
615 {1, 1},
616 {1, 0},
617 {0, 3},
618 {0, 3},
619 {0, 3},
620 {0, 3},
621 {0, 3},
622 {0, 3},
623 {0, 3},
624 {0, 3},
625 {0, 3},
626 {0, 3},
627 {0, 3},
628 {0, 3},
629 {0, 3},
630 // numerator = 4
631 {-1, -11},
632 {-1, -10},
633 {-1, -9},
634 {-1, -8},
635 {-1, -7},
636 {-1, -6},
637 {-1, -5},
638 {-1, -4},
639 {-1, -3},
640 {-1, -2},
641 {-1, -1},
642 {-1, 0},
643 {-2, -2},
644 {-2, 0},
645 {-4, 0},
646 {0, 0},
647 {4, 0},
648 {2, 0},
649 {1, 1},
650 {1, 0},
651 {0, 4},
652 {0, 4},
653 {0, 4},
654 {0, 4},
655 {0, 4},
656 {0, 4},
657 {0, 4},
658 {0, 4},
659 {0, 4},
660 {0, 4},
661 {0, 4},
662 {0, 4},
663 // numerator = 5
664 {-1, -10},
665 {-1, -9},
666 {-1, -8},
667 {-1, -7},
668 {-1, -6},
669 {-1, -5},
670 {-1, -4},
671 {-1, -3},
672 {-1, -2},
673 {-1, -1},
674 {-1, 0},
675 {-2, -3},
676 {-2, -1},
677 {-3, -1},
678 {-5, 0},
679 {0, 0},
680 {5, 0},
681 {2, 1},
682 {1, 2},
683 {1, 1},
684 {1, 0},
685 {0, 5},
686 {0, 5},
687 {0, 5},
688 {0, 5},
689 {0, 5},
690 {0, 5},
691 {0, 5},
692 {0, 5},
693 {0, 5},
694 {0, 5},
695 {0, 5},
696 // numerator = 6
697 {-1, -9},
698 {-1, -8},
699 {-1, -7},
700 {-1, -6},
701 {-1, -5},
702 {-1, -4},
703 {-1, -3},
704 {-1, -2},
705 {-1, -1},
706 {-1, 0},
707 {-2, -4},
708 {-2, -2},
709 {-2, 0},
710 {-3, 0},
711 {-6, 0},
712 {0, 0},
713 {6, 0},
714 {3, 0},
715 {2, 0},
716 {1, 2},
717 {1, 1},
718 {1, 0},
719 {0, 6},
720 {0, 6},
721 {0, 6},
722 {0, 6},
723 {0, 6},
724 {0, 6},
725 {0, 6},
726 {0, 6},
727 {0, 6},
728 {0, 6},
729 // numerator = 7
730 {-1, -8},
731 {-1, -7},
732 {-1, -6},
733 {-1, -5},
734 {-1, -4},
735 {-1, -3},
736 {-1, -2},
737 {-1, -1},
738 {-1, 0},
739 {-2, -5},
740 {-2, -3},
741 {-2, -1},
742 {-3, -2},
743 {-4, -1},
744 {-7, 0},
745 {0, 0},
746 {7, 0},
747 {3, 1},
748 {2, 1},
749 {1, 3},
750 {1, 2},
751 {1, 1},
752 {1, 0},
753 {0, 7},
754 {0, 7},
755 {0, 7},
756 {0, 7},
757 {0, 7},
758 {0, 7},
759 {0, 7},
760 {0, 7},
761 {0, 7},
762 // numerator = 8
763 {-1, -7},
764 {-1, -6},
765 {-1, -5},
766 {-1, -4},
767 {-1, -3},
768 {-1, -2},
769 {-1, -1},
770 {-1, 0},
771 {-2, -6},
772 {-2, -4},
773 {-2, -2},
774 {-2, 0},
775 {-3, -1},
776 {-4, 0},
777 {-8, 0},
778 {0, 0},
779 {8, 0},
780 {4, 0},
781 {2, 2},
782 {2, 0},
783 {1, 3},
784 {1, 2},
785 {1, 1},
786 {1, 0},
787 {0, 8},
788 {0, 8},
789 {0, 8},
790 {0, 8},
791 {0, 8},
792 {0, 8},
793 {0, 8},
794 {0, 8},
795 // numerator = 9
796 {-1, -6},
797 {-1, -5},
798 {-1, -4},
799 {-1, -3},
800 {-1, -2},
801 {-1, -1},
802 {-1, 0},
803 {-2, -7},
804 {-2, -5},
805 {-2, -3},
806 {-2, -1},
807 {-3, -3},
808 {-3, 0},
809 {-5, -1},
810 {-9, 0},
811 {0, 0},
812 {9, 0},
813 {4, 1},
814 {3, 0},
815 {2, 1},
816 {1, 4},
817 {1, 3},
818 {1, 2},
819 {1, 1},
820 {1, 0},
821 {0, 9},
822 {0, 9},
823 {0, 9},
824 {0, 9},
825 {0, 9},
826 {0, 9},
827 {0, 9},
828 // numerator = 10
829 {-1, -5},
830 {-1, -4},
831 {-1, -3},
832 {-1, -2},
833 {-1, -1},
834 {-1, 0},
835 {-2, -8},
836 {-2, -6},
837 {-2, -4},
838 {-2, -2},
839 {-2, 0},
840 {-3, -2},
841 {-4, -2},
842 {-5, 0},
843 {-10, 0},
844 {0, 0},
845 {10, 0},
846 {5, 0},
847 {3, 1},
848 {2, 2},
849 {2, 0},
850 {1, 4},
851 {1, 3},
852 {1, 2},
853 {1, 1},
854 {1, 0},
855 {0, 10},
856 {0, 10},
857 {0, 10},
858 {0, 10},
859 {0, 10},
860 {0, 10},
861 // numerator = 11
862 {-1, -4},
863 {-1, -3},
864 {-1, -2},
865 {-1, -1},
866 {-1, 0},
867 {-2, -9},
868 {-2, -7},
869 {-2, -5},
870 {-2, -3},
871 {-2, -1},
872 {-3, -4},
873 {-3, -1},
874 {-4, -1},
875 {-6, -1},
876 {-11, 0},
877 {0, 0},
878 {11, 0},
879 {5, 1},
880 {3, 2},
881 {2, 3},
882 {2, 1},
883 {1, 5},
884 {1, 4},
885 {1, 3},
886 {1, 2},
887 {1, 1},
888 {1, 0},
889 {0, 11},
890 {0, 11},
891 {0, 11},
892 {0, 11},
893 {0, 11},
894 // numerator = 12
895 {-1, -3},
896 {-1, -2},
897 {-1, -1},
898 {-1, 0},
899 {-2, -10},
900 {-2, -8},
901 {-2, -6},
902 {-2, -4},
903 {-2, -2},
904 {-2, 0},
905 {-3, -3},
906 {-3, 0},
907 {-4, 0},
908 {-6, 0},
909 {-12, 0},
910 {0, 0},
911 {12, 0},
912 {6, 0},
913 {4, 0},
914 {3, 0},
915 {2, 2},
916 {2, 0},
917 {1, 5},
918 {1, 4},
919 {1, 3},
920 {1, 2},
921 {1, 1},
922 {1, 0},
923 {0, 12},
924 {0, 12},
925 {0, 12},
926 {0, 12},
927 // numerator = 13
928 {-1, -2},
929 {-1, -1},
930 {-1, 0},
931 {-2, -11},
932 {-2, -9},
933 {-2, -7},
934 {-2, -5},
935 {-2, -3},
936 {-2, -1},
937 {-3, -5},
938 {-3, -2},
939 {-4, -3},
940 {-5, -2},
941 {-7, -1},
942 {-13, 0},
943 {0, 0},
944 {13, 0},
945 {6, 1},
946 {4, 1},
947 {3, 1},
948 {2, 3},
949 {2, 1},
950 {1, 6},
951 {1, 5},
952 {1, 4},
953 {1, 3},
954 {1, 2},
955 {1, 1},
956 {1, 0},
957 {0, 13},
958 {0, 13},
959 {0, 13},
960 // numerator = 14
961 {-1, -1},
962 {-1, 0},
963 {-2, -12},
964 {-2, -10},
965 {-2, -8},
966 {-2, -6},
967 {-2, -4},
968 {-2, -2},
969 {-2, 0},
970 {-3, -4},
971 {-3, -1},
972 {-4, -2},
973 {-5, -1},
974 {-7, 0},
975 {-14, 0},
976 {0, 0},
977 {14, 0},
978 {7, 0},
979 {4, 2},
980 {3, 2},
981 {2, 4},
982 {2, 2},
983 {2, 0},
984 {1, 6},
985 {1, 5},
986 {1, 4},
987 {1, 3},
988 {1, 2},
989 {1, 1},
990 {1, 0},
991 {0, 14},
992 {0, 14},
993 // numerator = 15
994 {-1, 0},
995 {-2, -13},
996 {-2, -11},
997 {-2, -9},
998 {-2, -7},
999 {-2, -5},
1000 {-2, -3},
1001 {-2, -1},
1002 {-3, -6},
1003 {-3, -3},
1004 {-3, 0},
1005 {-4, -1},
1006 {-5, 0},
1007 {-8, -1},
1008 {-15, 0},
1009 {0, 0},
1010 {15, 0},
1011 {7, 1},
1012 {5, 0},
1013 {3, 3},
1014 {3, 0},
1015 {2, 3},
1016 {2, 1},
1017 {1, 7},
1018 {1, 6},
1019 {1, 5},
1020 {1, 4},
1021 {1, 3},
1022 {1, 2},
1023 {1, 1},
1024 {1, 0},
1025 {0, 15},
1026 // numerator = 16
1027 {-2, -14},
1028 {-2, -12},
1029 {-2, -10},
1030 {-2, -8},
1031 {-2, -6},
1032 {-2, -4},
1033 {-2, -2},
1034 {-2, 0},
1035 {-3, -5},
1036 {-3, -2},
1037 {-4, -4},
1038 {-4, 0},
1039 {-6, -2},
1040 {-8, 0},
1041 {-16, 0},
1042 {0, 0},
1043 {16, 0},
1044 {8, 0},
1045 {5, 1},
1046 {4, 0},
1047 {3, 1},
1048 {2, 4},
1049 {2, 2},
1050 {2, 0},
1051 {1, 7},
1052 {1, 6},
1053 {1, 5},
1054 {1, 4},
1055 {1, 3},
1056 {1, 2},
1057 {1, 1},
1058 {1, 0},
1059