// File: thunlp[P]KB2E/TransE/Train_TransE.cpp
// Function: main
int main(int argc,char**argv)
{
    srand((unsigned) time(NULL));
    int method = 1;
    int n = 100;
    double rate = 0.001;
    double margin = 1;
    int i;
    if ((i = ArgPos((char *)"-size", argc, argv)) > 0) n = atoi(argv[i + 1]);
    if ((i = ArgPos((char *)"-margin", argc, argv)) > 0) margin = atoi(argv[i + 1]);
    if ((i = ArgPos((char *)"-method", argc, argv)) > 0) method = atoi(argv[i + 1]);
    cout<<"size = "<<n<<endl;
    cout<<"learing rate = "<<rate<<endl;
    cout<<"margin = "<<margin<<endl;
    if (method)
        version = "bern";
    else
        version = "unif";
    cout<<"method = "<<version<<endl;
    prepare();
    train.run(n,rate,margin,method);
}

// Assembly:
subq $0x38, %rsp
movl $0x0, 0x34(%rsp)
movl %edi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
xorl %eax, %eax
movl %eax, %edi
callq 0x21e0
movl %eax, %edi
callq 0x21f0
movl $0x1, 0x24(%rsp)
movl $0x64, 0x20(%rsp)
movsd 0xea73(%rip), %xmm0     # 0x12030
movsd %xmm0, 0x18(%rsp)
movsd 0xea55(%rip), %xmm0     # 0x12020
movsd %xmm0, 0x10(%rsp)
movl 0x30(%rsp), %esi
movq 0x28(%rsp), %rdx
leaq 0xeb19(%rip), %rdi      # 0x120fa
callq 0x34e0
movl %eax, 0xc(%rsp)
cmpl $0x0, %eax
jle 0x360b
movq 0x28(%rsp), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2340
movl %eax, 0x20(%rsp)
movl 0x30(%rsp), %esi
movq 0x28(%rsp), %rdx
leaq 0xeae5(%rip), %rdi      # 0x12100
callq 0x34e0
movl %eax, 0xc(%rsp)
cmpl $0x0, %eax
jle 0x364b
movq 0x28(%rsp), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2340
cvtsi2sd %eax, %xmm0
movsd %xmm0, 0x10(%rsp)
movl 0x30(%rsp), %esi
movq 0x28(%rsp), %rdx
leaq 0xeaad(%rip), %rdi      # 0x12108
callq 0x34e0
movl %eax, 0xc(%rsp)
cmpl $0x0, %eax
jle 0x3685
movq 0x28(%rsp), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2340
movl %eax, 0x24(%rsp)
movq 0x1694c(%rip), %rdi     # 0x19fd8
leaq 0xea7d(%rip), %rsi      # 0x12110
callq 0x2200
movq %rax, %rdi
movl 0x20(%rsp), %esi
callq 0x2390
movq %rax, %rdi
movq 0x16912(%rip), %rsi     # 0x19fc0
callq 0x2250
movq 0x1691e(%rip), %rdi     # 0x19fd8
leaq 0xea57(%rip), %rsi      # 0x12118
callq 0x2200
movq %rax, %rdi
movsd 0x18(%rsp), %xmm0
callq 0x23f0
movq %rax, %rdi
movq 0x168e2(%rip), %rsi     # 0x19fc0
callq 0x2250
movq 0x168ee(%rip), %rdi     # 0x19fd8
leaq 0xea37(%rip), %rsi      # 0x12128
callq 0x2200
movq %rax, %rdi
movsd 0x10(%rsp), %xmm0
callq 0x23f0
movq %rax, %rdi
movq 0x168b2(%rip), %rsi     # 0x19fc0
callq 0x2250
cmpl $0x0, 0x24(%rsp)
je 0x372f
leaq 0x16b27(%rip), %rdi     # 0x1a248
leaq 0xea0a(%rip), %rsi      # 0x12132
callq 0x22e0
jmp 0x3742
leaq 0x16b12(%rip), %rdi     # 0x1a248
leaq 0xe9fa(%rip), %rsi      # 0x12137
callq 0x22e0
movq 0x1688f(%rip), %rdi     # 0x19fd8
leaq 0xe9ec(%rip), %rsi      # 0x1213c
callq 0x2200
movq %rax, %rdi
leaq 0x16ae9(%rip), %rsi     # 0x1a248
callq 0x21d0
movq %rax, %rdi
movq 0x16852(%rip), %rsi     # 0x19fc0
callq 0x2250
callq 0x29d0
movl 0x20(%rsp), %esi
movsd 0x18(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movl 0x24(%rsp), %edx
leaq 0x479a5(%rip), %rdi     # 0x4b138
callq 0x4110
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)