Initial import of the CDE 2.1.30 sources from the Open Group.

This commit is contained in:
Peter Howkins
2012-03-10 18:21:40 +00:00
commit 83b6996daa
18978 changed files with 3945623 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
/*
* $XConsortium: pm_random.cc /main/3 1996/06/11 17:38:16 cde-hal $
*
* Copyright (c) 1992 HaL Computer Systems, Inc. All rights reserved.
* UNPUBLISHED -- rights reserved under the Copyright Laws of the United
* States. Use of a copyright notice is precautionary only and does not
* imply publication or disclosure.
*
* This software contains confidential information and trade secrets of HaL
* Computer Systems, Inc. Use, disclosure, or reproduction is prohibited
* without the prior express written permission of HaL Computer Systems, Inc.
*
* RESTRICTED RIGHTS LEGEND
* Use, duplication, or disclosure by the Government is subject to
* restrictions as set forth in subparagraph (c)(l)(ii) of the Rights in
* Technical Data and Computer Software clause at DFARS 252.227-7013.
* HaL Computer Systems, Inc.
* 1315 Dell Avenue, Campbell, CA 95008
*
*/
/////////////////////////////////////////////////////////////////
// In CACM July. 1993, pp 109, Park and Miller said that
// a=48271 is little better. In that case, q=44488 and r=3399.
// -qfc, July 2, 1993
/////////////////////////////////////////////////////////////////
#include "utility/pm_random.h"
pm_random::pm_random(int sd)
{
seed(sd);
}
void
pm_random::seed(int seed)
{
if ( !INRANGE( seed, 1, 2147483646) ) {
MESSAGE(cerr,
"pm_random::seed(): seed should be in [1, 2147483646]"
);
throw(boundaryException(1, 2147483646, seed));
}
v_i_seed = seed;
int test = 16807 * (seed % 127773) - 2836 * (seed / 127773);
v_new_seed = ( test > 0 ) ? test : test + 2147483647;
}