// File: /workspace/github_c_makefile_star2_O3/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 0x12380(%rip), %rsi     # 0x28435
leaq 0xd556(%rip), %rdx      # 0x23612
xorl %eax, %eax
callq 0x21c0
movl 0x200d7(%rip), %edx     # 0x361a0
leaq 0x1237f(%rip), %rsi     # 0x2844f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x200c4(%rip), %edx     # 0x361a4
leaq 0x12388(%rip), %rsi     # 0x2846f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x200b1(%rip), %edx     # 0x361a8
leaq 0x12392(%rip), %rsi     # 0x28490
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2009e(%rip), %edx     # 0x361ac
leaq 0x12396(%rip), %rsi     # 0x284ab
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x20099(%rip), %xmm0    # 0x361c0
leaq 0x123a2(%rip), %rsi     # 0x284d0
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x20088(%rip), %xmm0    # 0x361c8
leaq 0x123af(%rip), %rsi     # 0x284f6
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x20077(%rip), %xmm0    # 0x361d0
leaq 0x123b4(%rip), %rsi     # 0x28514
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x20040(%rip), %edx     # 0x361b0
leaq 0x123bb(%rip), %rsi     # 0x28532
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpl $0x0, 0x20028(%rip)     # 0x361b0
jle 0x161e0
movl $0x1, %r15d
leaq 0x123c3(%rip), %r14     # 0x2855a
movq 0x21592(%rip), %rax     # 0x37730
movl (%rax,%r15,4), %ecx
movq 0x2157f(%rip), %rax     # 0x37728
movl (%rax,%r15,4), %r8d
movq 0x21584(%rip), %rax     # 0x37738
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 0x1ffd8(%rip), %rcx     # 0x361b0
cmpq %rcx, %r15
movq %rax, %r15
jl 0x16197
movsd 0x201f0(%rip), %xmm0    # 0x363d8
leaq 0x12384(%rip), %rsi     # 0x28573
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x201df(%rip), %xmm0    # 0x363e0
leaq 0x1239a(%rip), %rsi     # 0x285a2
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x20156(%rip), %xmm0    # 0x36370
leaq 0x123af(%rip), %rsi     # 0x285d0
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x1ffc3(%rip), %edx     # 0x361f4
leaq 0x123e8(%rip), %rsi     # 0x28620
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x1ff96(%rip), %xmm0    # 0x361e0
leaq 0x123f4(%rip), %rsi     # 0x28645
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1ff75(%rip), %xmm0    # 0x361d8
leaq 0x123fb(%rip), %rsi     # 0x28665
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x21394(%rip), %xmm0    # 0x37610
leaq 0x123fe(%rip), %rsi     # 0x28681
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x21363(%rip), %xmm0    # 0x375f8
leaq 0x12401(%rip), %rsi     # 0x2869d
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movl 0x214fc(%rip), %edx     # 0x377a8
leaq 0x12403(%rip), %rsi     # 0x286b6
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x2010d(%rip), %edx     # 0x363d0
leaq 0x12411(%rip), %rsi     # 0x286db
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1ff1e(%rip), %edx     # 0x361f8
leaq 0x1242f(%rip), %rsi     # 0x28710
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movsd 0x1ff0d(%rip), %xmm0    # 0x36200
leaq 0x1243c(%rip), %rsi     # 0x28736
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1fefc(%rip), %xmm0    # 0x36208
leaq 0x12457(%rip), %rsi     # 0x2876a
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1feeb(%rip), %xmm0    # 0x36210
movsd 0x1feeb(%rip), %xmm1    # 0x36218
movsd 0x1feeb(%rip), %xmm2    # 0x36220
movsd 0x1feeb(%rip), %xmm3    # 0x36228
leaq 0x12465(%rip), %rsi     # 0x287a9
movq %rbx, %rdi
movb $0x4, %al
callq 0x21c0
movsd 0x1feda(%rip), %xmm0    # 0x36230
leaq 0x12488(%rip), %rsi     # 0x287e5
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1fff9(%rip), %xmm0    # 0x36368
leaq 0x1249b(%rip), %rsi     # 0x28811
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1feb8(%rip), %xmm0    # 0x36240
movsd 0x1feb8(%rip), %xmm1    # 0x36248
movsd 0x1feb8(%rip), %xmm2    # 0x36250
movsd 0x1feb8(%rip), %xmm3    # 0x36258
movsd 0x1feb8(%rip), %xmm4    # 0x36260
movsd 0x1feb8(%rip), %xmm5    # 0x36268
movsd 0x1feb8(%rip), %xmm6    # 0x36270
movsd 0x1feb8(%rip), %xmm7    # 0x36278
movaps 0x1feb8(%rip), %xmm8    # 0x36280
movaps 0x1fec0(%rip), %xmm9    # 0x36290
movaps 0x1fec8(%rip), %xmm10   # 0x362a0
movaps 0x1fed0(%rip), %xmm11   # 0x362b0
movups %xmm11, 0x30(%rsp)
movups %xmm10, 0x20(%rsp)
movups %xmm9, 0x10(%rsp)
movups %xmm8, (%rsp)
leaq 0x12460(%rip), %rsi     # 0x2885e
movq %rbx, %rdi
movb $0x8, %al
callq 0x21c0
movsd 0x1ffe8(%rip), %xmm0    # 0x363f8
leaq 0x124cb(%rip), %rsi     # 0x288e2
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1ffef(%rip), %xmm0    # 0x36418
movsd 0x1ffef(%rip), %xmm1    # 0x36420
leaq 0x124d4(%rip), %rsi     # 0x2890c
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1ffde(%rip), %xmm0    # 0x36428
movsd 0x1ffde(%rip), %xmm1    # 0x36430
leaq 0x124df(%rip), %rsi     # 0x28938
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x2000d(%rip), %xmm0    # 0x36478
movsd 0x2000d(%rip), %xmm1    # 0x36480
leaq 0x124e9(%rip), %rsi     # 0x28963
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1ffc4(%rip), %xmm0    # 0x36450
movsd 0x1ffc4(%rip), %xmm1    # 0x36458
movl 0x1ffc6(%rip), %edx     # 0x36460
leaq 0x124e8(%rip), %rsi     # 0x28989
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1ffd5(%rip), %xmm0    # 0x36488
movsd 0x1ffd5(%rip), %xmm1    # 0x36490
leaq 0x12511(%rip), %rsi     # 0x289d3
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1ff6c(%rip), %xmm0    # 0x36440
movsd 0x1ff6c(%rip), %xmm1    # 0x36448
leaq 0x12526(%rip), %rsi     # 0x28a09
movq %rbx, %rdi
movb $0x2, %al
callq 0x21c0
movsd 0x1fef3(%rip), %xmm0    # 0x363e8
leaq 0x1253d(%rip), %rsi     # 0x28a39
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1fe6a(%rip), %xmm0    # 0x36378
leaq 0x12546(%rip), %rsi     # 0x28a5b
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1ff41(%rip), %xmm0    # 0x36468
leaq 0x1255e(%rip), %rsi     # 0x28a8c
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1fef8(%rip), %xmm0    # 0x36438
leaq 0x1256e(%rip), %rsi     # 0x28ab5
movq %rbx, %rdi
movb $0x1, %al
callq 0x21c0
movsd 0x1fd77(%rip), %xmm0    # 0x362d0
movsd 0x1fd77(%rip), %xmm1    # 0x362d8
movsd 0x1fd77(%rip), %xmm2    # 0x362e0
movsd 0x1fd77(%rip), %xmm3    # 0x362e8
movsd 0x1fd77(%rip), %xmm4    # 0x362f0
movsd 0x1fd77(%rip), %xmm5    # 0x362f8
movsd 0x1fd77(%rip), %xmm6    # 0x36300
movsd 0x1fd77(%rip), %xmm7    # 0x36308
movaps 0x1fd77(%rip), %xmm8    # 0x36310
movaps 0x1fd7f(%rip), %xmm9    # 0x36320
movaps 0x1fd87(%rip), %xmm10   # 0x36330
movaps 0x1fd8f(%rip), %xmm11   # 0x36340
movups %xmm11, 0x30(%rsp)
movups %xmm10, 0x20(%rsp)
movups %xmm9, 0x10(%rsp)
movups %xmm8, (%rsp)
leaq 0x12505(%rip), %rsi     # 0x28ad4
movq %rbx, %rdi
movb $0x8, %al
callq 0x21c0
movzbl 0x1fdac(%rip), %edx     # 0x3638c
leaq 0x12570(%rip), %rsi     # 0x28b57
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd98(%rip), %edx     # 0x36390
leaq 0x12581(%rip), %rsi     # 0x28b80
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd8c(%rip), %edx     # 0x3639c
leaq 0x12593(%rip), %rsi     # 0x28baa
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd70(%rip), %edx     # 0x36398
leaq 0x125a5(%rip), %rsi     # 0x28bd4
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd68(%rip), %edx     # 0x363a8
leaq 0x125b8(%rip), %rsi     # 0x28bff
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd48(%rip), %edx     # 0x363a0
leaq 0x125c5(%rip), %rsi     # 0x28c24
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd34(%rip), %edx     # 0x363a4
leaq 0x125ce(%rip), %rsi     # 0x28c45
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd30(%rip), %edx     # 0x363b8
leaq 0x125d7(%rip), %rsi     # 0x28c66
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fd1c(%rip), %edx     # 0x363bc
leaq 0x125eb(%rip), %rsi     # 0x28c92
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fcdc(%rip), %edx     # 0x36394
leaq 0x12601(%rip), %rsi     # 0x28cc0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fcf4(%rip), %edx     # 0x363c4
leaq 0x12614(%rip), %rsi     # 0x28ceb
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fce0(%rip), %edx     # 0x363c8
leaq 0x1262e(%rip), %rsi     # 0x28d1d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x20ad0(%rip)     # 0x371d0
jne 0x16713
movb $0x0, 0x20acb(%rip)     # 0x371d4
movl $0x656e6f6e, 0x20abd(%rip) # imm = 0x656E6F6E
leaq 0x12634(%rip), %rsi     # 0x28d4e
leaq 0x20aaf(%rip), %rdx     # 0x371d0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x20b1e(%rip)     # 0x37250
jne 0x16745
movb $0x0, 0x20b19(%rip)     # 0x37254
movl $0x656e6f6e, 0x20b0b(%rip) # imm = 0x656E6F6E
leaq 0x12621(%rip), %rsi     # 0x28d6d
leaq 0x20afd(%rip), %rdx     # 0x37250
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
cmpb $0x0, 0x2016c(%rip)     # 0x368d0
jne 0x16777
movabsq $0x73746c75736552, %rax # imm = 0x73746C75736552
movq %rax, 0x20159(%rip)     # 0x368d0
leaq 0x12610(%rip), %rsi     # 0x28d8e
leaq 0x2014b(%rip), %rdx     # 0x368d0
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movzbl 0x1fc1a(%rip), %edx     # 0x363b0
leaq 0x12610(%rip), %rsi     # 0x28dad
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movl 0x1fcfb(%rip), %edx     # 0x364a8
leaq 0x12625(%rip), %rsi     # 0x28dd9
movq %rbx, %rdi
xorl %eax, %eax
callq 0x21c0
movq 0x1ff03(%rip), %rdx     # 0x366c8
leaq 0x1261d(%rip), %rsi     # 0x28de9
movq %rbx, %rdi
xorl %eax, %eax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0x21c0