NAME hnrmod - compute mod h * 2^n +r SYNOPSIS hnrmod(v, h, n, r) TYPES v integer h integer n integer r integer return integer DESCRIPTION Compute the value: v % (h * 2^n +r) where: h > 0 n > 0 r == -1, 0 or 1 This builtin in faster than the standard mod in that is makes use of shifts and additions when h == 1. When h > 1, a division by h is also needed. EXAMPLE > print hnrmod(2^177-1, 1, 177, -1), hnrmod(10^40, 17, 51, 1) 0 33827019788296445 LIMITS h > 0 2^31 > n > 0 r == -1, 0 or 1 LINK LIBRARY void zhnrmod(ZVALUE v, ZVALUE h, ZVALUE zn, ZVALUE zr, ZVALUE *res) SEE ALSO mod ## Copyright (C) 1999 Landon Curt Noll ## ## Calc is open software; you can redistribute it and/or modify it under ## the terms of the version 2.1 of the GNU Lesser General Public License ## as published by the Free Software Foundation. ## ## Calc 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 Lesser General ## Public License for more details. ## ## A copy of version 2.1 of the GNU Lesser General Public License is ## distributed with calc under the filename COPYING-LGPL. You should have ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## ## @(#) $Revision: 29.2 $ ## @(#) $Id: hnrmod,v 29.2 2000/06/07 14:02:33 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/hnrmod,v $ ## ## Under source code control: 1997/07/02 07:10:43 ## File existed as early as: 1997 ## ## chongo /\oo/\ http://www.isthe.com/chongo/ ## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/