// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImgList<double>::get_append(char, float) const
CImg<T> get_append(const char axis, const float align=0) const {
      if (is_empty()) return CImg<T>();
      if (_width==1) return +((*this)[0]);
      unsigned int dx = 0, dy = 0, dz = 0, dc = 0, pos = 0;
      CImg<T> res;
      switch (cimg::uncase(axis)) {
      case 'x' : { // Along the X-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx+=img._width;
            dy = cimg::max(dy,img._height);
            dz = cimg::max(dz,img._depth);
            dc = cimg::max(dc,img._spectrum);
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image(pos,
                                    (int)(align*(dy-img._height)),
                                    (int)(align*(dz-img._depth)),
                                    (int)(align*(dc-img._spectrum)),
                                    img);
            pos+=img._width;
          }
      } break;
      case 'y' : { // Along the Y-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx = cimg::max(dx,img._width);
            dy+=img._height;
            dz = cimg::max(dz,img._depth);
            dc = cimg::max(dc,img._spectrum);
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image((int)(align*(dx-img._width)),
                                    pos,
                                    (int)(align*(dz-img._depth)),
                                    (int)(align*(dc-img._spectrum)),
                                    img);
            pos+=img._height;
          }
      } break;
      case 'z' : { // Along the Z-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx = cimg::max(dx,img._width);
            dy = cimg::max(dy,img._height);
            dz+=img._depth;
            dc = cimg::max(dc,img._spectrum);
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image((int)(align*(dx-img._width)),
                                    (int)(align*(dy-img._height)),
                                    pos,
                                    (int)(align*(dc-img._spectrum)),
                                    img);
            pos+=img._depth;
          }
      } break;
      default : { // Along the C-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx = cimg::max(dx,img._width);
            dy = cimg::max(dy,img._height);
            dz = cimg::max(dz,img._depth);
            dc+=img._spectrum;
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image((int)(align*(dx-img._width)),
                                    (int)(align*(dy-img._height)),
                                    (int)(align*(dz-img._depth)),
                                    pos,
                                    img);
            pos+=img._spectrum;
          }
      }
      }
      return res;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movss %xmm0, 0x4(%rsp)
movq %rsi, %rcx
movq %rdi, %rbx
movq 0x8(%rsi), %rsi
testq %rsi, %rsi
sete %al
movq %rcx, 0x8(%rsp)
movl (%rcx), %edi
testl %edi, %edi
sete %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x8ea4
andq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
jmp 0x8eb1
cmpl $0x1, %edi
jne 0x8eb9
movq %rbx, %rdi
callq 0x2a6b0
movq %rbx, %rax
jmp 0x9325
andq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
leal -0x5b(%rdx), %eax
leal 0x20(%rdx), %ecx
cmpb $-0x1a, %al
movzbl %dl, %eax
movzbl %cl, %ecx
cmovbl %eax, %ecx
xorl %eax, %eax
testl %edi, %edi
cmovlel %eax, %edi
cmpb $0x78, %cl
movq %rbx, 0x10(%rsp)
je 0x9050
movzbl %cl, %eax
shlq $0x5, %rdi
cmpl $0x79, %eax
je 0x8f4c
cmpl $0x7a, %eax
jne 0x9157
xorl %eax, %eax
xorl %r9d, %r9d
xorl %r15d, %r15d
xorl %ecx, %ecx
xorl %r12d, %r12d
cmpq %rax, %rdi
je 0x91a1
cmpq $0x0, 0x18(%rsi,%rax)
je 0x8f46
movl (%rsi,%rax), %edx
movl 0x4(%rsi,%rax), %r8d
cmpl %edx, %r9d
cmovbel %edx, %r9d
cmpl %r8d, %r15d
cmovbel %r8d, %r15d
addl 0x8(%rsi,%rax), %ecx
movl 0xc(%rsi,%rax), %edx
cmpl %edx, %r12d
cmovbel %edx, %r12d
addq $0x20, %rax
jmp 0x8f10
xorl %eax, %eax
xorl %r8d, %r8d
xorl %edx, %edx
xorl %r15d, %r15d
xorl %r12d, %r12d
cmpq %rax, %rdi
je 0x8f90
cmpq $0x0, 0x18(%rsi,%rax)
je 0x8f8a
movl (%rsi,%rax), %ecx
cmpl %ecx, %r8d
cmovbel %ecx, %r8d
movl 0x8(%rsi,%rax), %ecx
addl 0x4(%rsi,%rax), %edx
cmpl %ecx, %r15d
cmovbel %ecx, %r15d
movl 0xc(%rsi,%rax), %ecx
cmpl %ecx, %r12d
cmovbel %ecx, %r12d
addq $0x20, %rax
jmp 0x8f59
xorps %xmm0, %xmm0
movq %rbx, %rdi
movl %r8d, (%rsp)
movl %r8d, %esi
movl %r15d, %ecx
movl %r12d, %r8d
callq 0x2a6c0
cmpq $0x0, 0x18(%rbx)
movq 0x8(%rsp), %rax
je 0x9320
xorl %ebx, %ebx
xorl %r14d, %r14d
xorl %r13d, %r13d
movq %rax, %rcx
movslq (%rax), %rax
cmpq %rax, %r14
jge 0x9320
movq 0x8(%rcx), %rbp
cmpq $0x0, 0x18(%rbp,%rbx)
movq %rcx, %rax
je 0x903f
movl (%rsp), %eax
subl (%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
movl %r15d, %eax
subl 0x8(%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movl %r12d, %eax
subl 0xc(%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
leaq (%rbx,%rbp), %r9
mulss %xmm1, %xmm0
cvttss2si %xmm0, %r8d
movq 0x10(%rsp), %rdi
movl %r13d, %edx
movss 0x4b1eb(%rip), %xmm0    # 0x54220
callq 0x2a6da
movq 0x8(%rsp), %rax
addl 0x4(%rbp,%rbx), %r13d
incq %r14
addq $0x20, %rbx
jmp 0x8fc0
shlq $0x5, %rdi
xorl %ecx, %ecx
xorl %edx, %edx
xorl %r15d, %r15d
xorl %r12d, %r12d
cmpq %rcx, %rdi
je 0x9098
cmpq $0x0, 0x18(%rsi,%rcx)
je 0x9092
addl (%rsi,%rcx), %eax
movl 0x4(%rsi,%rcx), %r9d
movl 0x8(%rsi,%rcx), %r8d
cmpl %r9d, %edx
cmovbel %r9d, %edx
cmpl %r8d, %r15d
cmovbel %r8d, %r15d
movl 0xc(%rsi,%rcx), %r8d
cmpl %r8d, %r12d
cmovbel %r8d, %r12d
addq $0x20, %rcx
jmp 0x905e
xorps %xmm0, %xmm0
movq %rbx, %rdi
movl %eax, %esi
movl %edx, (%rsp)
movl %r15d, %ecx
movl %r12d, %r8d
callq 0x2a6c0
cmpq $0x0, 0x18(%rbx)
movq 0x8(%rsp), %rax
je 0x9320
xorl %r14d, %r14d
xorl %ebp, %ebp
xorl %r13d, %r13d
movq %rax, %rcx
movslq (%rcx), %rax
cmpq %rax, %rbp
jge 0x9320
movq 0x8(%rcx), %rax
leaq (%rax,%r14), %rbx
cmpq $0x0, 0x18(%rax,%r14)
je 0x9143
movl (%rsp), %ecx
subl 0x4(%rax,%r14), %ecx
cvtsi2ss %rcx, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movl %r15d, %ecx
subl 0x8(%rax,%r14), %ecx
cvtsi2ss %rcx, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movl %r12d, %esi
subl 0xc(%rax,%r14), %esi
cvtsi2ss %rsi, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %r8d
movq 0x10(%rsp), %rdi
movl %r13d, %esi
movq %rbx, %r9
movss 0x4b0e2(%rip), %xmm0    # 0x54220
callq 0x2a6da
addl (%rbx), %r13d
incq %rbp
addq $0x20, %r14
movq 0x8(%rsp), %rcx
jmp 0x90c9
xorl %eax, %eax
xorl %r9d, %r9d
xorl %r15d, %r15d
xorl %r12d, %r12d
xorl %r8d, %r8d
cmpq %rax, %rdi
je 0x9261
cmpq $0x0, 0x18(%rsi,%rax)
je 0x919b
movl (%rsi,%rax), %ecx
movl 0x4(%rsi,%rax), %edx
cmpl %ecx, %r9d
cmovbel %ecx, %r9d
cmpl %edx, %r15d
cmovbel %edx, %r15d
movl 0x8(%rsi,%rax), %ecx
cmpl %ecx, %r12d
cmovbel %ecx, %r12d
addl 0xc(%rsi,%rax), %r8d
addq $0x20, %rax
jmp 0x9165
xorps %xmm0, %xmm0
movq %rbx, %rdi
movl %r9d, (%rsp)
movl %r9d, %esi
movl %r15d, %edx
movl %r12d, %r8d
callq 0x2a6c0
cmpq $0x0, 0x18(%rbx)
movq 0x8(%rsp), %rax
je 0x9320
xorl %ebx, %ebx
xorl %r14d, %r14d
xorl %r13d, %r13d
movq %rax, %rcx
movslq (%rax), %rax
cmpq %rax, %r14
jge 0x9320
movq 0x8(%rcx), %rbp
cmpq $0x0, 0x18(%rbp,%rbx)
movq %rcx, %rax
je 0x9250
movl (%rsp), %eax
subl (%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
movl %r15d, %eax
subl 0x4(%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movl %r12d, %eax
subl 0xc(%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
leaq (%rbx,%rbp), %r9
mulss %xmm1, %xmm0
cvttss2si %xmm0, %r8d
movq 0x10(%rsp), %rdi
movl %r13d, %ecx
movss 0x4afda(%rip), %xmm0    # 0x54220
callq 0x2a6da
movq 0x8(%rsp), %rax
addl 0x8(%rbp,%rbx), %r13d
incq %r14
addq $0x20, %rbx
jmp 0x91d1
xorps %xmm0, %xmm0
movq %rbx, %rdi
movl %r9d, (%rsp)
movl %r9d, %esi
movl %r15d, %edx
movl %r12d, %ecx
callq 0x2a6c0
cmpq $0x0, 0x18(%rbx)
movq 0x8(%rsp), %rax
je 0x9320
xorl %ebx, %ebx
xorl %r14d, %r14d
xorl %r13d, %r13d
movq %rax, %rcx
movslq (%rax), %rax
cmpq %rax, %r14
jge 0x9320
movq 0x8(%rcx), %rbp
cmpq $0x0, 0x18(%rbp,%rbx)
movq %rcx, %rax
je 0x930f
movl (%rsp), %eax
subl (%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
movl %r15d, %eax
subl 0x4(%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movl %r12d, %eax
subl 0x8(%rbp,%rbx), %eax
cvtsi2ss %rax, %xmm0
leaq (%rbx,%rbp), %r9
mulss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movq 0x10(%rsp), %rdi
movl %r13d, %r8d
movss 0x4af1b(%rip), %xmm0    # 0x54220
callq 0x2a6da
movq 0x8(%rsp), %rax
addl 0xc(%rbp,%rbx), %r13d
incq %r14
addq $0x20, %rbx
jmp 0x9291
movq 0x10(%rsp), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x933c
jmp 0x933c
jmp 0x933c
jmp 0x933c
movq %rax, %rbx
movq 0x10(%rsp), %rdi
callq 0x6c96
movq %rbx, %rdi
callq 0x4950
nop