// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<cimg_library::cimg::superset<double, double>::type> cimg_library::CImg<double>::operator*<double>(cimg_library::CImg<double> const&) const
CImg<_cimg_Tt> operator*(const CImg<t>& img) const {
      if (_width!=img._height || _depth!=1 || _spectrum!=1)
        throw CImgArgumentException(_cimg_instance
                                    "operator*(): Invalid multiplication of instance by specified "
                                    "matrix (%u,%u,%u,%u,%p)",
                                    cimg_instance,
                                    img._width,img._height,img._depth,img._spectrum,img._data);
      CImg<_cimg_Tt> res(img._width,_height);
#ifdef cimg_use_openmp
#pragma omp parallel for if (size()>1024 && img.size()>1024) collapse(2)
      cimg_forXY(res,i,j) {
        _cimg_Ttdouble value = 0; cimg_forX(*this,k) value+=(*this)(k,j)*img(i,k); res(i,j) = (_cimg_Tt)value;
      }
#else
      _cimg_Tt *ptrd = res._data;
      cimg_forXY(res,i,j) {
        _cimg_Ttdouble value = 0; cimg_forX(*this,k) value+=(*this)(k,j)*img(i,k); *(ptrd++) = (_cimg_Tt)value;
      }
#endif
      return res;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, 0x10(%rsp)
movl (%rsi), %eax
cmpl 0x4(%rdx), %eax
jne 0x4dd8c
cmpl $0x1, 0x8(%rbx)
jne 0x4dd8c
cmpl $0x1, 0xc(%rbx)
jne 0x4dd8c
movl (%r14), %esi
movl 0x4(%rbx), %edx
pushq $0x1
popq %rcx
movq 0x10(%rsp), %r15
movq %r15, %rdi
movl %ecx, %r8d
callq 0x6caa
movq 0x18(%r15), %rax
movl (%r15), %ecx
xorl %edx, %edx
testl %ecx, %ecx
cmovlel %edx, %ecx
movl 0x4(%r15), %esi
testl %esi, %esi
cmovlel %edx, %esi
movl %esi, 0xc(%rsp)
cmpl 0xc(%rsp), %edx
je 0x4dd78
movl (%rbx), %r15d
movl %r15d, %r8d
imull %edx, %r8d
xorl %r9d, %r9d
testl %r15d, %r15d
cmovlel %r9d, %r15d
cmpl %ecx, %r9d
je 0x4dd74
movq 0x18(%rbx), %r10
movq 0x18(%r14), %r11
movl (%r14), %ebp
xorpd %xmm0, %xmm0
movl %r8d, %r12d
movl %r9d, %r13d
movq %r15, %rdi
subq $0x1, %rdi
jb 0x4dd67
movl %r12d, %esi
movsd (%r10,%rsi,8), %xmm1
movl %r13d, %esi
mulsd (%r11,%rsi,8), %xmm1
addsd %xmm1, %xmm0
addl %ebp, %r13d
incl %r12d
jmp 0x4dd43
movsd %xmm0, (%rax)
addq $0x8, %rax
incl %r9d
jmp 0x4dd26
incl %edx
jmp 0x4dd0c
movq 0x10(%rsp), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x4008, %edi           # imm = 0x4008
callq 0x4210
movq %rax, %r15
movl (%rbx), %edx
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %r8d
movl 0xc(%rbx), %r9d
leaq 0x6a3b(%rip), %rax      # 0x547e8
leaq 0x7e0e(%rip), %r10      # 0x55bc2
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %r10
movl (%r14), %r11d
movl 0x4(%r14), %r12d
movl 0x8(%r14), %r13d
movl 0xc(%r14), %ebp
leaq 0x2b504(%rip), %rsi     # 0x792d6
movq %r15, %rdi
xorl %eax, %eax
pushq 0x18(%r14)
pushq %rbp
pushq %r13
pushq %r12
pushq %r11
leaq 0x272b6(%rip), %r11     # 0x7509f
pushq %r11
pushq %r10
pushq 0x18(%rbx)
callq 0x9d52
addq $0x40, %rsp
leaq 0x41e60(%rip), %rsi     # 0x8fc60
movq 0x421d1(%rip), %rdx     # 0x8ffd8
movq %r15, %rdi
callq 0x4910
movq %rax, %rbx
movq %r15, %rdi
callq 0x4390
movq %rbx, %rdi
callq 0x4950