1 #ifndef MIGRATE_DEFINITION 2 /*definitions.h*/ 3 #define MIGRATE_DEFINITION 4 /*----------------------------------------------------------------- 5 Bayesian and Maximum likelihood estimation of migration rates 6 using coalescent trees 7 8 Peter Beerli 9 Department of Scientific Computing 10 Florida State University 11 Tallahassee, FL 32306-4120 12 beerli@fsu.edu 13 14 15 Copyright 1997-2002 Peter Beerli and Joseph Felsenstein 16 Copyright 2003-2008 Peter Beerli 17 Copyright 2009-2015 Peter Beerli and Michal Palczewski 18 19 Permission is hereby granted, free of charge, to any person obtaining a copy 20 of this software and associated documentation files (the "Software"), to deal 21 in the Software without restriction, including without limitation the rights 22 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 23 of the Software, and to permit persons to whom the Software is furnished to do 24 so, subject to the following conditions: 25 26 The above copyright notice and this permission notice shall be included in all copies 27 or substantial portions of the Software. 28 29 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 30 INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 31 PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 32 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 33 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 34 OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 35 36 $Id: definitions.h 2177 2013-12-16 18:39:54Z beerli $ 37 38 *---------------------------------------------------------------- 39 */ 40 #ifndef MIGRATEVERSION 41 #define MIGRATEVERSION "3.6.11" 42 #endif 43 #ifndef MIGRATESUBVERSION 44 #define MIGRATESUBVERSION "June-18-15" 45 #endif 46 47 #define MAINTAINER "Peter Beerli <beerli@fsu.edu>" 48 /*------------------------------------------------ 49 Adjusting the source to the system configuration 50 */ 51 #ifdef use_floats 52 // use this when using floats 53 #define USE_MYREAL_FLOAT 0 54 #define MYREAL float 55 #define MYFLOAT float 56 #define MYREAL_MAX 3.40282347e+38F 57 #else 58 #define USE_MYREAL_DOUBLE 1 59 #define MYREAL double 60 #define MYFLOAT float 61 #define MYREAL_MAX 1.7976931348623157e+308 62 #endif 63 #ifdef HAVE_CONFIG_H 64 #include "conf.h" 65 #endif 66 /* we don't want to have the sun specific define of "sun"*/ 67 #ifdef sun 68 #undef sun 69 #endif 70 71 #define FGETS myfgets 72 #define ZNZFGETS myznzfgets 73 #define FGETS2 myfgetssafe 74 #ifdef MPI 75 #include <mpi.h> 76 #define FPRINTF mpi_fprintf 77 #define LARGEFPRINTF mpi_fprintf2 78 #else 79 #define FPRINTF fprintf 80 #define LARGEFPRINTF fprintf2 81 #endif 82 83 /* random number system */ 84 #define LCG 85 #ifdef MERSENNE_TWISTER 86 #undef LCG 87 #endif 88 #ifdef SPRNG 89 #undef LCG 90 #endif 91 92 #include "conf.h" 93 //#undef HAVE_LGAMMA 94 #define HAVE_STRFTIME 1 95 //#define HIGHBITS 96 // #define LAMARC_MALLOC 97 //#ifdef macintosh 98 // #define MAC 99 // #include <ansi_prefix.mac.h> /*fixes time problems */ 100 //#else /*macintosh */ 101 // #define DOS 102 // #undef HAVE_STRINGS_H 103 // #undef HAVE_LGAMMA 104 // #define HAVE_STRFTIME 1 105 // #define HIGHBITS 106 // #define LAMARC_MALLOC 107 // #endif /*windows */ 108 //#endif /*MWERKS*/ 109 110 #ifdef WIN32 111 #define DOS 112 #undef HAVE_STRINGS_H 113 #undef HAVE_LGAMMA 114 #ifndef HAVE_STRFTIME 115 #define HAVE_STRFTIME 116 #endif 117 #undef HAVE_STRSEP 118 #include "windows_timveval.h" 119 #endif 120 121 /* we have found no strftime() and replace the time 122 output with blanks*/ 123 #ifndef HAVE_STRFTIME 124 #define NOTIME_FUNC 125 #endif 126 127 #define STDOUTNUM 0 128 #define INFILE "infile" 129 #define INFILENUM 1 130 #define WEIGHTFILE "weightfile" 131 #define WEIGHTFILENUM 2 132 #define CATFILE "catfile" 133 #define CATFILENUM 3 134 #define SEEDFILE "seedfile" 135 #define SEEDFILENUM 4 136 #define PARMFILE "parmfile" 137 #define PARMFILENUM 5 138 #define OUTFILE "outfile" 139 #define OUTFILENUM 6 140 #define LOGFILE "logfile" 141 #define LOGFILENUM 7 142 #define TREEFILE "treefile" 143 #define TREEFILENUM 8 144 #define UTREEFILE "usertree" 145 #define UTREEFILENUM 9 146 #define INTREE "intree" 147 #define INTREENUM 10 148 #define OUTTREE "outtree" 149 #define OUTTREENUM 11 150 #define MATHFILE "mathfile" 151 #define MATHFILENUM 12 152 #define SUMFILE "sumfile" 153 #define SUMFILENUM 13 154 #define MIGHISTFILE "mighistfile" 155 #define MIGHISTFILENUM 14 156 #define DISTFILE "distfile" 157 #define DISTFILENUM 15 158 #define GEOFILE "geofile" 159 #define GEOFILENUM 16 160 #define BOOTFILE "bootstrapfile" 161 #define BOOTFILENUM 17 162 #define UEPFILE "uepfile" 163 #define UEPFILENUM 18 164 #define AICFILE "aicfile" 165 #define AICFILENUM 19 166 #define BAYESFILE "bayesfile" 167 #define BAYESFILENUM 20 168 #define BAYESMDIMFILE "bayesallfile.gz" 169 #define BAYESMDIMFILE2 "bayesallfile.txt" 170 #define BAYESMDIMFILENUM 22 171 #define PDFOUTFILE "outfile.pdf" 172 #define PDFOUTFILENUM 21 173 #define SKYLINEFILE "skylinefile" 174 #define SKYLINEFILENUM 23 175 #define MYMAXFILENUM 24 176 #define DIVFILE "divfile" 177 #define DIVFILENUM 24 178 #define TIPDATEFILE "datefile" 179 #define TIPDATEFILENUM 25 180 #define MIXFILE "mixfile" 181 #define MIXFILENUM 26 182 #define BAYESNUMBIN 1500 183 #define PRETTY_MAX 0 184 #define PRETTY_P99 1 185 #define PRETTY_P99MAX 3 186 #define PRETTY_P100 4 187 #define THETAPRIOR 0 188 #define MIGPRIOR 1 189 #define RATEPRIOR 2 190 #define PRIOR_SIZE 3 /*used because of slice sampler*/ 191 192 193 /* includes: */ 194 #ifdef HAVE_STRINGS_H 195 #include <strings.h> 196 #endif 197 #include <string.h> 198 199 #include <stdio.h> 200 #include <stdlib.h> 201 #include <math.h> 202 #include <ctype.h> 203 204 #ifdef MAC 205 #include "mac_interface.h" 206 #endif /*MAC*/ 207 208 #include <time.h> 209 #include <math.h> 210 #include <limits.h> 211 212 #ifdef WIN32 213 #define MYINLINE __inline 214 #undef DBL_EPSILON 215 // #undef MYREAL_MAX 216 #define __restrict /*__restrict*/ 217 #include <float.h> 218 #define MYISNAN _isnan 219 #define MYFINITE _finite 220 #define MYSNPRINTF _snprintf 221 #else 222 #define MYISNAN isnan 223 #define MYFINITE isfinite 224 #define MYSNPRINTF snprintf 225 #ifdef __MWERKS__ 226 #define MYINLINE /*inline*/ 227 #undef DBL_EPSILON 228 #undef MYREAL_MAX 229 #include <float.h> 230 #else 231 #define MYINLINE inline 232 #endif 233 #endif 234 235 /*if we use this then we guard against allocation problems */ 236 /* redefinitions of calloc, malloc, realloc are in sighandler.h*/ 237 #ifdef HAVE_MALLOCWRAP 238 #define LAMARC_MALLOC 239 #endif 240 241 #ifdef HAVE_DEBUGMPI 242 /* add print messages to mpi commands */ 243 #define DEBUG_MPI 244 #endif 245 246 #ifdef HAVE_LGAMMA 247 #define LGAMMA lgamma 248 #else 249 #define LGAMMA mylgamma 250 #endif 251 252 //#include "sighandler.h" 253 #define FClose(file) if (file) fclose(file) ; file=NULL 254 #define znzClose(file) if (file) znzclose(file) ; file=NULL 255 #ifdef WIN32 256 #ifndef WINDOWS 257 #define WINDOWS 258 #endif 259 #include <windows.h> 260 #else 261 typedef int boolean; 262 //typedef unsigned char boolean; 263 #endif 264 #ifndef TRUE 265 #define TRUE (boolean) 1 266 #endif 267 268 #ifndef FALSE 269 #define FALSE (boolean) 0 270 #endif 271 272 #define INVALID -999 273 274 #define SETBITS 32 275 /* for snp data with panel see sequence.c*/ 276 #define FIRST 0 277 /* the first population is the panel for snps*/ 278 #define PANEL 0 279 #define SEQUENCETYPES "snufh" /*s=sequence,n=linked snp, u=unlinked snp, f=ancestral reconstruction h=hapmap snps*/ 280 #define DNASEQUENCETYPES "sf" /*s=sequence, f=ancestral reconstruction*/ 281 #define SNPTYPES "nuh" 282 #define ALLELETYPES "amb" /*a=infinite allele,m=stepwise, b=brownian */ 283 284 #define CRLF "\r\n" 285 286 #ifdef COMPAQ 287 #define EXP(a) (((a)< -100) ? 0.0 : exp ((a))) 288 #else 289 #ifdef FAST_EXP 290 #define EXP(a) fast_exp ((a)) 291 #else 292 #define EXP(a) exp ((a)) 293 #endif 294 #endif 295 296 // I was experimenting with a fast log implementation 297 // but it is 298 //not fast enough #define LOG(a) ((MYREAL) fast_log(((float) a))) 299 // so back to standard log 300 #ifdef FAST_EXP 301 #define LOG(a) ((MYREAL) fast_log(((float) a))) 302 #else 303 #define LOG(a) log((a)) 304 #endif 305 306 /* defines for speedier calc_like when we do NOT use undefined SLOWNET*/ 307 #ifdef SLOWNET 308 #define CALCLIKE (*calc_like) 309 #define CALCGRADIENT (*calc_gradient) 310 #define SETUPPARAM0 (*setup_param0) 311 #else 312 #define CALCLIKE calc_loci_like 313 #define CALCGRADIENT combine_gradient 314 #ifdef MPI 315 #define SETUPPARAM0 setup_parameter0_mpi 316 #else 317 #define SETUPPARAM0 setup_parameter0_standard 318 #endif 319 #endif 320 /*================================================================= 321 SPECIFIC FOR MIGRATE 322 323 */ 324 #define MASTER 0 325 #define FIRSTWORKER 1 326 #define STOP_REPLICATORS -1234 327 /* number of k int k-allele model, the number 328 MUST really be bigger than the number of 329 observed alleles, much bigger does not harm */ 330 #define MAXALLELES 93L 331 #define WORDSIZE 50 332 #define SMALLBUFSIZE 255L 333 #define ONEMEGABYTE 1024000 334 #define MAXBUFSIZE 10000000L 335 #define LINESIZE 1024L /* setting this smaller can break */ 336 #define LONGLINESIZE 100000L /* setting this smaller can break */ 337 #define SUPERLINESIZE 100000L /*used to read many many loci-sites and indiv numbers*/ 338 #define STRSIZE 255L /* setting this smaller can break */ 339 #define DEFAULT_NMLENGTH 10L /* length of individual names */ 340 #define DEFAULT_ALLELENMLENGTH 6L /* length of allele names */ 341 #define DEFAULT_POPNMLENGTH 100L /* length of world names */ 342 #define NUMPOP 2L 343 #define BURNINPERIOD 10000L 344 #define SCALEINTERVAL 2L 345 #define DEFAULTALLOCSIZE 2L 346 /* don't change below here ------------------------------------ 347 some other constants */ 348 /* numerical borders and epsilons*/ 349 #ifndef __FLT_MAX__ 350 #define __FLT_MAX__ 3.4028234e+38F 351 #endif 352 #ifndef HUGE 353 #define HUGE 1e200 354 #endif 355 #define SICK_VALUE -1 356 #define ONE 1L 357 #define TWO 2L 358 #define THREE 3L 359 #define FOUR 4L 360 #define SMALL_VALUE 10e-21 361 #define EPSILON 0.000001 /* a small number */ 362 #define EPSILON4 0.000099 /* another small number */ 363 #define SMALLEPSILON 1e-15 /* a smaller number */ 364 #define BIGEPSILON 0.001 /* a not so small number */ 365 #define PERCENTILETOLERANCE 0.01 /* difference larger than this are flagged FAILED*/ 366 #define LONGCHAINEPSILON 10e100 /* an unreasonable big number, 367 so that the given number of 368 long chains is used */ 369 #define CHAINVARIANCEDELTA 0.01 /*difference of variances of parts of a chain [see burnin_autostop]*/ 370 #define ESSMINIMUM 20 /*effective sample size minimum for burnin, see burnin_autostop (autotune.c)*/ 371 #define GELMAN_MYSTIC_VALUE 1.2 372 #define PLUSCHAIN 10 373 #define AUTOTUNEDEFAULT 0.44 374 #ifndef MAXLONG 375 #define MAXLONG ((long)0x7fffffff) 376 #endif 377 #ifndef DBL_EPSILON 378 #include <float.h> 379 #ifndef DBL_EPSILON 380 #define DBL_MAX ((MYREAL)1.7976931348623157e308) 381 #define DBL_EPSILON 2.2204460492503131e-16 382 #endif 383 #endif 384 #ifndef FLT_EPSILON 385 #define FLT_EPSILON 1.19209290e-07F 386 #endif 387 /* some math constants */ 388 #define HALF 0.5 389 #define QUARTER 0.25 390 #define LOGDBL_EPSILON -36.04365338911715608 /*N[Log[DBL_EPSILON] ,30] */ 391 #define LOG1 0. 392 #define LOG2 0.693147180559945309417232121458 /*N[Log[2] ,30] */ 393 #define LOG2PIHALF -0.918938533204672741780329736406 /*N[Log[1/Sqrt[2 Pi]] ,30] */ 394 #define TWOPI 6.28318530717958647692528676656 /*N[Log[2 Pi] ,30] */ 395 #define PI 3.14159265358979323846264338328 /*N[Pi,30]*/ 396 #define INV2PI 0.159154943091895335768883763373 /*N[1/(2 pi)]*/ 397 #define ROOTLENGTH 10000 398 #define FIRSTCHAIN -1 399 #define FIRSTSTEP -1 400 /* min/max functions */ 401 #ifndef MIN 402 #define MIN(a,b) (((a) < (b)) ? (a) : (b)) 403 #endif 404 #ifndef MAX 405 #define MAX(a,b) (((a) > (b)) ? (a) : (b)) 406 #endif 407 #define MYMIN3(a,b,c) (((a)<(b))&&((a)<(c)) ? (a) : (((b)<(c)) ? (b) : (c))) 408 #define MYMAX3(a,b,c) (((a)>(b))&&((a)>(c)) ? (a) : (((b)>(c)) ? (b) : (c))) 409 /*string conversion functions 410 these replace all the atoi atol etc and use the strto[lif] function*/ 411 #define ATOL(a) strtol((a),(char **) NULL, 10) 412 #define ATOI(a) strtol((a),(char **) NULL, 10) 413 #define ATOF(a) strtod((a),(char **) NULL, 10) 414 415 /* mutation model setting */ 416 #define MSAT_OFFSET 10 417 /* prior setting */ 418 #define SLICE 5 419 #define GAMMAPRIOR 4 420 #define MULTPRIOR 3 421 #define WEXPPRIOR 2 422 #define EXPPRIOR 1 423 #define UNIFORMPRIOR 0 424 425 /* theta (4 Ne mu) related material */ 426 // ONLY good boundaries when used with DNA 427 #define SMALLEST_THETA 1e-10 428 #define DNA_GUESS_THETA 0.01 429 #define BIGGEST_THETA 1e4 430 #define SMALLEST_MIGRATION 0.0 431 #define DNA_GUESS_MIG 100 432 #define BIGGEST_MIGRATION 10e9 433 #define SMALLEST_RATE 1e-20 434 #define BIGGEST_RATE 1e20 435 // defines the value that is used as a minimum summary statistic for migration events on all trees 436 // version 1.2.4 had a value of 0.00000001, it seems that values of 0.1 are too large. 437 // in version -1.6.9 this is set to zero, in 1.7 trial with 0.01 PB Dec 11 2002 [this was correct for Nm] 438 // was set to 1 (M) for some time , but this might be biasing upwards, changing back to small value 439 #define MINMIGSUMSTAT 0.000001 440 /* the migration limit is per population, should be plenty 441 for moderate sample sizes */ 442 #define MIGRATION_LIMIT 1000 443 #define SMALLEST_PROB 1e-100 444 #define SMALLEST_GAMMA 1e-3 445 #define BIGGEST_GAMMA 1e9 446 #define FRACTION_ALONG 0.66 447 #define TIMELIST_GUESS 500 448 #define SAMPLETREE_GUESS 1 449 #define START_ALPHA 10.0 450 /* random material */ 451 #define AUTO 0 /*+ use time() for seed */ 452 #define NOAUTO 1 /*+ seed in parmfile */ 453 #define NOAUTOSELF 2 /*+ seed in seedfile */ 454 /* definitions for the first theta0 values */ 455 #define OWN 0 /*+ start values in parmfile */ 456 #define WATTERSON 1 /*- start values are Watterson estimate*/ 457 #define EWENS 2 /*- start values are Ewens estimate*/ 458 #define FST 3 /*+ start values are FST estimate */ 459 #define NRANDOMESTIMATE 4 /*+ start values are RANDOM estimate */ 460 #define URANDOMESTIMATE 5 /*+ start values are RANDOM estimate */ 461 #define PARAMGRID 6 /*+ use a range of values + replicate=yes:# */ 462 /* defines for the migration0 values */ 463 /* define OWN 0 + start values in parmfile */ 464 /* define FST 3 + start values are FST estimates*/ 465 /* define RANDOMESTIMATE 4 + start values are RANDOM estimate*/ 466 #define SLATKIN 1 /*- start values with slatkin's method*/ 467 /* definitions for the type of FST we use*/ 468 #define THETAVARIABLE 'T' 469 #define MVARIABLE 'M' 470 /* definitions for the sankoff procedure */ 471 /* the SANKOFF_DELTA should be smaller than any cost_ij*/ 472 #define SANKOFF_DELTA 0.1 473 /* Maximizer and gamma things */ 474 #define STD22 1.0 /*0.1*/ /*"standard deviation" for penalizer 2*std*std=2*0.223607^2 */ 475 #define STD2 1.0 /*0.05*/ /* std*std = 0.223607^2 */ 476 #define LOGSTD 0.0 /*-1.49786613677699549672*/ /*LOG(std)*/ 477 /* #define INVTWOSQRTPILOGSTD currently UNUSED*/ /*0.57892760357232275494*/ /* log(1/(std sqrt[2 pi])) */ 478 #define INVTWOSQRTPILOGSTD -0.91893853320467274178 479 #define NTRIALS 1000 480 #define LOCI_NORM 0.00001 481 #define GAMMA_INTERVALS 10 482 /* definitions of migration model */ 483 #define MATRIX 1 /*+ */ 484 #define MATRIX_SYMMETRIC 11 /*+ */ 485 #define MATRIX_SAMETHETA 12 /*+ */ 486 #define MATRIX_ARBITRARY 13 /*+ */ 487 #define ISLAND 2 /*+ */ 488 #define ISLAND_VARTHETA 21 /*+ */ 489 #define STEPSTONE 3 /*- */ 490 #define CONTINUUM 4 /*- */ 491 #define NEIGHBOR 5 /*- */ 492 /* replication stuff */ 493 #define SINGLECHAIN 0 /*+ */ 494 #define MULTIPLECHAIN 1 /*+ */ 495 #define MULTIPLERUN 2 /*+ */ 496 /* heating stuff */ 497 #define HEATED_CHAIN_NUM 4 498 #define HEATED_THREAD_NUM 4 499 #define COLD 1 /*+ */ 500 #define WARM 4 /*+ */ 501 #define HOT 7 /*+ */ 502 #define VERYHOT 10 /*+ */ 503 #define NOTADAPTIVE 0 /*static heating scheme*/ 504 #define STANDARD 1 /*adaptive heating scheme*/ 505 #define BOUNDED 2 /*bounded adaptive scheme*/ 506 /* maximization material*/ 507 #define SINGLELOCUS 0L /*+ */ 508 #define MULTILOCUS 1L /*+ */ 509 #define PROFILE 2L /*+ */ 510 /* print and plot material*/ 511 #define MULTILOCUSPLOT (boolean) 1 512 #define SINGLELOCUSPLOT (boolean) 0 513 #define MAXPRINTVALLENGTH 16 /*+ maximal number of printpos */ 514 #define PLOTALL 0 /*+ plot to outfile and mathfile */ 515 #define PLOTOUTFILE 1 /*+ plot only to outifle */ 516 #define PLOT4NM 0 /*+ use 4Nm instead of M=m/mu */ 517 #define PLOTM 1 /*+ use M=m/mu */ 518 #define PLOTSCALELOG 0 /*+ plot scale in log 10 units */ 519 #define PLOTSCALESTD 1 /*+ plot scale standard units */ 520 #define PLANEINTERVALS 36 /*+ intervals for plot */ 521 #define PLANESTART 0.0001 /*+ plot axes start */ 522 #define PLANEEND 100.0 /*+ plot axes end */ 523 #define PAGEFEED fprintf(outfile,"\n\f\n") 524 #define PAGEFEEDWORLD fprintf(world->outfile,"\n\f\n") 525 #define PAGEFEEDW fprintf(universe[0]->outfile,"\n\f\n") 526 #define LINELENGTH 90 /* number of print positions*/ 527 #define START 0L 528 #define STOP 1L 529 #define CONT 3L 530 /* tree-print options */ 531 #define _NONE 0 /*+ */ 532 #define ALL 1 /*+ */ 533 #define BEST 2 /*+ */ 534 #define LASTCHAIN 3 /*+ */ 535 /* likelihood ration stuff*/ 536 #define LRATIO_STRINGS 1000 /*+ */ 537 #define HUNDRED 100 538 /* profile likelihood stuff*/ 539 /* ALL and NONE are alread defined*/ 540 #define TABLES 2 /*+ */ 541 #define SUMMARY 3 /*+ */ 542 #define MAX_PROFILE_TRIALS 100 /*+ */ 543 /* likelihood ratio stuff*/ 544 #define MLE 0 545 #define ARBITRARY 1 546 #define MAXPOP 200 /*n*(n-1)+n) */ 547 #define MAXPARAM 20000 548 #define LNMAXPARAM 9.9034875525361280455 549 #define HEADER 1 550 #define NOHEADER 0 551 /* migration histogram material*/ 552 #define MIGHIST_ELEM 5 553 #define MIGHIST_YSIZE 30 554 /* stop while loops after some time*/ 555 #define PANIC_MAX 1000 556 /* microsatellite stuff*/ 557 #define MICRO_THRESHOLD 200 558 #define MAX_MICROSTEPNUM 200 559 #define XBROWN_SIZE 3 560 #define SINGLESTEP 1 561 #define MULTISTEP 2 562 /* sequence stuff*/ 563 #define MAXCATEGS 9 564 #define MANYCATEGS 2 565 #define ONECATEG 1 566 567 #define NUC_A 0 568 #define NUC_C 1 569 #define NUC_G 2 570 #define NUC_T 3 571 #define NUC_GAP 4 572 #define NUC_R 5 573 #define NUC_Y 6 574 #define NUC_AR 7 575 #define NUC_CY 8 576 #define NUC_GR 9 577 #define NUC_TY 10 578 #define BASEFREQLENGTH 11 579 #ifndef LAMARC_MAC_INTERFACE 580 #define eventloop() /* eventloop would go here */ 581 #endif 582 583 #define SUBLOCICHUNKS 10 584 585 #ifdef powerpc 586 #ifndef IBM 587 #include <Accelerate/Accelerate.h> 588 #endif 589 #endif 590 #undef MYINLINE 591 #define MYINLINE /*inline*/ 592 593 594 //show system info 595 #ifdef MYSYSTEM 596 #undef MYSYSTEM 597 #endif 598 #ifdef _AIX 599 #define MYSYSTEM "IBM AIX" 600 #endif 601 #ifdef __bg__ 602 #define MYSYSTEM "IBM Blue Gene" 603 #endif 604 #ifdef __FreeBSD__ 605 #define MYSYSTEM "FreeBSD" 606 #endif 607 #ifdef __linux__ 608 #define MYSYSTEM "LINUX" 609 #endif 610 #ifdef __APPLE__ 611 #define MYSYSTEM "Macintosh" 612 #endif 613 #ifdef __WIN32__ 614 #define MYSYSTEM "Windows" 615 #endif 616 #ifdef __CYGWIN__ 617 #define MYSYSTEM "Windows(cygwin)" 618 #endif 619 #ifndef MYSYSTEM 620 #define MYSYSTEM "Other" 621 #endif 622 623 #endif /*definitions */ 624