#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 *);
void exit_with_help() {
  printf(
      "Usage: svm-train [options] training_set_file [model_file] \n"
      "options:\n"
      "-s svm_type : set type of SVM (default 0)\n"
      "	0 -- C-SVC\n"
      "	1 -- nu-SVC\n"
      "	2 -- one-class SVM\n"
      "	3 -- epsilon-SVR\n"
      "	4 -- nu-SVR\n"
      "	5 -- open-set oneclass SVM (open_set_training_file required)\n"
      "	6 -- open-set pair-wise SVM  (open_set_training_file required)\n"
      "	7 -- open-set binary SVM  (open_set_training_file required)\n"
      "	8 -- reserved for open-set WSVM (open_set_training_file required)\n"
      "	9 -- binary PIESVM (open_set_training_file required)\n"
      "	10 -- one-vs-all PIESVM (open_set_training_file required)\n"
      "-t kernel_type : set type of kernel function (default 2)\n"
      "	0 -- linear: u'*v\n"
      "	1 -- polynomial: (gamma*u'*v + coef0)^degree\n"
      "	2 -- radial basis function: exp(-gamma*|u-v|^2)\n"
      "	3 -- sigmoid: tanh(gamma*u'*v + coef0)\n"
      "	4 -- precomputed kernel (kernel values in training_set_file)\n"
      "-d degree : set degree in kernel function (default 3)\n"
      "-g gamma : set gamma in kernel function (default 1/num_features)\n"
      "-r coef0 : set coef0 in kernel function (default 0)\n"
      "-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR "
      "(default 1)\n"
      "-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR "
      "(default 0.5)\n"
      "-p epsilon : set the epsilon in loss function of epsilon-SVR (default "
      "0.1)\n"
      "-m cachesize : set cache memory size in MB (default 100)\n"
      "-e epsilon : set tolerance of termination criterion (default 0.001)\n"
      "-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default "
      "1)\n"
      "-b probability_estimates : whether to train a SVC or SVR model for "
      "probability estimates, 0 or 1 (default 0)\n"
      "-wi weight : set the parameter C of class i to weight*C, for C-SVC "
      "(default 1)\n"
      "-v n : n-fold cross validation mode\n"
      "-B beta : will set the beta for f-measure used in one-v-set training, "
      "default = 1\n"
      "-V filename : will log data about the one-v-set optimization process to "
      "filename\n"
      "-G nearpreasure farpressure : will adjust the pressures for one-v-set "
      "optimization. <0 will specalize, >0 will generalize\n"
      "-N : we build models for negative classes (used for multi-class where "
      "labels might be negative.  default is only positive models \n"
      "-E : do exaustive search for best one-v-set parameters (otherwise do "
      "the default greedy optimization) \n"
      "-q : quiet mode (no outputs)\n");
  exit(1);
}


x86 assembly (clang, -O0):
<exit_with_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<exit_with_help>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [2200 x i8] c"Usage: svm-train [options] training_set_file [model_file] \0Aoptions:\0A-s svm_type : set type of SVM (default 0)\0A\090 -- C-SVC\0A\091 -- nu-SVC\0A\092 -- one-class SVM\0A\093 -- epsilon-SVR\0A\094 -- nu-SVR\0A\095 -- open-set oneclass SVM (open_set_training_file required)\0A\096 -- open-set pair-wise SVM (open_set_training_file required)\0A\097 -- open-set binary SVM (open_set_training_file required)\0A\098 -- reserved for open-set WSVM (open_set_training_file required)\0A\099 -- binary PIESVM (open_set_training_file required)\0A\0910 -- one-vs-all PIESVM (open_set_training_file required)\0A-t kernel_type : set type of kernel function (default 2)\0A\090 -- linear: u'*v\0A\091 -- polynomial: (gamma*u'*v + coef0)^degree\0A\092 -- radial basis function: exp(-gamma*|u-v|^2)\0A\093 -- sigmoid: tanh(gamma*u'*v + coef0)\0A\094 -- precomputed kernel (kernel values in training_set_file)\0A-d degree : set degree in kernel function (default 3)\0A-g gamma : set gamma in kernel function (default 1/num_features)\0A-r coef0 : set coef0 in kernel function (default 0)\0A-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)\0A-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)\0A-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)\0A-m cachesize : set cache memory size in MB (default 100)\0A-e epsilon : set tolerance of termination criterion (default 0.001)\0A-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)\0A-b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)\0A-wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)\0A-v n : n-fold cross validation mode\0A-B beta : will set the beta for f-measure used in one-v-set training, default = 1\0A-V filename : will log data about the one-v-set optimization process to filename\0A-G nearpreasure farpressure : will adjust the pressures for one-v-set optimization. <0 will specalize, >0 will generalize\0A-N : we build models for negative classes (used for multi-class where labels might be negative. default is only positive models \0A-E : do exaustive search for best one-v-set parameters (otherwise do the default greedy optimization) \0A-q : quiet mode (no outputs)\0A\00"
define void @exit_with_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([2200 x i8], [2200 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@str = [2199 x i8] c"Usage: svm-train [options] training_set_file [model_file] \0Aoptions:\0A-s svm_type : set type of SVM (default 0)\0A\090 -- C-SVC\0A\091 -- nu-SVC\0A\092 -- one-class SVM\0A\093 -- epsilon-SVR\0A\094 -- nu-SVR\0A\095 -- open-set oneclass SVM (open_set_training_file required)\0A\096 -- open-set pair-wise SVM (open_set_training_file required)\0A\097 -- open-set binary SVM (open_set_training_file required)\0A\098 -- reserved for open-set WSVM (open_set_training_file required)\0A\099 -- binary PIESVM (open_set_training_file required)\0A\0910 -- one-vs-all PIESVM (open_set_training_file required)\0A-t kernel_type : set type of kernel function (default 2)\0A\090 -- linear: u'*v\0A\091 -- polynomial: (gamma*u'*v + coef0)^degree\0A\092 -- radial basis function: exp(-gamma*|u-v|^2)\0A\093 -- sigmoid: tanh(gamma*u'*v + coef0)\0A\094 -- precomputed kernel (kernel values in training_set_file)\0A-d degree : set degree in kernel function (default 3)\0A-g gamma : set gamma in kernel function (default 1/num_features)\0A-r coef0 : set coef0 in kernel function (default 0)\0A-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)\0A-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)\0A-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)\0A-m cachesize : set cache memory size in MB (default 100)\0A-e epsilon : set tolerance of termination criterion (default 0.001)\0A-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)\0A-b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)\0A-wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)\0A-v n : n-fold cross validation mode\0A-B beta : will set the beta for f-measure used in one-v-set training, default = 1\0A-V filename : will log data about the one-v-set optimization process to filename\0A-G nearpreasure farpressure : will adjust the pressures for one-v-set optimization. <0 will specalize, >0 will generalize\0A-N : we build models for negative classes (used for multi-class where labels might be negative. default is only positive models \0A-E : do exaustive search for best one-v-set parameters (otherwise do the default greedy optimization) \0A-q : quiet mode (no outputs)\00"
define void @exit_with_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2199 x i8], [2199 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @exit(i32 1)
unreachable
}