// File: /workspace/github_cpp_makefile_star2_O2/BenLangmead[P]bowtie/./aligner_metrics.h
// Function: AlignerMetrics::printSummary()
void printSummary() {
		if(!first_) {
			finishRead();
		}
		cout << "AlignerMetrics:" << endl;
		cout << "  # Reads:             " << reads_ << endl;
		float hopct = (reads_ > 0) ? (((float)homoReads_)/((float)reads_)) : (0.0);
		hopct *= 100.0;
		cout << "  % homo-polymeric:    " << (hopct) << endl;
		float lopct = (reads_ > 0) ? ((float)lowEntReads_/(float)(reads_)) : (0.0);
		lopct *= 100.0;
		cout << "  % low-entropy:       " << (lopct) << endl;
		float unpct = (reads_ > 0) ? ((float)unalignedReads_/(float)(reads_)) : (0.0);
		unpct *= 100.0;
		cout << "  % unaligned:         " << (unpct) << endl;
		float npct = (reads_ > 0) ? ((float)threeOrMoreNReads_/(float)(reads_)) : (0.0);
		npct *= 100.0;
		cout << "  % with 3 or more Ns: " << (npct) << endl;
		cout << endl;
		cout << "  Total BWT ops:    avg: " << bwtOpsPerRead_.mean() << ", stddev: " << bwtOpsPerRead_.stddev() << endl;
		cout << "  Total Backtracks: avg: " << backtracksPerRead_.mean() << ", stddev: " << backtracksPerRead_.stddev() << endl;
		time_t elapsed = timer_.elapsed();
		cout << "  BWT ops per second:    " << (bwtOpsPerRead_.tot()/elapsed) << endl;
		cout << "  Backtracks per second: " << (backtracksPerRead_.tot()/elapsed) << endl;
		cout << endl;
		cout << "  Homo-poly:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPerHomoRead_.mean() << ", stddev: " << bwtOpsPerHomoRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPerHomoRead_.mean() << ", stddev: " << backtracksPerHomoRead_.stddev() << endl;
		cout << "  Low-entropy:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPerLoEntRead_.mean() << ", stddev: " << bwtOpsPerLoEntRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPerLoEntRead_.mean() << ", stddev: " << backtracksPerLoEntRead_.stddev() << endl;
		cout << "  High-entropy:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPerHiEntRead_.mean() << ", stddev: " << bwtOpsPerHiEntRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPerHiEntRead_.mean() << ", stddev: " << backtracksPerHiEntRead_.stddev() << endl;
		cout << endl;
		cout << "  Unaligned:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPerUnalignedRead_.mean() << ", stddev: " << bwtOpsPerUnalignedRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPerUnalignedRead_.mean() << ", stddev: " << backtracksPerUnalignedRead_.stddev() << endl;
		cout << "  Aligned:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPerAlignedRead_.mean() << ", stddev: " << bwtOpsPerAlignedRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPerAlignedRead_.mean() << ", stddev: " << backtracksPerAlignedRead_.stddev() << endl;
		cout << endl;
		cout << "  0 Ns:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPer0nRead_.mean() << ", stddev: " << bwtOpsPer0nRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPer0nRead_.mean() << ", stddev: " << backtracksPer0nRead_.stddev() << endl;
		cout << "  1 N:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPer1nRead_.mean() << ", stddev: " << bwtOpsPer1nRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPer1nRead_.mean() << ", stddev: " << backtracksPer1nRead_.stddev() << endl;
		cout << "  2 Ns:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPer2nRead_.mean() << ", stddev: " << bwtOpsPer2nRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPer2nRead_.mean() << ", stddev: " << backtracksPer2nRead_.stddev() << endl;
		cout << "  >2 Ns:" << endl;
		cout << "    BWT ops:    avg: " << bwtOpsPer3orMoreNRead_.mean() << ", stddev: " << bwtOpsPer3orMoreNRead_.stddev() << endl;
		cout << "    Backtracks: avg: " << backtracksPer3orMoreNRead_.mean() << ", stddev: " << backtracksPer3orMoreNRead_.stddev() << endl;
		cout << endl;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
cmpb $0x0, 0x8(%rdi)
jne 0x1c7ef
movq %rbx, %rdi
callq 0x296c0
movq 0x457ba(%rip), %r14     # 0x61fb0
leaq 0x2e5e5(%rip), %rsi     # 0x4ade2
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
leaq 0x2e5de(%rip), %rsi     # 0x4adf2
movq %r14, %rdi
callq 0x94e0
movl 0x10(%rbx), %esi
movq %rax, %rdi
callq 0x9310
movq %rax, %rdi
callq 0x9210
movl 0x10(%rbx), %eax
xorps %xmm0, %xmm0
movss %xmm0, 0x8(%rsp)
xorps %xmm1, %xmm1
testl %eax, %eax
je 0x1c85d
movl 0x14(%rbx), %ecx
cvtsi2ss %rcx, %xmm1
movl %eax, %eax
cvtsi2ss %rax, %xmm0
divss %xmm0, %xmm1
mulss 0x2abab(%rip), %xmm1    # 0x47408
movss %xmm1, 0x14(%rsp)
movq 0x45746(%rip), %rdi     # 0x61fb0
leaq 0x2e599(%rip), %rsi     # 0x4ae0a
callq 0x94e0
movq %rax, %rdi
movss 0x14(%rsp), %xmm0
callq 0x9380
movq %rax, %rdi
callq 0x9210
movl 0x10(%rbx), %eax
testl %eax, %eax
je 0x1c8b4
movl 0x18(%rbx), %ecx
cvtsi2ss %rcx, %xmm1
movl %eax, %eax
cvtsi2ss %rax, %xmm0
divss %xmm0, %xmm1
mulss 0x2ab5a(%rip), %xmm1    # 0x47408
movss %xmm1, 0x8(%rsp)
movq 0x456f5(%rip), %rdi     # 0x61fb0
leaq 0x2e560(%rip), %rsi     # 0x4ae22
callq 0x94e0
movq %rax, %rdi
movss 0x8(%rsp), %xmm0
callq 0x9380
movq %rax, %rdi
callq 0x9210
movl 0x10(%rbx), %eax
xorps %xmm0, %xmm0
movss %xmm0, 0x8(%rsp)
xorps %xmm1, %xmm1
testl %eax, %eax
je 0x1c90b
movl 0x24(%rbx), %ecx
cvtsi2ss %rcx, %xmm1
movl %eax, %eax
cvtsi2ss %rax, %xmm0
divss %xmm0, %xmm1
mulss 0x2aafd(%rip), %xmm1    # 0x47408
movss %xmm1, 0x14(%rsp)
movq 0x45698(%rip), %rdi     # 0x61fb0
leaq 0x2e51b(%rip), %rsi     # 0x4ae3a
callq 0x94e0
movq %rax, %rdi
movss 0x14(%rsp), %xmm0
callq 0x9380
movq %rax, %rdi
callq 0x9210
movl 0x10(%rbx), %eax
testl %eax, %eax
je 0x1c962
movl 0x28(%rbx), %ecx
cvtsi2ss %rcx, %xmm1
movl %eax, %eax
cvtsi2ss %rax, %xmm0
divss %xmm0, %xmm1
mulss 0x2aaac(%rip), %xmm1    # 0x47408
movss %xmm1, 0x8(%rsp)
movq 0x45647(%rip), %r14     # 0x61fb0
leaq 0x2e4e2(%rip), %rsi     # 0x4ae52
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
movss 0x8(%rsp), %xmm0
callq 0x9380
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
callq 0x9210
leaq 0x2e4cd(%rip), %rsi     # 0x4ae6a
movq %r14, %rdi
callq 0x94e0
leaq 0x30(%rbx), %r12
cmpl $0x0, 0x30(%rbx)
jg 0x1c9b4
xorps %xmm0, %xmm0
jmp 0x1c9b9
movsd 0x48(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
leaq 0x2e4bc(%rip), %r15     # 0x4ae84
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r13
movq %r12, %rdi
callq 0x34380
movq %r13, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2e49a(%rip), %rsi     # 0x4ae8f
movq %r14, %rdi
callq 0x94e0
leaq 0x60(%rbx), %r12
cmpl $0x0, 0x60(%rbx)
jg 0x1ca0c
xorps %xmm0, %xmm0
jmp 0x1ca11
movsd 0x78(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r13
movq %r12, %rdi
callq 0x34380
movq %r13, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x3f0(%rbx), %rdi
callq 0x343b0
movq %rax, %r12
leaq 0x2e454(%rip), %rsi     # 0x4aea9
movq %r14, %rdi
callq 0x94e0
movsd 0x38(%rbx), %xmm0
cvtsi2sd %r12, %xmm1
movsd %xmm1, 0x8(%rsp)
divsd %xmm1, %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2e43b(%rip), %rsi     # 0x4aec3
movq %r14, %rdi
callq 0x94e0
movsd 0x68(%rbx), %xmm0
divsd 0x8(%rsp), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
callq 0x9210
leaq 0x2e423(%rip), %rsi     # 0x4aedd
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
leaq 0x2e419(%rip), %rsi     # 0x4aeea
movq %r14, %rdi
callq 0x94e0
leaq 0x90(%rbx), %r13
cmpl $0x0, 0x90(%rbx)
jg 0x1caef
xorpd %xmm0, %xmm0
jmp 0x1caf7
movsd 0xa8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %rbp
movq %r13, %rdi
callq 0x34380
movq %rbp, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2e3d4(%rip), %r13     # 0x4af00
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0xc0(%rbx), %rbp
cmpl $0x0, 0xc0(%rbx)
jg 0x1cb4d
xorpd %xmm0, %xmm0
jmp 0x1cb55
movsd 0xd8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2e38c(%rip), %rsi     # 0x4af16
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2e346(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0xf0(%rbx), %rbp
cmpl $0x0, 0xf0(%rbx)
jg 0x1cbbf
xorpd %xmm0, %xmm0
jmp 0x1cbc7
movsd 0x108(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x120(%rbx), %rbp
cmpl $0x0, 0x120(%rbx)
jg 0x1cc16
xorpd %xmm0, %xmm0
jmp 0x1cc1e
movsd 0x138(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2e2d2(%rip), %rsi     # 0x4af25
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2e27d(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0x150(%rbx), %rbp
cmpl $0x0, 0x150(%rbx)
jg 0x1cc88
xorpd %xmm0, %xmm0
jmp 0x1cc90
movsd 0x168(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x180(%rbx), %rbp
cmpl $0x0, 0x180(%rbx)
jg 0x1ccdf
xorpd %xmm0, %xmm0
jmp 0x1cce7
movsd 0x198(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
callq 0x9210
leaq 0x2e211(%rip), %rsi     # 0x4af35
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2e1ac(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0x210(%rbx), %rbp
cmpl $0x0, 0x210(%rbx)
jg 0x1cd59
xorpd %xmm0, %xmm0
jmp 0x1cd61
movsd 0x228(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x240(%rbx), %rbp
cmpl $0x0, 0x240(%rbx)
jg 0x1cdb0
xorpd %xmm0, %xmm0
jmp 0x1cdb8
movsd 0x258(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2e155(%rip), %rsi     # 0x4af42
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2e0e3(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0x1b0(%rbx), %rbp
cmpl $0x0, 0x1b0(%rbx)
jg 0x1ce22
xorpd %xmm0, %xmm0
jmp 0x1ce2a
movsd 0x1c8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x1e0(%rbx), %rbp
cmpl $0x0, 0x1e0(%rbx)
jg 0x1ce79
xorpd %xmm0, %xmm0
jmp 0x1ce81
movsd 0x1f8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
callq 0x9210
leaq 0x2e08f(%rip), %rsi     # 0x4af4d
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2e012(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0x270(%rbx), %rbp
cmpl $0x0, 0x270(%rbx)
jg 0x1cef3
xorpd %xmm0, %xmm0
jmp 0x1cefb
movsd 0x288(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x2a0(%rbx), %rbp
cmpl $0x0, 0x2a0(%rbx)
jg 0x1cf4a
xorpd %xmm0, %xmm0
jmp 0x1cf52
movsd 0x2b8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2dfce(%rip), %rsi     # 0x4af55
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2df49(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0x2d0(%rbx), %rbp
cmpl $0x0, 0x2d0(%rbx)
jg 0x1cfbc
xorpd %xmm0, %xmm0
jmp 0x1cfc4
movsd 0x2e8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x300(%rbx), %rbp
cmpl $0x0, 0x300(%rbx)
jg 0x1d013
xorpd %xmm0, %xmm0
jmp 0x1d01b
movsd 0x318(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2df0c(%rip), %rsi     # 0x4af5c
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2de80(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0x330(%rbx), %rbp
cmpl $0x0, 0x330(%rbx)
jg 0x1d085
xorpd %xmm0, %xmm0
jmp 0x1d08d
movsd 0x348(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x360(%rbx), %rbp
cmpl $0x0, 0x360(%rbx)
jg 0x1d0dc
xorpd %xmm0, %xmm0
jmp 0x1d0e4
movsd 0x378(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %r12
movq %rbp, %rdi
callq 0x34380
movq %r12, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
leaq 0x2de4b(%rip), %rsi     # 0x4af64
movq %r14, %rdi
callq 0x94e0
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
leaq 0x2ddb7(%rip), %rsi     # 0x4aeea
callq 0x94e0
leaq 0x390(%rbx), %r12
cmpl $0x0, 0x390(%rbx)
jg 0x1d14e
xorpd %xmm0, %xmm0
jmp 0x1d156
movsd 0x3a8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %rbp
movq %r12, %rdi
callq 0x34380
movq %rbp, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
movq %r13, %rsi
callq 0x94e0
leaq 0x3c0(%rbx), %r12
cmpl $0x0, 0x3c0(%rbx)
jg 0x1d1a5
xorpd %xmm0, %xmm0
jmp 0x1d1ad
movsd 0x3d8(%rbx), %xmm0
movq %rax, %rdi
callq 0x9840
movq %rax, %rdi
movq %r15, %rsi
callq 0x94e0
movq %rax, %rbx
movq %r12, %rdi
callq 0x34380
movq %rbx, %rdi
callq 0x9840
movq %rax, %rdi
callq 0x9210
movq %r14, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x9210
nop