// File: btbujiangjun[P]abcdl/include/fnn/Layer.h
// Function: abcdl::fnn::Layer::set_weight(abcdl::algebra::Matrix<float> const&)
bool set_weight(const abcdl::algebra::Mat& weight){
        if(weight.rows() != _weight.rows()){
            LOG(FATAL) << "set weight rows error:" << weight.rows() << " must be:" << _weight.rows();
            return false;
        }
        if(weight.cols() != _weight.cols()){
            LOG(FATAL) << "set weight cols error:" << weight.cols() << " must be:" << _weight.cols();
            return false;
        }
        _weight = weight;
        return true;
    }

// Assembly:
subq $0x3d8, %rsp            # imm = 0x3D8
movq %rdi, 0x3c8(%rsp)
movq %rsi, 0x3c0(%rsp)
movq 0x3c8(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x3c0(%rsp), %rdi
callq 0x1a390
movq 0x70(%rsp), %rdi
movq %rax, 0x78(%rsp)
addq $0x30, %rdi
callq 0x1a390
movq %rax, %rcx
movq 0x78(%rsp), %rax
cmpq %rcx, %rax
je 0x2cb18
leaq 0x63925(%rip), %rsi     # 0x90341
leaq 0x238(%rsp), %rdi
movq %rdi, 0x60(%rsp)
movl $0x31, %edx
movl $0x3, %ecx
callq 0x89860
movq 0x60(%rsp), %rdi
leaq 0x63911(%rip), %rsi     # 0x90355
callq 0x2dcb0
movq %rax, 0x68(%rsp)
jmp 0x2ca50
movq 0x3c0(%rsp), %rdi
callq 0x1a390
movq %rax, 0x58(%rsp)
jmp 0x2ca64
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, 0x220(%rsp)
leaq 0x220(%rsp), %rsi
callq 0x2c100
movq %rax, 0x50(%rsp)
jmp 0x2ca8a
movq 0x50(%rsp), %rdi
leaq 0x63832(%rip), %rsi     # 0x902c8
callq 0x2c960
movq %rax, 0x48(%rsp)
jmp 0x2caa2
movq 0x70(%rsp), %rdi
addq $0x30, %rdi
callq 0x1a390
movq %rax, 0x40(%rsp)
jmp 0x2cab7
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rax
movq %rax, 0x218(%rsp)
leaq 0x218(%rsp), %rsi
callq 0x2c100
jmp 0x2cad8
leaq 0x238(%rsp), %rdi
callq 0x89c20
movb $0x0, 0x3d7(%rsp)
jmp 0x2cc64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x230(%rsp)
movl %eax, 0x22c(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x89c20
jmp 0x2cc75
movq 0x3c0(%rsp), %rdi
callq 0x1a3a0
movq 0x70(%rsp), %rdi
movq %rax, 0x38(%rsp)
addq $0x30, %rdi
callq 0x1a3a0
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
je 0x2cc46
leaq 0x637f1(%rip), %rsi     # 0x90341
leaq 0x90(%rsp), %rdi
movq %rdi, 0x28(%rsp)
movl $0x35, %edx
movl $0x3, %ecx
callq 0x89860
movq 0x28(%rsp), %rdi
leaq 0x637f4(%rip), %rsi     # 0x9036c
callq 0x2dcb0
movq %rax, 0x30(%rsp)
jmp 0x2cb84
movq 0x3c0(%rsp), %rdi
callq 0x1a3a0
movq %rax, 0x20(%rsp)
jmp 0x2cb98
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x88(%rsp), %rsi
callq 0x2c100
movq %rax, 0x18(%rsp)
jmp 0x2cbbe
movq 0x18(%rsp), %rdi
leaq 0x636fe(%rip), %rsi     # 0x902c8
callq 0x2c960
movq %rax, 0x10(%rsp)
jmp 0x2cbd6
movq 0x70(%rsp), %rdi
addq $0x30, %rdi
callq 0x1a3a0
movq %rax, 0x8(%rsp)
jmp 0x2cbeb
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x80(%rsp), %rsi
callq 0x2c100
jmp 0x2cc0c
leaq 0x90(%rsp), %rdi
callq 0x89c20
movb $0x0, 0x3d7(%rsp)
jmp 0x2cc64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x230(%rsp)
movl %eax, 0x22c(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x89c20
jmp 0x2cc75
movq 0x70(%rsp), %rdi
movq 0x3c0(%rsp), %rsi
addq $0x30, %rdi
callq 0x2dce0
movb $0x1, 0x3d7(%rsp)
movb 0x3d7(%rsp), %al
andb $0x1, %al
addq $0x3d8, %rsp            # imm = 0x3D8
retq
movq 0x230(%rsp), %rdi
callq 0x9700
nopw %cs:(%rax,%rax)
nopl (%rax)