// File: /workspace/github_cpp_makefile_star2_O2/UCBASiCS[P]SPRIGHT/src/experimentoutput.cpp
// Function: ExperimentOutput::displayGlobalResults()
void ExperimentOutput::displayGlobalResults()
{
    setGlobalResultsFigures();

    std::cout 	<< std::endl << "<===== SPRIGHT RESULTS =====>" << std::endl;
    std::cout 	<< std::setprecision(4)  << averageMSEerrorAmplitude << " -> MSE error amplitude" << std::endl;
    // std::cout   << maxMSEerrorAmplitude << " -> maximum MSE amplitude"   << std::endl;
    std::cout 	<< "average freq error is " << averageMSEerror*100 << " percent of 2PI/N = " << 2*M_PI/config->getSignalLengthOriginal() << std::endl;
    // std::cout   << maxMSEerror          << " -> max MSE error frequencies"    << std::endl;
    std::cout   << averageFalseDetectionsNb << " -> average false detections" << std::endl;
    std::cout   << maxFalseDetectionsNb     << " -> maximum false detections" << std::endl;
    std::cout   << averageMissedLocationsNb << " -> average missed locations" << std::endl;
    std::cout   << maxMissedLocationsNb     << " -> maximum missed locations" << std::endl;
              // << probabilityOfFalseDetection << " -> probability of one or more false detection" << std::endl
              // << probabilityOfMissedLocation << " -> probability of one or more missed location" << std::endl
    std::cout << probabilityOfBinningFailure << " -> probability of binning failure" << std::endl;
    // if there were binning failures, list the sizes and counts of trapping sets
    if ( probabilityOfBinningFailure != 0 )
    {
        std::cout << "trapping sets (size, count): ";
        for ( auto it = trappingSetSizeCounter.cbegin(); it != trappingSetSizeCounter.cend(); ++it )
        {
            std::cout << "( " << it->first << " , " << it->second << " ), ";
        }
        std::cout << std::endl;
    }
    std::cout  << probabilityOfFullRecovery   << " -> probability of full recovery"   << std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x98a0
movq 0xa97c(%rip), %r14      # 0x13fd0
movq %r14, %rdi
callq 0x3110
leaq 0x3755(%rip), %rsi      # 0xcdb8
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movq (%r14), %rax
movq -0x18(%rax), %rax
movq $0x4, 0x8(%r14,%rax)
movsd 0x120(%rbx), %xmm0
movq %r14, %rdi
callq 0x3400
leaq 0x373c(%rip), %rsi      # 0xcdd6
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
leaq 0x373d(%rip), %rsi      # 0xcdee
movq %r14, %rdi
callq 0x3250
movsd 0x130(%rbx), %xmm0
mulsd 0x3687(%rip), %xmm0     # 0xcd50
movq %rax, %rdi
callq 0x3400
leaq 0x372d(%rip), %rsi      # 0xce05
movq %rax, %rdi
callq 0x3250
movq %rax, %r15
movq 0x10(%rbx), %rdi
callq 0x7094
cvtsi2sd %eax, %xmm1
movsd 0x3608(%rip), %xmm0     # 0xcd00
divsd %xmm1, %xmm0
movq %r15, %rdi
callq 0x3400
movq %rax, %rdi
callq 0x3110
movsd 0x100(%rbx), %xmm0
movq %r14, %rdi
callq 0x3400
leaq 0x36f7(%rip), %rsi      # 0xce1a
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movsd 0x108(%rbx), %xmm0
movq %r14, %rdi
callq 0x3400
leaq 0x36ed(%rip), %rsi      # 0xce37
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movsd 0x110(%rbx), %xmm0
movq %r14, %rdi
callq 0x3400
leaq 0x36e3(%rip), %rsi      # 0xce54
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movsd 0x118(%rbx), %xmm0
movq %r14, %rdi
callq 0x3400
leaq 0x36d9(%rip), %rsi      # 0xce71
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movsd 0x150(%rbx), %xmm0
movq %r14, %rdi
callq 0x3400
leaq 0x36cf(%rip), %rsi      # 0xce8e
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movsd 0x150(%rbx), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x97e7
jnp 0x9867
movq 0xa7e2(%rip), %r14      # 0x13fd0
leaq 0x36bc(%rip), %rsi      # 0xceb1
movq %r14, %rdi
callq 0x3250
leaq 0xb0(%rbx), %rbp
leaq 0x36c4(%rip), %r15      # 0xcecf
leaq 0x36c0(%rip), %r12      # 0xced2
leaq 0x36bd(%rip), %r13      # 0xced6
movq (%rbp), %rbp
testq %rbp, %rbp
je 0x985b
movq %r14, %rdi
movq %r15, %rsi
callq 0x3250
movl 0x8(%rbp), %esi
movq %rax, %rdi
callq 0x3470
movq %rax, %rdi
movq %r12, %rsi
callq 0x3250
movl 0xc(%rbp), %esi
movq %rax, %rdi
callq 0x3470
movq %rax, %rdi
movq %r13, %rsi
callq 0x3250
jmp 0x9819
movq 0xa76e(%rip), %rdi      # 0x13fd0
callq 0x3110
movsd 0x158(%rbx), %xmm0
movq 0xa75a(%rip), %rdi      # 0x13fd0
callq 0x3400
leaq 0x3659(%rip), %rsi      # 0xcedb
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3110