// File: UCBASiCS[P]SPRIGHT/src/config.cpp
// Function: Config::help()
void Config::help()
{
    helpDisplayed = true;

    std::cout   << std::endl << "<===== HELP =====>"
    << std::endl << std::endl
    << " [-a or --experiment]" << std::endl
    << "     Run experiment mode."  
    << std::endl << std::endl
    << " [-b BINS or --bins BINS]" << std::endl
    << "     Set the bins to use." << std::endl
    << "     Example: -b \"3 12 48\"."
    << std::endl << std::endl
    << " [-c or --samples]" << std::endl
    << "     Do not count the number of signal samples used in the front-end and display it in the results section."
    << std::endl << std::endl
    << " [-e NUM or --chains NUM]" << std::endl
    << "     Set the number of chains to use in the back-end for fast search."
    << std::endl << std::endl
    << " [-f FNAME or --file FNAME]" << std::endl
    << "     Input file to use" << std::endl
    << "     Example: -f \"timeSignal.txt\"."
    << std::endl << std::endl
    << " [-h or --help]" << std::endl
    << "     Displays help."
    << std::endl << std::endl
    << " [-i NUM or --iterations NUM]" << std::endl
    << "     Set the number of iterations." << std::endl
    << "     When the algorithm is be executed several times, the results will be averaged."
    << std::endl << std::endl
    << " [-k NUM or --sparsity NUM]" << std::endl
    << "     Set the signal sparsity. The input signal will have k uniformly distributed non zero frequency." << std::endl
    << "     Note: the following assertions should be true (k <= n) and (k <= 2*min(Bins))."
    << std::endl << std::endl
    << " [-l or --ml]" << std::endl
    << "     Enable the maximum likelihood detection." << std::endl
    << "     Note: This may be required when the snr is really low but it will dramatically slow down the execution."
    << std::endl << std::endl
    << " [-n NUM or --length NUM]" << std::endl
    << "     Set the signal length."
    << std::endl << std::endl
    << " [-r or --reconstruct]" << std::endl
    << "     Force the back-end to reconstruct the full n-length frequency signal." << std::endl
    << "     Note: this can increase the execution time of the SPRIGHT algorithm."
    << std::endl << std::endl
    << " [-s NUM or --snr NUM]" << std::endl
    << "     Add noise to the input signal in frequency domain and specify the SNR in dB." << std::endl
    << "     Example: -s 15 will generate a noisy signal with a SNR equal to 15 dB."
    << std::endl << std::endl
    << " [-v or --verbose]" << std::endl
    << "     Enable the verbose mode: the details of each iteration will be displayed."
    << std::endl << std::endl
    << " [-u DIST or --distribution DIST]" << std::endl
    << "     Enable the non-uniform distribution mode: input the weights of your distribution." << std::endl
    << "     Example: -u \"3 2 1\" will divide your frequency domain in 3, the probability to be in the first third will be 1/2, the next 1/3 and the last 1/6"
    << std::endl << std::endl
    << " [-z FNAME or --write FNAME]" << std::endl
    << "     Write the output on the choosen file"
    << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movb $0x1, 0x11(%rax)
movq 0x20ded(%rip), %rdi     # 0x2ffc8
movq 0x20dce(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11278(%rip), %rsi     # 0x20469
callq 0x42b0
movq %rax, %rdi
movq 0x20db0(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20da1(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1125e(%rip), %rsi     # 0x2047c
callq 0x42b0
movq %rax, %rdi
movq 0x20d83(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11256(%rip), %rsi     # 0x20492
callq 0x42b0
movq %rax, %rdi
movq 0x20d65(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20d56(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11243(%rip), %rsi     # 0x204ac
callq 0x42b0
movq %rax, %rdi
movq 0x20d38(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1123f(%rip), %rsi     # 0x204c6
callq 0x42b0
movq %rax, %rdi
movq 0x20d1a(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1123b(%rip), %rsi     # 0x204e0
callq 0x42b0
movq %rax, %rdi
movq 0x20cfc(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20ced(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1122a(%rip), %rsi     # 0x204fc
callq 0x42b0
movq %rax, %rdi
movq 0x20ccf(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1121f(%rip), %rsi     # 0x2050f
callq 0x42b0
movq %rax, %rdi
movq 0x20cb1(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20ca2(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1125e(%rip), %rsi     # 0x2057b
callq 0x42b0
movq %rax, %rdi
movq 0x20c84(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1125a(%rip), %rsi     # 0x20595
callq 0x42b0
movq %rax, %rdi
movq 0x20c66(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20c57(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11273(%rip), %rsi     # 0x205db
callq 0x42b0
movq %rax, %rdi
movq 0x20c39(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11271(%rip), %rsi     # 0x205f7
callq 0x42b0
movq %rax, %rdi
movq 0x20c1b(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1126a(%rip), %rsi     # 0x2060e
callq 0x42b0
movq %rax, %rdi
movq 0x20bfd(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20bee(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11260(%rip), %rsi     # 0x20631
callq 0x42b0
movq %rax, %rdi
movq 0x20bd0(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11252(%rip), %rsi     # 0x20641
callq 0x42b0
movq %rax, %rdi
movq 0x20bb2(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20ba3(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11239(%rip), %rsi     # 0x20655
callq 0x42b0
movq %rax, %rdi
movq 0x20b85(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11239(%rip), %rsi     # 0x20673
callq 0x42b0
movq %rax, %rdi
movq 0x20b67(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1123e(%rip), %rsi     # 0x20696
callq 0x42b0
movq %rax, %rdi
movq 0x20b49(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20b3a(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11265(%rip), %rsi     # 0x206ea
callq 0x42b0
movq %rax, %rdi
movq 0x20b1c(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11263(%rip), %rsi     # 0x20706
callq 0x42b0
movq %rax, %rdi
movq 0x20afe(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x112aa(%rip), %rsi     # 0x2076b
callq 0x42b0
movq %rax, %rdi
movq 0x20ae0(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20ad1(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x112d1(%rip), %rsi     # 0x207bf
callq 0x42b0
movq %rax, %rdi
movq 0x20ab3(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x112c1(%rip), %rsi     # 0x207cd
callq 0x42b0
movq %rax, %rdi
movq 0x20a95(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x112d1(%rip), %rsi     # 0x207fb
callq 0x42b0
movq %rax, %rdi
movq 0x20a77(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20a68(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11311(%rip), %rsi     # 0x20868
callq 0x42b0
movq %rax, %rdi
movq 0x20a4a(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1130d(%rip), %rsi     # 0x20882
callq 0x42b0
movq %rax, %rdi
movq 0x20a2c(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20a1d(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x112fc(%rip), %rsi     # 0x2089e
callq 0x42b0
movq %rax, %rdi
movq 0x209ff(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x112f5(%rip), %rsi     # 0x208b5
callq 0x42b0
movq %rax, %rdi
movq 0x209e1(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11322(%rip), %rsi     # 0x20900
callq 0x42b0
movq %rax, %rdi
movq 0x209c3(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x209b4(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1133f(%rip), %rsi     # 0x2094a
callq 0x42b0
movq %rax, %rdi
movq 0x20996(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11338(%rip), %rsi     # 0x20961
callq 0x42b0
movq %rax, %rdi
movq 0x20978(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1136c(%rip), %rsi     # 0x209b3
callq 0x42b0
movq %rax, %rdi
movq 0x2095a(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x2094b(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x1138b(%rip), %rsi     # 0x209ff
callq 0x42b0
movq %rax, %rdi
movq 0x2092d(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11380(%rip), %rsi     # 0x20a12
callq 0x42b0
movq %rax, %rdi
movq 0x2090f(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20900(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x113a2(%rip), %rsi     # 0x20a61
callq 0x42b0
movq %rax, %rdi
movq 0x208e2(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x113a6(%rip), %rsi     # 0x20a83
callq 0x42b0
movq %rax, %rdi
movq 0x208c4(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x113df(%rip), %rsi     # 0x20ada
callq 0x42b0
movq %rax, %rdi
movq 0x208a6(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
movq 0x20897(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11447(%rip), %rsi     # 0x20b6f
callq 0x42b0
movq %rax, %rdi
movq 0x20879(%rip), %rsi     # 0x2ffb0
callq 0x42f0
movq %rax, %rdi
leaq 0x11446(%rip), %rsi     # 0x20b8c
callq 0x42b0
movq %rax, %rdi
movq 0x2085b(%rip), %rsi     # 0x2ffb0
callq 0x42f0
addq $0x10, %rsp
popq %rbp
retq