// File: /workspace/github_cpp_makefile_star2_O1/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 0x6a1b4
cmpl $0x1, 0x8(%rcx)
jne 0x6a1b4
cmpl $0x1, 0xc(%rcx)
jne 0x6a1b4
movq %rdi, %rbx
movl (%r14), %esi
movq %rcx, 0x10(%rsp)
movl 0x4(%rcx), %edx
movl $0x1, %ecx
movl $0x1, %r8d
callq 0x86d2
movq %rbx, 0x8(%rsp)
movl 0x4(%rbx), %eax
testl %eax, %eax
jle 0x6a1a0
movq 0x8(%rsp), %rdx
movq 0x18(%rdx), %rcx
movl (%rdx), %edx
movq 0x10(%rsp), %rsi
movl (%rsi), %esi
xorl %r15d, %r15d
xorl %r8d, %r8d
testl %edx, %edx
jle 0x6a195
movq 0x10(%rsp), %rdi
movq 0x18(%rdi), %r9
movq 0x18(%r14), %r10
movl (%r14), %r11d
xorl %ebp, %ebp
xorpd %xmm0, %xmm0
testl %esi, %esi
jle 0x6a187
movq %rsi, %r12
movl %ebp, %r13d
movl %r15d, %edi
movl %edi, %ebx
movsd (%r9,%rbx,8), %xmm1
movl %r13d, %ebx
mulsd (%r10,%rbx,8), %xmm1
addsd %xmm1, %xmm0
incl %edi
addl %r11d, %r13d
decq %r12
jne 0x6a168
movsd %xmm0, (%rcx)
addq $0x8, %rcx
incl %ebp
cmpl %edx, %ebp
jne 0x6a157
incl %r8d
addl %esi, %r15d
cmpl %eax, %r8d
jne 0x6a141
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 0x9160(%rip), %rax      # 0x73338
leaq 0xa533(%rip), %r10      # 0x74712
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %r10
movl (%r14), %r11d
movl 0x4(%r14), %r12d
movl 0x8(%r14), %r13d
movl 0xc(%r14), %ebp
leaq 0x2dbe9(%rip), %rsi     # 0x97de6
movq %r15, %rdi
xorl %eax, %eax
pushq 0x18(%r14)
pushq %rbp
pushq %r13
pushq %r12
pushq %r11
leaq 0x299db(%rip), %r11     # 0x93bef
pushq %r11
pushq %r10
pushq 0x18(%rbx)
callq 0xc196
addq $0x40, %rsp
leaq 0x429f5(%rip), %rsi     # 0xacc20
movq 0x42d9e(%rip), %rdx     # 0xacfd0
movq %r15, %rdi
callq 0x4900
movq %rax, %rbx
movq %r15, %rdi
callq 0x43b0
movq %rbx, %rdi
callq 0x4950
nop