// File: /workspace/github_cpp_makefile_star2_O2/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 %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0xd7a2(%rip), %rdi      # 0x13fd0
callq 0x3110
leaq 0x5a09(%rip), %rsi      # 0xc243
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
cmpb $0x1, 0x10(%rbx)
jne 0x686b
movq 0xd779(%rip), %rdi      # 0x13fd0
leaq 0x59ff(%rip), %rsi      # 0xc25d
callq 0x3250
movq %rax, %rdi
callq 0x3110
movq 0xd75e(%rip), %r14      # 0x13fd0
movq %r14, %rdi
callq 0x3110
leaq 0x59f4(%rip), %rsi      # 0xc275
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movl 0x18(%rbx), %esi
movq %r14, %rdi
callq 0x3470
leaq 0x59ee(%rip), %rsi      # 0xc291
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movl 0x24(%rbx), %esi
movq %r14, %rdi
callq 0x3470
leaq 0x59de(%rip), %rsi      # 0xc2a3
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
cmpb $0x1, 0x68(%rbx)
jne 0x6907
movss 0x6c(%rbx), %xmm0
movq 0xd6e9(%rip), %rdi      # 0x13fd0
callq 0x31a0
leaq 0x59c4(%rip), %rsi      # 0xc2b7
movq %rax, %rdi
callq 0x3250
leaq 0x59b9(%rip), %rsi      # 0xc2bb
movq %rax, %rdi
jmp 0x6915
movq 0xd6c2(%rip), %rdi      # 0x13fd0
leaq 0x59c6(%rip), %rsi      # 0xc2db
callq 0x3250
movq %rax, %rdi
callq 0x3110
movl 0x70(%rbx), %esi
testl %esi, %esi
je 0x6966
movq 0xd6a0(%rip), %rdi      # 0x13fd0
callq 0x3470
leaq 0x59bd(%rip), %rsi      # 0xc2f9
movq %rax, %rdi
callq 0x3250
leaq 0x59c1(%rip), %r14      # 0xc30c
cmpl $0x2, 0x70(%rbx)
jl 0x696d
movq 0xd678(%rip), %rdi      # 0x13fd0
leaq 0x667d(%rip), %rsi      # 0xcfdc
callq 0x3250
jmp 0x696d
leaq 0x597f(%rip), %r14      # 0xc2ec
movq 0xd65c(%rip), %r15      # 0x13fd0
movq %r15, %rdi
movq %r14, %rsi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movq %r15, %rdi
callq 0x3110
leaq 0x59a8(%rip), %rsi      # 0xc33e
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movl 0x60(%rbx), %esi
movq %r15, %rdi
callq 0x3470
leaq 0x59a3(%rip), %rsi      # 0xc35b
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
movl 0x1c(%rbx), %eax
cmpl 0x18(%rbx), %eax
je 0x6a22
movq 0xd5f9(%rip), %r14      # 0x13fd0
leaq 0x5990(%rip), %rsi      # 0xc36e
movq %r14, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
leaq 0x59a0(%rip), %rsi      # 0xc395
movq %r14, %rdi
callq 0x3250
movl 0x1c(%rbx), %esi
subl 0x18(%rbx), %esi
movq %rax, %rdi
callq 0x3470
leaq 0x598d(%rip), %rsi      # 0xc39f
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
xorl %eax, %eax
movq 0xd5a5(%rip), %r14      # 0x13fd0
leaq 0x649e(%rip), %r15      # 0xced0
movl %eax, %r12d
movq 0x28(%rbx), %rax
movq 0x30(%rbx), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %r12, %rcx
jbe 0x6a67
movl (%rax,%r12,4), %esi
movq %r14, %rdi
callq 0x3470
movq %rax, %rdi
movq %r15, %rsi
callq 0x3250
leal 0x1(%r12), %eax
jmp 0x6a32
movq 0xd562(%rip), %rdi      # 0x13fd0
leaq 0x5943(%rip), %rsi      # 0xc3b8
callq 0x3250
movq %rax, %rdi
callq 0x3110
movl 0x14(%rbx), %esi
cmpl $0x1, %esi
jle 0x6aad
movq 0xd53f(%rip), %rdi      # 0x13fd0
callq 0x3470
leaq 0x5923(%rip), %rsi      # 0xc3c0
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3110
cmpb $0x1, 0x20(%rbx)
jne 0x6ace
movq 0xd516(%rip), %rdi      # 0x13fd0
leaq 0x590e(%rip), %rsi      # 0xc3cf
callq 0x3250
movq %rax, %rdi
callq 0x3110
cmpb $0x1, 0x76(%rbx)
jne 0x6aef
movq 0xd4f5(%rip), %rdi      # 0x13fd0
leaq 0x5912(%rip), %rsi      # 0xc3f4
callq 0x3250
movq %rax, %rdi
callq 0x3110
cmpb $0x1, 0x74(%rbx)
jne 0x6b31
movq 0xd4d4(%rip), %rdi      # 0x13fd0
leaq 0x5930(%rip), %rsi      # 0xc433
callq 0x3250
movq %rax, %rdi
callq 0x3110
cmpb $0x1, 0x75(%rbx)
jne 0x6b31
movq 0xd4b3(%rip), %rdi      # 0x13fd0
leaq 0x5924(%rip), %rsi      # 0xc448
callq 0x3250
movq %rax, %rdi
callq 0x3110
movq 0x80(%rbx), %rax
subq 0x78(%rbx), %rax
cmpq $0x11, %rax
jb 0x6b9c
movq 0xd487(%rip), %r14      # 0x13fd0
leaq 0x5924(%rip), %rsi      # 0xc474
movq %r14, %rdi
callq 0x3250
xorl %eax, %eax
leaq 0x636f(%rip), %r15      # 0xced0
movl %eax, %r12d
movq 0x80(%rbx), %rax
subq 0x78(%rbx), %rax
sarq $0x3, %rax
cmpq %r12, %rax
jbe 0x6ba8
movq %r14, %rdi
movq %r15, %rsi
callq 0x3250
movq 0x78(%rbx), %rcx
movsd (%rcx,%r12,8), %xmm0
movq %rax, %rdi
callq 0x3400
leal 0x1(%r12), %eax
jmp 0x6b61
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0xd421(%rip), %rdi      # 0x13fd0
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x3110
nop