// File: /workspace/github_cpp_makefile_star2_O3/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, %rcx
movl (%rsi), %eax
cmpl 0x4(%rdx), %eax
jne 0x6729c
cmpl $0x1, 0x8(%rcx)
jne 0x6729c
cmpl $0x1, 0xc(%rcx)
jne 0x6729c
movq %rdi, %rbx
movl (%r14), %esi
movq %rcx, 0x10(%rsp)
movl 0x4(%rcx), %edx
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x8666
movq %rbx, 0x8(%rsp)
movl 0x4(%rbx), %eax
testl %eax, %eax
jle 0x67288
movq 0x8(%rsp), %rdx
movq 0x18(%rdx), %rcx
movl (%rdx), %edx
movq 0x10(%rsp), %rsi
movl (%rsi), %esi
xorl %edi, %edi
xorl %r8d, %r8d
testl %edx, %edx
jle 0x6727e
movq 0x10(%rsp), %r9
movq 0x18(%r9), %r9
movq 0x18(%r14), %r10
movl (%r14), %r11d
xorl %r15d, %r15d
xorpd %xmm0, %xmm0
testl %esi, %esi
jle 0x6726e
movq %rsi, %r12
movl %edi, %r13d
movl %r15d, %ebp
movl %r13d, %ebx
movsd (%r9,%rbx,8), %xmm1
movl %ebp, %ebx
mulsd (%r10,%rbx,8), %xmm1
addsd %xmm1, %xmm0
addl %r11d, %ebp
incl %r13d
decq %r12
jne 0x6724e
movsd %xmm0, (%rcx)
addq $0x8, %rcx
incl %r15d
cmpl %edx, %r15d
jne 0x6723d
incl %r8d
addl %esi, %edi
cmpl %eax, %r8d
jne 0x67226
movq 0x8(%rsp), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x4008, %edi           # imm = 0x4008
movq %rcx, %rbx
callq 0x4210
movq %rax, %r15
movl (%rbx), %edx
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %r8d
movl 0xc(%rbx), %r9d
leaq 0x75a8(%rip), %rax      # 0x6e868
leaq 0x897b(%rip), %r10      # 0x6fc42
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %r10
movl (%r14), %r11d
movl 0x4(%r14), %r12d
movl 0x8(%r14), %r13d
movl 0xc(%r14), %ebp
leaq 0x2bf3b(%rip), %rsi     # 0x93220
movq %r15, %rdi
xorl %eax, %eax
pushq 0x18(%r14)
pushq %rbp
pushq %r13
pushq %r12
pushq %r11
leaq 0x27e23(%rip), %r11     # 0x8f11f
pushq %r11
pushq %r10
pushq 0x18(%rbx)
callq 0xc16a
addq $0x40, %rsp
leaq 0x4093d(%rip), %rsi     # 0xa7c50
movq 0x40cb6(%rip), %rdx     # 0xa7fd0
movq %r15, %rdi
callq 0x4910
movq %rax, %rbx
movq %r15, %rdi
callq 0x43c0
movq %rbx, %rdi
callq 0x4960
nop