// File: /workspace/github_cpp_makefile_star2_O3/SneachChea[P]Wolf-Monte-Carlo-Cpp/config.cpp
// Function: get_params()
parameters get_params(){
    ifstream param_file;
    parameters current_param;
    string line;
    string value;
    param_file.open("param.dat", ios::in);

    if(param_file.is_open()){
      cout<<"param.dat file found"<<endl;
    }else{
      cout<<"param.dat file not found"<<endl;
      exit(EXIT_FAILURE);
      return current_param;
    }
    while(param_file >>line>>value){
      cout<<line<<" "<<value<<endl;
      if(line =="L"){ current_param.L = stoi(value);}
      if(line =="Ntrials"){current_param.Ntrials= stoi(value);}
        if(line =="nT"){current_param.nT= stoi(value);}
        if(line =="Tmin"){current_param.Tmin= stod(value);}
        if(line =="Tmax"){current_param.Tmax= stod(value);}

        }
        
    return current_param;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x278, %rsp            # imm = 0x278
leaq 0x70(%rsp), %rbx
movq %rdi, 0x10(%rsp)
movq %rbx, %rdi
callq 0x2250
leaq 0x60(%rsp), %r14
leaq 0x40(%rsp), %rcx
xorl %eax, %eax
movq %r14, -0x10(%r14)
movq %rax, -0x8(%r14)
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%r14)
movb %al, (%rcx)
leaq 0x17e9(%rip), %rsi      # 0x6340
movl $0x8, %edx
movq %rbx, %rdi
callq 0x2140
leaq 0xe8(%rsp), %rdi
callq 0x2060
testb %al, %al
je 0x50e8
movq 0x4458(%rip), %rbx      # 0x8fd8
leaq 0x17c3(%rip), %rsi      # 0x634a
movl $0x14, %edx
movq %rbx, %rdi
callq 0x2260
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movl $0xa, %esi
movq %rbx, %rdi
callq 0x2210
movq 0x4429(%rip), %rdi      # 0x8fd8
movsbl %al, %esi
callq 0x2030
movq %rax, %rdi
callq 0x2160
movq 0x10(%rsp), %rax
movabsq $-0x100000000, %r14     # imm = 0xFFFFFFFF00000000
leaq 0x50(%rsp), %r15
leaq 0x28(%rsp), %r13
movl (%rax), %ecx
vmovsd 0x10(%rax), %xmm0
vmovsd 0x18(%rax), %xmm1
movl %ecx, 0xc(%rsp)
movl 0x4(%rax), %ecx
vmovsd %xmm0, 0x20(%rsp)
vmovsd %xmm1, 0x18(%rsp)
movl %ecx, 0x8(%rsp)
movl 0x8(%rax), %ecx
movl %ecx, 0x4(%rsp)
leaq 0x70(%rsp), %rdi
movq %r15, %rsi
callq 0x2290
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x2290
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x4e98
movq 0x58(%rsp), %rdx
movq 0x50(%rsp), %rsi
movq 0x4399(%rip), %rdi      # 0x8fd8
callq 0x2260
movl $0x1, %edx
leaq 0x1728(%rip), %rsi      # 0x6378
movq %rax, %rdi
movq %rax, %rbp
callq 0x2260
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rsi
movq %rbp, %rdi
callq 0x2260
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2160
leaq 0x143c(%rip), %rsi      # 0x60da
movq %r15, %rdi
callq 0x2090
testl %eax, %eax
jne 0x4d03
movq 0x30(%rsp), %rbx
callq 0x2040
movl (%rax), %r12d
movl $0xa, %edx
movq %rax, %rbp
movl $0x0, (%rax)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x22b0
cmpq %rbx, 0x28(%rsp)
je 0x4fc1
leaq -0x80000000(%rax), %rcx
cmpq %r14, %rcx
jb 0x4ffc
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x4ffc
testl %ecx, %ecx
jne 0x4cff
movl %r12d, (%rbp)
movl %eax, 0xc(%rsp)
leaq 0x13d3(%rip), %rsi      # 0x60dd
movq %r15, %rdi
callq 0x2090
testl %eax, %eax
jne 0x4d6f
movq 0x30(%rsp), %rbx
callq 0x2040
movl (%rax), %r12d
movl $0xa, %edx
movq %rax, %rbp
movl $0x0, (%rax)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x22b0
cmpq %rbx, 0x28(%rsp)
je 0x4f4b
leaq -0x80000000(%rax), %rcx
cmpq %r14, %rcx
jb 0x4f86
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x4f86
testl %ecx, %ecx
jne 0x4d6b
movl %r12d, (%rbp)
movl %eax, 0x8(%rsp)
leaq 0x1604(%rip), %rsi      # 0x637a
movq %r15, %rdi
callq 0x2090
testl %eax, %eax
jne 0x4ddb
movq 0x30(%rsp), %rbx
callq 0x2040
movl (%rax), %r12d
movl $0xa, %edx
movq %rax, %rbp
movl $0x0, (%rax)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x22b0
cmpq %rbx, 0x28(%rsp)
je 0x4f10
leaq -0x80000000(%rax), %rcx
cmpq %r14, %rcx
jb 0x5037
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x5037
testl %ecx, %ecx
jne 0x4dd7
movl %r12d, (%rbp)
movl %eax, 0x4(%rsp)
leaq 0x159b(%rip), %rsi      # 0x637d
movq %r15, %rdi
callq 0x2090
testl %eax, %eax
jne 0x4e35
movq 0x30(%rsp), %rbx
callq 0x2040
movl (%rax), %r12d
movq %rax, %rbp
movl $0x0, (%rax)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x21a0
cmpq %rbx, 0x28(%rsp)
je 0x5072
movl (%rbp), %eax
testl %eax, %eax
je 0x4e2b
cmpl $0x22, %eax
jne 0x4e2f
jmp 0x50ad
movl %r12d, (%rbp)
vmovsd %xmm0, 0x20(%rsp)
leaq 0x1546(%rip), %rsi      # 0x6382
movq %r15, %rdi
callq 0x2090
testl %eax, %eax
jne 0x4c02
movq 0x30(%rsp), %rbx
callq 0x2040
movl (%rax), %r12d
movq %rax, %rbp
movl $0x0, (%rax)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x21a0
cmpq %rbx, 0x28(%rsp)
je 0x5116
movl (%rbp), %eax
testl %eax, %eax
je 0x4e89
cmpl $0x22, %eax
jne 0x4e8d
jmp 0x5151
movl %r12d, (%rbp)
vmovsd %xmm0, 0x18(%rsp)
jmp 0x4c02
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movq 0x30(%rsp), %rdi
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x40(%rsp), %rcx
cmpq %rcx, %rdi
je 0x4edb
callq 0x2200
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x4eef
callq 0x2200
leaq 0x70(%rsp), %rdi
callq 0x2070
movq 0x10(%rsp), %rax
addq $0x278, %rsp            # imm = 0x278
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x1441(%rip), %rdi      # 0x6387
callq 0x2130
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x1406(%rip), %rdi      # 0x6387
callq 0x2130
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x13cb(%rip), %rdi      # 0x6387
callq 0x22d0
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x1390(%rip), %rdi      # 0x6387
callq 0x2130
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x1355(%rip), %rdi      # 0x6387
callq 0x22d0
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x131a(%rip), %rdi      # 0x6387
callq 0x22d0
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x12e4(%rip), %rdi      # 0x638c
callq 0x2130
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x12a9(%rip), %rdi      # 0x638c
callq 0x22d0
movq 0x3ee9(%rip), %rdi      # 0x8fd8
leaq 0x1269(%rip), %rsi      # 0x635f
movl $0x18, %edx
callq 0x2260
movq 0x3ed1(%rip), %rdi      # 0x8fd8
callq 0x20f0
movl $0x1, %edi
callq 0x2280
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x1240(%rip), %rdi      # 0x638c
callq 0x2130
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x1205(%rip), %rdi      # 0x638c
callq 0x22d0
jmp 0x5199
movq %rax, %rbx
jmp 0x51df
jmp 0x5199
jmp 0x5199
jmp 0x5199
cmpl $0x0, (%rbp)
movq %rax, %rbx
jne 0x51da
movl %r12d, (%rbp)
jmp 0x51da
movq %rax, %rbx
movq 0x10(%rsp), %rax
movl 0x8(%rsp), %ecx
vmovsd 0x20(%rsp), %xmm0
vmovsd 0x18(%rsp), %xmm1
movl %ecx, 0x4(%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0xc(%rsp), %ecx
vmovsd %xmm0, 0x10(%rax)
vmovsd %xmm1, 0x18(%rax)
movl %ecx, (%rax)
leaq 0x60(%rsp), %r14
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x51f3
callq 0x2200
movq 0x50(%rsp), %rdi
cmpq %r14, %rdi
je 0x5202
callq 0x2200
leaq 0x70(%rsp), %rdi
callq 0x2070
movq %rbx, %rdi
callq 0x2350