#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 */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *);
void transitbisec_ShowHelp(FILE *outfile) {
  fprintf(
      outfile,
      "Compute the bisectors and bisector spans of transits in a light curve. "
      "The user specifies the source for parameters used to define the "
      "transits. The parameters include:\n"
      "\t\"Tc0\" - time of transit center.\n"
      "\t\"P\" - transit period.\n"
      "\t\"rprstar\" - radius of planet / radius of star.\n"
      "\t\"bimpact\" - impact parameter of the transit in units of the stellar "
      "radius.\n"
      "\t\"arstar\" - semimajor axis / radius of star.\n"
      "\t\"eccen\" - orbital eccentricity.\n"
      "\t\"omega\" - argument of periastron in degrees.\n"
      "\t\"exptime\" - exposure time of observations in days (transit model "
      "is\n"
      "\t\tintegrated over an exposure.\n"
      "\t\"quad\" or \"nonlin\" - The type of limb darkening law. Quadratic or "
      "nonlinear\n"
      "\t\tlimb darkening is supported. If \"quad\" is used, there are 2 "
      "coefficients\n"
      "\t\tif \"nonlin\" is used, then there are 4 coefficients.\n"
      "For each parameter the user specifies the source for the value to use. "
      "This can either be the keyword \"fix\" followed by the value to use for "
      "all light curves, \"list\" to read the parameter from the light curve "
      "list (use the \"column\" keyword folloed by a number to indicate the "
      "column number from the list to use, otherwise the next column in the "
      "list will be assumed), \"fixcolumn\" followed by the name or number of "
      "an output column from a previously executed command, or \"expr\" "
      "followed by an analytic expression. Following this are a number of "
      "optional parameters used to define how the bisectors are calculated and "
      "output. \"bisec_low_value\" is the fraction of the transit depth from "
      "the out-of-transit level at which to start computing the bisector, it "
      "defaults to 0.05. \"bisec_high_value\" is the fraction of the transit "
      "depth from the out-of-transit level at which to stop computing the "
      "bisector, it defaults to 0.95. \"bisec_stepsize\" is the step size in "
      "fractions of the transit depth at which to determine the bisector "
      "(default is 0.005). \"span_low_value\" is the fraction of the transit "
      "depth from the out-of-transit level to use for one end of the bisector "
      "span, the default is 0.1. \"span_high_value\" is the fraction of the "
      "transit depth from the out-of-transit level to use for the other end of "
      "the bisector span, the default is 0.9. One can control the maximum "
      "allowed gap in time in the sampling across a transit for the bisector "
      "of a transit to be computed using the \"max_delta_t\" keyword, the "
      "default is 0.03 days = 43 minutes. The minimum amount of out-of-transit "
      "before the start of ingress and after the end of egress that must be "
      "present for the bisector of a transit to be computed is controlled with "
      "the \"min_oot_frac\" keyword. This is expressed in units of the transit "
      "duration. The default value is 0.25. By default this command will "
      "calculate the bisectors by generating a smooth function of time vs flux "
      "and interpolating at the desired flux levels. Alternatively the "
      "bisector can be computed by binning the data into flux level bins and "
      "computing the temporal moment in each bin, this will be done if "
      "\"bisec_usemoments\" keyword is given. The factor by which the model "
      "will be resampled can be adjusted with the \"bisec_high_samp_factor\" "
      "keyword, the default is 10. The time-scale at which residuals from a "
      "Mandel & Agol transit model are smoothed using a low-pass moving mean "
      "filter can be adjusted with the \"resid_bin_time_lowpass\" keyword. The "
      "default is 0.05 days. Set either value to 0 or a negative number to not "
      "apply the filter. The order of a polynomial to fit and subtract from "
      "the residuals can be adjusted with the \"resid_fit_poly_order\" "
      "keyword. The default is 1. If the keyword \"refit_Tc\" is specified, "
      "then the transit centers for each transit will be individually "
      "determined. If the keyword \"geterror\" is specified then bisector span "
      "uncertainties will be estimated by injecting simulated transits into "
      "the light curve (one can specify the number of simulations to run using "
      "the optional \"Nsims\" keyword). Finally one may output the bisectors "
      "and/or the bisector spans by giving the \"obisec\" and/or \"ospan\" "
      "keywords, in each case followed by the directory to output the results "
      "to. By default bisectors will be output to the file "
      "OBISECDIR/LCNAME.bisec and bisector spans will be output to the file "
      "OSPANDIR/LCNAME.span, where LCNAME is the basename of the light curve, "
      "and OBISECDIR or OSPANDIR is the specified directory. One can "
      "optionally specify a format rule for the output name by giving the "
      "\"nameformat\" keyword followed by the formatstring. This uses the same "
      "syntax as the \"-o\" command, see \"vartools -help -o\" for an "
      "explanation.\n\n");
}


x86 assembly (clang, -O0):
<transitbisec_ShowHelp>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xed9(%rip),%rsi
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<transitbisec_ShowHelp>:
mov    %rdi,%rcx
lea    0xee6(%rip),%rdi
mov    $0x1169,%esi
mov    $0x1,%edx
jmp    1030 <fwrite@plt>

LLVM IR (-O0):
@.str = [4458 x i8] c"Compute the bisectors and bisector spans of transits in a light curve. The user specifies the source for parameters used to define the transits. The parameters include:\0A\09\22Tc0\22 - time of transit center.\0A\09\22P\22 - transit period.\0A\09\22rprstar\22 - radius of planet / radius of star.\0A\09\22bimpact\22 - impact parameter of the transit in units of the stellar radius.\0A\09\22arstar\22 - semimajor axis / radius of star.\0A\09\22eccen\22 - orbital eccentricity.\0A\09\22omega\22 - argument of periastron in degrees.\0A\09\22exptime\22 - exposure time of observations in days (transit model is\0A\09\09integrated over an exposure.\0A\09\22quad\22 or \22nonlin\22 - The type of limb darkening law. Quadratic or nonlinear\0A\09\09limb darkening is supported. If \22quad\22 is used, there are 2 coefficients\0A\09\09if \22nonlin\22 is used, then there are 4 coefficients.\0AFor each parameter the user specifies the source for the value to use. This can either be the keyword \22fix\22 followed by the value to use for all light curves, \22list\22 to read the parameter from the light curve list (use the \22column\22 keyword folloed by a number to indicate the column number from the list to use, otherwise the next column in the list will be assumed), \22fixcolumn\22 followed by the name or number of an output column from a previously executed command, or \22expr\22 followed by an analytic expression. Following this are a number of optional parameters used to define how the bisectors are calculated and output. \22bisec_low_value\22 is the fraction of the transit depth from the out-of-transit level at which to start computing the bisector, it defaults to 0.05. \22bisec_high_value\22 is the fraction of the transit depth from the out-of-transit level at which to stop computing the bisector, it defaults to 0.95. \22bisec_stepsize\22 is the step size in fractions of the transit depth at which to determine the bisector (default is 0.005). \22span_low_value\22 is the fraction of the transit depth from the out-of-transit level to use for one end of the bisector span, the default is 0.1. \22span_high_value\22 is the fraction of the transit depth from the out-of-transit level to use for the other end of the bisector span, the default is 0.9. One can control the maximum allowed gap in time in the sampling across a transit for the bisector of a transit to be computed using the \22max_delta_t\22 keyword, the default is 0.03 days = 43 minutes. The minimum amount of out-of-transit before the start of ingress and after the end of egress that must be present for the bisector of a transit to be computed is controlled with the \22min_oot_frac\22 keyword. This is expressed in units of the transit duration. The default value is 0.25. By default this command will calculate the bisectors by generating a smooth function of time vs flux and interpolating at the desired flux levels. Alternatively the bisector can be computed by binning the data into flux level bins and computing the temporal moment in each bin, this will be done if \22bisec_usemoments\22 keyword is given. The factor by which the model will be resampled can be adjusted with the \22bisec_high_samp_factor\22 keyword, the default is 10. The time-scale at which residuals from a Mandel & Agol transit model are smoothed using a low-pass moving mean filter can be adjusted with the \22resid_bin_time_lowpass\22 keyword. The default is 0.05 days. Set either value to 0 or a negative number to not apply the filter. The order of a polynomial to fit and subtract from the residuals can be adjusted with the \22resid_fit_poly_order\22 keyword. The default is 1. If the keyword \22refit_Tc\22 is specified, then the transit centers for each transit will be individually determined. If the keyword \22geterror\22 is specified then bisector span uncertainties will be estimated by injecting simulated transits into the light curve (one can specify the number of simulations to run using the optional \22Nsims\22 keyword). Finally one may output the bisectors and/or the bisector spans by giving the \22obisec\22 and/or \22ospan\22 keywords, in each case followed by the directory to output the results to. By default bisectors will be output to the file OBISECDIR/LCNAME.bisec and bisector spans will be output to the file OSPANDIR/LCNAME.span, where LCNAME is the basename of the light curve, and OBISECDIR or OSPANDIR is the specified directory. One can optionally specify a format rule for the output name by giving the \22nameformat\22 keyword followed by the formatstring. This uses the same syntax as the \22-o\22 command, see \22vartools -help -o\22 for an explanation.\0A\0A\00"
define void @transitbisec_ShowHelp(i32* %0) {
%2 = alloca i32*
store i32* %0, i32** %2
%3 = load i32*, i32** %2
%4 = call i32 @fprintf(i32* %3, i8* getelementptr inbounds ([4458 x i8], [4458 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [4458 x i8] c"Compute the bisectors and bisector spans of transits in a light curve. The user specifies the source for parameters used to define the transits. The parameters include:\0A\09\22Tc0\22 - time of transit center.\0A\09\22P\22 - transit period.\0A\09\22rprstar\22 - radius of planet / radius of star.\0A\09\22bimpact\22 - impact parameter of the transit in units of the stellar radius.\0A\09\22arstar\22 - semimajor axis / radius of star.\0A\09\22eccen\22 - orbital eccentricity.\0A\09\22omega\22 - argument of periastron in degrees.\0A\09\22exptime\22 - exposure time of observations in days (transit model is\0A\09\09integrated over an exposure.\0A\09\22quad\22 or \22nonlin\22 - The type of limb darkening law. Quadratic or nonlinear\0A\09\09limb darkening is supported. If \22quad\22 is used, there are 2 coefficients\0A\09\09if \22nonlin\22 is used, then there are 4 coefficients.\0AFor each parameter the user specifies the source for the value to use. This can either be the keyword \22fix\22 followed by the value to use for all light curves, \22list\22 to read the parameter from the light curve list (use the \22column\22 keyword folloed by a number to indicate the column number from the list to use, otherwise the next column in the list will be assumed), \22fixcolumn\22 followed by the name or number of an output column from a previously executed command, or \22expr\22 followed by an analytic expression. Following this are a number of optional parameters used to define how the bisectors are calculated and output. \22bisec_low_value\22 is the fraction of the transit depth from the out-of-transit level at which to start computing the bisector, it defaults to 0.05. \22bisec_high_value\22 is the fraction of the transit depth from the out-of-transit level at which to stop computing the bisector, it defaults to 0.95. \22bisec_stepsize\22 is the step size in fractions of the transit depth at which to determine the bisector (default is 0.005). \22span_low_value\22 is the fraction of the transit depth from the out-of-transit level to use for one end of the bisector span, the default is 0.1. \22span_high_value\22 is the fraction of the transit depth from the out-of-transit level to use for the other end of the bisector span, the default is 0.9. One can control the maximum allowed gap in time in the sampling across a transit for the bisector of a transit to be computed using the \22max_delta_t\22 keyword, the default is 0.03 days = 43 minutes. The minimum amount of out-of-transit before the start of ingress and after the end of egress that must be present for the bisector of a transit to be computed is controlled with the \22min_oot_frac\22 keyword. This is expressed in units of the transit duration. The default value is 0.25. By default this command will calculate the bisectors by generating a smooth function of time vs flux and interpolating at the desired flux levels. Alternatively the bisector can be computed by binning the data into flux level bins and computing the temporal moment in each bin, this will be done if \22bisec_usemoments\22 keyword is given. The factor by which the model will be resampled can be adjusted with the \22bisec_high_samp_factor\22 keyword, the default is 10. The time-scale at which residuals from a Mandel & Agol transit model are smoothed using a low-pass moving mean filter can be adjusted with the \22resid_bin_time_lowpass\22 keyword. The default is 0.05 days. Set either value to 0 or a negative number to not apply the filter. The order of a polynomial to fit and subtract from the residuals can be adjusted with the \22resid_fit_poly_order\22 keyword. The default is 1. If the keyword \22refit_Tc\22 is specified, then the transit centers for each transit will be individually determined. If the keyword \22geterror\22 is specified then bisector span uncertainties will be estimated by injecting simulated transits into the light curve (one can specify the number of simulations to run using the optional \22Nsims\22 keyword). Finally one may output the bisectors and/or the bisector spans by giving the \22obisec\22 and/or \22ospan\22 keywords, in each case followed by the directory to output the results to. By default bisectors will be output to the file OBISECDIR/LCNAME.bisec and bisector spans will be output to the file OSPANDIR/LCNAME.span, where LCNAME is the basename of the light curve, and OBISECDIR or OSPANDIR is the specified directory. One can optionally specify a format rule for the output name by giving the \22nameformat\22 keyword followed by the formatstring. This uses the same syntax as the \22-o\22 command, see \22vartools -help -o\22 for an explanation.\0A\0A\00"
define void @transitbisec_ShowHelp(i32* nocapture %0) {
%2 = tail call i64 @fwrite(i8* getelementptr inbounds ([4458 x i8], [4458 x i8]* @.str, i64 0, i64 0), i64 4457, i64 1, i32* %0)
ret void
}