// File: CastellanZhang[P]lambdaFM/./src/FTRL/ftrl_model.h
// Function: ftrl_model_unit::ftrl_model_unit(int, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&)
ftrl_model_unit(int factor_num, const vector<string>& modelLineSeg)
    {
        vi.resize(factor_num);
        v_ni.resize(factor_num);
        v_zi.resize(factor_num);
        wi = stod(modelLineSeg[1]);
        w_ni = stod(modelLineSeg[2 + factor_num]);
        w_zi = stod(modelLineSeg[3 + factor_num]);
        for(int f = 0; f < factor_num; ++f)
        {
            vi[f] = stod(modelLineSeg[2 + f]);
            v_ni[f] = stod(modelLineSeg[4 + factor_num + f]);
            v_zi[f] = stod(modelLineSeg[4 + 2 * factor_num + f]);
        }
    }

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movl %esi, 0x6c(%rsp)
movq %rdx, 0x60(%rsp)
movq 0x70(%rsp), %rdi
movq %rdi, 0x40(%rsp)
addq $0x18, %rdi
movq %rdi, 0x48(%rsp)
callq 0x6490
movq 0x40(%rsp), %rdi
addq $0x30, %rdi
movq %rdi, 0x30(%rsp)
callq 0x6490
movq 0x40(%rsp), %rdi
addq $0x48, %rdi
movq %rdi, 0x38(%rsp)
callq 0x6490
movq 0x40(%rsp), %rdi
addq $0x60, %rdi
callq 0x5360
movq 0x48(%rsp), %rdi
movslq 0x6c(%rsp), %rsi
callq 0x64a0
jmp 0x5acf
movq 0x40(%rsp), %rdi
addq $0x30, %rdi
movslq 0x6c(%rsp), %rsi
callq 0x64a0
jmp 0x5ae4
movq 0x40(%rsp), %rdi
addq $0x48, %rdi
movslq 0x6c(%rsp), %rsi
callq 0x64a0
jmp 0x5af9
movq 0x60(%rsp), %rdi
movl $0x1, %esi
callq 0x6170
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x72a0
movsd %xmm0, 0x28(%rsp)
jmp 0x5b1c
movq 0x40(%rsp), %rax
movsd 0x28(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x60(%rsp), %rdi
movl 0x6c(%rsp), %eax
addl $0x2, %eax
movslq %eax, %rsi
callq 0x6170
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x72a0
movsd %xmm0, 0x20(%rsp)
jmp 0x5b53
movq 0x40(%rsp), %rax
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x60(%rsp), %rdi
movl 0x6c(%rsp), %eax
addl $0x3, %eax
movslq %eax, %rsi
callq 0x6170
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x72a0
movsd %xmm0, 0x18(%rsp)
jmp 0x5b8b
movq 0x40(%rsp), %rax
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movl $0x0, 0x50(%rsp)
movl 0x50(%rsp), %eax
cmpl 0x6c(%rsp), %eax
jge 0x5cce
movq 0x60(%rsp), %rdi
movl 0x50(%rsp), %eax
addl $0x2, %eax
movslq %eax, %rsi
callq 0x6170
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x72a0
movsd %xmm0, 0x10(%rsp)
jmp 0x5bd9
movq 0x40(%rsp), %rdi
addq $0x18, %rdi
movslq 0x50(%rsp), %rsi
callq 0x5780
movsd 0x10(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x60(%rsp), %rdi
movl 0x6c(%rsp), %edx
movl 0x50(%rsp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x4(%rax,%rcx), %eax
movslq %eax, %rsi
callq 0x6170
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x72a0
movsd %xmm0, 0x8(%rsp)
jmp 0x5c27
movq 0x40(%rsp), %rdi
addq $0x30, %rdi
movslq 0x50(%rsp), %rsi
callq 0x5780
movsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x60(%rsp), %rdi
movl 0x6c(%rsp), %eax
movl 0x50(%rsp), %edx
movl %eax, %ecx
movl %edx, %eax
leal 0x4(%rax,%rcx,2), %eax
movslq %eax, %rsi
callq 0x6170
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x72a0
movsd %xmm0, (%rsp)
jmp 0x5c74
movq 0x40(%rsp), %rdi
addq $0x48, %rdi
movslq 0x50(%rsp), %rsi
callq 0x5780
movsd (%rsp), %xmm0
movsd %xmm0, (%rax)
movl 0x50(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x50(%rsp)
jmp 0x5ba3
movq 0x38(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
callq 0x6540
movq 0x30(%rsp), %rdi
callq 0x6540
movq 0x48(%rsp), %rdi
callq 0x6540
jmp 0x5cd3
addq $0x78, %rsp
retq
movq 0x58(%rsp), %rdi
callq 0x34f0
nopl (%rax)