// File: /workspace/github_cpp_makefile_star2_O3/UCBASiCS[P]SPRIGHT/src/config.cpp
// Function: Config::display() const
void Config::display() const
{
    std::cout << std::endl << "<=======================>" << std::endl;
    
    if( isExperimentMode() )
    {

       std::cout << "Running experiment mode" << std::endl;
   }

   std::cout << std::endl << "<===== INPUT PROFILE =====>" << std::endl;

   std::cout << signalLength << " -> signal length" << std::endl;
   std::cout << signalSparsity << " -> signal sparsity" << std::endl;
   if (noisy)
   {
    std::cout << SNRdB << " dB" << " -> signal-to-noise ratio (SNR)" << std::endl;
}
else
{
    std::cout << "Noiseless signal" << std::endl;
}
if (phasesNb == 0)
{
    std::cout << "Random phase"  << std::endl;
}
else
{
    std::cout << phasesNb << " -> possible phase";

    if (phasesNb > 1)
    {
        std::cout << "s";
    }

    std::cout << " for the non-zero frequencies in the input signal" << std::endl;
}

std::cout << std::endl << "<===== SPRIGHT CONFIG =====>" << std::endl;

std::cout << chainsNb << " -> delay chain(s)" << std::endl;

if( signalLengthOriginal != signalLength )
{
	std::cout << "The signal length is not a power of 2." << std::endl; 
	std::cout << "The last " << (signalLengthOriginal - signalLength) << " samples will be deleted" << std::endl;
}

for (unsigned int stage=0; stage<bins.size(); stage++)
{
    std::cout << bins[stage] << " ";
}
std::cout << "-> bins" << std::endl;

if (iterations > 1)
{
    std::cout << iterations << " -> iterations"  << std::endl;
}





if (maximumLikelihood)
{
    std::cout << "Maximum likelihood detection enabled"  << std::endl;
}

if (reconstructSignalInBackEnd)
{
    std::cout << "The back-end will reconstruct the full length frequency signal" << std::endl;
}

if (verbose)
{
    std::cout << "Verbose mode enabled" << std::endl;

    if (displayIterationTime)
    {
        std::cout << "Prompting execution time for each iteration" << std::endl;
    }
}

if(distribution.size() > 2) 
{
    std::cout << "Non uniform distribution -> ";

    for (unsigned int i = 0; i < distribution.size(); ++i)
    {
        std::cout << " " << distribution[i];
    }

    std::cout << std::endl;
}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0xe27f(%rip), %r14      # 0x14fc8
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq %rax, %r15
leaq 0x74c9(%rip), %rsi      # 0xe243
movl $0x19, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
cmpb $0x1, 0x10(%rbx)
jne 0x6df6
movq 0xe20d(%rip), %r15      # 0x14fc8
leaq 0x749b(%rip), %rsi      # 0xe25d
movl $0x17, %edx
movq %r15, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq %rax, %r15
leaq 0x744e(%rip), %rsi      # 0xe275
movl $0x1b, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movl 0x18(%rbx), %esi
movq %r14, %rdi
callq 0x3470
movq %rax, %r15
leaq 0x7421(%rip), %rsi      # 0xe291
movl $0x11, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movl 0x24(%rbx), %esi
movq %r14, %rdi
callq 0x3470
movq %rax, %r15
leaq 0x73ea(%rip), %rsi      # 0xe2a3
movl $0x13, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
cmpb $0x1, 0x68(%rbx)
jne 0x6f29
cvtss2sd 0x6c(%rbx), %xmm0
movq 0xe0c9(%rip), %rdi      # 0x14fc8
callq 0x3400
movq %rax, %r14
leaq 0x73a9(%rip), %rsi      # 0xe2b7
movl $0x3, %edx
movq %rax, %rdi
callq 0x32b0
leaq 0x7399(%rip), %rsi      # 0xe2bb
movl $0x1f, %edx
jmp 0x6f35
leaq 0x73ab(%rip), %rsi      # 0xe2db
movl $0x10, %edx
movq %r14, %rdi
callq 0x32b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movl 0x70(%rbx), %esi
movq 0xe05a(%rip), %rdi      # 0x14fc8
testl %esi, %esi
je 0x6fbe
callq 0x3470
leaq 0x737b(%rip), %rsi      # 0xe2f9
movl $0x12, %edx
movq %rax, %rdi
callq 0x32b0
cmpl $0x2, 0x70(%rbx)
jl 0x6fa9
movq 0xe030(%rip), %rdi      # 0x14fc8
leaq 0x8075(%rip), %rsi      # 0xf014
movl $0x1, %edx
callq 0x32b0
movq 0xe018(%rip), %rdi      # 0x14fc8
leaq 0x7355(%rip), %rsi      # 0xe30c
movl $0x31, %edx
jmp 0x6fca
leaq 0x7327(%rip), %rsi      # 0xe2ec
movl $0xc, %edx
callq 0x32b0
movq 0xdff2(%rip), %r14      # 0x14fc8
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq %rax, %r15
leaq 0x7310(%rip), %rsi      # 0xe33e
movl $0x1c, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movl 0x60(%rbx), %esi
movq %r14, %rdi
callq 0x3470
movq %rax, %r15
leaq 0x72e4(%rip), %rsi      # 0xe35b
movl $0x12, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movl 0x1c(%rbx), %eax
cmpl 0x18(%rbx), %eax
je 0x7152
leaq 0x72b0(%rip), %rsi      # 0xe36e
movl $0x26, %edx
movq %r14, %rdi
callq 0x32b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
leaq 0x729c(%rip), %rsi      # 0xe395
movl $0x9, %edx
movq %r14, %rdi
callq 0x32b0
movl 0x1c(%rbx), %esi
subl 0x18(%rbx), %esi
movq %r14, %rdi
callq 0x3470
movq %rax, %r15
leaq 0x7281(%rip), %rsi      # 0xe39f
movl $0x18, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq 0x28(%rbx), %rax
cmpq %rax, 0x30(%rbx)
je 0x71a4
movl $0x1, %ebp
xorl %ecx, %ecx
movq 0xde5e(%rip), %r15      # 0x14fc8
leaq 0x7d97(%rip), %r12      # 0xef08
movl (%rax,%rcx,4), %esi
movq %r15, %rdi
callq 0x3470
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x32b0
movl %ebp, %ecx
movq 0x28(%rbx), %rax
movq 0x30(%rbx), %rdx
subq %rax, %rdx
sarq $0x2, %rdx
incl %ebp
cmpq %rcx, %rdx
ja 0x7171
leaq 0x720d(%rip), %rsi      # 0xe3b8
movl $0x7, %edx
movq %r14, %rdi
callq 0x32b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movl 0x14(%rbx), %esi
cmpl $0x1, %esi
jle 0x7231
movq 0xddda(%rip), %rdi      # 0x14fc8
callq 0x3470
movq %rax, %r15
leaq 0x71c3(%rip), %rsi      # 0xe3c0
movl $0xe, %edx
movq %rax, %rdi
callq 0x32b0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
cmpb $0x1, 0x20(%rbx)
jne 0x7272
leaq 0x7191(%rip), %rsi      # 0xe3cf
movl $0x24, %edx
movq %r14, %rdi
callq 0x32b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
cmpb $0x1, 0x76(%rbx)
jne 0x72b3
leaq 0x7175(%rip), %rsi      # 0xe3f4
movl $0x3e, %edx
movq %r14, %rdi
callq 0x32b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
cmpb $0x1, 0x74(%rbx)
jne 0x7335
leaq 0x7173(%rip), %rsi      # 0xe433
movl $0x14, %edx
movq %r14, %rdi
callq 0x32b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
cmpb $0x1, 0x75(%rbx)
jne 0x7335
leaq 0x7147(%rip), %rsi      # 0xe448
movl $0x2b, %edx
movq %r14, %rdi
callq 0x32b0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3170
movq 0x80(%rbx), %rax
subq 0x78(%rbx), %rax
cmpq $0x11, %rax
jb 0x73f8
movq 0xdc77(%rip), %r14      # 0x14fc8
leaq 0x711c(%rip), %rsi      # 0xe474
movl $0x1c, %edx
movq %r14, %rdi
callq 0x32b0
movq 0x80(%rbx), %rax
cmpq 0x78(%rbx), %rax
je 0x73c3
movl $0x1, %ebp
xorl %r13d, %r13d
movq 0xdc47(%rip), %r15      # 0x14fc8
leaq 0x7b80(%rip), %r12      # 0xef08
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x32b0
movq 0x78(%rbx), %rax
movsd (%rax,%r13,8), %xmm0
movq %r15, %rdi
callq 0x3400
movq 0x80(%rbx), %rax
subq 0x78(%rbx), %rax
movl %ebp, %r13d
sarq $0x3, %rax
incl %ebp
cmpq %r13, %rax
ja 0x7388
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3170
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop