// File: /workspace/github_cpp_makefile_star2_O1/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 0xf145(%rip), %r14      # 0x15fc8
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 0x838f(%rip), %rsi      # 0xf243
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 0x6f30
movq 0xf0d3(%rip), %r15      # 0x15fc8
leaq 0x8361(%rip), %rsi      # 0xf25d
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 0x8314(%rip), %rsi      # 0xf275
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 0x82e7(%rip), %rsi      # 0xf291
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 0x82b0(%rip), %rsi      # 0xf2a3
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 0x7063
cvtss2sd 0x6c(%rbx), %xmm0
movq 0xef8f(%rip), %rdi      # 0x15fc8
callq 0x3400
movq %rax, %r14
leaq 0x826f(%rip), %rsi      # 0xf2b7
movl $0x3, %edx
movq %rax, %rdi
callq 0x32b0
leaq 0x825f(%rip), %rsi      # 0xf2bb
movl $0x1f, %edx
jmp 0x706f
leaq 0x8271(%rip), %rsi      # 0xf2db
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 0xef20(%rip), %rdi      # 0x15fc8
testl %esi, %esi
je 0x70f8
callq 0x3470
leaq 0x8241(%rip), %rsi      # 0xf2f9
movl $0x12, %edx
movq %rax, %rdi
callq 0x32b0
cmpl $0x2, 0x70(%rbx)
jl 0x70e3
movq 0xeef6(%rip), %rdi      # 0x15fc8
leaq 0x8f2b(%rip), %rsi      # 0x10004
movl $0x1, %edx
callq 0x32b0
movq 0xeede(%rip), %rdi      # 0x15fc8
leaq 0x821b(%rip), %rsi      # 0xf30c
movl $0x31, %edx
jmp 0x7104
leaq 0x81ed(%rip), %rsi      # 0xf2ec
movl $0xc, %edx
callq 0x32b0
movq 0xeeb8(%rip), %r14      # 0x15fc8
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 0x81d6(%rip), %rsi      # 0xf33e
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 0x81aa(%rip), %rsi      # 0xf35b
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 0x728c
leaq 0x8176(%rip), %rsi      # 0xf36e
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 0x8162(%rip), %rsi      # 0xf395
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 0x8147(%rip), %rsi      # 0xf39f
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 0x72de
movl $0x1, %ebp
xorl %ecx, %ecx
movq 0xed24(%rip), %r15      # 0x15fc8
leaq 0x8c4d(%rip), %r12      # 0xfef8
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 0x72ab
leaq 0x80d3(%rip), %rsi      # 0xf3b8
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 0x736b
movq 0xeca0(%rip), %rdi      # 0x15fc8
callq 0x3470
movq %rax, %r15
leaq 0x8089(%rip), %rsi      # 0xf3c0
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 0x73ac
leaq 0x8057(%rip), %rsi      # 0xf3cf
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 0x73ed
leaq 0x803b(%rip), %rsi      # 0xf3f4
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 0x746f
leaq 0x8039(%rip), %rsi      # 0xf433
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 0x746f
leaq 0x800d(%rip), %rsi      # 0xf448
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 0x7532
movq 0xeb3d(%rip), %r14      # 0x15fc8
leaq 0x7fe2(%rip), %rsi      # 0xf474
movl $0x1c, %edx
movq %r14, %rdi
callq 0x32b0
movq 0x80(%rbx), %rax
cmpq 0x78(%rbx), %rax
je 0x74fd
movl $0x1, %ebp
xorl %r13d, %r13d
movq 0xeb0d(%rip), %r15      # 0x15fc8
leaq 0x8a36(%rip), %r12      # 0xfef8
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 0x74c2
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