// File: /workspace/github_c_makefile_star2_O1/dapogon[P]cellcoal/src/cellcoal.c
// Function: PrintDefaults
static void PrintDefaults (FILE *fp)
	{
	int		i;

	fprintf (fp,"\n-F: parameter file =  %s", "parameters");

	/* Coalescent */
	fprintf (fp,"\n-n: number of replicates =  %d", numDataSets);
	fprintf (fp,"\n-s: sample size (# cells) =  %d", numCells);
	fprintf (fp,"\n-l: number of sites =  %d", numSites);
	fprintf (fp,"\n-e: effective population size =  %d", N);
	fprintf (fp,"\n-g: exponential growth rate =  %2.1e", growthRate);
	fprintf (fp,"\n-K: cell birth rate =  %2.1e", birthRate);
	fprintf (fp,"\n-L: cell death rate =  %2.1e", deathRate);
	fprintf (fp,"\n-h: number of demographic periods = %d", numPeriods);
	for (i=1; i<=numPeriods; i++)
		fprintf (fp, "\n  period %d =  %d %d %d", i, Nbegin[i], Nend[i], cumDuration[i]-cumDuration[i-1]);


	/* Post-coalescent */
	fprintf (fp,"\n-k: transforming branch length ratio =  %2.1e", transformingBranchLengthRatio);
	fprintf (fp,"\n-q: healthy tip branch length ratio =  %2.1e", healthyTipBranchLengthRatio);
	fprintf (fp,"\n-i: shape of the gamma distribution for rate variation among lineages =  %6.4f", alphaBranches);
	
	/* Mutation model */
	fprintf (fp,"\n-b: alphabet [0:binary 1:DNA] =  %d", alphabet);
	fprintf (fp,"\n-c: germline SNP rate =  %2.1e", SNPrate);
	fprintf (fp,"\n-u: mutation rate =  %2.1e", mutationRate);
	fprintf (fp,"\n-d: deletion rate =  %2.1e", deletionRate);
	fprintf (fp,"\n-H: CNLOH rate =  %2.1e", CNLOHrate);
	fprintf (fp,"\n-j: fixed number of mutations =  %d", numFixedMutations);
	fprintf (fp,"\n-S: number of trinucleotide genetic signature =  %d", numUserSignatures);
	fprintf (fp,"\n-m: alternative mutation model =  %d", altModel);
	fprintf (fp,"\n-p: proportion of alternative model sites =  %6.4f", propAltModelSites);
	fprintf (fp,"\n-w: alternative/default model relative mutation rate =  %6.4f", nonISMRelMutRate);
	fprintf (fp,"\n-f: nucleotide base frequencies = f%3.2f %3.2f %3.2f %3.2f", freq[0], freq[1], freq[2], freq[3]);
	fprintf (fp,"\n-t: transition/transversion ratio =  %6.4f", titv);
	fprintf (fp,"\n-a: shape of the gamma distribution for rate variation among sites =  %6.4f", alphaSites);
	fprintf (fp,"\n-r: mutation matrix ACGT x ACGT = %3.2f %3.2f %3.2f %3.2f  %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f", Mij[0][0], Mij[0][1], Mij[0][2], Mij[0][3], Mij[1][0], Mij[1][1], Mij[1][2], Mij[1][3],  Mij[2][0], Mij[2][1], Mij[2][2], Mij[2][3],  Mij[3][0], Mij[3][1], Mij[3][2], Mij[3][3]);
	
	/* scWGA */
	fprintf (fp,"\n-D: fixed allelic dropout (ADO) =  %2.1e", fixedADOrate);
	fprintf (fp,"\n-P: ADO per cell mean, var  =  %2.1e %2.1e", meanADOcell, varADOcell);
	fprintf (fp,"\n-Q: ADO per site mean, var =  %2.1e %2.1e", meanADOsite, varADOsite);
	fprintf (fp,"\n-I: allelic imbalance =  %2.1e %2.1e", meanAllelicImbalance, varAllelicImbalance);
	fprintf (fp,"\n-A: amplification error: mean, var, 2-template model =  %2.1e, %2.1e, %d", meanAmplificationError, varAmplificationError, simulateOnlyTwoTemplates);
	fprintf (fp,"\n-B: doublet rate per cell; mean, var =  %2.1e, %2.1e", meanDoubletRate, varDoubletRate);

	/* GENOTYPING */
	fprintf (fp,"\n-G: genotyping error: mean, var =  %2.1e %2.1e", meanGenotypingError, varGenotypingError);

	/* NGS */
	fprintf (fp,"\n-C: sequencing coverage =  %3.2f", coverage);
	fprintf (fp,"\n-V: sequencing coverage overdispersion =  %6.4f", alphaCoverage);
	fprintf (fp,"\n-R: haploid coverage reduction =  %2.1e", haploidCoverageReduction);
	fprintf (fp,"\n-E: sequencing error =  %2.1e", sequencingError);
	fprintf (fp,"\n-X: error matrix ACGT x ACGT = %3.2f %3.2f %3.2f %3.2f  %3.2f %3.2f %3.2f %3.2f  %3.2f %3.2f %3.2f %3.2f  %3.2f %3.2f %3.2f %3.2f", Eij[0][0], Eij[0][1], Eij[0][2], Eij[0][3], Eij[1][0], Eij[1][1], Eij[1][2], Eij[1][3],  Eij[2][0], Eij[2][1], Eij[2][2], Eij[2][3],  Eij[3][0], Eij[3][1], Eij[3][2], Eij[3][3]);
	
	/* Output */
	fprintf (fp,"\n-1: print SNV genotypes to a file =  %d", doPrintSNVgenotypes);
	fprintf (fp,"\n-2: print SNV haplotypes to a file =  %d", doPrintSNVhaplotypes);
	fprintf (fp,"\n-3: print full genotypes to a file =  %d", doPrintFullGenotypes);
	fprintf (fp,"\n-4: print full haplotypes to a file =  %d", doPrintFullHaplotypes);
	fprintf (fp,"\n-5: print ancestral genotypes =  %d", doPrintAncestors);
	fprintf (fp,"\n-6: print trees to a file =  %d", doPrintTree);
	fprintf (fp,"\n-7: print times to a file =  %d", doPrintTimes);
	fprintf (fp,"\n-8: print read counts in CATG format =  %d", doPrintCATG);
	fprintf (fp,"\n-9: print read counts in PILEUP format =  %d", doPrintPILEUP);
	fprintf (fp,"\n-Y: print true haplotypes to a file =  %c", doPrintTrueHaplotypes);
	fprintf (fp,"\n-v: print replicates in individual folders =  %d", doPrintSeparateReplicates);
	fprintf (fp,"\n-x: print consensus/IUPAC haplotypes =  %d", doPrintIUPAChaplotypes);
	if (strlen(userTreeFile) == 0)
		strcpy(userTreeFile, "none");
	fprintf (fp,"\n-T: user tree file name =  %s", userTreeFile);
	if (strlen(userGenomeFile) == 0)
		strcpy(userGenomeFile, "none");
	fprintf (fp,"\n-U: user genome file name =  %s", userGenomeFile);
	if (strlen(resultsDir) == 0)
		strcpy(resultsDir, "Results");
	fprintf (fp,"\n-o: results folder name =  %s", resultsDir);

	/* Other */
	fprintf (fp,"\n-W: use tumor nomenclature for cells =  %d", doTumorNames);
	fprintf (fp,"\n-y: noisy = %d", noisy);
	fprintf (fp,"\n-#: seed = %ld", originalSeed);
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x23578(%rip), %rsi     # 0x39375
leaq 0x1e74e(%rip), %rdx     # 0x34552
xorl %eax, %eax
callq 0x21c0
movl 0x2c38f(%rip), %edx     # 0x421a0
leaq 0x23577(%rip), %rsi     # 0x3938f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2c37c(%rip), %edx     # 0x421a4
leaq 0x23580(%rip), %rsi     # 0x393af
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2c369(%rip), %edx     # 0x421a8
leaq 0x2358a(%rip), %rsi     # 0x393d0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2c356(%rip), %edx     # 0x421ac
leaq 0x2358e(%rip), %rsi     # 0x393eb
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x2c351(%rip), %xmm0    # 0x421c0
leaq 0x2359a(%rip), %rsi     # 0x39410
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c340(%rip), %xmm0    # 0x421c8
leaq 0x235a7(%rip), %rsi     # 0x39436
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c32f(%rip), %xmm0    # 0x421d0
leaq 0x235ac(%rip), %rsi     # 0x39454
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x2c2f8(%rip), %edx     # 0x421b0
leaq 0x235b3(%rip), %rsi     # 0x39472
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpl $0x0, 0x2c2e0(%rip)     # 0x421b0
jle 0x15f28
movl $0x1, %r15d
leaq 0x235bb(%rip), %r14     # 0x3949a
movq 0x2d84a(%rip), %rax     # 0x43730
movl (%rax,%r15,4), %ecx
movq 0x2d837(%rip), %rax     # 0x43728
movl (%rax,%r15,4), %r8d
movq 0x2d83c(%rip), %rax     # 0x43738
movl (%rax,%r15,4), %r9d
subl -0x4(%rax,%r15,4), %r9d
movq %rbx, %rdi
movq %r14, %rsi
movl %r15d, %edx
xorl %eax, %eax
callq 0x21c0
leaq 0x1(%r15), %rax
movslq 0x2c290(%rip), %rcx     # 0x421b0
cmpq %rcx, %r15
movq %rax, %r15
jl 0x15edf
movsd 0x2c4a8(%rip), %xmm0    # 0x423d8
leaq 0x2357c(%rip), %rsi     # 0x394b3
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c497(%rip), %xmm0    # 0x423e0
leaq 0x23592(%rip), %rsi     # 0x394e2
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c40e(%rip), %xmm0    # 0x42370
leaq 0x235a7(%rip), %rsi     # 0x39510
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x2c27b(%rip), %edx     # 0x421f4
leaq 0x235e0(%rip), %rsi     # 0x39560
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x2c24e(%rip), %xmm0    # 0x421e0
leaq 0x235ec(%rip), %rsi     # 0x39585
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c22d(%rip), %xmm0    # 0x421d8
leaq 0x235f3(%rip), %rsi     # 0x395a5
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2d64c(%rip), %xmm0    # 0x43610
leaq 0x235f6(%rip), %rsi     # 0x395c1
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2d61b(%rip), %xmm0    # 0x435f8
leaq 0x235f9(%rip), %rsi     # 0x395dd
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x2d7b4(%rip), %edx     # 0x437a8
leaq 0x235fb(%rip), %rsi     # 0x395f6
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2c3c5(%rip), %edx     # 0x423d0
leaq 0x23609(%rip), %rsi     # 0x3961b
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2c1d6(%rip), %edx     # 0x421f8
leaq 0x23627(%rip), %rsi     # 0x39650
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x2c1c5(%rip), %xmm0    # 0x42200
leaq 0x23634(%rip), %rsi     # 0x39676
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c1b4(%rip), %xmm0    # 0x42208
leaq 0x2364f(%rip), %rsi     # 0x396aa
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c1a3(%rip), %xmm0    # 0x42210
movsd 0x2c1a3(%rip), %xmm1    # 0x42218
movsd 0x2c1a3(%rip), %xmm2    # 0x42220
movsd 0x2c1a3(%rip), %xmm3    # 0x42228
leaq 0x2365d(%rip), %rsi     # 0x396e9
movq %rbx, %rdi
movb $0x4, %al
callq 0x21c0
movsd 0x2c192(%rip), %xmm0    # 0x42230
leaq 0x23680(%rip), %rsi     # 0x39725
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c2b1(%rip), %xmm0    # 0x42368
leaq 0x23693(%rip), %rsi     # 0x39751
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c170(%rip), %xmm0    # 0x42240
movsd 0x2c170(%rip), %xmm1    # 0x42248
movsd 0x2c170(%rip), %xmm2    # 0x42250
movsd 0x2c170(%rip), %xmm3    # 0x42258
movsd 0x2c170(%rip), %xmm4    # 0x42260
movsd 0x2c170(%rip), %xmm5    # 0x42268
movsd 0x2c170(%rip), %xmm6    # 0x42270
movsd 0x2c170(%rip), %xmm7    # 0x42278
movaps 0x2c170(%rip), %xmm8    # 0x42280
movaps 0x2c178(%rip), %xmm9    # 0x42290
movaps 0x2c180(%rip), %xmm10   # 0x422a0
movaps 0x2c188(%rip), %xmm11   # 0x422b0
movups %xmm11, 0x30(%rsp)
movups %xmm10, 0x20(%rsp)
movups %xmm9, 0x10(%rsp)
movups %xmm8, (%rsp)
leaq 0x23658(%rip), %rsi     # 0x3979e
movq %rbx, %rdi
movb $0x8, %al
callq 0x21c0
movsd 0x2c2a0(%rip), %xmm0    # 0x423f8
leaq 0x236c3(%rip), %rsi     # 0x39822
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c2a7(%rip), %xmm0    # 0x42418
movsd 0x2c2a7(%rip), %xmm1    # 0x42420
leaq 0x236cc(%rip), %rsi     # 0x3984c
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x2c296(%rip), %xmm0    # 0x42428
movsd 0x2c296(%rip), %xmm1    # 0x42430
leaq 0x236d7(%rip), %rsi     # 0x39878
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x2c2c5(%rip), %xmm0    # 0x42478
movsd 0x2c2c5(%rip), %xmm1    # 0x42480
leaq 0x236e1(%rip), %rsi     # 0x398a3
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x2c27c(%rip), %xmm0    # 0x42450
movsd 0x2c27c(%rip), %xmm1    # 0x42458
movl 0x2c27e(%rip), %edx     # 0x42460
leaq 0x236e0(%rip), %rsi     # 0x398c9
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x2c28d(%rip), %xmm0    # 0x42488
movsd 0x2c28d(%rip), %xmm1    # 0x42490
leaq 0x23709(%rip), %rsi     # 0x39913
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x2c224(%rip), %xmm0    # 0x42440
movsd 0x2c224(%rip), %xmm1    # 0x42448
leaq 0x2371e(%rip), %rsi     # 0x39949
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x2c1ab(%rip), %xmm0    # 0x423e8
leaq 0x23735(%rip), %rsi     # 0x39979
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c122(%rip), %xmm0    # 0x42378
leaq 0x2373e(%rip), %rsi     # 0x3999b
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c1f9(%rip), %xmm0    # 0x42468
leaq 0x23756(%rip), %rsi     # 0x399cc
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c1b0(%rip), %xmm0    # 0x42438
leaq 0x23766(%rip), %rsi     # 0x399f5
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x2c02f(%rip), %xmm0    # 0x422d0
movsd 0x2c02f(%rip), %xmm1    # 0x422d8
movsd 0x2c02f(%rip), %xmm2    # 0x422e0
movsd 0x2c02f(%rip), %xmm3    # 0x422e8
movsd 0x2c02f(%rip), %xmm4    # 0x422f0
movsd 0x2c02f(%rip), %xmm5    # 0x422f8
movsd 0x2c02f(%rip), %xmm6    # 0x42300
movsd 0x2c02f(%rip), %xmm7    # 0x42308
movaps 0x2c02f(%rip), %xmm8    # 0x42310
movaps 0x2c037(%rip), %xmm9    # 0x42320
movaps 0x2c03f(%rip), %xmm10   # 0x42330
movaps 0x2c047(%rip), %xmm11   # 0x42340
movups %xmm11, 0x30(%rsp)
movups %xmm10, 0x20(%rsp)
movups %xmm9, 0x10(%rsp)
movups %xmm8, (%rsp)
leaq 0x236fd(%rip), %rsi     # 0x39a14
movq %rbx, %rdi
movb $0x8, %al
callq 0x21c0
movzbl 0x2c064(%rip), %edx     # 0x4238c
leaq 0x23768(%rip), %rsi     # 0x39a97
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2c050(%rip), %edx     # 0x42390
leaq 0x23779(%rip), %rsi     # 0x39ac0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2c044(%rip), %edx     # 0x4239c
leaq 0x2378b(%rip), %rsi     # 0x39aea
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2c028(%rip), %edx     # 0x42398
leaq 0x2379d(%rip), %rsi     # 0x39b14
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2c020(%rip), %edx     # 0x423a8
leaq 0x237b0(%rip), %rsi     # 0x39b3f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2c000(%rip), %edx     # 0x423a0
leaq 0x237bd(%rip), %rsi     # 0x39b64
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2bfec(%rip), %edx     # 0x423a4
leaq 0x237c6(%rip), %rsi     # 0x39b85
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2bfe8(%rip), %edx     # 0x423b8
leaq 0x237cf(%rip), %rsi     # 0x39ba6
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2bfd4(%rip), %edx     # 0x423bc
leaq 0x237e3(%rip), %rsi     # 0x39bd2
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2bf94(%rip), %edx     # 0x42394
leaq 0x237f9(%rip), %rsi     # 0x39c00
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2bfac(%rip), %edx     # 0x423c4
leaq 0x2380c(%rip), %rsi     # 0x39c2b
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2bf98(%rip), %edx     # 0x423c8
leaq 0x23826(%rip), %rsi     # 0x39c5d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x2cd88(%rip)     # 0x431d0
jne 0x1645b
movb $0x0, 0x2cd83(%rip)     # 0x431d4
movl $0x656e6f6e, 0x2cd75(%rip) # imm = 0x656E6F6E
leaq 0x2382c(%rip), %rsi     # 0x39c8e
leaq 0x2cd67(%rip), %rdx     # 0x431d0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x2cdd6(%rip)     # 0x43250
jne 0x1648d
movb $0x0, 0x2cdd1(%rip)     # 0x43254
movl $0x656e6f6e, 0x2cdc3(%rip) # imm = 0x656E6F6E
leaq 0x23819(%rip), %rsi     # 0x39cad
leaq 0x2cdb5(%rip), %rdx     # 0x43250
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x2c424(%rip)     # 0x428d0
jne 0x164bf
movabsq $0x73746c75736552, %rax # imm = 0x73746C75736552
movq %rax, 0x2c411(%rip)     # 0x428d0
leaq 0x23808(%rip), %rsi     # 0x39cce
leaq 0x2c403(%rip), %rdx     # 0x428d0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x2bed2(%rip), %edx     # 0x423b0
leaq 0x23808(%rip), %rsi     # 0x39ced
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2bfb3(%rip), %edx     # 0x424a8
leaq 0x2381d(%rip), %rsi     # 0x39d19
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movq 0x2c1bb(%rip), %rdx     # 0x426c8
leaq 0x23815(%rip), %rsi     # 0x39d29
movq %rbx, %rdi
xorl %eax, %eax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x21c0