#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*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *);
void help(void) {
  printf("Usage: check2xsf [-aAbBckmRsSvx] [--FORMAT] infile [outfile]\n\n"
         "-a           rotate as though outputing in abc format\n"
         "-A           accumulate (sum) requested bands\n"
         "-b[=range]   include bands (as psi)\n"
         "-B[=range]   include bands (as densities)\n"
         "-c           include charge density\n"
         "-H           shift atoms by half a grid cell\n"
         "-k=range     include given k-points (default 1) for bands\n"
         "-m[=a,b,c]   assume input is molecule, not crystal, and move by\n"
         "               given nos of grid cells, or move automatically\n"
         "-R           don't rescale densities\n"
         "-s           include spin densities\n"
         "-S=range     include given spins (0 or 1) for bands\n"
         "-t=(x1,y1,z1)(x2,y2,z2)\n"
         "             rotate coords so 1st vector becomes 2nd\n"
         "-T=(x1,y1,z1)(x2,y2,z2)\n"
         "             ditto, but first vec expressed in absolute coords\n"
         "-v           be verbose (may be repeated)\n"
         "-x           expand rhombohedral cell to cubic/hexagonal "
         "automatically\n");
  printf("-x=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)\n"
         "             re-express in new basis given in terms of old\n"
         "-X=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)\n"
         "             re-express in new basis given in absolute terms\n\n");
  printf("FORMAT is one of: xsf       XCrySDen (default)\n"
         "                  cell      CASTEP .cell, cartesian and fractional\n"
         "                  cell_abc                abc and fractional\n"
         "                  cell_abs                cartesian and absolute\n"
         "                  cell_abc_abs            abc and absolute\n"
         "                  cml       Chemical Markup Language\n"
         "                  cube      Gaussian cube\n"
         "                  dx        OpenDX\n"
         "                  fdf       Flexible Data Format (Siesta) (beta)\n"
         "                  null      Discard output\n"
         "                  pdb       PDB\n"
         "                  pdbn      PDB with atoms numbered\n"
         "                  vasp      VASP output\n"
         "                  xplor     Xplor\n"
         "                  xyz       XYZ\n\n");
  printf("range specifies band numbers as \"a,b-c,d\"\n"
         "-b and -B are mutually exclusive. Only one of the x and t"
         " options may be given\n\n"
         "Input files ending .pdb are assumed to be in pdb format, otherwise\n"
         "automatic detection of .cell or .check input. Compatible with\n"
         ".check files from CASTEP 3.0 to 4.1 (and perhaps beyond).\n\n"
         "Version "
         "1.0"
         ", (c) MJ Rutter 2007,"
         " licenced under the GPL v2\n\n");
  exit(0);
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
lea    0x1255(%rip),%rdi
call   1030 <printf@plt>
lea    0x1307(%rip),%rdi
call   1030 <printf@plt>
lea    0x15d4(%rip),%rdi
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<help>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
lea    0x1257(%rip),%rdi
call   1030 <puts@plt>
lea    0x1308(%rip),%rdi
call   1030 <puts@plt>
lea    0x15d4(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [908 x i8] c"Usage: check2xsf [-aAbBckmRsSvx] [--FORMAT] infile [outfile]\0A\0A-a rotate as though outputing in abc format\0A-A accumulate (sum) requested bands\0A-b[=range] include bands (as psi)\0A-B[=range] include bands (as densities)\0A-c include charge density\0A-H shift atoms by half a grid cell\0A-k=range include given k-points (default 1) for bands\0A-m[=a,b,c] assume input is molecule, not crystal, and move by\0A given nos of grid cells, or move automatically\0A-R don't rescale densities\0A-s include spin densities\0A-S=range include given spins (0 or 1) for bands\0A-t=(x1,y1,z1)(x2,y2,z2)\0A rotate coords so 1st vector becomes 2nd\0A-T=(x1,y1,z1)(x2,y2,z2)\0A ditto, but first vec expressed in absolute coords\0A-v be verbose (may be repeated)\0A-x expand rhombohedral cell to cubic/hexagonal automatically\0A\00"
@.str.1 = [190 x i8] c"-x=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)\0A re-express in new basis given in terms of old\0A-X=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)\0A re-express in new basis given in absolute terms\0A\0A\00"
@.str.2 = [729 x i8] c"FORMAT is one of: xsf XCrySDen (default)\0A cell CASTEP .cell, cartesian and fractional\0A cell_abc abc and fractional\0A cell_abs cartesian and absolute\0A cell_abc_abs abc and absolute\0A cml Chemical Markup Language\0A cube Gaussian cube\0A dx OpenDX\0A fdf Flexible Data Format (Siesta) (beta)\0A null Discard output\0A pdb PDB\0A pdbn PDB with atoms numbered\0A vasp VASP output\0A xplor Xplor\0A xyz XYZ\0A\0A\00"
@.str.3 = [371 x i8] c"range specifies band numbers as \22a,b-c,d\22\0A-b and -B are mutually exclusive. Only one of the x and t options may be given\0A\0AInput files ending .pdb are assumed to be in pdb format, otherwise\0Aautomatic detection of .cell or .check input. Compatible with\0A.check files from CASTEP 3.0 to 4.1 (and perhaps beyond).\0A\0AVersion 1.0, (c) MJ Rutter 2007, licenced under the GPL v2\0A\0A\00"
define void @help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([908 x i8], [908 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([729 x i8], [729 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([371 x i8], [371 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@str = [907 x i8] c"Usage: check2xsf [-aAbBckmRsSvx] [--FORMAT] infile [outfile]\0A\0A-a rotate as though outputing in abc format\0A-A accumulate (sum) requested bands\0A-b[=range] include bands (as psi)\0A-B[=range] include bands (as densities)\0A-c include charge density\0A-H shift atoms by half a grid cell\0A-k=range include given k-points (default 1) for bands\0A-m[=a,b,c] assume input is molecule, not crystal, and move by\0A given nos of grid cells, or move automatically\0A-R don't rescale densities\0A-s include spin densities\0A-S=range include given spins (0 or 1) for bands\0A-t=(x1,y1,z1)(x2,y2,z2)\0A rotate coords so 1st vector becomes 2nd\0A-T=(x1,y1,z1)(x2,y2,z2)\0A ditto, but first vec expressed in absolute coords\0A-v be verbose (may be repeated)\0A-x expand rhombohedral cell to cubic/hexagonal automatically\00"
@str.4 = [189 x i8] c"-x=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)\0A re-express in new basis given in terms of old\0A-X=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)\0A re-express in new basis given in absolute terms\0A\00"
@str.5 = [728 x i8] c"FORMAT is one of: xsf XCrySDen (default)\0A cell CASTEP .cell, cartesian and fractional\0A cell_abc abc and fractional\0A cell_abs cartesian and absolute\0A cell_abc_abs abc and absolute\0A cml Chemical Markup Language\0A cube Gaussian cube\0A dx OpenDX\0A fdf Flexible Data Format (Siesta) (beta)\0A null Discard output\0A pdb PDB\0A pdbn PDB with atoms numbered\0A vasp VASP output\0A xplor Xplor\0A xyz XYZ\0A\00"
@str.6 = [370 x i8] c"range specifies band numbers as \22a,b-c,d\22\0A-b and -B are mutually exclusive. Only one of the x and t options may be given\0A\0AInput files ending .pdb are assumed to be in pdb format, otherwise\0Aautomatic detection of .cell or .check input. Compatible with\0A.check files from CASTEP 3.0 to 4.1 (and perhaps beyond).\0A\0AVersion 1.0, (c) MJ Rutter 2007, licenced under the GPL v2\0A\00"
define void @help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([907 x i8], [907 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([189 x i8], [189 x i8]* @str.4, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([728 x i8], [728 x i8]* @str.5, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([370 x i8], [370 x i8]* @str.6, i64 0, i64 0))
%5 = tail call i32 @exit(i32 0)
unreachable
}