#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 jktebop_ShowHelp(FILE *outfile) {
  fprintf(
      outfile,
      "Fit or inject a JKTEBOP detached eclipsing binary model [in]to the "
      "light curves. The user must give either the \"inject\" keyword or the "
      "\"fit\" keyword to indicate whether the model should be injected into "
      "the light curve, or fitted to it. After that the user specifies how to "
      "initialize the parameters used by this model. The parameters include:\n"
      "\t\"Period\" - the orbital period in days.\n"
      "\t\"T0\" - central time of a primary eclipse.\n"
      "\t\"r1+r2\" - the sum of the radii of the stars divided by the "
      "semi-major axis.\n"
      "\t\"r2/r1\" - the ratio of the stellar radii.\n"
      "\t\"M2/M1\" - the mass ratio.\n"
      "\teither:\n"
      "\t\t\"i\" - the inclination angle in degrees (90 degrees is an edge-on "
      "orbit)\n"
      "\tor:\n"
      "\t\t\"bimpact\" - the impact parameter of the primary eclipse. This is "
      "the\n"
      "\t\t            projected distance between the centers of the two "
      "stars\n"
      "\t\t            at the time T0, divided by the sum of the radii of the "
      "stars.\n"
      "\t\t            It goes from 0 for a central eclipse, to 1 for a just\n"
      "\t\t            grazing eclipse.\n"
      "\t\"esinomega\" - the eccentricity times the sin of the argument of "
      "pericenter.\n"
      "\t\"ecosomega\" - the eccentricity times the cos of the argument of "
      "pericenter.\n"
      "\t\"LD[1-2]\" - the limb darkening coefficients for each star. After\n"
      "\t\tgiving the keyword the user must specify the LD law to use\n"
      "\t\twhich can be \"linear\", \"quad\", \"log\" or \"sqrt\". For\n"
      "\t\t\"LD2\" the user can also specify \"lockLD1\" which forces\n"
      "\t\tthe secondary star to have the same LD coefficients as the\n"
      "\t\tprimary star. If a linear law is used, the user must specify\n"
      "\t\tone coefficient, for the other laws the user specifies two\n"
      "\t\tcoefficients. If \"lockLD1\" is used for \"LD2\", the user\n"
      "\t\tdoes not provide any coefficients for \"LD2\".\n"
      "\t\"gravdark[1-2]\" - Optional gravity darkening coefficients for each "
      "star.\n"
      "\t\tIf not given on the command line, a value of 1.0 is assumed for "
      "each star.\n"
      "\t\tSuggested values are 1.0 for stars with radiative envelopes, and "
      "0.3 for\n"
      "\t\tstars with convective envelopes.\n"
      "\t\"reflection[1-2]\" - Optional reflection effect coefficients for "
      "each star.\n"
      "\t\tIf not given on the command line they will be calculated. If a "
      "value <= 0\n"
      "\t\tis given, they will also be calculated.\n"
      "\t\"L3\" - Optional third light parameter. This is set to 0 by "
      "default.\n"
      "\t\"tidallag\" - Optional tidal lag angle in degrees. This is set to 0\n"
      "\t\tby default.\n"
      "For each parameter the user specifies the source for the initial\n"
      "parameter value. This can either be the keyword \"fix\" followed by\n"
      "the value to use for all light curves, \"list\" to read the parameter\n"
      "from the light curve list (use the \"column\" keyword followed by a\n"
      "number to indicate the column number from the list to use, otherwise\n"
      "the next column in the list will be assumed), \"fixcolumn\"\n"
      "followed by the name or number of an output column from a previously\n"
      "executed command, or \"expr\" followed by an analytic expression. For\n"
      "each parameter the user can give the \"vary\"\n"
      "keyword which indicates that the parameter is to be varied in a\n"
      "fit. If not given the parameter will be fixed in the fit. Finally the\n"
      "user may use the \"correctlc\" keyword to subtract the best-fit model\n"
      "from the light curve, and the \"omodel\" keyword to output the model\n"
      "for each light curve. If the \"omodel\" keyword is given, the user\n"
      "should specify the directory to output the model light curves to. By\n"
      "default the output light curve will have the name\n"
      "outdir/BASELC_NAME.jktebop where BASELC_NAME is the basename of the\n"
      "input light curve. The user may however give the \"format\" keyword\n"
      "followed by a format string to specify arbitrary filenames. The\n"
      "syntax is the same as for the \"-o\" VARTOOLS command. The user may\n"
      "also output a model curve file sampled at uniform spacing by giving\n"
      "the \"ocurve\" keyword. This must be followed by the keyword \"jd\"\n"
      "or the keyword \"phase\" to indicate whether the curve is output with\n"
      "JD as the independent variable, or if it is phase. One can optional\n"
      "specify the step-size of the curve by giving the \"step\" keyword "
      "followed\n"
      "by the value. The user must then give the \"outdir\" keyword and the\n"
      "directory to output the curve files to. The \"format\" keyword may be\n"
      "used to specify arbitrary filenames. The default output will be\n"
      "outdir/BASELC_NAME.jktebopcurve. If you use this\n"
      "routine the following references should be cited: Southworth et\n"
      "al. (2004MNRAS.351.1277S), Popper & Etzel (1981AJ.....86..102), Etzel\n"
      "(1981psbs.conf..111E), and/or Nelson & Davis (1972ApJ...174..617N)\n\n");
}


x86 assembly (clang, -O0):
<jktebop_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):
<jktebop_ShowHelp>:
mov    %rdi,%rcx
lea    0xee6(%rip),%rdi
mov    $0x10fa,%esi
mov    $0x1,%edx
jmp    1030 <fwrite@plt>

LLVM IR (-O0):
@.str = [4347 x i8] c"Fit or inject a JKTEBOP detached eclipsing binary model [in]to the light curves. The user must give either the \22inject\22 keyword or the \22fit\22 keyword to indicate whether the model should be injected into the light curve, or fitted to it. After that the user specifies how to initialize the parameters used by this model. The parameters include:\0A\09\22Period\22 - the orbital period in days.\0A\09\22T0\22 - central time of a primary eclipse.\0A\09\22r1+r2\22 - the sum of the radii of the stars divided by the semi-major axis.\0A\09\22r2/r1\22 - the ratio of the stellar radii.\0A\09\22M2/M1\22 - the mass ratio.\0A\09either:\0A\09\09\22i\22 - the inclination angle in degrees (90 degrees is an edge-on orbit)\0A\09or:\0A\09\09\22bimpact\22 - the impact parameter of the primary eclipse. This is the\0A\09\09 projected distance between the centers of the two stars\0A\09\09 at the time T0, divided by the sum of the radii of the stars.\0A\09\09 It goes from 0 for a central eclipse, to 1 for a just\0A\09\09 grazing eclipse.\0A\09\22esinomega\22 - the eccentricity times the sin of the argument of pericenter.\0A\09\22ecosomega\22 - the eccentricity times the cos of the argument of pericenter.\0A\09\22LD[1-2]\22 - the limb darkening coefficients for each star. After\0A\09\09giving the keyword the user must specify the LD law to use\0A\09\09which can be \22linear\22, \22quad\22, \22log\22 or \22sqrt\22. For\0A\09\09\22LD2\22 the user can also specify \22lockLD1\22 which forces\0A\09\09the secondary star to have the same LD coefficients as the\0A\09\09primary star. If a linear law is used, the user must specify\0A\09\09one coefficient, for the other laws the user specifies two\0A\09\09coefficients. If \22lockLD1\22 is used for \22LD2\22, the user\0A\09\09does not provide any coefficients for \22LD2\22.\0A\09\22gravdark[1-2]\22 - Optional gravity darkening coefficients for each star.\0A\09\09If not given on the command line, a value of 1.0 is assumed for each star.\0A\09\09Suggested values are 1.0 for stars with radiative envelopes, and 0.3 for\0A\09\09stars with convective envelopes.\0A\09\22reflection[1-2]\22 - Optional reflection effect coefficients for each star.\0A\09\09If not given on the command line they will be calculated. If a value <= 0\0A\09\09is given, they will also be calculated.\0A\09\22L3\22 - Optional third light parameter. This is set to 0 by default.\0A\09\22tidallag\22 - Optional tidal lag angle in degrees. This is set to 0\0A\09\09by default.\0AFor each parameter the user specifies the source for the initial\0Aparameter value. This can either be the keyword \22fix\22 followed by\0Athe value to use for all light curves, \22list\22 to read the parameter\0Afrom the light curve list (use the \22column\22 keyword followed by a\0Anumber to indicate the column number from the list to use, otherwise\0Athe next column in the list will be assumed), \22fixcolumn\22\0Afollowed by the name or number of an output column from a previously\0Aexecuted command, or \22expr\22 followed by an analytic expression. For\0Aeach parameter the user can give the \22vary\22\0Akeyword which indicates that the parameter is to be varied in a\0Afit. If not given the parameter will be fixed in the fit. Finally the\0Auser may use the \22correctlc\22 keyword to subtract the best-fit model\0Afrom the light curve, and the \22omodel\22 keyword to output the model\0Afor each light curve. If the \22omodel\22 keyword is given, the user\0Ashould specify the directory to output the model light curves to. By\0Adefault the output light curve will have the name\0Aoutdir/BASELC_NAME.jktebop where BASELC_NAME is the basename of the\0Ainput light curve. The user may however give the \22format\22 keyword\0Afollowed by a format string to specify arbitrary filenames. The\0Asyntax is the same as for the \22-o\22 VARTOOLS command. The user may\0Aalso output a model curve file sampled at uniform spacing by giving\0Athe \22ocurve\22 keyword. This must be followed by the keyword \22jd\22\0Aor the keyword \22phase\22 to indicate whether the curve is output with\0AJD as the independent variable, or if it is phase. One can optional\0Aspecify the step-size of the curve by giving the \22step\22 keyword followed\0Aby the value. The user must then give the \22outdir\22 keyword and the\0Adirectory to output the curve files to. The \22format\22 keyword may be\0Aused to specify arbitrary filenames. The default output will be\0Aoutdir/BASELC_NAME.jktebopcurve. If you use this\0Aroutine the following references should be cited: Southworth et\0Aal. (2004MNRAS.351.1277S), Popper & Etzel (1981AJ.....86..102), Etzel\0A(1981psbs.conf..111E), and/or Nelson & Davis (1972ApJ...174..617N)\0A\0A\00"
define void @jktebop_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 ([4347 x i8], [4347 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [4347 x i8] c"Fit or inject a JKTEBOP detached eclipsing binary model [in]to the light curves. The user must give either the \22inject\22 keyword or the \22fit\22 keyword to indicate whether the model should be injected into the light curve, or fitted to it. After that the user specifies how to initialize the parameters used by this model. The parameters include:\0A\09\22Period\22 - the orbital period in days.\0A\09\22T0\22 - central time of a primary eclipse.\0A\09\22r1+r2\22 - the sum of the radii of the stars divided by the semi-major axis.\0A\09\22r2/r1\22 - the ratio of the stellar radii.\0A\09\22M2/M1\22 - the mass ratio.\0A\09either:\0A\09\09\22i\22 - the inclination angle in degrees (90 degrees is an edge-on orbit)\0A\09or:\0A\09\09\22bimpact\22 - the impact parameter of the primary eclipse. This is the\0A\09\09 projected distance between the centers of the two stars\0A\09\09 at the time T0, divided by the sum of the radii of the stars.\0A\09\09 It goes from 0 for a central eclipse, to 1 for a just\0A\09\09 grazing eclipse.\0A\09\22esinomega\22 - the eccentricity times the sin of the argument of pericenter.\0A\09\22ecosomega\22 - the eccentricity times the cos of the argument of pericenter.\0A\09\22LD[1-2]\22 - the limb darkening coefficients for each star. After\0A\09\09giving the keyword the user must specify the LD law to use\0A\09\09which can be \22linear\22, \22quad\22, \22log\22 or \22sqrt\22. For\0A\09\09\22LD2\22 the user can also specify \22lockLD1\22 which forces\0A\09\09the secondary star to have the same LD coefficients as the\0A\09\09primary star. If a linear law is used, the user must specify\0A\09\09one coefficient, for the other laws the user specifies two\0A\09\09coefficients. If \22lockLD1\22 is used for \22LD2\22, the user\0A\09\09does not provide any coefficients for \22LD2\22.\0A\09\22gravdark[1-2]\22 - Optional gravity darkening coefficients for each star.\0A\09\09If not given on the command line, a value of 1.0 is assumed for each star.\0A\09\09Suggested values are 1.0 for stars with radiative envelopes, and 0.3 for\0A\09\09stars with convective envelopes.\0A\09\22reflection[1-2]\22 - Optional reflection effect coefficients for each star.\0A\09\09If not given on the command line they will be calculated. If a value <= 0\0A\09\09is given, they will also be calculated.\0A\09\22L3\22 - Optional third light parameter. This is set to 0 by default.\0A\09\22tidallag\22 - Optional tidal lag angle in degrees. This is set to 0\0A\09\09by default.\0AFor each parameter the user specifies the source for the initial\0Aparameter value. This can either be the keyword \22fix\22 followed by\0Athe value to use for all light curves, \22list\22 to read the parameter\0Afrom the light curve list (use the \22column\22 keyword followed by a\0Anumber to indicate the column number from the list to use, otherwise\0Athe next column in the list will be assumed), \22fixcolumn\22\0Afollowed by the name or number of an output column from a previously\0Aexecuted command, or \22expr\22 followed by an analytic expression. For\0Aeach parameter the user can give the \22vary\22\0Akeyword which indicates that the parameter is to be varied in a\0Afit. If not given the parameter will be fixed in the fit. Finally the\0Auser may use the \22correctlc\22 keyword to subtract the best-fit model\0Afrom the light curve, and the \22omodel\22 keyword to output the model\0Afor each light curve. If the \22omodel\22 keyword is given, the user\0Ashould specify the directory to output the model light curves to. By\0Adefault the output light curve will have the name\0Aoutdir/BASELC_NAME.jktebop where BASELC_NAME is the basename of the\0Ainput light curve. The user may however give the \22format\22 keyword\0Afollowed by a format string to specify arbitrary filenames. The\0Asyntax is the same as for the \22-o\22 VARTOOLS command. The user may\0Aalso output a model curve file sampled at uniform spacing by giving\0Athe \22ocurve\22 keyword. This must be followed by the keyword \22jd\22\0Aor the keyword \22phase\22 to indicate whether the curve is output with\0AJD as the independent variable, or if it is phase. One can optional\0Aspecify the step-size of the curve by giving the \22step\22 keyword followed\0Aby the value. The user must then give the \22outdir\22 keyword and the\0Adirectory to output the curve files to. The \22format\22 keyword may be\0Aused to specify arbitrary filenames. The default output will be\0Aoutdir/BASELC_NAME.jktebopcurve. If you use this\0Aroutine the following references should be cited: Southworth et\0Aal. (2004MNRAS.351.1277S), Popper & Etzel (1981AJ.....86..102), Etzel\0A(1981psbs.conf..111E), and/or Nelson & Davis (1972ApJ...174..617N)\0A\0A\00"
define void @jktebop_ShowHelp(i32* nocapture %0) {
%2 = tail call i64 @fwrite(i8* getelementptr inbounds ([4347 x i8], [4347 x i8]* @.str, i64 0, i64 0), i64 4346, i64 1, i32* %0)
ret void
}