#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *);
void print_usage() {
  printf(
      "usage: lognormal_kde [-hv] [-a float] [-b float] [-k int] [-r string] "
      "[-t float] min_x max_x num filename\n"
      "\n"
      "Select a smoothing bandwidth and evaluate a log-normal KDE.\n"
      "\n"
      "positional arguments:\n"
      "min_x       Lower bound of the range over which to evaluate the KDE.\n"
      "max_x       Upper bound of the range over which to evaluate the KDE.\n"
      "num         Number of grid points over which to evaluate the KDE.\n"
      "filename    File from which to read data.\n"
      "\n"
      "optional arguments:\n"
      "-h    Show this help message and exit.\n"
      "-v    Verbose mode (default: false).\n"
      "-a    Lower logarithmic bound of the range over which to evaluate\n"
      "      the risk function (default: -1).\n"
      "-b    Upper logarithmic bound of the range over which to evaluate\n"
      "      the risk function (default: 1).\n"
      "-k    Number of grid points over which to evaluate the risk \n"
      "      function (default: 50).\n"
      "-r    Risk function (choose from exact, asymptotic, lscv, lcv;\n"
      "      default: lcv)\n"
      "-t    Treshold such that contributions that are further than `t`\n"
      "      sigma away are not evaluated (default: 0--disabled).");
}


x86 assembly (clang, -O0):
<print_usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [1040 x i8] c"usage: lognormal_kde [-hv] [-a float] [-b float] [-k int] [-r string] [-t float] min_x max_x num filename\0A\0ASelect a smoothing bandwidth and evaluate a log-normal KDE.\0A\0Apositional arguments:\0Amin_x Lower bound of the range over which to evaluate the KDE.\0Amax_x Upper bound of the range over which to evaluate the KDE.\0Anum Number of grid points over which to evaluate the KDE.\0Afilename File from which to read data.\0A\0Aoptional arguments:\0A-h Show this help message and exit.\0A-v Verbose mode (default: false).\0A-a Lower logarithmic bound of the range over which to evaluate\0A the risk function (default: -1).\0A-b Upper logarithmic bound of the range over which to evaluate\0A the risk function (default: 1).\0A-k Number of grid points over which to evaluate the risk \0A function (default: 50).\0A-r Risk function (choose from exact, asymptotic, lscv, lcv;\0A default: lcv)\0A-t Treshold such that contributions that are further than `t`\0A sigma away are not evaluated (default: 0--disabled).\00"
define void @print_usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1040 x i8], [1040 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [1040 x i8] c"usage: lognormal_kde [-hv] [-a float] [-b float] [-k int] [-r string] [-t float] min_x max_x num filename\0A\0ASelect a smoothing bandwidth and evaluate a log-normal KDE.\0A\0Apositional arguments:\0Amin_x Lower bound of the range over which to evaluate the KDE.\0Amax_x Upper bound of the range over which to evaluate the KDE.\0Anum Number of grid points over which to evaluate the KDE.\0Afilename File from which to read data.\0A\0Aoptional arguments:\0A-h Show this help message and exit.\0A-v Verbose mode (default: false).\0A-a Lower logarithmic bound of the range over which to evaluate\0A the risk function (default: -1).\0A-b Upper logarithmic bound of the range over which to evaluate\0A the risk function (default: 1).\0A-k Number of grid points over which to evaluate the risk \0A function (default: 50).\0A-r Risk function (choose from exact, asymptotic, lscv, lcv;\0A default: lcv)\0A-t Treshold such that contributions that are further than `t`\0A sigma away are not evaluated (default: 0--disabled).\00"
define void @print_usage() {
%1 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([1040 x i8], [1040 x i8]* @.str, i64 0, i64 0))
ret void
}