/* Copyright (C) 1996-1997, 1999-2000 Id Software Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // table of quotients and remainders for [-15...16] / [-15...16] /* *INDENT-OFF* */ // numerator = -15 { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 1, -4 }, { 1, -5 }, { 1, -6 }, { 1, -7 }, { 2, -1 }, { 2, -3 }, { 3, 0 }, { 3, -3 }, { 5, 0 }, { 7, -1 }, { 15, 0 }, { 0, 0 }, { -15, 0 }, { -8, 1 }, { -5, 0 }, { -4, 1 }, { -3, 0 }, { -3, 3 }, { -3, 6 }, { -2, 1 }, { -2, 3 }, { -2, 5 }, { -2, 7 }, { -2, 9 }, { -2, 11 }, { -2, 13 }, { -1, 0 }, { -1, 1 }, // numerator = -14 { 0, -14 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 1, -4 }, { 1, -5 }, { 1, -6 }, { 2, 0 }, { 2, -2 }, { 2, -4 }, { 3, -2 }, { 4, -2 }, { 7, 0 }, { 14, 0 }, { 0, 0 }, { -14, 0 }, { -7, 0 }, { -5, 1 }, { -4, 2 }, { -3, 1 }, { -3, 4 }, { -2, 0 }, { -2, 2 }, { -2, 4 }, { -2, 6 }, { -2, 8 }, { -2, 10 }, { -2, 12 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, // numerator = -13 { 0, -13 }, { 0, -13 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 1, -4 }, { 1, -5 }, { 1, -6 }, { 2, -1 }, { 2, -3 }, { 3, -1 }, { 4, -1 }, { 6, -1 }, { 13, 0 }, { 0, 0 }, { -13, 0 }, { -7, 1 }, { -5, 2 }, { -4, 3 }, { -3, 2 }, { -3, 5 }, { -2, 1 }, { -2, 3 }, { -2, 5 }, { -2, 7 }, { -2, 9 }, { -2, 11 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, // numerator = -12 { 0, -12 }, { 0, -12 }, { 0, -12 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 1, -4 }, { 1, -5 }, { 2, 0 }, { 2, -2 }, { 3, 0 }, { 4, 0 }, { 6, 0 }, { 12, 0 }, { 0, 0 }, { -12, 0 }, { -6, 0 }, { -4, 0 }, { -3, 0 }, { -3, 3 }, { -2, 0 }, { -2, 2 }, { -2, 4 }, { -2, 6 }, { -2, 8 }, { -2, 10 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, // numerator = -11 { 0, -11 }, { 0, -11 }, { 0, -11 }, { 0, -11 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 1, -4 }, { 1, -5 }, { 2, -1 }, { 2, -3 }, { 3, -2 }, { 5, -1 }, { 11, 0 }, { 0, 0 }, { -11, 0 }, { -6, 1 }, { -4, 1 }, { -3, 1 }, { -3, 4 }, { -2, 1 }, { -2, 3 }, { -2, 5 }, { -2, 7 }, { -2, 9 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, // numerator = -10 { 0, -10 }, { 0, -10 }, { 0, -10 }, { 0, -10 }, { 0, -10 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 1, -4 }, { 2, 0 }, { 2, -2 }, { 3, -1 }, { 5, 0 }, { 10, 0 }, { 0, 0 }, { -10, 0 }, { -5, 0 }, { -4, 2 }, { -3, 2 }, { -2, 0 }, { -2, 2 }, { -2, 4 }, { -2, 6 }, { -2, 8 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, // numerator = -9 { 0, -9 }, { 0, -9 }, { 0, -9 }, { 0, -9 }, { 0, -9 }, { 0, -9 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 1, -4 }, { 2, -1 }, { 3, 0 }, { 4, -1 }, { 9, 0 }, { 0, 0 }, { -9, 0 }, { -5, 1 }, { -3, 0 }, { -3, 3 }, { -2, 1 }, { -2, 3 }, { -2, 5 }, { -2, 7 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, // numerator = -8 { 0, -8 }, { 0, -8 }, { 0, -8 }, { 0, -8 }, { 0, -8 }, { 0, -8 }, { 0, -8 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 2, 0 }, { 2, -2 }, { 4, 0 }, { 8, 0 }, { 0, 0 }, { -8, 0 }, { -4, 0 }, { -3, 1 }, { -2, 0 }, { -2, 2 }, { -2, 4 }, { -2, 6 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, // numerator = -7 { 0, -7 }, { 0, -7 }, { 0, -7 }, { 0, -7 }, { 0, -7 }, { 0, -7 }, { 0, -7 }, { 0, -7 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 1, -3 }, { 2, -1 }, { 3, -1 }, { 7, 0 }, { 0, 0 }, { -7, 0 }, { -4, 1 }, { -3, 2 }, { -2, 1 }, { -2, 3 }, { -2, 5 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, { -1, 9 }, // numerator = -6 { 0, -6 }, { 0, -6 }, { 0, -6 }, { 0, -6 }, { 0, -6 }, { 0, -6 }, { 0, -6 }, { 0, -6 }, { 0, -6 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 2, 0 }, { 3, 0 }, { 6, 0 }, { 0, 0 }, { -6, 0 }, { -3, 0 }, { -2, 0 }, { -2, 2 }, { -2, 4 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, { -1, 9 }, { -1, 10 }, // numerator = -5 { 0, -5 }, { 0, -5 }, { 0, -5 }, { 0, -5 }, { 0, -5 }, { 0, -5 }, { 0, -5 }, { 0, -5 }, { 0, -5 }, { 0, -5 }, { 1, 0 }, { 1, -1 }, { 1, -2 }, { 2, -1 }, { 5, 0 }, { 0, 0 }, { -5, 0 }, { -3, 1 }, { -2, 1 }, { -2, 3 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, { -1, 9 }, { -1, 10 }, { -1, 11 }, // numerator = -4 { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 0, -4 }, { 1, 0 }, { 1, -1 }, { 2, 0 }, { 4, 0 }, { 0, 0 }, { -4, 0 }, { -2, 0 }, { -2, 2 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, { -1, 9 }, { -1, 10 }, { -1, 11 }, { -1, 12 }, // numerator = -3 { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 0, -3 }, { 1, 0 }, { 1, -1 }, { 3, 0 }, { 0, 0 }, { -3, 0 }, { -2, 1 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, { -1, 9 }, { -1, 10 }, { -1, 11 }, { -1, 12 }, { -1, 13 }, // numerator = -2 { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 0, -2 }, { 1, 0 }, { 2, 0 }, { 0, 0 }, { -2, 0 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, { -1, 9 }, { -1, 10 }, { -1, 11 }, { -1, 12 }, { -1, 13 }, { -1, 14 }, // numerator = -1 { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 0, -1 }, { 1, 0 }, { 0, 0 }, { -1, 0 }, { -1, 1 }, { -1, 2 }, { -1, 3 }, { -1, 4 }, { -1, 5 }, { -1, 6 }, { -1, 7 }, { -1, 8 }, { -1, 9 }, { -1, 10 }, { -1, 11 }, { -1, 12 }, { -1, 13 }, { -1, 14 }, { -1, 15 }, // numerator = 0 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, // numerator = 1 { -1, -14 }, { -1, -13 }, { -1, -12 }, { -1, -11 }, { -1, -10 }, { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, { 0, 1 }, // numerator = 2 { -1, -13 }, { -1, -12 }, { -1, -11 }, { -1, -10 }, { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, 0 }, { 0, 0 }, { 2, 0 }, { 1, 0 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, { 0, 2 }, // numerator = 3 { -1, -12 }, { -1, -11 }, { -1, -10 }, { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -1 }, { -3, 0 }, { 0, 0 }, { 3, 0 }, { 1, 1 }, { 1, 0 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, // numerator = 4 { -1, -11 }, { -1, -10 }, { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -2 }, { -2, 0 }, { -4, 0 }, { 0, 0 }, { 4, 0 }, { 2, 0 }, { 1, 1 }, { 1, 0 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, // numerator = 5 { -1, -10 }, { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -3 }, { -2, -1 }, { -3, -1 }, { -5, 0 }, { 0, 0 }, { 5, 0 }, { 2, 1 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, { 0, 5 }, // numerator = 6 { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -4 }, { -2, -2 }, { -2, 0 }, { -3, 0 }, { -6, 0 }, { 0, 0 }, { 6, 0 }, { 3, 0 }, { 2, 0 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, { 0, 6 }, // numerator = 7 { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -5 }, { -2, -3 }, { -2, -1 }, { -3, -2 }, { -4, -1 }, { -7, 0 }, { 0, 0 }, { 7, 0 }, { 3, 1 }, { 2, 1 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 7 }, { 0, 7 }, { 0, 7 }, { 0, 7 }, { 0, 7 }, { 0, 7 }, { 0, 7 }, { 0, 7 }, { 0, 7 }, // numerator = 8 { -1, -7 }, { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -6 }, { -2, -4 }, { -2, -2 }, { -2, 0 }, { -3, -1 }, { -4, 0 }, { -8, 0 }, { 0, 0 }, { 8, 0 }, { 4, 0 }, { 2, 2 }, { 2, 0 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 8 }, { 0, 8 }, { 0, 8 }, { 0, 8 }, { 0, 8 }, { 0, 8 }, { 0, 8 }, { 0, 8 }, // numerator = 9 { -1, -6 }, { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -7 }, { -2, -5 }, { -2, -3 }, { -2, -1 }, { -3, -3 }, { -3, 0 }, { -5, -1 }, { -9, 0 }, { 0, 0 }, { 9, 0 }, { 4, 1 }, { 3, 0 }, { 2, 1 }, { 1, 4 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 9 }, { 0, 9 }, { 0, 9 }, { 0, 9 }, { 0, 9 }, { 0, 9 }, { 0, 9 }, // numerator = 10 { -1, -5 }, { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -8 }, { -2, -6 }, { -2, -4 }, { -2, -2 }, { -2, 0 }, { -3, -2 }, { -4, -2 }, { -5, 0 }, { -10, 0 }, { 0, 0 }, { 10, 0 }, { 5, 0 }, { 3, 1 }, { 2, 2 }, { 2, 0 }, { 1, 4 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 10 }, { 0, 10 }, { 0, 10 }, { 0, 10 }, { 0, 10 }, { 0, 10 }, // numerator = 11 { -1, -4 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -9 }, { -2, -7 }, { -2, -5 }, { -2, -3 }, { -2, -1 }, { -3, -4 }, { -3, -1 }, { -4, -1 }, { -6, -1 }, { -11, 0 }, { 0, 0 }, { 11, 0 }, { 5, 1 }, { 3, 2 }, { 2, 3 }, { 2, 1 }, { 1, 5 }, { 1, 4 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 11 }, { 0, 11 }, { 0, 11 }, { 0, 11 }, { 0, 11 }, // numerator = 12 { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -10 }, { -2, -8 }, { -2, -6 }, { -2, -4 }, { -2, -2 }, { -2, 0 }, { -3, -3 }, { -3, 0 }, { -4, 0 }, { -6, 0 }, { -12, 0 }, { 0, 0 }, { 12, 0 }, { 6, 0 }, { 4, 0 }, { 3, 0 }, { 2, 2 }, { 2, 0 }, { 1, 5 }, { 1, 4 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 12 }, { 0, 12 }, { 0, 12 }, { 0, 12 }, // numerator = 13 { -1, -2 }, { -1, -1 }, { -1, 0 }, { -2, -11 }, { -2, -9 }, { -2, -7 }, { -2, -5 }, { -2, -3 }, { -2, -1 }, { -3, -5 }, { -3, -2 }, { -4, -3 }, { -5, -2 }, { -7, -1 }, { -13, 0 }, { 0, 0 }, { 13, 0 }, { 6, 1 }, { 4, 1 }, { 3, 1 }, { 2, 3 }, { 2, 1 }, { 1, 6 }, { 1, 5 }, { 1, 4 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 13 }, { 0, 13 }, { 0, 13 }, // numerator = 14 { -1, -1 }, { -1, 0 }, { -2, -12 }, { -2, -10 }, { -2, -8 }, { -2, -6 }, { -2, -4 }, { -2, -2 }, { -2, 0 }, { -3, -4 }, { -3, -1 }, { -4, -2 }, { -5, -1 }, { -7, 0 }, { -14, 0 }, { 0, 0 }, { 14, 0 }, { 7, 0 }, { 4, 2 }, { 3, 2 }, { 2, 4 }, { 2, 2 }, { 2, 0 }, { 1, 6 }, { 1, 5 }, { 1, 4 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 14 }, { 0, 14 }, // numerator = 15 { -1, 0 }, { -2, -13 }, { -2, -11 }, { -2, -9 }, { -2, -7 }, { -2, -5 }, { -2, -3 }, { -2, -1 }, { -3, -6 }, { -3, -3 }, { -3, 0 }, { -4, -1 }, { -5, 0 }, { -8, -1 }, { -15, 0 }, { 0, 0 }, { 15, 0 }, { 7, 1 }, { 5, 0 }, { 3, 3 }, { 3, 0 }, { 2, 3 }, { 2, 1 }, { 1, 7 }, { 1, 6 }, { 1, 5 }, { 1, 4 }, { 1, 3 }, { 1, 2 }, { 1, 1 }, { 1, 0 }, { 0, 15 }, // numerator = 16 { -2, -14}, { -2, -12}, { -2, -10}, { -2, -8}, { -2, -6}, { -2, -4}, { -2, -2}, { -2, 0}, { -3, -5}, { -3, -2}, { -4, -4}, { -4, 0}, { -6, -2}, { -8, 0}, { -16, 0}, { 0, 0}, { 16, 0}, { 8, 0}, { 5, 1}, { 4, 0}, { 3, 1}, { 2, 4}, { 2, 2}, { 2, 0}, { 1, 7}, { 1, 6}, { 1, 5}, { 1, 4}, { 1, 3}, { 1, 2}, { 1, 1}, { 1, 0}