// File: istellartech[P]OpenTsiolkovsky/src/fileio.cpp
// Function: read_csv_vector_15d(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
MatrixXd read_csv_vector_15d(string filename){
//    ファイル名を入れるとMatrixXd(n行15列)を返す
    const int col_number = 15;
    io::CSVReader<col_number> in(filename);
    double buf[col_number];
    in.set_header("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15");
    MatrixXd value = MatrixXd::Zero(1,col_number);
    int now_col = 0;
    while(in.read_row(buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], 
                buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14])){
        value.conservativeResize(now_col+1, col_number);
        for(int i = 0; i < col_number; i++){
            value(now_col, i) = buf[i];
        }
        now_col++;
    }

    return value;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x5a8, %rsp            # imm = 0x5A8
movq %rdi, -0x550(%rbp)
movq %rdi, %rax
movq %rax, -0x548(%rbp)
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movl $0xf, -0x3c(%rbp)
leaq -0x480(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x3e080
movq -0x540(%rbp), %rdi
leaq 0x1c782(%rip), %rcx     # 0x58f87
movq %rsp, %rax
movq %rax, -0x538(%rbp)
movq %rcx, 0x48(%rax)
leaq 0x1c76a(%rip), %rcx     # 0x58f84
movq %rcx, 0x40(%rax)
leaq 0x1c75c(%rip), %rcx     # 0x58f81
movq %rcx, 0x38(%rax)
leaq 0x1c74e(%rip), %rcx     # 0x58f7e
movq %rcx, 0x30(%rax)
leaq 0x1c740(%rip), %rcx     # 0x58f7b
movq %rcx, 0x28(%rax)
leaq 0x1c732(%rip), %rcx     # 0x58f78
movq %rcx, 0x20(%rax)
leaq 0x1c725(%rip), %rcx     # 0x58f76
movq %rcx, 0x18(%rax)
leaq 0x1c718(%rip), %rcx     # 0x58f74
movq %rcx, 0x10(%rax)
leaq 0x1c70b(%rip), %rcx     # 0x58f72
movq %rcx, 0x8(%rax)
leaq 0x1c6fe(%rip), %rcx     # 0x58f70
movq %rcx, (%rax)
leaq 0x17bdb(%rip), %rsi     # 0x54457
leaq 0x1c7aa(%rip), %rdx     # 0x5902d
leaq 0x1c6f8(%rip), %rcx     # 0x58f82
leaq 0x1c6f4(%rip), %r8      # 0x58f85
leaq 0x1c6f0(%rip), %r9      # 0x58f88
callq 0x3e2a0
jmp 0x3c89f
movb $0x0, -0x50d(%rbp)
leaq -0x528(%rbp), %rdi
movl $0x1, %esi
movl $0xf, %edx
callq 0x1df90
jmp 0x3c8be
movq -0x550(%rbp), %rdi
leaq -0x528(%rbp), %rsi
callq 0x3d040
jmp 0x3c8d3
movl $0x0, -0x52c(%rbp)
leaq -0x4f8(%rbp), %rdx
leaq -0x4f0(%rbp), %rax
movq %rax, -0x560(%rbp)
leaq -0x4e8(%rbp), %r8
leaq -0x4e0(%rbp), %r9
leaq -0x4d8(%rbp), %rsi
leaq -0x4d0(%rbp), %rdi
leaq -0x4c8(%rbp), %r10
leaq -0x4c0(%rbp), %r11
leaq -0x4b8(%rbp), %rbx
leaq -0x4b0(%rbp), %r14
leaq -0x4a8(%rbp), %r15
leaq -0x4a0(%rbp), %r12
leaq -0x498(%rbp), %r13
leaq -0x490(%rbp), %rcx
movq %rsp, %rax
movq %rax, -0x568(%rbp)
movq %rcx, 0x48(%rax)
movq -0x560(%rbp), %rcx
movq %r13, 0x40(%rax)
movq %r12, 0x38(%rax)
movq %r15, 0x30(%rax)
movq %r14, 0x28(%rax)
movq %rbx, 0x20(%rax)
movq %r11, 0x18(%rax)
movq %r10, 0x10(%rax)
movq %rdi, 0x8(%rax)
movq %rsi, (%rax)
leaq -0x480(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0x3e4d0
movb %al, -0x551(%rbp)
jmp 0x3c999
movb -0x551(%rbp), %al
testb $0x1, %al
jne 0x3c9a8
jmp 0x3ca7d
movq -0x550(%rbp), %rdi
movl -0x52c(%rbp), %eax
incl %eax
movslq %eax, %rsi
movl $0xf, %edx
callq 0x3d260
jmp 0x3c9c6
movl $0x0, -0x530(%rbp)
cmpl $0xf, -0x530(%rbp)
jge 0x3ca69
movq -0x550(%rbp), %rdi
movslq -0x530(%rbp), %rdx
movsd -0x500(%rbp,%rdx,8), %xmm0
movsd %xmm0, -0x578(%rbp)
movslq -0x52c(%rbp), %rsi
callq 0x8540
movq %rax, -0x570(%rbp)
jmp 0x3ca11
movq -0x570(%rbp), %rax
movsd -0x578(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0x530(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x530(%rbp)
jmp 0x3c9d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x508(%rbp)
movl %eax, -0x50c(%rbp)
jmp 0x3cabe
movq -0x550(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x508(%rbp)
movl %eax, -0x50c(%rbp)
callq 0x8220
jmp 0x3cabe
movl -0x52c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x52c(%rbp)
jmp 0x3c8dd
movb $0x1, -0x50d(%rbp)
testb $0x1, -0x50d(%rbp)
jne 0x3ca99
movq -0x550(%rbp), %rdi
callq 0x8220
leaq -0x480(%rbp), %rdi
callq 0x3e740
movq -0x548(%rbp), %rax
addq $0x5a8, %rsp            # imm = 0x5A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x480(%rbp), %rdi
callq 0x3e740
movq -0x508(%rbp), %rdi
callq 0x67a0
nopw %cs:(%rax,%rax)