17758a8cdSBarry Smith 27758a8cdSBarry Smith #if !defined(__TFS_H) 37758a8cdSBarry Smith #define __TFS_H 47758a8cdSBarry Smith 57758a8cdSBarry Smith /**********************************const.h************************************* 67758a8cdSBarry Smith 77758a8cdSBarry Smith Author: Henry M. Tufo III 87758a8cdSBarry Smith 97758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 107758a8cdSBarry Smith 117758a8cdSBarry Smith snail-mail: 127758a8cdSBarry Smith Division of Applied Mathematics 137758a8cdSBarry Smith Brown University 147758a8cdSBarry Smith Providence, RI 02912 157758a8cdSBarry Smith 167758a8cdSBarry Smith Last Modification: 177758a8cdSBarry Smith 6.21.97 187758a8cdSBarry Smith ***********************************const.h************************************/ 197758a8cdSBarry Smith 207758a8cdSBarry Smith /**********************************const.h************************************* 217758a8cdSBarry Smith File Description: 227758a8cdSBarry Smith ----------------- 237758a8cdSBarry Smith 247758a8cdSBarry Smith ***********************************const.h************************************/ 257758a8cdSBarry Smith #include "petsc.h" 26*330ea6edSBarry Smith #include "petscsys.h" 27*330ea6edSBarry Smith #if defined(PETSC_HAVE_STDLIB_H) 28*330ea6edSBarry Smith #include <stdlib.h> 29*330ea6edSBarry Smith #endif 309e8a9152SBarry Smith #if defined(PETSC_HAVE_MALLOC_H) 319e8a9152SBarry Smith #include <malloc.h> 329e8a9152SBarry Smith #endif 33*330ea6edSBarry Smith #include "petscblaslapack.h" 34*330ea6edSBarry Smith #include <limits.h> 35*330ea6edSBarry Smith #include <float.h> 367758a8cdSBarry Smith 377758a8cdSBarry Smith #define X 0 387758a8cdSBarry Smith #define Y 1 397758a8cdSBarry Smith #define Z 2 407758a8cdSBarry Smith #define XY 3 417758a8cdSBarry Smith #define XZ 4 427758a8cdSBarry Smith #define YZ 5 437758a8cdSBarry Smith 447758a8cdSBarry Smith 457758a8cdSBarry Smith #define THRESH 0.2 467758a8cdSBarry Smith #define N_HALF 4096 477758a8cdSBarry Smith #define PRIV_BUF_SZ 45 487758a8cdSBarry Smith 497758a8cdSBarry Smith /*4096 8192 32768 65536 1048576 */ 507758a8cdSBarry Smith #define MAX_MSG_BUF 32768 517758a8cdSBarry Smith 527758a8cdSBarry Smith /* fortran gs limit */ 537758a8cdSBarry Smith #define MAX_GS_IDS 100 547758a8cdSBarry Smith 557758a8cdSBarry Smith #define FULL 2 567758a8cdSBarry Smith #define PARTIAL 1 577758a8cdSBarry Smith #define NONE 0 587758a8cdSBarry Smith 597758a8cdSBarry Smith #define BYTE 8 607758a8cdSBarry Smith #define BIT_0 0x1 617758a8cdSBarry Smith #define BIT_1 0x2 627758a8cdSBarry Smith #define BIT_2 0x4 637758a8cdSBarry Smith #define BIT_3 0x8 647758a8cdSBarry Smith #define BIT_4 0x10 657758a8cdSBarry Smith #define BIT_5 0x20 667758a8cdSBarry Smith #define BIT_6 0x40 677758a8cdSBarry Smith #define BIT_7 0x80 687758a8cdSBarry Smith #define TOP_BIT INT_MIN 697758a8cdSBarry Smith #define ALL_ONES -1 707758a8cdSBarry Smith 717758a8cdSBarry Smith #define FALSE 0 727758a8cdSBarry Smith #define TRUE 1 737758a8cdSBarry Smith 747758a8cdSBarry Smith #define C 0 757758a8cdSBarry Smith #define FORTRAN 1 767758a8cdSBarry Smith 777758a8cdSBarry Smith 787758a8cdSBarry Smith #define MAX_VEC 1674 797758a8cdSBarry Smith #define FORMAT 30 807758a8cdSBarry Smith #define MAX_COL_LEN 100 817758a8cdSBarry Smith #define MAX_LINE FORMAT*MAX_COL_LEN 827758a8cdSBarry Smith #define DELIM " \n \t" 837758a8cdSBarry Smith #define LINE 12 847758a8cdSBarry Smith #define C_LINE 80 857758a8cdSBarry Smith 867758a8cdSBarry Smith #define REAL_MAX DBL_MAX 877758a8cdSBarry Smith #define REAL_MIN DBL_MIN 887758a8cdSBarry Smith 897758a8cdSBarry Smith #define UT 5 /* dump upper 1/2 */ 907758a8cdSBarry Smith #define LT 6 /* dump lower 1/2 */ 917758a8cdSBarry Smith #define SYMM 8 /* we assume symm and dump upper 1/2 */ 927758a8cdSBarry Smith #define NON_SYMM 9 937758a8cdSBarry Smith 947758a8cdSBarry Smith #define ROW 10 957758a8cdSBarry Smith #define COL 11 967758a8cdSBarry Smith 977758a8cdSBarry Smith #define EPS 1.0e-14 987758a8cdSBarry Smith #define EPS2 1.0e-07 997758a8cdSBarry Smith 1007758a8cdSBarry Smith 1017758a8cdSBarry Smith #define MPI 1 1027758a8cdSBarry Smith #define NX 2 1037758a8cdSBarry Smith 1047758a8cdSBarry Smith 1057758a8cdSBarry Smith #define LOG2(x) (PetscScalar)log((double)x)/log(2) 1067758a8cdSBarry Smith #define SWAP(a,b) temp=(a); (a)=(b); (b)=temp; 1077758a8cdSBarry Smith #define P_SWAP(a,b) ptr=(a); (a)=(b); (b)=ptr; 1087758a8cdSBarry Smith 1097758a8cdSBarry Smith #define MAX_FABS(x,y) ((double)fabs(x)>(double)fabs(y)) ? ((PetscScalar)x) : ((PetscScalar)y) 1107758a8cdSBarry Smith #define MIN_FABS(x,y) ((double)fabs(x)<(double)fabs(y)) ? ((PetscScalar)x) : ((PetscScalar)y) 1117758a8cdSBarry Smith 1127758a8cdSBarry Smith /* specer's existence ... can be done w/MAX_ABS */ 1137758a8cdSBarry Smith #define EXISTS(x,y) ((x)==0.0) ? (y) : (x) 1147758a8cdSBarry Smith 1157758a8cdSBarry Smith #define MULT_NEG_ONE(a) (a) *= -1; 1167758a8cdSBarry Smith #define NEG(a) (a) |= BIT_31; 1177758a8cdSBarry Smith #define POS(a) (a) &= INT_MAX; 1187758a8cdSBarry Smith 1197758a8cdSBarry Smith 1207758a8cdSBarry Smith 1217758a8cdSBarry Smith 1227758a8cdSBarry Smith /**********************************types.h************************************* 1237758a8cdSBarry Smith 1247758a8cdSBarry Smith Author: Henry M. Tufo III 1257758a8cdSBarry Smith 1267758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 1277758a8cdSBarry Smith 1287758a8cdSBarry Smith snail-mail: 1297758a8cdSBarry Smith Division of Applied Mathematics 1307758a8cdSBarry Smith Brown University 1317758a8cdSBarry Smith Providence, RI 02912 1327758a8cdSBarry Smith 1337758a8cdSBarry Smith Last Modification: 1347758a8cdSBarry Smith 6.21.97 1357758a8cdSBarry Smith ***********************************types.h************************************/ 1367758a8cdSBarry Smith 1377758a8cdSBarry Smith /**********************************types.h************************************* 1387758a8cdSBarry Smith File Description: 1397758a8cdSBarry Smith ----------------- 1407758a8cdSBarry Smith 1417758a8cdSBarry Smith ***********************************types.h************************************/ 1427758a8cdSBarry Smith typedef void (*vfp)(void*,void*,int,...); 1437758a8cdSBarry Smith typedef void (*rbfp)(PetscScalar *, PetscScalar *, int len); 1447758a8cdSBarry Smith #define vbfp MPI_User_function * 1457758a8cdSBarry Smith typedef int (*bfp)(void*, void *, int *len, MPI_Datatype *dt); 1467758a8cdSBarry Smith 1477758a8cdSBarry Smith /***********************************comm.h************************************* 1487758a8cdSBarry Smith 1497758a8cdSBarry Smith Author: Henry M. Tufo III 1507758a8cdSBarry Smith 1517758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 1527758a8cdSBarry Smith 1537758a8cdSBarry Smith snail-mail: 1547758a8cdSBarry Smith Division of Applied Mathematics 1557758a8cdSBarry Smith Brown University 1567758a8cdSBarry Smith Providence, RI 02912 1577758a8cdSBarry Smith 1587758a8cdSBarry Smith Last Modification: 1597758a8cdSBarry Smith 6.21.97 1607758a8cdSBarry Smith ***********************************comm.h*************************************/ 1617758a8cdSBarry Smith 1627758a8cdSBarry Smith /***********************************comm.h************************************* 1637758a8cdSBarry Smith File Description: 1647758a8cdSBarry Smith ----------------- 1657758a8cdSBarry Smith 1667758a8cdSBarry Smith ***********************************comm.h*************************************/ 1677758a8cdSBarry Smith 1687758a8cdSBarry Smith /***********************************comm.h************************************* 1697758a8cdSBarry Smith Function: 1707758a8cdSBarry Smith 1717758a8cdSBarry Smith Input : 1727758a8cdSBarry Smith Output: 1737758a8cdSBarry Smith Return: 1747758a8cdSBarry Smith Description: 1757758a8cdSBarry Smith Usage: 1767758a8cdSBarry Smith ***********************************comm.h*************************************/ 1777758a8cdSBarry Smith extern int my_id; 1787758a8cdSBarry Smith extern int num_nodes; 1797758a8cdSBarry Smith extern int floor_num_nodes; 1807758a8cdSBarry Smith extern int i_log2_num_nodes; 1817758a8cdSBarry Smith 1827758a8cdSBarry Smith extern void giop(int *vals, int *work, int n, int *oprs); 1837758a8cdSBarry Smith extern void grop(PetscScalar *vals, PetscScalar *work, int n, int *oprs); 1847758a8cdSBarry Smith extern void gfop(void *vals, void *wk, int n, vbfp fp, MPI_Datatype dt, int comm_type); 1857758a8cdSBarry Smith extern void comm_init(void); 1867758a8cdSBarry Smith extern void giop_hc(int *vals, int *work, int n, int *oprs, int dim); 1877758a8cdSBarry Smith extern void grop_hc(PetscScalar *vals, PetscScalar *work, int n, int *oprs, int dim); 1887758a8cdSBarry Smith extern void grop_hc_vvl(PetscScalar *vals, PetscScalar *work, int *n, int *oprs, int dim); 1897758a8cdSBarry Smith extern void ssgl_radd(PetscScalar *vals, PetscScalar *work, int level, int *segs); 1907758a8cdSBarry Smith 1917758a8cdSBarry Smith #define MSGTAG0 101 1927758a8cdSBarry Smith #define MSGTAG1 1001 1937758a8cdSBarry Smith #define MSGTAG2 76207 1947758a8cdSBarry Smith #define MSGTAG3 100001 1957758a8cdSBarry Smith #define MSGTAG4 163841 1967758a8cdSBarry Smith #define MSGTAG5 249439 1977758a8cdSBarry Smith #define MSGTAG6 10000001 1987758a8cdSBarry Smith 1997758a8cdSBarry Smith 2007758a8cdSBarry Smith /**********************************error.h************************************* 2017758a8cdSBarry Smith 2027758a8cdSBarry Smith Author: Henry M. Tufo III 2037758a8cdSBarry Smith 2047758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 2057758a8cdSBarry Smith 2067758a8cdSBarry Smith snail-mail: 2077758a8cdSBarry Smith Division of Applied Mathematics 2087758a8cdSBarry Smith Brown University 2097758a8cdSBarry Smith Providence, RI 02912 2107758a8cdSBarry Smith 2117758a8cdSBarry Smith Last Modification: 2127758a8cdSBarry Smith 6.21.97 2137758a8cdSBarry Smith **********************************error.h*************************************/ 2147758a8cdSBarry Smith 2157758a8cdSBarry Smith /**********************************error.h************************************* 2167758a8cdSBarry Smith File Description: 2177758a8cdSBarry Smith ----------------- 2187758a8cdSBarry Smith 2197758a8cdSBarry Smith **********************************error.h*************************************/ 2207758a8cdSBarry Smith 2217758a8cdSBarry Smith /**********************************error.h************************************* 2227758a8cdSBarry Smith Function: error_msg_fatal() 2237758a8cdSBarry Smith 2247758a8cdSBarry Smith Input : formatted string and arguments. 2257758a8cdSBarry Smith Output: conversion printed to stdout. 2267758a8cdSBarry Smith Return: na. 2277758a8cdSBarry Smith Description: prints error message and terminates program. 2287758a8cdSBarry Smith Usage: error_msg_fatal("this is my %d'st test",test_num) 2297758a8cdSBarry Smith **********************************error.h*************************************/ 2307758a8cdSBarry Smith extern void error_msg_fatal(const char msg[], ...); 2317758a8cdSBarry Smith 2327758a8cdSBarry Smith 2337758a8cdSBarry Smith 2347758a8cdSBarry Smith /**********************************error.h************************************* 2357758a8cdSBarry Smith Function: error_msg_warning() 2367758a8cdSBarry Smith 2377758a8cdSBarry Smith Input : formatted string and arguments. 2387758a8cdSBarry Smith Output: conversion printed to stdout. 2397758a8cdSBarry Smith Return: na. 2407758a8cdSBarry Smith Description: prints error message. 2417758a8cdSBarry Smith Usage: error_msg_warning("this is my %d'st test",test_num) 2427758a8cdSBarry Smith **********************************error.h*************************************/ 2437758a8cdSBarry Smith extern void error_msg_warning(const char msg[], ...); 2447758a8cdSBarry Smith 2457758a8cdSBarry Smith /*$Id: vector.c,v 1.228 2001/03/23 23:21:22 balay Exp $*/ 2467758a8cdSBarry Smith /**********************************ivec.h************************************** 2477758a8cdSBarry Smith 2487758a8cdSBarry Smith Author: Henry M. Tufo III 2497758a8cdSBarry Smith 2507758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 2517758a8cdSBarry Smith 2527758a8cdSBarry Smith snail-mail: 2537758a8cdSBarry Smith Division of Applied Mathematics 2547758a8cdSBarry Smith Brown University 2557758a8cdSBarry Smith Providence, RI 02912 2567758a8cdSBarry Smith 2577758a8cdSBarry Smith Last Modification: 2587758a8cdSBarry Smith 6.21.97 2597758a8cdSBarry Smith ***********************************ivec.h*************************************/ 2607758a8cdSBarry Smith 2617758a8cdSBarry Smith /**********************************ivec.h************************************** 2627758a8cdSBarry Smith File Description: 2637758a8cdSBarry Smith ----------------- 2647758a8cdSBarry Smith 2657758a8cdSBarry Smith ***********************************ivec.h*************************************/ 2667758a8cdSBarry Smith 2677758a8cdSBarry Smith #define SORT_REAL 1 2687758a8cdSBarry Smith #define SORT_INTEGER 0 2697758a8cdSBarry Smith #define SORT_INT_PTR 2 2707758a8cdSBarry Smith 2717758a8cdSBarry Smith 2727758a8cdSBarry Smith #define NON_UNIFORM 0 2737758a8cdSBarry Smith #define GL_MAX 1 2747758a8cdSBarry Smith #define GL_MIN 2 2757758a8cdSBarry Smith #define GL_MULT 3 2767758a8cdSBarry Smith #define GL_ADD 4 2777758a8cdSBarry Smith #define GL_B_XOR 5 2787758a8cdSBarry Smith #define GL_B_OR 6 2797758a8cdSBarry Smith #define GL_B_AND 7 2807758a8cdSBarry Smith #define GL_L_XOR 8 2817758a8cdSBarry Smith #define GL_L_OR 9 2827758a8cdSBarry Smith #define GL_L_AND 10 2837758a8cdSBarry Smith #define GL_MAX_ABS 11 2847758a8cdSBarry Smith #define GL_MIN_ABS 12 2857758a8cdSBarry Smith #define GL_EXISTS 13 2867758a8cdSBarry Smith 2877758a8cdSBarry Smith 2887758a8cdSBarry Smith 2897758a8cdSBarry Smith /**********************************ivec.h************************************** 2907758a8cdSBarry Smith Function: 2917758a8cdSBarry Smith 2927758a8cdSBarry Smith Input : 2937758a8cdSBarry Smith Output: 2947758a8cdSBarry Smith Return: 2957758a8cdSBarry Smith Description: 2967758a8cdSBarry Smith Usage: 2977758a8cdSBarry Smith ***********************************ivec.h*************************************/ 2987758a8cdSBarry Smith extern void ivec_dump(int *v, int n, int tag, int tag2, char * s); 2997758a8cdSBarry Smith extern void ivec_lb_ub(int *arg1, int n, int *lb, int *ub); 3007758a8cdSBarry Smith extern int *ivec_copy(int *arg1, int *arg2, int n); 3017758a8cdSBarry Smith /*void ivec_copy(int *arg1, int *arg2, int n); */ 3027758a8cdSBarry Smith 3037758a8cdSBarry Smith extern void ivec_comp(int *arg1, int n); 3047758a8cdSBarry Smith 3057758a8cdSBarry Smith extern int ivec_reduce_and(int *arg1, int n); 3067758a8cdSBarry Smith extern int ivec_reduce_or(int *arg1, int n); 3077758a8cdSBarry Smith 3087758a8cdSBarry Smith extern void ivec_zero(int *arg1, int n); 3097758a8cdSBarry Smith extern void ivec_pos_one(int *arg1, int n); 3107758a8cdSBarry Smith extern void ivec_neg_one(int *arg1, int n); 3117758a8cdSBarry Smith extern void ivec_set(int *arg1, int arg2, int n); 3127758a8cdSBarry Smith extern int ivec_cmp(int *arg1, int *arg2, int n); 3137758a8cdSBarry Smith 3147758a8cdSBarry Smith extern int ivec_lb(int *work, int n); 3157758a8cdSBarry Smith extern int ivec_ub(int *work, int n); 3167758a8cdSBarry Smith extern int ivec_sum(int *arg1, int n); 3177758a8cdSBarry Smith extern int ivec_u_sum(unsigned *arg1, int n); 3187758a8cdSBarry Smith extern int ivec_prod(int *arg1, int n); 3197758a8cdSBarry Smith 3207758a8cdSBarry Smith extern vfp ivec_fct_addr(int type); 3217758a8cdSBarry Smith 3227758a8cdSBarry Smith extern void ivec_non_uniform(int *arg1, int *arg2, int n, int *arg3); 3237758a8cdSBarry Smith extern void ivec_max(int *arg1, int *arg2, int n); 3247758a8cdSBarry Smith extern void ivec_min(int *arg1, int *arg2, int n); 3257758a8cdSBarry Smith extern void ivec_mult(int *arg1, int *arg2, int n); 3267758a8cdSBarry Smith extern void ivec_add(int *arg1, int *arg2, int n); 3277758a8cdSBarry Smith extern void ivec_xor(int *arg1, int *arg2, int n); 3287758a8cdSBarry Smith extern void ivec_or(int *arg1, int *arg2, int len); 3297758a8cdSBarry Smith extern void ivec_and(int *arg1, int *arg2, int len); 3307758a8cdSBarry Smith extern void ivec_lxor(int *arg1, int *arg2, int n); 3317758a8cdSBarry Smith extern void ivec_lor(int *arg1, int *arg2, int len); 3327758a8cdSBarry Smith extern void ivec_land(int *arg1, int *arg2, int len); 3337758a8cdSBarry Smith 3347758a8cdSBarry Smith extern void ivec_or3 (int *arg1, int *arg2, int *arg3, int len); 3357758a8cdSBarry Smith extern void ivec_and3(int *arg1, int *arg2, int *arg3, int n); 3367758a8cdSBarry Smith 3377758a8cdSBarry Smith extern int ivec_split_buf(int *buf1, int **buf2, int size); 3387758a8cdSBarry Smith 3397758a8cdSBarry Smith 3407758a8cdSBarry Smith extern void ivec_sort_companion(int *ar, int *ar2, int size); 3417758a8cdSBarry Smith extern void ivec_sort(int *ar, int size); 3427758a8cdSBarry Smith extern void SMI_sort(void *ar1, void *ar2, int size, int type); 3437758a8cdSBarry Smith extern int ivec_binary_search(int item, int *list, int n); 3447758a8cdSBarry Smith extern int ivec_linear_search(int item, int *list, int n); 3457758a8cdSBarry Smith 3467758a8cdSBarry Smith extern void ivec_c_index(int *arg1, int n); 3477758a8cdSBarry Smith extern void ivec_fortran_index(int *arg1, int n); 3487758a8cdSBarry Smith extern void ivec_sort_companion_hack(int *ar, int **ar2, int size); 3497758a8cdSBarry Smith 3507758a8cdSBarry Smith 3517758a8cdSBarry Smith extern void rvec_dump(PetscScalar *v, int n, int tag, int tag2, char * s); 3527758a8cdSBarry Smith extern void rvec_zero(PetscScalar *arg1, int n); 3537758a8cdSBarry Smith extern void rvec_one(PetscScalar *arg1, int n); 3547758a8cdSBarry Smith extern void rvec_neg_one(PetscScalar *arg1, int n); 3557758a8cdSBarry Smith extern void rvec_set(PetscScalar *arg1, PetscScalar arg2, int n); 3567758a8cdSBarry Smith extern void rvec_copy(PetscScalar *arg1, PetscScalar *arg2, int n); 3577758a8cdSBarry Smith extern void rvec_lb_ub(PetscScalar *arg1, int n, PetscScalar *lb, PetscScalar *ub); 3587758a8cdSBarry Smith extern void rvec_scale(PetscScalar *arg1, PetscScalar arg2, int n); 3597758a8cdSBarry Smith 3607758a8cdSBarry Smith extern vfp rvec_fct_addr(int type); 3617758a8cdSBarry Smith extern void rvec_add(PetscScalar *arg1, PetscScalar *arg2, int n); 3627758a8cdSBarry Smith extern void rvec_mult(PetscScalar *arg1, PetscScalar *arg2, int n); 3637758a8cdSBarry Smith extern void rvec_max(PetscScalar *arg1, PetscScalar *arg2, int n); 3647758a8cdSBarry Smith extern void rvec_max_abs(PetscScalar *arg1, PetscScalar *arg2, int n); 3657758a8cdSBarry Smith extern void rvec_min(PetscScalar *arg1, PetscScalar *arg2, int n); 3667758a8cdSBarry Smith extern void rvec_min_abs(PetscScalar *arg1, PetscScalar *arg2, int n); 3677758a8cdSBarry Smith extern void vec_exists(PetscScalar *arg1, PetscScalar *arg2, int n); 3687758a8cdSBarry Smith 3697758a8cdSBarry Smith 3707758a8cdSBarry Smith extern void rvec_sort(PetscScalar *ar, int size); 3717758a8cdSBarry Smith extern void rvec_sort_companion(PetscScalar *ar, int *ar2, int size); 3727758a8cdSBarry Smith 3737758a8cdSBarry Smith extern PetscScalar rvec_dot(PetscScalar *arg1, PetscScalar *arg2, int n); 3747758a8cdSBarry Smith 3757758a8cdSBarry Smith extern void rvec_axpy(PetscScalar *arg1, PetscScalar *arg2, PetscScalar scale, int n); 3767758a8cdSBarry Smith 3777758a8cdSBarry Smith extern int rvec_binary_search(PetscScalar item, PetscScalar *list, int rh); 3787758a8cdSBarry Smith 3797758a8cdSBarry Smith 3807758a8cdSBarry Smith /**********************************queue.h************************************* 3817758a8cdSBarry Smith 3827758a8cdSBarry Smith Author: Henry M. Tufo III 3837758a8cdSBarry Smith 3847758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 3857758a8cdSBarry Smith 3867758a8cdSBarry Smith snail-mail: 3877758a8cdSBarry Smith Division of Applied Mathematics 3887758a8cdSBarry Smith Brown University 3897758a8cdSBarry Smith Providence, RI 02912 3907758a8cdSBarry Smith 3917758a8cdSBarry Smith Last Modification: 3927758a8cdSBarry Smith 6.21.97 3937758a8cdSBarry Smith **********************************queue.h*************************************/ 3947758a8cdSBarry Smith 3957758a8cdSBarry Smith /**********************************queue.h************************************* 3967758a8cdSBarry Smith File Description: 3977758a8cdSBarry Smith ----------------- 3987758a8cdSBarry Smith This file provides an interface to a simple queue abstraction. 3997758a8cdSBarry Smith **********************************queue.h*************************************/ 4007758a8cdSBarry Smith 4017758a8cdSBarry Smith /**********************************queue.h************************************* 4027758a8cdSBarry Smith Type: queue_ADT 4037758a8cdSBarry Smith --------------- 4047758a8cdSBarry Smith This line defines the abstract queue type as a pointer to 4057758a8cdSBarry Smith its concrete counterpart. Clients have no access to the 4067758a8cdSBarry Smith underlying representation. 4077758a8cdSBarry Smith **********************************queue.h*************************************/ 4087758a8cdSBarry Smith typedef struct queue_CDT *queue_ADT; 4097758a8cdSBarry Smith 4107758a8cdSBarry Smith 4117758a8cdSBarry Smith 4127758a8cdSBarry Smith /**********************************queue.h************************************* 4137758a8cdSBarry Smith Function: new_queue() 4147758a8cdSBarry Smith 4157758a8cdSBarry Smith Input : na 4167758a8cdSBarry Smith Output: na 4177758a8cdSBarry Smith Return: pointer to ADT. 4187758a8cdSBarry Smith Description: This function allocates and returns an empty queue. 4197758a8cdSBarry Smith Usage: queue = new_queue(); 4207758a8cdSBarry Smith **********************************queue.h*************************************/ 4217758a8cdSBarry Smith extern queue_ADT new_queue(void); 4227758a8cdSBarry Smith 4237758a8cdSBarry Smith 4247758a8cdSBarry Smith 4257758a8cdSBarry Smith /**********************************queue.h************************************* 4267758a8cdSBarry Smith Function: free_queue() 4277758a8cdSBarry Smith 4287758a8cdSBarry Smith Input : pointer to ADT. 4297758a8cdSBarry Smith Output: na 4307758a8cdSBarry Smith Return: na 4317758a8cdSBarry Smith Description: This function frees the storage associated with queue but not any 4327758a8cdSBarry Smith pointer contained w/in. 4337758a8cdSBarry Smith Usage: free_queue(queue); 4347758a8cdSBarry Smith **********************************queue.h*************************************/ 4357758a8cdSBarry Smith extern void free_queue(queue_ADT queue); 4367758a8cdSBarry Smith 4377758a8cdSBarry Smith 4387758a8cdSBarry Smith 4397758a8cdSBarry Smith /**********************************queue.h************************************* 4407758a8cdSBarry Smith Function: enqueue() 4417758a8cdSBarry Smith 4427758a8cdSBarry Smith Input : pointer to ADT and pointer to object 4437758a8cdSBarry Smith Output: na 4447758a8cdSBarry Smith Return: na 4457758a8cdSBarry Smith Description: This function adds obj to the end of the queue. 4467758a8cdSBarry Smith Usage: enqueue(queue, obj); 4477758a8cdSBarry Smith **********************************queue.h*************************************/ 4487758a8cdSBarry Smith extern void enqueue(queue_ADT queue, void *obj); 4497758a8cdSBarry Smith 4507758a8cdSBarry Smith 4517758a8cdSBarry Smith 4527758a8cdSBarry Smith /**********************************queue.h************************************* 4537758a8cdSBarry Smith Function: dequeue() 4547758a8cdSBarry Smith 4557758a8cdSBarry Smith Input : pointer to ADT 4567758a8cdSBarry Smith Output: na 4577758a8cdSBarry Smith Return: void * to element 4587758a8cdSBarry Smith Description: This function removes the data value at the head of the queue 4597758a8cdSBarry Smith and returns it to the client. dequeueing an empty queue is an error 4607758a8cdSBarry Smith Usage: obj = dequeue(queue); 4617758a8cdSBarry Smith **********************************queue.h*************************************/ 4627758a8cdSBarry Smith extern void *dequeue(queue_ADT queue); 4637758a8cdSBarry Smith 4647758a8cdSBarry Smith 4657758a8cdSBarry Smith 4667758a8cdSBarry Smith /**********************************queue.h************************************* 4677758a8cdSBarry Smith Function: len_queue() 4687758a8cdSBarry Smith 4697758a8cdSBarry Smith Input : pointer to ADT 4707758a8cdSBarry Smith Output: na 4717758a8cdSBarry Smith Return: integer number of elements 4727758a8cdSBarry Smith Description: This function returns the number of elements in the queue. 4737758a8cdSBarry Smith Usage: n = len_queue(queue); 4747758a8cdSBarry Smith **********************************queue.h*************************************/ 4757758a8cdSBarry Smith EXTERN int len_queue(queue_ADT queue); 4767758a8cdSBarry Smith 4777758a8cdSBarry Smith 4787758a8cdSBarry Smith 4797758a8cdSBarry Smith /*$Id: vector.c,v 1.228 2001/03/23 23:21:22 balay Exp $*/ 4807758a8cdSBarry Smith /***********************************gs.h*************************************** 4817758a8cdSBarry Smith 4827758a8cdSBarry Smith Author: Henry M. Tufo III 4837758a8cdSBarry Smith 4847758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 4857758a8cdSBarry Smith 4867758a8cdSBarry Smith snail-mail: 4877758a8cdSBarry Smith Division of Applied Mathematics 4887758a8cdSBarry Smith Brown University 4897758a8cdSBarry Smith Providence, RI 02912 4907758a8cdSBarry Smith 4917758a8cdSBarry Smith Last Modification: 4927758a8cdSBarry Smith 6.21.97 4937758a8cdSBarry Smith ************************************gs.h**************************************/ 4947758a8cdSBarry Smith 4957758a8cdSBarry Smith /***********************************gs.h*************************************** 4967758a8cdSBarry Smith File Description: 4977758a8cdSBarry Smith ----------------- 4987758a8cdSBarry Smith 4997758a8cdSBarry Smith ************************************gs.h**************************************/ 5007758a8cdSBarry Smith 5017758a8cdSBarry Smith /***********************************gs.h*************************************** 5027758a8cdSBarry Smith Type: gs_ADT 5037758a8cdSBarry Smith ------------ 5047758a8cdSBarry Smith 5057758a8cdSBarry Smith ************************************gs.h**************************************/ 5067758a8cdSBarry Smith 5077758a8cdSBarry Smith typedef struct gather_scatter_id *gs_ADT; 5087758a8cdSBarry Smith typedef void (*Rbfp)(PetscScalar *, PetscScalar *, int len); 5097758a8cdSBarry Smith 5107758a8cdSBarry Smith /***********************************gs.h*************************************** 5117758a8cdSBarry Smith Function: 5127758a8cdSBarry Smith 5137758a8cdSBarry Smith Input : 5147758a8cdSBarry Smith Output: 5157758a8cdSBarry Smith Return: 5167758a8cdSBarry Smith Description: 5177758a8cdSBarry Smith Usage: 5187758a8cdSBarry Smith ************************************gs.h**************************************/ 5197758a8cdSBarry Smith extern gs_ADT gs_init(int *elms, int nel, int level); 5207758a8cdSBarry Smith extern void gs_gop(gs_ADT gs_handle, PetscScalar *vals, const char *op); 5217758a8cdSBarry Smith extern void gs_gop_vec(gs_ADT gs_handle, PetscScalar *vals, const char *op, int step); 5227758a8cdSBarry Smith extern void gs_gop_binary(gs_ADT gs, PetscScalar *vals, Rbfp fct); 5237758a8cdSBarry Smith extern void gs_gop_hc(gs_ADT gs_handle, PetscScalar *vals, const char *op, int dim); 5247758a8cdSBarry Smith extern void gs_free(gs_ADT gs_handle); 5257758a8cdSBarry Smith extern void gs_init_msg_buf_sz(int buf_size); 5267758a8cdSBarry Smith extern void gs_init_vec_sz(int size); 5277758a8cdSBarry Smith 5287758a8cdSBarry Smith 5297758a8cdSBarry Smith 5307758a8cdSBarry Smith /*************************************xxt.h************************************ 5317758a8cdSBarry Smith Module Name: xxt 5327758a8cdSBarry Smith Module Info: need xxt.{c,h} gs.{c,h} comm.{c,h} ivec.{c,h} error.{c,h} 5337758a8cdSBarry Smith 5347758a8cdSBarry Smith author: Henry M. Tufo III 5357758a8cdSBarry Smith e-mail: hmt@asci.uchicago.edu 5367758a8cdSBarry Smith contact: 5377758a8cdSBarry Smith +--------------------------------+--------------------------------+ 5387758a8cdSBarry Smith |MCS Division - Building 221 |Department of Computer Science | 5397758a8cdSBarry Smith |Argonne National Laboratory |Ryerson 152 | 5407758a8cdSBarry Smith |9700 S. Cass Avenue |The University of Chicago | 5417758a8cdSBarry Smith |Argonne, IL 60439 |Chicago, IL 60637 | 5427758a8cdSBarry Smith |(630) 252-5354/5986 ph/fx |(773) 702-6019/8487 ph/fx | 5437758a8cdSBarry Smith +--------------------------------+--------------------------------+ 5447758a8cdSBarry Smith 5457758a8cdSBarry Smith Last Modification: 3.20.01 5467758a8cdSBarry Smith **************************************xxt.h***********************************/ 5477758a8cdSBarry Smith 5487758a8cdSBarry Smith /*************************************xxt.h************************************ 5497758a8cdSBarry Smith File Description: 5507758a8cdSBarry Smith **************************************xxt.h***********************************/ 5517758a8cdSBarry Smith 5527758a8cdSBarry Smith /*************************************xxt.h************************************ 5537758a8cdSBarry Smith Notes on Usage: 5547758a8cdSBarry Smith **************************************xxt.h***********************************/ 5557758a8cdSBarry Smith 5567758a8cdSBarry Smith 5577758a8cdSBarry Smith typedef struct xxt_CDT *xxt_ADT; 5587758a8cdSBarry Smith 5597758a8cdSBarry Smith 5607758a8cdSBarry Smith /*************************************xxt.h************************************ 5617758a8cdSBarry Smith Function: XXT_new() 5627758a8cdSBarry Smith 5637758a8cdSBarry Smith Input : 5647758a8cdSBarry Smith Output: 5657758a8cdSBarry Smith Return: ADT ptr or NULL upon failure. 5667758a8cdSBarry Smith Description: This function allocates and returns an xxt handle 5677758a8cdSBarry Smith Usage: xxt_handle = xxt_new(); 5687758a8cdSBarry Smith **************************************xxt.h***********************************/ 5697758a8cdSBarry Smith extern xxt_ADT XXT_new(void); 5707758a8cdSBarry Smith 5717758a8cdSBarry Smith 5727758a8cdSBarry Smith /*************************************xxt.h************************************ 5737758a8cdSBarry Smith Function: XXT_free() 5747758a8cdSBarry Smith 5757758a8cdSBarry Smith Input : pointer to ADT. 5767758a8cdSBarry Smith Output: 5777758a8cdSBarry Smith Return: 5787758a8cdSBarry Smith Description: This function frees the storage associated with an xxt handle 5797758a8cdSBarry Smith Usage: XXT_free(xxt_handle); 5807758a8cdSBarry Smith **************************************xxt.h***********************************/ 5817758a8cdSBarry Smith EXTERN int XXT_free(xxt_ADT xxt_handle); 5827758a8cdSBarry Smith 5837758a8cdSBarry Smith 5847758a8cdSBarry Smith /*************************************xxt.h************************************ 5857758a8cdSBarry Smith Function: XXT_factor 5867758a8cdSBarry Smith 5877758a8cdSBarry Smith Input : ADT ptr, and pointer to object 5887758a8cdSBarry Smith Output: 5897758a8cdSBarry Smith Return: 0 on failure, 1 on success 5907758a8cdSBarry Smith Description: This function sets the xxt solver 5917758a8cdSBarry Smith 5927758a8cdSBarry Smith xxt assumptions: given n rows of global coarse matrix (E_loc) where 5937758a8cdSBarry Smith o global dofs N = sum_p(n), p=0,P-1 5947758a8cdSBarry Smith (i.e. row dist. with no dof replication) 5957758a8cdSBarry Smith (5.21.00 will handle dif replication case) 5967758a8cdSBarry Smith o m is the number of columns in E_loc (m>=n) 5977758a8cdSBarry Smith o local2global holds global number of column i (i=0,...,m-1) 5987758a8cdSBarry Smith o local2global holds global number of row i (i=0,...,n-1) 5997758a8cdSBarry Smith o mylocmatvec performs E_loc . x_loc where x_loc is an vector of 6007758a8cdSBarry Smith length m in 1-1 correspondence with local2global 6017758a8cdSBarry Smith (note that gs package takes care of communication). 6027758a8cdSBarry Smith (note do not zero out upper m-n entries!) 6037758a8cdSBarry Smith o mylocmatvec(void *grid_data, double *in, double *out) 6047758a8cdSBarry Smith 6057758a8cdSBarry Smith ML beliefs/usage: move this to to ML_XXT_factor routine 6067758a8cdSBarry Smith o my_ml holds address of ML struct associated w/E_loc, grid_data, grid_tag 6077758a8cdSBarry Smith o grid_tag, grid_data, my_ml used in 6087758a8cdSBarry Smith ML_Set_CSolve(my_ml, grid_tag, grid_data, ML_Do_CoarseDirect); 6097758a8cdSBarry Smith o grid_data used in 6107758a8cdSBarry Smith A_matvec(grid_data,v,u); 6117758a8cdSBarry Smith 6127758a8cdSBarry Smith Usage: 6137758a8cdSBarry Smith **************************************xxt.h***********************************/ 6147758a8cdSBarry Smith extern int XXT_factor(xxt_ADT xxt_handle, /* prev. allocated xxt handle */ 6157758a8cdSBarry Smith int *local2global, /* global column mapping */ 6167758a8cdSBarry Smith int n, /* local num rows */ 6177758a8cdSBarry Smith int m, /* local num cols */ 6187758a8cdSBarry Smith void *mylocmatvec, /* b_loc=A_local.x_loc */ 6197758a8cdSBarry Smith void *grid_data /* grid data for matvec */ 6207758a8cdSBarry Smith ); 6217758a8cdSBarry Smith 6227758a8cdSBarry Smith 6237758a8cdSBarry Smith /*************************************xxt.h************************************ 6247758a8cdSBarry Smith Function: XXT_solve 6257758a8cdSBarry Smith 6267758a8cdSBarry Smith Input : ADT ptr, b (rhs) 6277758a8cdSBarry Smith Output: x (soln) 6287758a8cdSBarry Smith Return: 6297758a8cdSBarry Smith Description: This function performs x = E^-1.b 6307758a8cdSBarry Smith Usage: 6317758a8cdSBarry Smith XXT_solve(xxt_handle, double *x, double *b) 6327758a8cdSBarry Smith XXT_solve(xxt_handle, double *x, NULL) 6337758a8cdSBarry Smith assumes x has been initialized to be b 6347758a8cdSBarry Smith impl. issue for FORTRAN interface ... punt for now and disallow NULL opt. 6357758a8cdSBarry Smith **************************************xxt.h***********************************/ 6367758a8cdSBarry Smith extern int XXT_solve(xxt_ADT xxt_handle, double *x, double *b); 6377758a8cdSBarry Smith 6387758a8cdSBarry Smith 6397758a8cdSBarry Smith /*************************************xxt.h************************************ 6407758a8cdSBarry Smith Function: XXT_stats 6417758a8cdSBarry Smith 6427758a8cdSBarry Smith Input : handle 6437758a8cdSBarry Smith Output: 6447758a8cdSBarry Smith Return: 6457758a8cdSBarry Smith Description: 6467758a8cdSBarry Smith factor stats 6477758a8cdSBarry Smith **************************************xxt.h***********************************/ 6487758a8cdSBarry Smith extern int XXT_stats(xxt_ADT xxt_handle); 6497758a8cdSBarry Smith 6507758a8cdSBarry Smith 6517758a8cdSBarry Smith /*************************************xxt.h************************************ 6527758a8cdSBarry Smith Function: XXT_sp_1() 6537758a8cdSBarry Smith 6547758a8cdSBarry Smith Input : pointer to ADT 6557758a8cdSBarry Smith Output: 6567758a8cdSBarry Smith Return: 6577758a8cdSBarry Smith Description: sets xxt parameter 1 in xxt_handle 6587758a8cdSBarry Smith Usage: implement later 6597758a8cdSBarry Smith 6607758a8cdSBarry Smith void XXT_sp_1(xxt_handle,parameter 1 value) 6617758a8cdSBarry Smith **************************************xxt.h***********************************/ 6627758a8cdSBarry Smith 6637758a8cdSBarry Smith 6647758a8cdSBarry Smith /*************************************xyt.h************************************ 6657758a8cdSBarry Smith Module Name: xyt 6667758a8cdSBarry Smith Module Info: need xyt.{c,h} gs.{c,h} comm.{c,h} ivec.{c,h} error.{c,h} 6677758a8cdSBarry Smith 6687758a8cdSBarry Smith author: Henry M. Tufo III 6697758a8cdSBarry Smith e-mail: hmt@asci.uchicago.edu 6707758a8cdSBarry Smith contact: 6717758a8cdSBarry Smith +--------------------------------+--------------------------------+ 6727758a8cdSBarry Smith |MCS Division - Building 221 |Department of Computer Science | 6737758a8cdSBarry Smith |Argonne National Laboratory |Ryerson 152 | 6747758a8cdSBarry Smith |9700 S. Cass Avenue |The University of Chicago | 6757758a8cdSBarry Smith |Argonne, IL 60439 |Chicago, IL 60637 | 6767758a8cdSBarry Smith |(630) 252-5354/5986 ph/fx |(773) 702-6019/8487 ph/fx | 6777758a8cdSBarry Smith +--------------------------------+--------------------------------+ 6787758a8cdSBarry Smith 6797758a8cdSBarry Smith Last Modification: 3.20.01 6807758a8cdSBarry Smith **************************************xyt.h***********************************/ 6817758a8cdSBarry Smith 6827758a8cdSBarry Smith /*************************************xyt.h************************************ 6837758a8cdSBarry Smith File Description: 6847758a8cdSBarry Smith **************************************xyt.h***********************************/ 6857758a8cdSBarry Smith 6867758a8cdSBarry Smith /*************************************xyt.h************************************ 6877758a8cdSBarry Smith Notes on Usage: 6887758a8cdSBarry Smith **************************************xyt.h***********************************/ 6897758a8cdSBarry Smith 6907758a8cdSBarry Smith 6917758a8cdSBarry Smith 6927758a8cdSBarry Smith typedef struct xyt_CDT *xyt_ADT; 6937758a8cdSBarry Smith 6947758a8cdSBarry Smith 6957758a8cdSBarry Smith /*************************************xyt.h************************************ 6967758a8cdSBarry Smith Function: XYT_new() 6977758a8cdSBarry Smith 6987758a8cdSBarry Smith Input : 6997758a8cdSBarry Smith Output: 7007758a8cdSBarry Smith Return: ADT ptr or NULL upon failure. 7017758a8cdSBarry Smith Description: This function allocates and returns an xyt handle 7027758a8cdSBarry Smith Usage: xyt_handle = xyt_new(); 7037758a8cdSBarry Smith **************************************xyt.h***********************************/ 7047758a8cdSBarry Smith extern xyt_ADT XYT_new(void); 7057758a8cdSBarry Smith 7067758a8cdSBarry Smith 7077758a8cdSBarry Smith /*************************************xyt.h************************************ 7087758a8cdSBarry Smith Function: XYT_free() 7097758a8cdSBarry Smith 7107758a8cdSBarry Smith Input : pointer to ADT. 7117758a8cdSBarry Smith Output: 7127758a8cdSBarry Smith Return: 7137758a8cdSBarry Smith Description: This function frees the storage associated with an xyt handle 7147758a8cdSBarry Smith Usage: XYT_free(xyt_handle); 7157758a8cdSBarry Smith **************************************xyt.h***********************************/ 7167758a8cdSBarry Smith EXTERN int XYT_free(xyt_ADT xyt_handle); 7177758a8cdSBarry Smith 7187758a8cdSBarry Smith 7197758a8cdSBarry Smith /*************************************xyt.h************************************ 7207758a8cdSBarry Smith Function: XYT_factor 7217758a8cdSBarry Smith 7227758a8cdSBarry Smith Input : ADT ptr, and pointer to object 7237758a8cdSBarry Smith Output: 7247758a8cdSBarry Smith Return: 0 on failure, 1 on success 7257758a8cdSBarry Smith Description: This function sets the xyt solver 7267758a8cdSBarry Smith 7277758a8cdSBarry Smith xyt assumptions: given n rows of global coarse matrix (E_loc) where 7287758a8cdSBarry Smith o global dofs N = sum_p(n), p=0,P-1 7297758a8cdSBarry Smith (i.e. row dist. with no dof replication) 7307758a8cdSBarry Smith (5.21.00 will handle dif replication case) 7317758a8cdSBarry Smith o m is the number of columns in E_loc (m>=n) 7327758a8cdSBarry Smith o local2global holds global number of column i (i=0,...,m-1) 7337758a8cdSBarry Smith o local2global holds global number of row i (i=0,...,n-1) 7347758a8cdSBarry Smith o mylocmatvec performs E_loc . x_loc where x_loc is an vector of 7357758a8cdSBarry Smith length m in 1-1 correspondence with local2global 7367758a8cdSBarry Smith (note that gs package takes care of communication). 7377758a8cdSBarry Smith (note do not zero out upper m-n entries!) 7387758a8cdSBarry Smith o mylocmatvec(void *grid_data, double *in, double *out) 7397758a8cdSBarry Smith 7407758a8cdSBarry Smith ML beliefs/usage: move this to to ML_XYT_factor routine 7417758a8cdSBarry Smith o my_ml holds address of ML struct associated w/E_loc, grid_data, grid_tag 7427758a8cdSBarry Smith o grid_tag, grid_data, my_ml used in 7437758a8cdSBarry Smith ML_Set_CSolve(my_ml, grid_tag, grid_data, ML_Do_CoarseDirect); 7447758a8cdSBarry Smith o grid_data used in 7457758a8cdSBarry Smith A_matvec(grid_data,v,u); 7467758a8cdSBarry Smith 7477758a8cdSBarry Smith Usage: 7487758a8cdSBarry Smith **************************************xyt.h***********************************/ 7497758a8cdSBarry Smith extern int XYT_factor(xyt_ADT xyt_handle, /* prev. allocated xyt handle */ 7507758a8cdSBarry Smith int *local2global, /* global column mapping */ 7517758a8cdSBarry Smith int n, /* local num rows */ 7527758a8cdSBarry Smith int m, /* local num cols */ 7537758a8cdSBarry Smith void *mylocmatvec, /* b_loc=A_local.x_loc */ 7547758a8cdSBarry Smith void *grid_data /* grid data for matvec */ 7557758a8cdSBarry Smith ); 7567758a8cdSBarry Smith 7577758a8cdSBarry Smith 7587758a8cdSBarry Smith /*************************************xyt.h************************************ 7597758a8cdSBarry Smith Function: XYT_solve 7607758a8cdSBarry Smith 7617758a8cdSBarry Smith Input : ADT ptr, b (rhs) 7627758a8cdSBarry Smith Output: x (soln) 7637758a8cdSBarry Smith Return: 7647758a8cdSBarry Smith Description: This function performs x = E^-1.b 7657758a8cdSBarry Smith Usage: XYT_solve(xyt_handle, double *x, double *b) 7667758a8cdSBarry Smith **************************************xyt.h***********************************/ 7677758a8cdSBarry Smith extern int XYT_solve(xyt_ADT xyt_handle, double *x, double *b); 7687758a8cdSBarry Smith 7697758a8cdSBarry Smith 7707758a8cdSBarry Smith /*************************************xyt.h************************************ 7717758a8cdSBarry Smith Function: XYT_stats 7727758a8cdSBarry Smith 7737758a8cdSBarry Smith Input : handle 7747758a8cdSBarry Smith Output: 7757758a8cdSBarry Smith Return: 7767758a8cdSBarry Smith Description: 7777758a8cdSBarry Smith factor stats 7787758a8cdSBarry Smith **************************************xyt.h***********************************/ 7797758a8cdSBarry Smith extern int XYT_stats(xyt_ADT xyt_handle); 7807758a8cdSBarry Smith 7817758a8cdSBarry Smith 7827758a8cdSBarry Smith /*************************************xyt.h************************************ 7837758a8cdSBarry Smith Function: XYT_sp_1() 7847758a8cdSBarry Smith 7857758a8cdSBarry Smith Input : pointer to ADT 7867758a8cdSBarry Smith Output: 7877758a8cdSBarry Smith Return: 7887758a8cdSBarry Smith Description: sets xyt parameter 1 in xyt_handle 7897758a8cdSBarry Smith Usage: implement later 7907758a8cdSBarry Smith 7917758a8cdSBarry Smith void XYT_sp_1(xyt_handle,parameter 1 value) 7927758a8cdSBarry Smith **************************************xyt.h***********************************/ 7937758a8cdSBarry Smith 7947758a8cdSBarry Smith /********************************bit_mask.h************************************ 7957758a8cdSBarry Smith 7967758a8cdSBarry Smith Author: Henry M. Tufo III 7977758a8cdSBarry Smith 7987758a8cdSBarry Smith e-mail: hmt@cs.brown.edu 7997758a8cdSBarry Smith 8007758a8cdSBarry Smith snail-mail: 8017758a8cdSBarry Smith Division of Applied Mathematics 8027758a8cdSBarry Smith Brown University 8037758a8cdSBarry Smith Providence, RI 02912 8047758a8cdSBarry Smith 8057758a8cdSBarry Smith Last Modification: 8067758a8cdSBarry Smith 11.21.97 8077758a8cdSBarry Smith *********************************bit_mask.h***********************************/ 8087758a8cdSBarry Smith 8097758a8cdSBarry Smith /********************************bit_mask.h************************************ 8107758a8cdSBarry Smith File Description: 8117758a8cdSBarry Smith ----------------- 8127758a8cdSBarry Smith 8137758a8cdSBarry Smith *********************************bit_mask.h***********************************/ 8147758a8cdSBarry Smith 8157758a8cdSBarry Smith 8167758a8cdSBarry Smith /********************************bit_mask.h************************************ 8177758a8cdSBarry Smith Function: 8187758a8cdSBarry Smith 8197758a8cdSBarry Smith Input : 8207758a8cdSBarry Smith Output: 8217758a8cdSBarry Smith Return: 8227758a8cdSBarry Smith Description: 8237758a8cdSBarry Smith Usage: 8247758a8cdSBarry Smith *********************************bit_mask.h***********************************/ 8257758a8cdSBarry Smith extern int div_ceil(int numin, int denom); 8267758a8cdSBarry Smith extern void set_bit_mask(int *bm, int len, int val); 8277758a8cdSBarry Smith extern int len_bit_mask(int num_items); 8287758a8cdSBarry Smith extern int ct_bits(char *ptr, int n); 8297758a8cdSBarry Smith extern void bm_to_proc(char *ptr, int p_mask, int *msg_list); 8307758a8cdSBarry Smith extern int len_buf(int item_size, int num_items); 8317758a8cdSBarry Smith 8327758a8cdSBarry Smith #endif 8337758a8cdSBarry Smith 834