亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c_pmodm127.c

?? Calc Software Package for Number Calc
?? C
字號:
/* * c_pmodm127 - calculate q mod 2^(2^127-1) * * Copyright (C) 2004  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.5 $ * @(#) $Id: c_pmodm127.c,v 29.5 2006/06/25 22:08:42 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_pmodm127.c,v $ * * Under source code control:	2004/07/28 22:12:25 * File existed as early as:	2004 * * Share and enjoy!  :-)	http://www.isthe.com/chongo/tech/comp/calc/ */#if defined(CUSTOM)#include <stdio.h>#include "../have_const.h"#include "../value.h"#include "../custom.h"#include "../zmath.h"#include "../have_unused.h"/* 2^255 */static HALF h255[] = {#if BASEB == 32	(HALF)0x00000000, (HALF)0x00000000, (HALF)0x00000000, (HALF)0x00000000,	(HALF)0x00000000, (HALF)0x00000000, (HALF)0x00000000, (HALF)0x80000000#else /* BASEB == 32 */	(HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x0000,	(HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x0000,	(HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x0000,	(HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x8000#endif /* BASEB == 32 */};ZVALUE p255 = {    h255, 8, 0};/* static declarations */static void zmod5_or_zmod(ZVALUE *zp);static BOOL havelastmod = FALSE;static ZVALUE lastmod[1];static ZVALUE lastmodinv[1];/* * c_pmodm127 - calculate q mod 2^(2^127-1) * * given: *    count = 1; *    vals[0]	real number;	(q - potential factor) * * returns: *    result	real number;	(q mod 2^(2^127-1)) *//*ARGSUSED*/VALUEc_pmodm127(char UNUSED *name, int UNUSED count, VALUE **vals){	VALUE result;		/* what we will return */	ZVALUE q;		/* test factor */	ZVALUE temp;		/* temp calculation value */	int i;			/* exponent value */	/*	 * arg check	 */	result.v_type = V_NULL;	if (vals[0]->v_type != V_NUM) {		math_error("Non-numeric argument for pmodm127");		/*NOTREACHED*/	}	if (qisfrac(vals[0]->v_num)) {		math_error("Non-integer argument for pmodm127");		/*NOTREACHED*/	}	if (qisneg(vals[0]->v_num) || qiszero(vals[0]->v_num)) {		math_error("argument for pmodm127 <= 0");		/*NOTREACHED*/	}	/*	 * look at the numerator	 */	q = vals[0]->v_num->num;	/*	 * setup lastmod with q	 */	if (havelastmod && zcmp(q, *lastmod)) {		zfree(*lastmod);		zfree(*lastmodinv);		havelastmod = FALSE;	}	if (!havelastmod) {		zcopy(q, lastmod);		zbitvalue(2 * q.len * BASEB, &temp);		zquo(temp, q, lastmodinv, 0);		zfree(temp);		havelastmod = TRUE;	}	/*	 * start with 2^255	 */	result.v_num = qalloc();	zcopy(p255, &result.v_num->num);	result.v_type = V_NUM;	/*	 * compute 2^(2^127-1) mod q by modular exponentation	 *	 * We implement the following calc code in C:	 *	 *	(* given q, our test factor, as the arg to this function *)	 *	result = 2^255;	 *	for (i=8; i < 127; ++i) {	 *		result %= q;	  (* mod *)	 *		result *= result; (* square *)	 *		result <<= 1;     (* times 2 *)	 *	}	 *	result %= q;	          (* result is now 2^(2^127-1) % q *)	 */	for (i=8; i<127; ++i) {#if 0		/* use of zmod is a bit slower than zmod5_or_zmod */		(void) zmod(result.v_num->num, *lastmod, &temp, 0);		zfree(result.v_num->num);		result.v_num->num = temp;#else		zmod5_or_zmod(&result.v_num->num);	/* mod */#endif#if 0		/* use of zmul is slightly slower than zsquare */		zmul(result.v_num->num, result.v_num->num, &temp);  /* square */#else		zsquare(result.v_num->num, &temp);	/* square */#endif		/*		 * We could manually shift here, but this would o speed		 * up the operation only a very tiny bit at the expense		 * of a bunch of special code.		 */		zfree(result.v_num->num);		zshift(temp, 1, &result.v_num->num);	/* times 2 */		zfree(temp);	}	zmod5_or_zmod(&result.v_num->num);	/* result = 2^(2^127-1) % q */	/*	 * cleanup and return result	 */	return result;}/* * zmod5_or_zmod - fast integer modulo the modulus computation * * "borrowed" from ../zmod.c * * Given the address of a positive integer whose word count does not * exceed twice that of the modulus stored at lastmod, to evaluate and store * at that address the value of the integer modulo the modulus. * * Unlike the static routine in ../zmod.c, we will call the zmod and return * the result of the zmod5_or_zmod conditions do not apply to the argument * and saved mod. */static voidzmod5_or_zmod(ZVALUE *zp){	LEN len, modlen, j;	ZVALUE tmp1, tmp2;	ZVALUE z1, z2, z3;	HALF *a, *b;	FULL f;	HALF u;	int subcount = 0;	if (zrel(*zp, *lastmod) < 0)		return;	modlen = lastmod->len;	len = zp->len;	z1.v = zp->v + modlen - 1;	z1.len = len - modlen + 1;	z1.sign = z2.sign = z3.sign = 0;	if (z1.len > modlen + 1) {		/* in ../zmod.c we did a math_error("Bad call to zmod5!!!"); */		/* here we just call the slower zmod and return the result */		(void) zmod(*zp, *lastmod, &tmp1, 0);		/* replace zp with tmp1 mod result */		zfree(*zp);		*zp = tmp1;		return;	}	z2.v = lastmodinv->v + modlen + 1 - z1.len;	z2.len = lastmodinv->len - modlen - 1 + z1.len;	zmul(z1, z2, &tmp1);	z3.v = tmp1.v + z1.len;	z3.len = tmp1.len - z1.len;	if (z3.len > 0) {		zmul(z3, *lastmod, &tmp2);		j = modlen;		a = zp->v;		b = tmp2.v;		u = 0;		len = modlen;		while (j-- > 0) {			f = (FULL) *a - (FULL) *b++ - (FULL) u;			*a++ = (HALF) f;			u = - (HALF) (f >> BASEB);		}		if (z1.len > 1) {			len++;			if (tmp2.len > modlen)				f = (FULL) *a - (FULL) *b - (FULL) u;			else				f = (FULL) *a - (FULL) u;			*a++ = (HALF) f;		}		while (len > 0 && *--a == 0)			len--;		zp->len = len;		zfree(tmp2);	}	zfree(tmp1);	while (len > 0 && zrel(*zp, *lastmod) >= 0) {		subcount++;		if (subcount > 2) {			math_error("Too many subtractions in zmod5_or_zmod");			/*NOTREACHED*/		}		j = modlen;		a = zp->v;		b = lastmod->v;		u = 0;		while (j-- > 0) {			f = (FULL) *a - (FULL) *b++ - (FULL) u;			*a++ = (HALF) f;			u = - (HALF) (f >> BASEB);		}		if (len > modlen) {			f = (FULL) *a - (FULL) u;			*a++ = (HALF) f;		}		while (len > 0 && *--a == 0)			len--;		zp->len = len;	}	if (len == 0)		zp->len = 1;}#endif /* CUSTOM */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲少妇屁股交4| 韩国成人在线视频| 韩国女主播成人在线| 色综合网站在线| 欧美一区二区啪啪| 久久人人97超碰com| 香蕉成人啪国产精品视频综合网| 国产伦精一区二区三区| 欧美丰满嫩嫩电影| 亚洲激情图片小说视频| 国产盗摄精品一区二区三区在线 | 欧美成人精品1314www| 亚洲日本va在线观看| 国产久卡久卡久卡久卡视频精品| 欧美网站一区二区| 成人欧美一区二区三区黑人麻豆| 国产乱码精品一区二区三区av| 欧美日韩一区二区三区不卡| 综合自拍亚洲综合图不卡区| 粉嫩一区二区三区在线看| 精品免费国产一区二区三区四区| 五月天一区二区三区| 欧美色电影在线| 一区二区三区美女| 91在线视频观看| 亚洲欧美国产三级| 91麻豆蜜桃一区二区三区| 国产精品久久久久一区 | 亚洲国产中文字幕| 一本到不卡免费一区二区| 亚洲欧洲另类国产综合| 成人午夜视频在线| 中文字幕一区二区在线播放| 成人福利在线看| 亚洲婷婷综合色高清在线| 丁香一区二区三区| 国产精品福利av| 色偷偷久久人人79超碰人人澡| 亚洲色图第一区| 在线观看不卡视频| 日韩精品91亚洲二区在线观看 | 欧美电视剧在线看免费| 精品在线免费观看| 国产精品无人区| 91黄色免费网站| 日韩av中文在线观看| 久久亚洲二区三区| 99久久伊人久久99| 亚洲自拍与偷拍| 91麻豆精品91久久久久同性| 裸体健美xxxx欧美裸体表演| 精品久久久久99| 丁香天五香天堂综合| 亚洲欧美一区二区久久| 精品视频一区 二区 三区| 蜜臀av性久久久久蜜臀av麻豆 | 亚洲欧美福利一区二区| 欧美日本一区二区| 国产在线国偷精品免费看| 亚洲三级免费电影| 日韩一级大片在线| 成人国产精品免费| 日韩激情在线观看| 亚洲国产精品国自产拍av| 91一区二区三区在线观看| 日韩精品电影在线| 中文字幕一区二区三区色视频| 日本精品一区二区三区高清| 精品一二三四区| 一区二区成人在线视频| 精品欧美乱码久久久久久1区2区| 91色婷婷久久久久合中文| 免费观看91视频大全| 亚洲人一二三区| 26uuu亚洲综合色| 在线观看欧美精品| 成人美女视频在线观看| 视频一区二区三区在线| 国产精品午夜春色av| 欧美一区二区三区免费观看视频| 99久久久久久99| 久久99精品一区二区三区三区| 中文字幕在线一区免费| 日韩视频一区二区在线观看| 91国偷自产一区二区开放时间| 国产精品影视天天线| 日韩精品电影一区亚洲| 亚洲精品你懂的| 中文字幕精品一区| 精品区一区二区| 在线电影一区二区三区| 色婷婷av一区二区三区软件| 国产精品99久久久久久似苏梦涵| 三级久久三级久久久| 亚洲一区二区中文在线| 亚洲欧洲av在线| 国产欧美一区二区在线| 精品国产一区二区在线观看| 欧美日韩亚洲综合在线| 在线视频亚洲一区| 色婷婷香蕉在线一区二区| 成人的网站免费观看| 国产剧情在线观看一区二区 | 亚洲成人自拍网| 亚洲欧美韩国综合色| 日韩一区日韩二区| 欧美国产精品一区| 国产色综合一区| 久久综合国产精品| 精品国产乱码久久久久久蜜臀| 6080日韩午夜伦伦午夜伦| 欧美三级日韩在线| 欧美日韩成人综合天天影院 | 午夜精品成人在线| 亚洲一区中文日韩| 亚洲最大成人网4388xx| 樱花草国产18久久久久| 亚洲已满18点击进入久久| 夜夜嗨av一区二区三区| 一区二区三区四区视频精品免费| 亚洲婷婷综合久久一本伊一区| 亚洲欧美日韩国产综合| 亚洲激情第一区| 亚洲成人精品影院| 蜜桃视频一区二区| 国产一区二区三区视频在线播放| 国产91丝袜在线播放| av激情成人网| 欧美手机在线视频| 91精品国产色综合久久ai换脸| 日韩女优电影在线观看| 国产欧美一区二区精品仙草咪| 国产精品电影一区二区三区| 一区二区三区产品免费精品久久75| 亚洲成人免费在线| 国产一区二区调教| av在线不卡网| 7777精品久久久大香线蕉| 欧美不卡一二三| 中文字幕一区二区三区四区不卡| 亚洲一区二区三区美女| 极品销魂美女一区二区三区| 成人午夜视频网站| 欧美久久久久久久久中文字幕| 精品少妇一区二区三区在线视频| 中文字幕欧美激情| 亚洲成人tv网| 成人中文字幕在线| 欧美日韩国产天堂| 久久久久一区二区三区四区| 一区二区三区四区不卡在线| 激情成人午夜视频| 在线视频你懂得一区二区三区| 精品日本一线二线三线不卡| 亚洲人成精品久久久久| 精品一区二区三区在线播放视频| 97超碰欧美中文字幕| 欧美大黄免费观看| 亚洲精品高清在线| 国产成人在线看| 欧美丰满少妇xxxbbb| 亚洲视频在线一区观看| 裸体在线国模精品偷拍| 日本韩国精品在线| 欧美激情一区不卡| 久久国产欧美日韩精品| 欧美性猛交xxxx乱大交退制版| 国产欧美日产一区| 免费观看30秒视频久久| 欧美视频完全免费看| 欧美国产国产综合| 精品一区二区三区久久久| 欧美日韩一区二区电影| 国产精品三级视频| 激情伊人五月天久久综合| 欧美三级中文字幕| 一区二区三区中文字幕精品精品| 国产成人福利片| 久久亚洲影视婷婷| 激情综合色播五月| 69精品人人人人| 五月婷婷久久综合| 欧美三级视频在线| 亚洲综合免费观看高清在线观看| 成人性生交大片免费看中文| 欧美白人最猛性xxxxx69交| 五月激情六月综合| 91国产精品成人| 亚洲黄色小视频| 91香蕉国产在线观看软件| 国产免费成人在线视频| 国产乱对白刺激视频不卡| 欧美精品一区二区三区蜜桃| 日韩精品五月天| 欧美高清性hdvideosex| 日韩成人精品在线| 91麻豆精品国产自产在线| 男男gaygay亚洲| 日韩免费观看高清完整版| 经典一区二区三区|