⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pelhomot.cc

📁 Gambit 是一个游戏库理论软件
💻 CC
📖 第 1 页 / 共 5 页
字号:
/*     MACHINE CONSTANTS FOR THE HARRIS SLASH 6 AND SLASH 7 *//*      DATA SMALL(1),SMALL(2) / '20000000, '00000201 / *//*      DATA LARGE(1),LARGE(2) / '37777777, '37777577 / *//*      DATA RIGHT(1),RIGHT(2) / '20000000, '00000333 / *//*      DATA DIVER(1),DIVER(2) / '20000000, '00000334 / *//*      DATA LOG10(1),LOG10(2) / '23210115, '10237777 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE HONEYWELL DPS 8/70 SERIES. *//*      DATA SMALL(1),SMALL(2) / O402400000000, O000000000000 / *//*      DATA LARGE(1),LARGE(2) / O376777777777, O777777777777 / *//*      DATA RIGHT(1),RIGHT(2) / O604400000000, O000000000000 / *//*      DATA DIVER(1),DIVER(2) / O606400000000, O000000000000 / *//*      DATA LOG10(1),LOG10(2) / O776464202324, O117571775714 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE IBM 360/370 SERIES, *//*     THE XEROX SIGMA 5/7/9 AND THE SEL SYSTEMS 85/86. *//*      DATA SMALL(1),SMALL(2) / Z00100000, Z00000000 / *//*      DATA LARGE(1),LARGE(2) / Z7FFFFFFF, ZFFFFFFFF / *//*      DATA RIGHT(1),RIGHT(2) / Z33100000, Z00000000 / *//*      DATA DIVER(1),DIVER(2) / Z34100000, Z00000000 / *//*      DATA LOG10(1),LOG10(2) / Z41134413, Z509F79FF /, SC/987/ *//*     MACHINE CONSTANTS FOR THE INTERDATA 8/32 *//*     WITH THE UNIX SYSTEM FORTRAN 77 COMPILER. *//*     FOR THE INTERDATA FORTRAN VII COMPILER REPLACE *//*     THE Z'S SPECIFYING HEX CONSTANTS WITH Y'S. *//*      DATA SMALL(1),SMALL(2) / Z'00100000', Z'00000000' / *//*      DATA LARGE(1),LARGE(2) / Z'7EFFFFFF', Z'FFFFFFFF' / *//*      DATA RIGHT(1),RIGHT(2) / Z'33100000', Z'00000000' / *//*      DATA DIVER(1),DIVER(2) / Z'34100000', Z'00000000' / *//*      DATA LOG10(1),LOG10(2) / Z'41134413', Z'509F79FF' /, SC/987/ *//*     MACHINE CONSTANTS FOR THE PDP-10 (KA PROCESSOR). *//*      DATA SMALL(1),SMALL(2) / "033400000000, "000000000000 / *//*      DATA LARGE(1),LARGE(2) / "377777777777, "344777777777 / *//*      DATA RIGHT(1),RIGHT(2) / "113400000000, "000000000000 / *//*      DATA DIVER(1),DIVER(2) / "114400000000, "000000000000 / *//*      DATA LOG10(1),LOG10(2) / "177464202324, "144117571776 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE PDP-10 (KI PROCESSOR). *//*      DATA SMALL(1),SMALL(2) / "000400000000, "000000000000 / *//*      DATA LARGE(1),LARGE(2) / "377777777777, "377777777777 / *//*      DATA RIGHT(1),RIGHT(2) / "103400000000, "000000000000 / *//*      DATA DIVER(1),DIVER(2) / "104400000000, "000000000000 / *//*      DATA LOG10(1),LOG10(2) / "177464202324, "047674776746 /, SC/987/ *//*     MACHINE CONSTANTS FOR PDP-11 FORTRANS SUPPORTING *//*     32-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL). *//*      DATA SMALL(1),SMALL(2) /    8388608,           0 / *//*      DATA LARGE(1),LARGE(2) / 2147483647,          -1 / *//*      DATA RIGHT(1),RIGHT(2) /  612368384,           0 / *//*      DATA DIVER(1),DIVER(2) /  620756992,           0 / *//*      DATA LOG10(1),LOG10(2) / 1067065498, -2063872008 /, SC/987/ *//*      DATA SMALL(1),SMALL(2) / O00040000000, O00000000000 / *//*      DATA LARGE(1),LARGE(2) / O17777777777, O37777777777 / *//*      DATA RIGHT(1),RIGHT(2) / O04440000000, O00000000000 / *//*      DATA DIVER(1),DIVER(2) / O04500000000, O00000000000 / *//*      DATA LOG10(1),LOG10(2) / O07746420232, O20476747770 /, SC/987/ *//*     MACHINE CONSTANTS FOR PDP-11 FORTRANS SUPPORTING *//*     16-BIT INTEGERS (EXPRESSED IN INTEGER AND OCTAL). *//*     SMALL, LARGE, RIGHT, DIVER, LOG10 SHOULD BE DECLARED *//*     INTEGER SMALL(4), LARGE(4), RIGHT(4), DIVER(4), LOG10(4) *//*      DATA SMALL(1),SMALL(2) /    128,      0 / *//*      DATA SMALL(3),SMALL(4) /      0,      0 / *//*      DATA LARGE(1),LARGE(2) /  32767,     -1 / *//*      DATA LARGE(3),LARGE(4) /     -1,     -1 / *//*      DATA RIGHT(1),RIGHT(2) /   9344,      0 / *//*      DATA RIGHT(3),RIGHT(4) /      0,      0 / *//*      DATA DIVER(1),DIVER(2) /   9472,      0 / *//*      DATA DIVER(3),DIVER(4) /      0,      0 / *//*      DATA LOG10(1),LOG10(2) /  16282,   8346 / *//*      DATA LOG10(3),LOG10(4) / -31493, -12296 /, SC/987/ *//*      DATA SMALL(1),SMALL(2) / O000200, O000000 / *//*      DATA SMALL(3),SMALL(4) / O000000, O000000 / *//*      DATA LARGE(1),LARGE(2) / O077777, O177777 / *//*      DATA LARGE(3),LARGE(4) / O177777, O177777 / *//*      DATA RIGHT(1),RIGHT(2) / O022200, O000000 / *//*      DATA RIGHT(3),RIGHT(4) / O000000, O000000 / *//*      DATA DIVER(1),DIVER(2) / O022400, O000000 / *//*      DATA DIVER(3),DIVER(4) / O000000, O000000 / *//*      DATA LOG10(1),LOG10(2) / O037632, O020232 / *//*      DATA LOG10(3),LOG10(4) / O102373, O147770 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE PRIME 50 SERIES SYSTEMS *//*     WITH 32-BIT INTEGERS AND 64V MODE INSTRUCTIONS, *//*     SUPPLIED BY IGOR BRAY. *//*      DATA SMALL(1),SMALL(2) / :10000000000, :00000100001 / *//*      DATA LARGE(1),LARGE(2) / :17777777777, :37777677775 / *//*      DATA RIGHT(1),RIGHT(2) / :10000000000, :00000000122 / *//*      DATA DIVER(1),DIVER(2) / :10000000000, :00000000123 / *//*      DATA LOG10(1),LOG10(2) / :11504046501, :07674600177 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE SEQUENT BALANCE 8000 *//*      DATA SMALL(1),SMALL(2) / $00000000,  $00100000 / *//*      DATA LARGE(1),LARGE(2) / $FFFFFFFF,  $7FEFFFFF / *//*      DATA RIGHT(1),RIGHT(2) / $00000000,  $3CA00000 / *//*      DATA DIVER(1),DIVER(2) / $00000000,  $3CB00000 / *//*      DATA LOG10(1),LOG10(2) / $509F79FF,  $3FD34413 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE UNIVAC 1100 SERIES. *//*      DATA SMALL(1),SMALL(2) / O000040000000, O000000000000 / *//*      DATA LARGE(1),LARGE(2) / O377777777777, O777777777777 / *//*      DATA RIGHT(1),RIGHT(2) / O170540000000, O000000000000 / *//*      DATA DIVER(1),DIVER(2) / O170640000000, O000000000000 / *//*      DATA LOG10(1),LOG10(2) / O177746420232, O411757177572 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE VAX UNIX F77 COMPILER *//*      DATA SMALL(1),SMALL(2) /        128,           0 / *//*      DATA LARGE(1),LARGE(2) /     -32769,          -1 / *//*      DATA RIGHT(1),RIGHT(2) /       9344,           0 / *//*      DATA DIVER(1),DIVER(2) /       9472,           0 / *//*      DATA LOG10(1),LOG10(2) /  546979738,  -805796613 /, SC/987/ *//*     MACHINE CONSTANTS FOR THE VAX-11 WITH *//*     FORTRAN IV-PLUS COMPILER *//*      DATA SMALL(1),SMALL(2) / Z00000080, Z00000000 / *//*      DATA LARGE(1),LARGE(2) / ZFFFF7FFF, ZFFFFFFFF / *//*      DATA RIGHT(1),RIGHT(2) / Z00002480, Z00000000 / *//*      DATA DIVER(1),DIVER(2) / Z00002500, Z00000000 / *//*      DATA LOG10(1),LOG10(2) / Z209A3F9A, ZCFF884FB /, SC/987/ *//*     MACHINE CONSTANTS FOR VAX/VMS VERSION 2.2 *//*      DATA SMALL(1),SMALL(2) /       '80'X,        '0'X / *//*      DATA LARGE(1),LARGE(2) / 'FFFF7FFF'X, 'FFFFFFFF'X / *//*      DATA RIGHT(1),RIGHT(2) /     '2480'X,        '0'X / *//*      DATA DIVER(1),DIVER(2) /     '2500'X,        '0'X / *//*      DATA LOG10(1),LOG10(2) / '209A3F9A'X, 'CFF884FB'X /, SC/987/ *//*  ***  ISSUE STOP 779 IF ALL DATA STATEMENTS ARE COMMENTED... */    if (sc != 987) {/*	s_stop("779", 3L); */exit(0);    }/*  ***  ISSUE STOP 778 IF ALL DATA STATEMENTS ARE OBVIOUSLY WRONG... */    if (dmach[3] >= 1.) {/*	s_stop("778", 3L); */ exit(0);    }    if (*i < 1 || *i > 5) {	goto L999;    }    ret_val = dmach[*i - 1];    return ret_val;L999:/*    s_wsfe(&io___8);    do_fio(&c__1, (char *)&(*i), (ftnlen)sizeof(integer));    e_wsfe();    s_stop("", 0L); */    return ret_val;} /* d1mach_ */#undef right#undef diver#undef small#undef large#undef dmach#undef log10/* end d1mach.c *//**********************************************************************//***************** implementation code from daxpy.c *******************//**********************************************************************//* Subroutine */ int daxpy_(integer    *n, 			    doublereal *da, 			    doublereal *dx, 			    integer    *incx, 			    doublereal *dy, 			    integer    *incy){    /* System generated locals */    integer i__1;    /* Local variables */    static integer i, m, ix, iy, mp1;/*     constant times a vector plus a vector. *//*     uses unrolled loops for increments equal to one. *//*     jack dongarra, linpack, 3/11/78. */    /* Parameter adjustments */    --dy;    --dx;    /* Function Body */    if (*n <= 0) {	return 0;    }    if (*da == 0.) {	return 0;    }    if (*incx == 1 && *incy == 1) {	goto L20;    }/*        code for unequal increments or equal increments *//*          not equal to 1 */    ix = 1;    iy = 1;    if (*incx < 0) {	ix = (-(*n) + 1) * *incx + 1;    }    if (*incy < 0) {	iy = (-(*n) + 1) * *incy + 1;    }    i__1 = *n;    for (i = 1; i <= i__1; ++i) {	dy[iy] += *da * dx[ix];	ix += *incx;	iy += *incy;/* L10: */    }    return 0;/*        code for both increments equal to 1 *//*        clean-up loop */L20:    m = *n % 4;    if (m == 0) {	goto L40;    }    i__1 = m;    for (i = 1; i <= i__1; ++i) {	dy[i] += *da * dx[i];/* L30: */    }    if (*n < 4) {	return 0;    }L40:    mp1 = m + 1;    i__1 = *n;    for (i = mp1; i <= i__1; i += 4) {	dy[i] += *da * dx[i];	dy[i + 1] += *da * dx[i + 1];	dy[i + 2] += *da * dx[i + 2];	dy[i + 3] += *da * dx[i + 3];/* L50: */    }    return 0;} /* daxpy_ *//* end daxpy.c *//**********************************************************************//***************** implementation code from dcopy.c *******************//**********************************************************************//* Subroutine */ int dcopy_(integer    *n, 			    doublereal *dx, 			    integer    *incx, 			    doublereal *dy, 			    integer    *incy){    /* System generated locals */    integer i__1;    /* Local variables */    static integer i, m, ix, iy, mp1;/*     copies a vector, x, to a vector, y. *//*     uses unrolled loops for increments equal to one. *//*     jack dongarra, linpack, 3/11/78. */    /* Parameter adjustments */    --dy;    --dx;    /* Function Body */    if (*n <= 0) {	return 0;    }    if (*incx == 1 && *incy == 1) {	goto L20;    }/*        code for unequal increments or equal increments *//*          not equal to 1 */    ix = 1;    iy = 1;    if (*incx < 0) {	ix = (-(*n) + 1) * *incx + 1;    }    if (*incy < 0) {	iy = (-(*n) + 1) * *incy + 1;    }    i__1 = *n;    for (i = 1; i <= i__1; ++i) {	dy[iy] = dx[ix];	ix += *incx;	iy += *incy;/* L10: */    }    return 0;/*        code for both increments equal to 1 *//*        clean-up loop */L20:    m = *n % 7;    if (m == 0) {	goto L40;    }    i__1 = m;    for (i = 1; i <= i__1; ++i) {	dy[i] = dx[i];/* L30: */    }    if (*n < 7) {	return 0;    }L40:    mp1 = m + 1;    i__1 = *n;    for (i = mp1; i <= i__1; i += 7) {	dy[i] = dx[i];	dy[i + 1] = dx[i + 1];	dy[i + 2] = dx[i + 2];	dy[i + 3] = dx[i + 3];	dy[i + 4] = dx[i + 4];	dy[i + 5] = dx[i + 5];	dy[i + 6] = dx[i + 6];/* L50: */    }    return 0;} /* dcopy_ *//* end dcopy.c *//**********************************************************************//***************** implementation code from dcpose.c ******************//**********************************************************************//* Table of constant values *//* static integer c__1 = 1; NOW REDUNDANT *//* Subroutine */ int dcpose_(integer    *ndim, 			     integer    *n, 			     doublereal *qr, 			     doublereal *alpha, 			     integer    *pivot, 			     integer    *ierr, 			     doublereal *y, 			     doublereal *sum){    /* System generated locals */    integer qr_dim1, qr_offset, i__1, i__2, i__3;    doublereal d__1;    /* Builtin functions */    /*     double sqrt(double);  CANT DECLARE BUILTINS UNDER C++ */    /* Local variables */    static doublereal beta;    static integer jbar;    extern doublereal ddot_(integer    *n,		 doublereal *dx,		 integer    *incx,		 doublereal *dy,		 integer    *incy);    static doublereal qrkk;    static integer i, j, k;    static doublereal sigma, alphak;    static integer kp1, np1;/* SUBROUTINE  DCPOSE  IS A MODIFICATION OF THE ALGOL PROCEDURE *//* DECOMPOSE  IN P. BUSINGER AND G. H. GOLUB, LINEAR LEAST *//* SQUARES SOLUTIONS BY HOUSEHOLDER TRANSFORMATIONS, *//* NUMER. MATH. 7 (1965) 269-276. */    /* Parameter adjustments */    qr_dim1 = *ndim;    qr_offset = qr_dim1 + 1;    qr -= qr_offset;    --alpha;    --pivot;    --y;    --sum;    /* Function Body */    *ierr = 0;    np1 = *n + 1;    i__1 = np1;    for (j = 1; j <= i__1; ++j) {	sum[j] = ddot_(n, &qr[j * qr_dim1 + 1], &c__1, &qr[j * qr_dim1 + 1], &		c__1);/* L20: */	pivot[j] = j;    }    i__1 = *n;    for (k = 1; k <= i__1; ++k) {	sigma = sum[k];	jbar = k;	kp1 = k + 1;	i__2 = np1;	for (j = kp1; j <= i__2; ++j) {	    if (sigma >= sum[j]) {		goto L40;	    }	    sigma = sum[j];	    jbar = j;L40:	    ;	}	if (jbar == k) {	    goto L70;	}	i = pivot[k];	pivot[k] = pivot[jbar];	pivot[jbar] = i;	sum[jbar] = sum[k];	sum[k] = sigma;	i__2 = *n;	for (i = 1; i <= i__2; ++i) {	    sigma = qr[i + k * qr_dim1];	    qr[i + k * qr_dim1] = qr[i + jbar * qr_dim1];	    qr[i + jbar * qr_dim1] = sigma;/* L50: */	}/*   END OF COLUMN INTERCHANGE. */L70:	i__2 = *n - k + 1;	sigma = ddot_(&i__2, &qr[k + k * qr_dim1], &c__1, &qr[k + k * qr_dim1]		, &c__1);	if (sigma != (float)0.) {	    goto L60;	}	*ierr = 1;	return 0;L60:	if (k == *n) {	    goto L500;	}	qrkk = qr[k + k * qr_dim1];	alphak = -sqrt(sigma);	if (qrkk < (float)0.) {	    alphak = -alphak;	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -