// File: btbujiangjun[P]abcdl/include/fnn/Layer.h
// Function: abcdl::fnn::Layer::set_bias(abcdl::algebra::Matrix<float> const&)
bool set_bias(const abcdl::algebra::Mat& bias){
        if(bias.rows() != _bias.rows()){
            LOG(FATAL) << "set bias rows error:" << bias.rows() << " must be:" << _bias.rows();
            return false;
        }
        if(bias.cols() != _bias.cols()){
            LOG(FATAL) << "set bias cols error:" << bias.cols() << " must be:" << _bias.cols();
            return false;
        }
        _bias = bias;
        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 $0x68, %rdi
callq 0x1a390
movq %rax, %rcx
movq 0x78(%rsp), %rax
cmpq %rcx, %rax
je 0x2ce38
leaq 0x63605(%rip), %rsi     # 0x90341
leaq 0x238(%rsp), %rdi
movq %rdi, 0x60(%rsp)
movl $0x3f, %edx
movl $0x3, %ecx
callq 0x89860
movq 0x60(%rsp), %rdi
leaq 0x6361f(%rip), %rsi     # 0x90383
callq 0x2c840
movq %rax, 0x68(%rsp)
jmp 0x2cd70
movq 0x3c0(%rsp), %rdi
callq 0x1a390
movq %rax, 0x58(%rsp)
jmp 0x2cd84
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, 0x220(%rsp)
leaq 0x220(%rsp), %rsi
callq 0x2c100
movq %rax, 0x50(%rsp)
jmp 0x2cdaa
movq 0x50(%rsp), %rdi
leaq 0x63512(%rip), %rsi     # 0x902c8
callq 0x2c960
movq %rax, 0x48(%rsp)
jmp 0x2cdc2
movq 0x70(%rsp), %rdi
addq $0x68, %rdi
callq 0x1a390
movq %rax, 0x40(%rsp)
jmp 0x2cdd7
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rax
movq %rax, 0x218(%rsp)
leaq 0x218(%rsp), %rsi
callq 0x2c100
jmp 0x2cdf8
leaq 0x238(%rsp), %rdi
callq 0x89c20
movb $0x0, 0x3d7(%rsp)
jmp 0x2cf84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x230(%rsp)
movl %eax, 0x22c(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x89c20
jmp 0x2cf95
movq 0x3c0(%rsp), %rdi
callq 0x1a3a0
movq 0x70(%rsp), %rdi
movq %rax, 0x38(%rsp)
addq $0x68, %rdi
callq 0x1a3a0
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
je 0x2cf66
leaq 0x634d1(%rip), %rsi     # 0x90341
leaq 0x90(%rsp), %rdi
movq %rdi, 0x28(%rsp)
movl $0x43, %edx
movl $0x3, %ecx
callq 0x89860
movq 0x28(%rsp), %rdi
leaq 0x63500(%rip), %rsi     # 0x90398
callq 0x2c840
movq %rax, 0x30(%rsp)
jmp 0x2cea4
movq 0x3c0(%rsp), %rdi
callq 0x1a3a0
movq %rax, 0x20(%rsp)
jmp 0x2ceb8
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x88(%rsp), %rsi
callq 0x2c100
movq %rax, 0x18(%rsp)
jmp 0x2cede
movq 0x18(%rsp), %rdi
leaq 0x633de(%rip), %rsi     # 0x902c8
callq 0x2c960
movq %rax, 0x10(%rsp)
jmp 0x2cef6
movq 0x70(%rsp), %rdi
addq $0x68, %rdi
callq 0x1a3a0
movq %rax, 0x8(%rsp)
jmp 0x2cf0b
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x80(%rsp), %rsi
callq 0x2c100
jmp 0x2cf2c
leaq 0x90(%rsp), %rdi
callq 0x89c20
movb $0x0, 0x3d7(%rsp)
jmp 0x2cf84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x230(%rsp)
movl %eax, 0x22c(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x89c20
jmp 0x2cf95
movq 0x70(%rsp), %rdi
movq 0x3c0(%rsp), %rsi
addq $0x68, %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)