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

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

?? rtprandom.cpp

?? jrtp庫
?? CPP
字號:
/*  This file is a part of JRTPLIB  Copyright (c) 1999-2007 Jori Liesenborgs  Contact: jori.liesenborgs@gmail.com  This library was developed at the "Expertisecentrum Digitale Media"  (http://www.edm.uhasselt.be), a research center of the Hasselt University  (http://www.uhasselt.be). The library is based upon work done for   my thesis at the School for Knowledge Technology (Belgium/The Netherlands).  Permission is hereby granted, free of charge, to any person obtaining a  copy of this software and associated documentation files (the "Software"),  to deal in the Software without restriction, including without limitation  the rights to use, copy, modify, merge, publish, distribute, sublicense,  and/or sell copies of the Software, and to permit persons to whom the  Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included  in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS  IN THE SOFTWARE.*/#if defined(WIN32) && !defined(_WIN32_WCE)	#define _CRT_RAND_S#endif // WIN32 || _WIN32_WCE#include "rtprandom.h"#include <time.h>#ifndef WIN32	#include <unistd.h>#else	#ifndef _WIN32_WCE		#include <process.h>	#else		#include <windows.h>		#include <kfuncs.h>	#endif // _WIN32_WINCE	#include <stdlib.h>#endif // WIN32#include "rtpdebug.h"#if (defined(WIN32) && !defined(_WIN32_WCE)) && (defined(_MSC_VER) && _MSC_VER >= 1400 )	// If compiling on VC 8 or later for full Windows, we'll attempt to use rand_s,	// which generates better random numbers.  However, its only supported on Windows XP,	// Windows Server 2003, and later, so we'll do a run-time check to see if we can	// use it (it won't work on Windows 2000 SP4 for example).	#define RTP_SUPPORT_RANDS	#define QUOTEPROCNAME(x) #x	#ifndef RtlGenRandom		#define RtlGenRandom    SystemFunction036	#endif	static bool checked_rand_s = false;	static bool use_rand_s = false;#endifuint8_t GetRandom8_Default();uint16_t GetRandom16_Default();uint32_t GetRandom32_Default();double GetRandomDouble_Default();RTPRandom::RTPRandom(){#if defined(RTP_SUPPORT_GNUDRAND) || defined(RTP_SUPPORT_RANDR)	uint32_t x;	x = (uint32_t)getpid();	x += (uint32_t)time(0);	x -= (uint32_t)clock();	x ^= (uint32_t)((uint8_t *)this - (uint8_t *)0);#ifdef RTP_SUPPORT_GNUDRAND	srand48_r(x,&drandbuffer);#else	state = (unsigned int)x;#endif // RTP_SUPPORT_GNUDRAND	#else // use simple rand and srand functions (or maybe rand_s)#ifdef RTP_SUPPORT_RANDS	if(checked_rand_s == false)	{		checked_rand_s = true;		use_rand_s = false;		HMODULE hAdvApi32 = LoadLibrary("ADVAPI32.DLL");		if(hAdvApi32 != NULL)		{			if(NULL != GetProcAddress( hAdvApi32, QUOTEPROCNAME( RtlGenRandom ) ))			{				use_rand_s = true;			}			FreeLibrary(hAdvApi32);			hAdvApi32 = NULL;		}	}	// Note: If we use the rand_s function, it does not require initialization of a seed.	if(!use_rand_s)	{#endif	uint32_t x;#ifndef _WIN32_WCE	x = (uint32_t)_getpid();	x += (uint32_t)time(0);	x -= (uint32_t)clock();#else	x = (uint32_t)GetCurrentProcessId();	FILETIME ft;	SYSTEMTIME st;		GetSystemTime(&st);	SystemTimeToFileTime(&st,&ft);		x += ft.dwLowDateTime;#endif // _WIN32_WCE	x ^= (uint32_t)((uint8_t *)this - (uint8_t *)0);	srand((unsigned int)x);#ifdef RTP_SUPPORT_RANDS	} // !support_rand_s#endif#endif // RTP_SUPPORT_GNUDRAND || RTP_SUPPORT_RANDR}RTPRandom::~RTPRandom(){}#if defined(RTP_SUPPORT_GNUDRAND)uint8_t RTPRandom::GetRandom8(){	double x;	drand48_r(&drandbuffer,&x);	uint8_t y = (uint8_t)(x*256.0);	return y;}uint16_t RTPRandom::GetRandom16(){	double x;	drand48_r(&drandbuffer,&x);	uint16_t y = (uint16_t)(x*65536.0);	return y;}uint32_t RTPRandom::GetRandom32(){	uint32_t a = GetRandom16();	uint32_t b = GetRandom16();	uint32_t y = (a << 16)|b;	return y;}double RTPRandom::GetRandomDouble(){	double x;	drand48_r(&drandbuffer,&x);	return x;}#elif defined(RTP_SUPPORT_RANDR)uint8_t RTPRandom::GetRandom8(){	uint8_t x;	x = (uint8_t)(256.0*((double)rand_r(&state))/((double)RAND_MAX+1.0));	return x;}uint16_t RTPRandom::GetRandom16(){	uint16_t x;	x = (uint16_t)(65536.0*((double)rand_r(&state))/((double)RAND_MAX+1.0));	return x;}uint32_t RTPRandom::GetRandom32(){	uint32_t x,y;	x = (uint32_t)(65536.0*((double)rand_r(&state))/((double)RAND_MAX+1.0));	y = x;	x = (uint32_t)(65536.0*((double)rand_r(&state))/((double)RAND_MAX+1.0));	y ^= (x<<8);	x = (uint32_t)(65536.0*((double)rand_r(&state))/((double)RAND_MAX+1.0));	y ^= (x<<16);	return y;}double RTPRandom::GetRandomDouble(){	double x = ((double)rand_r(&state))/((double)RAND_MAX+1.0);	return x;}#elif defined(RTP_SUPPORT_RANDS)uint8_t RTPRandom::GetRandom8(){	if(use_rand_s)	{		uint8_t x;		unsigned int r;		rand_s(&r);		x = (uint8_t)(256.0*((double)r)/((double)UINT_MAX+1.0));		return x;	}	else	{		return GetRandom8_Default();	}}uint16_t RTPRandom::GetRandom16(){	if(use_rand_s)	{		uint16_t x;		unsigned int r;		rand_s(&r);		x = (uint16_t)(65536.0*((double)r)/((double)UINT_MAX+1.0));		return x;	}	else	{		return GetRandom16_Default();	}}uint32_t RTPRandom::GetRandom32(){	if(use_rand_s)	{		uint32_t x,y;		unsigned int r;				rand_s(&r);		x = (uint32_t)(65536.0*((double)r)/((double)UINT_MAX+1.0));		y = x;		rand_s(&r);		x = (uint32_t)(65536.0*((double)r)/((double)UINT_MAX+1.0));		y ^= (x<<8);		rand_s(&r);		x = (uint32_t)(65536.0*((double)r)/((double)UINT_MAX+1.0));		y ^= (x<<16);		return y;	}	else	{		return GetRandom32_Default();	}}double RTPRandom::GetRandomDouble(){	if(use_rand_s)	{		unsigned int r;				rand_s(&r);		double x = ((double)r)/((double)UINT_MAX+1.0);		return x;	}	else	{		return GetRandomDouble_Default();	}}#else // use rand()uint8_t RTPRandom::GetRandom8(){	return GetRandom8_Default();}uint16_t RTPRandom::GetRandom16(){	return GetRandom16_Default();}uint32_t RTPRandom::GetRandom32(){	return GetRandom32_Default();}double RTPRandom::GetRandomDouble(){	return GetRandomDouble_Default();}#endif // RTP_SUPPORT_GNUDRANDuint8_t GetRandom8_Default(){	uint8_t x;	x = (uint8_t)(256.0*((double)rand())/((double)RAND_MAX+1.0));	return x;}uint16_t GetRandom16_Default(){	uint16_t x;	x = (uint16_t)(65536.0*((double)rand())/((double)RAND_MAX+1.0));	return x;}uint32_t GetRandom32_Default(){	uint32_t x,y;	x = (uint32_t)(65536.0*((double)rand())/((double)RAND_MAX+1.0));	y = x;	x = (uint32_t)(65536.0*((double)rand())/((double)RAND_MAX+1.0));	y ^= (x<<8);	x = (uint32_t)(65536.0*((double)rand())/((double)RAND_MAX+1.0));	y ^= (x<<16);	return y;}double GetRandomDouble_Default(){	double x = ((double)rand())/((double)RAND_MAX+1.0);	return x;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩综合在线视频| 亚洲精品久久嫩草网站秘色| 99视频有精品| 久久国产精品72免费观看| 亚洲精品美腿丝袜| 久久久三级国产网站| 欧美日韩色综合| 不卡电影免费在线播放一区| 激情久久五月天| 视频一区视频二区中文| 一区二区视频在线| 欧美极品少妇xxxxⅹ高跟鞋| 91精品综合久久久久久| 日本丰满少妇一区二区三区| 国产成人h网站| 精品一区免费av| 日韩av中文在线观看| 一区二区三区在线观看动漫| 欧美国产精品一区二区三区| 精品国产凹凸成av人导航| 欧美精品99久久久**| 日本高清成人免费播放| 国产三级三级三级精品8ⅰ区| 美女任你摸久久 | 在线区一区二视频| 亚洲欧美aⅴ...| 欧美日韩成人在线| 国产一区二区福利视频| 中文字幕 久热精品 视频在线| 国产精品1区2区3区| 亚洲色图在线播放| 欧美精品日韩精品| 国产寡妇亲子伦一区二区| 日本一不卡视频| 亚洲国产一二三| 亚洲精品综合在线| 亚洲欧美日韩成人高清在线一区| 国产精品久久毛片| 国产精品视频麻豆| 中文字幕一区二区三| 国产精品久久久久久久久免费桃花 | 精品国产人成亚洲区| 欧美一级欧美一级在线播放| 欧美精品日韩综合在线| 在线不卡欧美精品一区二区三区| 欧美日韩国产一区| 欧美一级高清片在线观看| 日韩免费电影一区| 久久久精品影视| 中文字幕在线观看一区二区| 亚洲视频在线观看一区| 一区二区三区久久| 五月婷婷综合激情| 精品一区二区免费看| 国产精品亚洲一区二区三区在线| 丁香激情综合五月| 91激情在线视频| 6080日韩午夜伦伦午夜伦| 日韩欧美在线123| 国产午夜亚洲精品不卡| 国产精品久99| 国产精品免费人成网站| 国产白丝精品91爽爽久久| 91蜜桃传媒精品久久久一区二区| 色屁屁一区二区| 7878成人国产在线观看| 日韩欧美中文字幕一区| 久久影视一区二区| 成人免费一区二区三区在线观看| 亚洲专区一二三| 精品一区二区三区在线播放视频| 国产成人在线观看| 91香蕉视频mp4| 欧美一级电影网站| 国产精品每日更新| 亚洲国产一区二区在线播放| 久久99精品久久久| 不卡的电视剧免费网站有什么| 欧美日韩三级视频| 久久蜜桃一区二区| 亚洲成人tv网| 懂色av一区二区三区蜜臀| 欧美羞羞免费网站| 久久男人中文字幕资源站| 亚洲精品视频免费观看| 国产一区二区三区久久悠悠色av| gogo大胆日本视频一区| 欧美片网站yy| 国产精品美女久久久久久2018| 亚洲国产成人高清精品| 成人在线视频首页| 欧美精品v日韩精品v韩国精品v| 国产精品情趣视频| 免费观看成人鲁鲁鲁鲁鲁视频| 91小视频在线免费看| 欧美日韩三级在线| 国产精品美女久久久久aⅴ | 在线观看一区二区视频| 欧美一区二区国产| 亚洲精品欧美在线| 国产成人在线视频网址| 在线电影院国产精品| 国产精品福利一区| 国产成人综合视频| 91精品国产色综合久久| 亚洲欧美另类小说| 国产69精品久久久久777| 欧美一区二区三区性视频| 亚洲另类色综合网站| 欧美日韩国产123区| 中文字幕一区二区三区四区 | 99视频热这里只有精品免费| 日韩一区二区三区免费看| 伊人婷婷欧美激情| 成人一级视频在线观看| 精品国产91九色蝌蚪| 亚洲成人三级小说| 色婷婷久久99综合精品jk白丝 | 亚洲一区二区在线免费看| 丰满亚洲少妇av| 精品国产一区a| 蜜臀久久久99精品久久久久久| 欧美视频一区二区三区| 成人免费在线视频观看| 成人综合婷婷国产精品久久| 2014亚洲片线观看视频免费| 九色porny丨国产精品| 欧美成人三级电影在线| 美国十次了思思久久精品导航| 678五月天丁香亚洲综合网| 婷婷夜色潮精品综合在线| 欧美色视频在线| 亚洲午夜激情网站| 欧美视频一区二区三区| 无码av免费一区二区三区试看| 欧美性一级生活| 亚洲sss视频在线视频| 欧美另类久久久品| 免费黄网站欧美| 日韩精品最新网址| 国产资源在线一区| 久久久久久久久久久电影| 国产剧情一区二区| 中文字幕国产一区二区| av一区二区三区黑人| 亚洲视频香蕉人妖| 在线这里只有精品| 日韩av不卡一区二区| 欧美成人乱码一区二区三区| 国产美女av一区二区三区| 久久精品一区蜜桃臀影院| 成人免费视频免费观看| 亚洲美女视频在线| 欧美人与z0zoxxxx视频| 蜜桃视频在线观看一区二区| 久久久亚洲午夜电影| 99国产精品久久久久久久久久久| 亚洲人成网站色在线观看| 欧美性猛交xxxx乱大交退制版 | 99久久免费视频.com| 洋洋成人永久网站入口| 91精品欧美福利在线观看| 国产一区二区精品久久91| 中文字幕制服丝袜成人av | 欧美人妇做爰xxxⅹ性高电影| 日韩精品五月天| 国产亚洲一区二区三区四区| 色天使色偷偷av一区二区| 日韩影院精彩在线| 国产三级久久久| 欧美性受xxxx黑人xyx性爽| 极品少妇一区二区| 亚洲素人一区二区| 日韩一区二区三区精品视频| 风间由美一区二区av101 | 舔着乳尖日韩一区| 337p粉嫩大胆色噜噜噜噜亚洲| 91免费观看在线| 久久99久久久欧美国产| 亚洲人成网站在线| 精品嫩草影院久久| 91麻豆国产福利精品| 久久99久久99| 亚洲欧洲综合另类| 欧美成人精品高清在线播放 | 国产日韩欧美一区二区三区乱码| 在线免费观看不卡av| 国产一区二区在线视频| 亚洲激情图片qvod| 久久婷婷色综合| 欧美日韩另类一区| eeuss影院一区二区三区| 麻豆精品国产91久久久久久| 亚洲免费三区一区二区| 久久久不卡影院| 日韩欧美在线不卡| 欧美日韩一区二区在线观看| 成人免费高清视频| 国产乱码精品一区二区三区五月婷| 亚洲一区二区三区激情|