// File: /workspace/github_c_makefile_star2_O2/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 0x11834(%rip), %rsi     # 0x2439f
leaq 0xca0a(%rip), %rdx      # 0x1f57c
xorl %eax, %eax
callq 0x21c0
movl 0x1d621(%rip), %edx     # 0x301a0
leaq 0x11833(%rip), %rsi     # 0x243b9
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1d60e(%rip), %edx     # 0x301a4
leaq 0x1183c(%rip), %rsi     # 0x243d9
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1d5fb(%rip), %edx     # 0x301a8
leaq 0x11846(%rip), %rsi     # 0x243fa
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1d5e8(%rip), %edx     # 0x301ac
leaq 0x1184a(%rip), %rsi     # 0x24415
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x1d5e3(%rip), %xmm0    # 0x301c0
leaq 0x11856(%rip), %rsi     # 0x2443a
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d5d2(%rip), %xmm0    # 0x301c8
leaq 0x11863(%rip), %rsi     # 0x24460
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d5c1(%rip), %xmm0    # 0x301d0
leaq 0x11868(%rip), %rsi     # 0x2447e
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x1d58a(%rip), %edx     # 0x301b0
leaq 0x1186f(%rip), %rsi     # 0x2449c
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
pushq $0x1
popq %r14
leaq 0x11882(%rip), %r15     # 0x244c4
movslq 0x1d567(%rip), %rax     # 0x301b0
cmpq %rax, %r14
jg 0x12c89
movq 0x1eadb(%rip), %rax     # 0x31730
movl (%rax,%r14,4), %ecx
movq 0x1eac8(%rip), %rax     # 0x31728
movl (%rax,%r14,4), %r8d
movq 0x1eacd(%rip), %rax     # 0x31738
movl (%rax,%r14,4), %r9d
subl -0x4(%rax,%r14,4), %r9d
movq %rbx, %rdi
movq %r15, %rsi
movl %r14d, %edx
xorl %eax, %eax
callq 0x21c0
incq %r14
jmp 0x12c42
movsd 0x1d747(%rip), %xmm0    # 0x303d8
leaq 0x11845(%rip), %rsi     # 0x244dd
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d736(%rip), %xmm0    # 0x303e0
leaq 0x1185b(%rip), %rsi     # 0x2450c
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d6ad(%rip), %xmm0    # 0x30370
leaq 0x11870(%rip), %rsi     # 0x2453a
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x1d51a(%rip), %edx     # 0x301f4
leaq 0x118a9(%rip), %rsi     # 0x2458a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x1d4ed(%rip), %xmm0    # 0x301e0
leaq 0x118b5(%rip), %rsi     # 0x245af
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d4cc(%rip), %xmm0    # 0x301d8
leaq 0x118bc(%rip), %rsi     # 0x245cf
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1e8eb(%rip), %xmm0    # 0x31610
leaq 0x118bf(%rip), %rsi     # 0x245eb
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1e8ba(%rip), %xmm0    # 0x315f8
leaq 0x118c2(%rip), %rsi     # 0x24607
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x1ea53(%rip), %edx     # 0x317a8
leaq 0x118c4(%rip), %rsi     # 0x24620
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1d664(%rip), %edx     # 0x303d0
leaq 0x118d2(%rip), %rsi     # 0x24645
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1d475(%rip), %edx     # 0x301f8
leaq 0x118f0(%rip), %rsi     # 0x2467a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x1d464(%rip), %xmm0    # 0x30200
leaq 0x118fd(%rip), %rsi     # 0x246a0
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d453(%rip), %xmm0    # 0x30208
leaq 0x11918(%rip), %rsi     # 0x246d4
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d442(%rip), %xmm0    # 0x30210
movsd 0x1d442(%rip), %xmm1    # 0x30218
movsd 0x1d442(%rip), %xmm2    # 0x30220
movsd 0x1d442(%rip), %xmm3    # 0x30228
leaq 0x11926(%rip), %rsi     # 0x24713
movq %rbx, %rdi
movb $0x4, %al
callq 0x21c0
movsd 0x1d431(%rip), %xmm0    # 0x30230
leaq 0x11949(%rip), %rsi     # 0x2474f
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d550(%rip), %xmm0    # 0x30368
leaq 0x1195c(%rip), %rsi     # 0x2477b
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d40f(%rip), %xmm0    # 0x30240
movsd 0x1d40f(%rip), %xmm1    # 0x30248
movsd 0x1d40f(%rip), %xmm2    # 0x30250
movsd 0x1d40f(%rip), %xmm3    # 0x30258
movsd 0x1d40f(%rip), %xmm4    # 0x30260
movsd 0x1d40f(%rip), %xmm5    # 0x30268
movsd 0x1d40f(%rip), %xmm6    # 0x30270
movsd 0x1d40f(%rip), %xmm7    # 0x30278
movaps 0x1d40f(%rip), %xmm8    # 0x30280
movaps 0x1d417(%rip), %xmm9    # 0x30290
movaps 0x1d41f(%rip), %xmm10   # 0x302a0
movaps 0x1d427(%rip), %xmm11   # 0x302b0
movups %xmm11, 0x30(%rsp)
movups %xmm10, 0x20(%rsp)
movups %xmm9, 0x10(%rsp)
movups %xmm8, (%rsp)
leaq 0x11921(%rip), %rsi     # 0x247c8
movq %rbx, %rdi
movb $0x8, %al
callq 0x21c0
movsd 0x1d53f(%rip), %xmm0    # 0x303f8
leaq 0x1198c(%rip), %rsi     # 0x2484c
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d546(%rip), %xmm0    # 0x30418
movsd 0x1d546(%rip), %xmm1    # 0x30420
leaq 0x11995(%rip), %rsi     # 0x24876
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1d535(%rip), %xmm0    # 0x30428
movsd 0x1d535(%rip), %xmm1    # 0x30430
leaq 0x119a0(%rip), %rsi     # 0x248a2
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1d564(%rip), %xmm0    # 0x30478
movsd 0x1d564(%rip), %xmm1    # 0x30480
leaq 0x119aa(%rip), %rsi     # 0x248cd
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1d51b(%rip), %xmm0    # 0x30450
movsd 0x1d51b(%rip), %xmm1    # 0x30458
movl 0x1d51d(%rip), %edx     # 0x30460
leaq 0x119a9(%rip), %rsi     # 0x248f3
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1d52c(%rip), %xmm0    # 0x30488
movsd 0x1d52c(%rip), %xmm1    # 0x30490
leaq 0x119d2(%rip), %rsi     # 0x2493d
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1d4c3(%rip), %xmm0    # 0x30440
movsd 0x1d4c3(%rip), %xmm1    # 0x30448
leaq 0x119e7(%rip), %rsi     # 0x24973
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1d44a(%rip), %xmm0    # 0x303e8
leaq 0x119fe(%rip), %rsi     # 0x249a3
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d3c1(%rip), %xmm0    # 0x30378
leaq 0x11a07(%rip), %rsi     # 0x249c5
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d498(%rip), %xmm0    # 0x30468
leaq 0x11a1f(%rip), %rsi     # 0x249f6
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d44f(%rip), %xmm0    # 0x30438
leaq 0x11a2f(%rip), %rsi     # 0x24a1f
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1d2ce(%rip), %xmm0    # 0x302d0
movsd 0x1d2ce(%rip), %xmm1    # 0x302d8
movsd 0x1d2ce(%rip), %xmm2    # 0x302e0
movsd 0x1d2ce(%rip), %xmm3    # 0x302e8
movsd 0x1d2ce(%rip), %xmm4    # 0x302f0
movsd 0x1d2ce(%rip), %xmm5    # 0x302f8
movsd 0x1d2ce(%rip), %xmm6    # 0x30300
movsd 0x1d2ce(%rip), %xmm7    # 0x30308
movaps 0x1d2ce(%rip), %xmm8    # 0x30310
movaps 0x1d2d6(%rip), %xmm9    # 0x30320
movaps 0x1d2de(%rip), %xmm10   # 0x30330
movaps 0x1d2e6(%rip), %xmm11   # 0x30340
movups %xmm11, 0x30(%rsp)
movups %xmm10, 0x20(%rsp)
movups %xmm9, 0x10(%rsp)
movups %xmm8, (%rsp)
leaq 0x119c6(%rip), %rsi     # 0x24a3e
movq %rbx, %rdi
movb $0x8, %al
callq 0x21c0
movzbl 0x1d303(%rip), %edx     # 0x3038c
leaq 0x11a31(%rip), %rsi     # 0x24ac1
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d2ef(%rip), %edx     # 0x30390
leaq 0x11a42(%rip), %rsi     # 0x24aea
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d2e3(%rip), %edx     # 0x3039c
leaq 0x11a54(%rip), %rsi     # 0x24b14
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d2c7(%rip), %edx     # 0x30398
leaq 0x11a66(%rip), %rsi     # 0x24b3e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d2bf(%rip), %edx     # 0x303a8
leaq 0x11a79(%rip), %rsi     # 0x24b69
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d29f(%rip), %edx     # 0x303a0
leaq 0x11a86(%rip), %rsi     # 0x24b8e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d28b(%rip), %edx     # 0x303a4
leaq 0x11a8f(%rip), %rsi     # 0x24baf
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d287(%rip), %edx     # 0x303b8
leaq 0x11a98(%rip), %rsi     # 0x24bd0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d273(%rip), %edx     # 0x303bc
leaq 0x11aac(%rip), %rsi     # 0x24bfc
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d233(%rip), %edx     # 0x30394
leaq 0x11ac2(%rip), %rsi     # 0x24c2a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d24b(%rip), %edx     # 0x303c4
leaq 0x11ad5(%rip), %rsi     # 0x24c55
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d237(%rip), %edx     # 0x303c8
leaq 0x11aef(%rip), %rsi     # 0x24c87
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x1e027(%rip)     # 0x311d0
jne 0x131bc
movb $0x0, 0x1e022(%rip)     # 0x311d4
movl $0x656e6f6e, 0x1e014(%rip) # imm = 0x656E6F6E
leaq 0x11af5(%rip), %rsi     # 0x24cb8
leaq 0x1e006(%rip), %rdx     # 0x311d0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x1e075(%rip)     # 0x31250
jne 0x131ee
movb $0x0, 0x1e070(%rip)     # 0x31254
movl $0x656e6f6e, 0x1e062(%rip) # imm = 0x656E6F6E
leaq 0x11ae2(%rip), %rsi     # 0x24cd7
leaq 0x1e054(%rip), %rdx     # 0x31250
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x1d6c3(%rip)     # 0x308d0
jne 0x13220
movabsq $0x73746c75736552, %rax # imm = 0x73746C75736552
movq %rax, 0x1d6b0(%rip)     # 0x308d0
leaq 0x11ad1(%rip), %rsi     # 0x24cf8
leaq 0x1d6a2(%rip), %rdx     # 0x308d0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1d171(%rip), %edx     # 0x303b0
leaq 0x11ad1(%rip), %rsi     # 0x24d17
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1d252(%rip), %edx     # 0x304a8
leaq 0x11ae6(%rip), %rsi     # 0x24d43
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movq 0x1d45a(%rip), %rdx     # 0x306c8
leaq 0x11ade(%rip), %rsi     # 0x24d53
movq %rbx, %rdi
xorl %eax, %eax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x21c0