// File: /workspace/github_cpp_makefile_star2_O3/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movl %edi, %ebp
xorl %edi, %edi
callq 0x2180
movl %eax, %edi
callq 0x2190
leaq 0x3fb1(%rip), %rdi      # 0x710a
movl %ebp, %esi
movq %r14, %rdx
callq 0x30ca
testl %eax, %eax
jle 0x3177
movl %eax, %eax
movq 0x8(%r14,%rax,8), %rdi
callq 0x2280
movl %eax, %ebx
jmp 0x317c
movl $0x64, %ebx
leaq 0x3f8d(%rip), %rdi      # 0x7110
movl %ebp, %esi
movq %r14, %rdx
callq 0x30ca
testl %eax, %eax
jle 0x31a3
movl %eax, %eax
movq 0x8(%r14,%rax,8), %rdi
callq 0x2280
cvtsi2sd %eax, %xmm0
jmp 0x31ab
movsd 0x3e75(%rip), %xmm0     # 0x7020
movsd %xmm0, (%rsp)
leaq 0x3f61(%rip), %rdi      # 0x7118
movl %ebp, %esi
movq %r14, %rdx
callq 0x30ca
testl %eax, %eax
jle 0x31d5
movl %eax, %eax
movq 0x8(%r14,%rax,8), %rdi
callq 0x2280
movl %eax, %ebp
jmp 0x31da
movl $0x1, %ebp
movq 0x6df7(%rip), %r14      # 0x9fd8
leaq 0x3f38(%rip), %rsi      # 0x7120
movl $0x7, %edx
movq %r14, %rdi
callq 0x21f0
movq %r14, %rdi
movl %ebx, %esi
callq 0x22d0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2110
leaq 0x3ef8(%rip), %rsi      # 0x7128
movl $0xf, %edx
movq %r14, %rdi
callq 0x21f0
movsd 0x3de3(%rip), %xmm0     # 0x7028
movq %r14, %rdi
callq 0x22a0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2110
leaq 0x3eba(%rip), %rsi      # 0x7138
movl $0x9, %edx
movq %r14, %rdi
callq 0x21f0
movq %r14, %rdi
movsd (%rsp), %xmm0
callq 0x22a0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2110
testl %ebp, %ebp
movq 0x6f05(%rip), %rdx      # 0xa1d0
leaq 0x6ef6(%rip), %rdi      # 0xa1c8
leaq 0x3e6e(%rip), %rax      # 0x7147
leaq 0x3e62(%rip), %rcx      # 0x7142
cmoveq %rax, %rcx
movl $0x4, %r8d
xorl %esi, %esi
callq 0x2270
leaq 0x3e54(%rip), %rsi      # 0x714c
movl $0x9, %edx
movq %r14, %rdi
callq 0x21f0
movq 0x6ebc(%rip), %rsi      # 0xa1c8
movq 0x6ebd(%rip), %rdx      # 0xa1d0
movq %r14, %rdi
callq 0x21f0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2110
callq 0x28da
leaq 0x37d67(%rip), %rdi     # 0x3b0b8
movl %ebx, %esi
movsd 0x3ccd(%rip), %xmm0     # 0x7028
movsd (%rsp), %xmm1
movl %ebp, %edx
callq 0x3712
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq