// File: redpony[P]libpopt/./lbfgs.h
// Function: scitbx::lbfgs::minimizer<double, unsigned long>::serialize(std::ostream*) const
void serialize(std::ostream* out) const {
        out->write((const char*)&n_, sizeof(n_)); // sanity check
        out->write((const char*)&m_, sizeof(m_)); // sanity check
        SizeType fs = sizeof(FloatType);
        out->write((const char*)&fs, sizeof(fs)); // sanity check

        mcsrch_instance.serialize(out);
        out->write((const char*)&iflag_, sizeof(iflag_));
        out->write((const char*)&requests_f_and_g_, sizeof(requests_f_and_g_));
        out->write((const char*)&requests_diag_, sizeof(requests_diag_));
        out->write((const char*)&iter_, sizeof(iter_));
        out->write((const char*)&nfun_, sizeof(nfun_));
        out->write((const char*)&stp_, sizeof(stp_));
        out->write((const char*)&stp1, sizeof(stp1));
        out->write((const char*)&ftol, sizeof(ftol));
        out->write((const char*)&ys, sizeof(ys));
        out->write((const char*)&point, sizeof(point));
        out->write((const char*)&npt, sizeof(npt));
        out->write((const char*)&info, sizeof(info));
        out->write((const char*)&bound, sizeof(bound));
        out->write((const char*)&nfev, sizeof(nfev));
        out->write((const char*)&w_[0], sizeof(FloatType) * w_.size());
        out->write((const char*)&scratch_array_[0], sizeof(FloatType) * scratch_array_.size());
      }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq 0x40(%rsp), %rsi
movq %rsi, 0x18(%rsp)
movq 0x38(%rsp), %rdi
addq $0x78, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0x80, %rsi
movl $0x8, %edx
callq 0x32e0
movq $0x8, 0x30(%rsp)
movq 0x38(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x93e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xb0, %rsi
movl $0x4, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xb4, %rsi
movl $0x1, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xb5, %rsi
movl $0x1, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xb8, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xc0, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xc8, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xd0, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xd8, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xe0, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xe8, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0xf0, %rsi
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0x108, %rsi            # imm = 0x108
movl $0x4, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0x110, %rsi            # imm = 0x110
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rdi
addq $0x118, %rsi            # imm = 0x118
movl $0x8, %edx
callq 0x32e0
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
addq $0x120, %rdi            # imm = 0x120
xorl %eax, %eax
movl %eax, %esi
callq 0x55a0
movq 0x18(%rsp), %rdi
movq %rax, 0x10(%rsp)
addq $0x120, %rdi            # imm = 0x120
callq 0x52d0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
shlq $0x3, %rdx
callq 0x32e0
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
addq $0x138, %rdi            # imm = 0x138
xorl %eax, %eax
movl %eax, %esi
callq 0x55a0
movq 0x18(%rsp), %rdi
movq %rax, 0x28(%rsp)
addq $0x138, %rdi            # imm = 0x138
callq 0x52d0
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq %rax, %rdx
shlq $0x3, %rdx
callq 0x32e0
addq $0x48, %rsp
retq
nopw (%rax,%rax)