#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);
int /*<<< orphan*/ printf(char const *, ...);
void usage(char const *name) {
  {
    printf(
        (char const
             *__restrict)"Usage: %s [OPTIONS] eye_coordinate_file input_dir\n",
        name);
    printf((char const *__restrict)"  OUTPUT OPTIONS:  (You must specify at "
                                   "least one output directory)\n");
    printf((char const *__restrict)"    -nrm <DIR_NAME>         - Directory to "
                                   "store images in nrm format (feret\n        "
                                   "                      compatible)\n");
    printf((char const *__restrict)"    -sfi <DIR_NAME>         - Directory to "
                                   "store images in raw format (gabor\n        "
                                   "                      compatible)\n");
    printf((char const *__restrict)"    -pgm <DIR_NAME>         - Directory to "
                                   "store images in pgm format ()\n");
    printf((char const *__restrict)"  NORMALIZATION OPTIONS:\n");
    printf((char const *__restrict)"    -mask <YES/NO>          - Specify an "
                                   "ellipse that defines a mask.\n");
    printf((
        char const
            *__restrict)"                              Defaults to \"Yes\".\n");
    printf((char const *__restrict)"    -mask-param x y a b     - Specify an "
                                   "ellipse that defines a mask. \n");
    printf(
        (char const *__restrict)"                              Defaults to "
                                "FERET Standard, %0.1f, %0.1f, %0.1f, %0.1f \n",
        65.0, 50.0, 64.0, 118.0);
    printf((char const *__restrict)"    -hist <TYPE>            - Select the "
                                   "type of histogram equalization.\n");
    printf(
        (char const
             *__restrict)"                              Default is \"POST\", "
                         "Options are \"PRE\", \"POST\", \"NONE\". \n");
    printf((char const
                *__restrict)"                              \"PRE\"  - equalize "
                            "raw 0-255 pixels, like original NIST code.\n");
    printf((char const
                *__restrict)"                              \"POST\" - pixels "
                            "under mask only after geometric normalization.\n");
    printf((char const
                *__restrict)"    -geometric <YES/NO>     - Turns on/off "
                            "geometric normalization. Defaults to \"Yes\".\n");
    printf((char const *__restrict)"    -eye-target lx ly rx ry - Choose the "
                                   "target eye coordinates.\n");
    printf(
        (char const *__restrict)"                              Defaults to "
                                "FERET Standard, %0.1f, %0.1f, %0.1f, %0.1f \n",
        30.0, 45.0, 100.0, 45.0);
    printf((char const *__restrict)"    -size width height      - Choose the "
                                   "target size for the images.\n");
    printf(
        (char const
             *__restrict)"                              Defaults to %d, %d \n",
        130, 150);
    printf((char const
                *__restrict)"    -pixelNorm <YES/NO>     - Turns on/off pixel "
                            "value normalization. Defaults to \"Yes\"\n");
    printf((char const
                *__restrict)"    -postNorm <YES/NO>      - Turns on/off pixel "
                            "value normalization. Defaults to \"Yes\"\n");
    printf((char const *__restrict)"    -preNorm <YES/NO>       - Turns on a "
                                   "pixel normalization before geometric "
                                   "normalization. Defaults to \"NO\"\n");
    printf(
        (char const *__restrict)"    -preEdge <INT>          - Blends the edge "
                                "of the image (INT pixels wide) before "
                                "geometric normalization. Defaults to \"0\"\n");
    printf((char const *__restrict)"    -postEdge <INT>         - Blends the "
                                   "edge of the image (INT pixels wide) after "
                                   "normalization. Defaults to \"NO\"\n");
    printf((char const *__restrict)"    -noise <double>         - Add zero "
                                   "mean Gausian noise to each pixel.\n");
    printf(
        (char const
             *__restrict)"                              The Standard Deviation "
                         "is set to argument value times the dynamic\n");
    printf((char const
                *__restrict)"                              range of the image. "
                            "Defaults to %f indicating zero noise added.\n",
           0.0);
    printf((char const *__restrict)"    -reflect <YES/NO>       - Reflect the "
                                   "image down the center of the face.\n");
    printf((char const *__restrict)"    -half                   - Easy way to "
                                   "produce half sized images.\n");
    printf((char const *__restrict)"    -scale f                - Easy way to "
                                   "produce scaled images.\n");
    printf((char const *__restrict)"    -shift dx dy            - Shift all "
                                   "eye targets by dx and dy.\n");
    printf((char const
                *__restrict)"\t\t\t\t\t\t\t  Default is no shift, i.e. 0 0.\n");
    printf(
        (char const
             *__restrict)"                              Postive dx moves the "
                         "face to the left. Postive dy moves the face up.\n");
    printf((char const *__restrict)"  OTHER OPTIONS:\n");
    printf((char const
                *__restrict)"    -configSuffix           - Normalization "
                            "configuration encoded in new image file names.\n");
    printf((char const *__restrict)"    -quiet                  - Turns off "
                                   "all messages.\n");
    printf((char const *__restrict)"    -debuglevel <int>       - Turns turns "
                                   "on debuging output.\n");
    exit(1);
  }
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xf01(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf26(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf5d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfc7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1031(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x106d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1079(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10b2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10d6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1110(%rip),%rdi
movsd  0xe5b(%rip),%xmm0
movsd  0xe5b(%rip),%xmm1
movsd  0xe5b(%rip),%xmm2
movsd  0xe5b(%rip),%xmm3
mov    $0x4,%al
call   1030 <printf@plt>
lea    0x1139(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1175(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11bd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x120b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x125b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12a5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x108e(%rip),%rdi
movsd  0xdc1(%rip),%xmm0
movsd  0xdc1(%rip),%xmm3
movsd  0xdc1(%rip),%xmm2
movaps %xmm3,%xmm1
mov    $0x4,%al
call   1030 <printf@plt>
lea    0x12b0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12e8(%rip),%rdi
mov    $0x82,%esi
mov    $0x96,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1303(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x134e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1399(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13fa(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x146a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14d0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x150c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x155f(%rip),%rdi
xorps  %xmm0,%xmm0
mov    $0x1,%al
call   1030 <printf@plt>
lea    0x15ad(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15ed(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1625(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1659(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x168e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16a9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16ff(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1703(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1751(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x177a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rbx
mov    %rdi,%rsi
lea    0xefd(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x100b(%rip),%rdi
call   1030 <puts@plt>
lea    0x1043(%rip),%rdi
call   1030 <puts@plt>
lea    0x10ae(%rip),%rdi
call   1030 <puts@plt>
lea    0x1119(%rip),%rdi
call   1030 <puts@plt>
lea    0x1156(%rip),%rdi
call   1030 <puts@plt>
lea    0x1163(%rip),%rdi
call   1030 <puts@plt>
lea    0x119d(%rip),%rdi
call   1030 <puts@plt>
lea    0x11c2(%rip),%rdi
call   1030 <puts@plt>
lea    0xec2(%rip),%rbx
movsd  0xe4f(%rip),%xmm0
movsd  0xe4f(%rip),%xmm1
movsd  0xe4f(%rip),%xmm2
movsd  0xe4f(%rip),%xmm3
mov    %rbx,%rdi
mov    $0x4,%al
call   1040 <printf@plt>
lea    0x11cc(%rip),%rdi
call   1030 <puts@plt>
lea    0x1209(%rip),%rdi
call   1030 <puts@plt>
lea    0x1252(%rip),%rdi
call   1030 <puts@plt>
lea    0x12a1(%rip),%rdi
call   1030 <puts@plt>
lea    0x12f2(%rip),%rdi
call   1030 <puts@plt>
lea    0x133d(%rip),%rdi
call   1030 <puts@plt>
movsd  0xdfd(%rip),%xmm0
movsd  0xdfd(%rip),%xmm2
movsd  0xdfd(%rip),%xmm1
mov    %rbx,%rdi
movaps %xmm1,%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
lea    0x134d(%rip),%rdi
call   1030 <puts@plt>
lea    0xe6f(%rip),%rdi
mov    $0x82,%esi
mov    $0x96,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x136e(%rip),%rdi
call   1030 <puts@plt>
lea    0x13ba(%rip),%rdi
call   1030 <puts@plt>
lea    0x1406(%rip),%rdi
call   1030 <puts@plt>
lea    0x1468(%rip),%rdi
call   1030 <puts@plt>
lea    0x14d9(%rip),%rdi
call   1030 <puts@plt>
lea    0x1540(%rip),%rdi
call   1030 <puts@plt>
lea    0x157d(%rip),%rdi
call   1030 <puts@plt>
lea    0xe36(%rip),%rdi
xorps  %xmm0,%xmm0
mov    $0x1,%al
call   1040 <printf@plt>
lea    0x15c0(%rip),%rdi
call   1030 <puts@plt>
lea    0x1601(%rip),%rdi
call   1030 <puts@plt>
lea    0x163a(%rip),%rdi
call   1030 <puts@plt>
lea    0x166f(%rip),%rdi
call   1030 <puts@plt>
lea    0x16a5(%rip),%rdi
call   1030 <puts@plt>
lea    0x16c1(%rip),%rdi
call   1030 <puts@plt>
lea    0x1718(%rip),%rdi
call   1030 <puts@plt>
lea    0x171d(%rip),%rdi
call   1030 <puts@plt>
lea    0x176c(%rip),%rdi
call   1030 <puts@plt>
lea    0x1796(%rip),%rdi
call   1030 <puts@plt>
mov    $0x1,%edi
call   1050 <exit@plt>

LLVM IR (-O0):
@.str = [51 x i8] c"Usage: %s [OPTIONS] eye_coordinate_file input_dir\0A\00"
@.str.1 = [69 x i8] c" OUTPUT OPTIONS: (You must specify at least one output directory)\0A\00"
@.str.2 = [120 x i8] c" -nrm <DIR_NAME> - Directory to store images in nrm format (feret\0A compatible)\0A\00"
@.str.3 = [120 x i8] c" -sfi <DIR_NAME> - Directory to store images in raw format (gabor\0A compatible)\0A\00"
@.str.4 = [74 x i8] c" -pgm <DIR_NAME> - Directory to store images in pgm format ()\0A\00"
@.str.5 = [26 x i8] c" NORMALIZATION OPTIONS:\0A\00"
@.str.6 = [71 x i8] c" -mask <YES/NO> - Specify an ellipse that defines a mask.\0A\00"
@.str.7 = [50 x i8] c" Defaults to \22Yes\22.\0A\00"
@.str.8 = [72 x i8] c" -mask-param x y a b - Specify an ellipse that defines a mask. \0A\00"
@.str.9 = [87 x i8] c" Defaults to FERET Standard, %0.1f, %0.1f, %0.1f, %0.1f \0A\00"
@.str.10 = [74 x i8] c" -hist <TYPE> - Select the type of histogram equalization.\0A\00"
@.str.11 = [86 x i8] c" Default is \22POST\22, Options are \22PRE\22, \22POST\22, \22NONE\22. \0A\00"
@.str.12 = [92 x i8] c" \22PRE\22 - equalize raw 0-255 pixels, like original NIST code.\0A\00"
@.str.13 = [94 x i8] c" \22POST\22 - pixels under mask only after geometric normalization.\0A\00"
@.str.14 = [88 x i8] c" -geometric <YES/NO> - Turns on/off geometric normalization. Defaults to \22Yes\22.\0A\00"
@.str.15 = [66 x i8] c" -eye-target lx ly rx ry - Choose the target eye coordinates.\0A\00"
@.str.16 = [70 x i8] c" -size width height - Choose the target size for the images.\0A\00"
@.str.17 = [51 x i8] c" Defaults to %d, %d \0A\00"
@.str.18 = [89 x i8] c" -pixelNorm <YES/NO> - Turns on/off pixel value normalization. Defaults to \22Yes\22\0A\00"
@.str.19 = [89 x i8] c" -postNorm <YES/NO> - Turns on/off pixel value normalization. Defaults to \22Yes\22\0A\00"
@.str.20 = [111 x i8] c" -preNorm <YES/NO> - Turns on a pixel normalization before geometric normalization. Defaults to \22NO\22\0A\00"
@.str.21 = [126 x i8] c" -preEdge <INT> - Blends the edge of the image (INT pixels wide) before geometric normalization. Defaults to \220\22\0A\00"
@.str.22 = [116 x i8] c" -postEdge <INT> - Blends the edge of the image (INT pixels wide) after normalization. Defaults to \22NO\22\0A\00"
@.str.23 = [74 x i8] c" -noise <double> - Add zero mean Gausian noise to each pixel.\0A\00"
@.str.24 = [97 x i8] c" The Standard Deviation is set to argument value times the dynamic\0A\00"
@.str.25 = [95 x i8] c" range of the image. Defaults to %f indicating zero noise added.\0A\00"
@.str.26 = [78 x i8] c" -reflect <YES/NO> - Reflect the image down the center of the face.\0A\00"
@.str.27 = [70 x i8] c" -half - Easy way to produce half sized images.\0A\00"
@.str.28 = [66 x i8] c" -scale f - Easy way to produce scaled images.\0A\00"
@.str.29 = [67 x i8] c" -shift dx dy - Shift all eye targets by dx and dy.\0A\00"
@.str.30 = [41 x i8] c"\09\09\09\09\09\09\09 Default is no shift, i.e. 0 0.\0A\00"
@.str.31 = [100 x i8] c" Postive dx moves the face to the left. Postive dy moves the face up.\0A\00"
@.str.32 = [18 x i8] c" OTHER OPTIONS:\0A\00"
@.str.33 = [92 x i8] c" -configSuffix - Normalization configuration encoded in new image file names.\0A\00"
@.str.34 = [55 x i8] c" -quiet - Turns off all messages.\0A\00"
@.str.35 = [63 x i8] c" -debuglevel <int> - Turns turns on debuging output.\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str, i64 0, i64 0), i8* %3)
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([120 x i8], [120 x i8]* @.str.2, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([120 x i8], [120 x i8]* @.str.3, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.4, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.5, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.6, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.7, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.8, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.9, i64 0, i64 0), double 6.500000e+01, double 5.000000e+01, double 6.400000e+01, double 1.180000e+02)
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.10, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.11, i64 0, i64 0))
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([92 x i8], [92 x i8]* @.str.12, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.13, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([88 x i8], [88 x i8]* @.str.14, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.15, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.9, i64 0, i64 0), double 3.000000e+01, double 4.500000e+01, double 1.000000e+02, double 4.500000e+01)
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.16, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.17, i64 0, i64 0), i32 130, i32 150)
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.18, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.19, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.20, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([126 x i8], [126 x i8]* @.str.21, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.22, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.23, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.24, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.25, i64 0, i64 0), double 0.000000e+00)
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.26, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.27, i64 0, i64 0))
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.28, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.29, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.30, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([100 x i8], [100 x i8]* @.str.31, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.32, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([92 x i8], [92 x i8]* @.str.33, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.34, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.35, i64 0, i64 0))
%41 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@.str = [51 x i8] c"Usage: %s [OPTIONS] eye_coordinate_file input_dir\0A\00"
@.str.9 = [87 x i8] c" Defaults to FERET Standard, %0.1f, %0.1f, %0.1f, %0.1f \0A\00"
@.str.17 = [51 x i8] c" Defaults to %d, %d \0A\00"
@.str.25 = [95 x i8] c" range of the image. Defaults to %f indicating zero noise added.\0A\00"
@str = [68 x i8] c" OUTPUT OPTIONS: (You must specify at least one output directory)\00"
@str.36 = [119 x i8] c" -nrm <DIR_NAME> - Directory to store images in nrm format (feret\0A compatible)\00"
@str.37 = [119 x i8] c" -sfi <DIR_NAME> - Directory to store images in raw format (gabor\0A compatible)\00"
@str.38 = [73 x i8] c" -pgm <DIR_NAME> - Directory to store images in pgm format ()\00"
@str.39 = [25 x i8] c" NORMALIZATION OPTIONS:\00"
@str.40 = [70 x i8] c" -mask <YES/NO> - Specify an ellipse that defines a mask.\00"
@str.41 = [49 x i8] c" Defaults to \22Yes\22.\00"
@str.42 = [71 x i8] c" -mask-param x y a b - Specify an ellipse that defines a mask. \00"
@str.43 = [73 x i8] c" -hist <TYPE> - Select the type of histogram equalization.\00"
@str.44 = [85 x i8] c" Default is \22POST\22, Options are \22PRE\22, \22POST\22, \22NONE\22. \00"
@str.45 = [91 x i8] c" \22PRE\22 - equalize raw 0-255 pixels, like original NIST code.\00"
@str.46 = [93 x i8] c" \22POST\22 - pixels under mask only after geometric normalization.\00"
@str.47 = [87 x i8] c" -geometric <YES/NO> - Turns on/off geometric normalization. Defaults to \22Yes\22.\00"
@str.48 = [65 x i8] c" -eye-target lx ly rx ry - Choose the target eye coordinates.\00"
@str.49 = [69 x i8] c" -size width height - Choose the target size for the images.\00"
@str.50 = [88 x i8] c" -pixelNorm <YES/NO> - Turns on/off pixel value normalization. Defaults to \22Yes\22\00"
@str.51 = [88 x i8] c" -postNorm <YES/NO> - Turns on/off pixel value normalization. Defaults to \22Yes\22\00"
@str.52 = [110 x i8] c" -preNorm <YES/NO> - Turns on a pixel normalization before geometric normalization. Defaults to \22NO\22\00"
@str.53 = [125 x i8] c" -preEdge <INT> - Blends the edge of the image (INT pixels wide) before geometric normalization. Defaults to \220\22\00"
@str.54 = [115 x i8] c" -postEdge <INT> - Blends the edge of the image (INT pixels wide) after normalization. Defaults to \22NO\22\00"
@str.55 = [73 x i8] c" -noise <double> - Add zero mean Gausian noise to each pixel.\00"
@str.56 = [96 x i8] c" The Standard Deviation is set to argument value times the dynamic\00"
@str.57 = [77 x i8] c" -reflect <YES/NO> - Reflect the image down the center of the face.\00"
@str.58 = [69 x i8] c" -half - Easy way to produce half sized images.\00"
@str.59 = [65 x i8] c" -scale f - Easy way to produce scaled images.\00"
@str.60 = [66 x i8] c" -shift dx dy - Shift all eye targets by dx and dy.\00"
@str.61 = [40 x i8] c"\09\09\09\09\09\09\09 Default is no shift, i.e. 0 0.\00"
@str.62 = [99 x i8] c" Postive dx moves the face to the left. Postive dy moves the face up.\00"
@str.63 = [17 x i8] c" OTHER OPTIONS:\00"
@str.64 = [91 x i8] c" -configSuffix - Normalization configuration encoded in new image file names.\00"
@str.65 = [54 x i8] c" -quiet - Turns off all messages.\00"
@str.66 = [62 x i8] c" -debuglevel <int> - Turns turns on debuging output.\00"
define void @usage(i8* %0) {
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str, i64 0, i64 0), i8* %0)
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([119 x i8], [119 x i8]* @str.36, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([119 x i8], [119 x i8]* @str.37, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.38, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @str.39, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.40, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.41, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.42, i64 0, i64 0))
%11 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([87 x i8], [87 x i8]* @.str.9, i64 0, i64 0), double 6.500000e+01, double 5.000000e+01, double 6.400000e+01, double 1.180000e+02)
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.43, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([85 x i8], [85 x i8]* @str.44, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([91 x i8], [91 x i8]* @str.45, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([93 x i8], [93 x i8]* @str.46, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([87 x i8], [87 x i8]* @str.47, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.48, i64 0, i64 0))
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([87 x i8], [87 x i8]* @.str.9, i64 0, i64 0), double 3.000000e+01, double 4.500000e+01, double 1.000000e+02, double 4.500000e+01)
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.49, i64 0, i64 0))
%20 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.17, i64 0, i64 0), i32 130, i32 150)
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([88 x i8], [88 x i8]* @str.50, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([88 x i8], [88 x i8]* @str.51, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([110 x i8], [110 x i8]* @str.52, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([125 x i8], [125 x i8]* @str.53, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([115 x i8], [115 x i8]* @str.54, i64 0, i64 0))
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.55, i64 0, i64 0))
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([96 x i8], [96 x i8]* @str.56, i64 0, i64 0))
%28 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([95 x i8], [95 x i8]* @.str.25, i64 0, i64 0), double 0.000000e+00)
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.57, i64 0, i64 0))
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.58, i64 0, i64 0))
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.59, i64 0, i64 0))
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @str.60, i64 0, i64 0))
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @str.61, i64 0, i64 0))
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([99 x i8], [99 x i8]* @str.62, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.63, i64 0, i64 0))
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([91 x i8], [91 x i8]* @str.64, i64 0, i64 0))
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.65, i64 0, i64 0))
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.66, i64 0, i64 0))
%39 = tail call i32 @exit(i32 1)
unreachable
}