// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/array2dim_sparse.c
// Function: gt_array2dim_sparse_example
int gt_array2dim_sparse_example(GT_UNUSED GtError *err)
{
  int **a2dim, i, j;
  GtRowInfo ri[10];
  gt_error_check(err);

  /* initialize row info */
  for (i = 0; i < 10; i++) {
    ri[i].offset = i;
    ri[i].length = 6;
  }

  /* create sparse matrix */
  gt_array2dim_sparse_calloc(a2dim, 10, 60, ri);

  /* fill matrix */
  for (i = 0; i < 10; i++) {
    for (j = 0; j < 6; j++)
      a2dim[i][i+j] = i;
  }

  gt_assert(a2dim[0][0] == 0);
  gt_assert(a2dim[5][5] == 5);
  gt_assert(a2dim[9][14] == 9);

  /* free */
  gt_array2dim_delete(a2dim);

  return 0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0xa0, %rsp
testq %rdi, %rdi
je 0x59fed
callq 0x89eb7
testb %al, %al
jne 0x5a1a2
leaq 0x8(%rsp), %rax
xorl %ecx, %ecx
cmpq $0xa, %rcx
je 0x5a00e
movq %rcx, -0x8(%rax)
movq $0x6, (%rax)
incq %rcx
addq $0x10, %rax
jmp 0x59ff4
cmpq $0x0, (%rsp)
jne 0x5a0f7
leaq 0x2a4fd0(%rip), %r14    # 0x2feff0
pushq $0x50
popq %rdi
pushq $0x32
popq %rbp
movq %r14, %rsi
movl %ebp, %edx
callq 0x93160
movq %rax, %rbx
pushq $0x3c
popq %rdi
pushq $0x4
popq %rsi
movq %r14, %rdx
movl %ebp, %ecx
callq 0x9334a
movq %rax, (%rbx)
pushq $0x8
popq %rcx
xorl %edx, %edx
movq %rax, %rsi
cmpq $0x50, %rcx
je 0x5a07a
leaq (%rsi,%rdx,4), %rsi
movq -0x8(%rsp,%rcx,2), %rdi
movq (%rsp,%rcx,2), %rdx
leaq (%rsi,%rdi,4), %rsi
leaq (,%rdx,4), %rdi
subq %rdi, %rsi
movq %rsi, (%rbx,%rcx)
addq $0x8, %rcx
jmp 0x5a04e
xorl %ecx, %ecx
xorl %edx, %edx
cmpq $0xa, %rdx
je 0x5a0a4
movq (%rbx,%rdx,8), %rsi
addq %rcx, %rsi
xorl %edi, %edi
cmpq $0x6, %rdi
je 0x5a09b
movl %edx, (%rsi,%rdi,4)
incq %rdi
jmp 0x5a08d
incq %rdx
addq $0x4, %rcx
jmp 0x5a07e
cmpl $0x0, (%rax)
jne 0x5a124
movq 0x28(%rbx), %rcx
cmpl $0x5, 0x14(%rcx)
jne 0x5a14e
movq 0x48(%rbx), %rcx
cmpl $0x9, 0x38(%rcx)
jne 0x5a178
leaq 0x2a4f24(%rip), %r14    # 0x2feff0
pushq $0x3f
popq %rbp
movq %rax, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x936f9
movq %rbx, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x936f9
xorl %eax, %eax
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq 0x3dde6a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x28af0b(%rip), %rsi    # 0x2e5013
leaq 0x2a4efd(%rip), %rdx    # 0x2ff00c
leaq 0x2a4ebe(%rip), %rcx    # 0x2fefd4
leaq 0x2a4ed3(%rip), %r8     # 0x2feff0
pushq $0x32
jmp 0x5a1ca
movq 0x3dde3d(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x28aede(%rip), %rsi    # 0x2e5013
leaq 0x2a4ee5(%rip), %rdx    # 0x2ff021
leaq 0x2a4e91(%rip), %rcx    # 0x2fefd4
leaq 0x2a4ea6(%rip), %r8     # 0x2feff0
pushq $0x3a
jmp 0x5a1ca
movq 0x3dde13(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x28aeb4(%rip), %rsi    # 0x2e5013
leaq 0x2a4ecc(%rip), %rdx    # 0x2ff032
leaq 0x2a4e67(%rip), %rcx    # 0x2fefd4
leaq 0x2a4e7c(%rip), %r8     # 0x2feff0
pushq $0x3b
jmp 0x5a1ca
movq 0x3ddde9(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x28ae8a(%rip), %rsi    # 0x2e5013
leaq 0x2a4eb3(%rip), %rdx    # 0x2ff043
leaq 0x2a4e3d(%rip), %rcx    # 0x2fefd4
leaq 0x2a4e52(%rip), %r8     # 0x2feff0
pushq $0x3c
jmp 0x5a1ca
movq 0x3dddbf(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x28ae60(%rip), %rsi    # 0x2e5013
leaq 0x28b005(%rip), %rdx    # 0x2e51bf
leaq 0x2a4e13(%rip), %rcx    # 0x2fefd4
leaq 0x2a4e28(%rip), %r8     # 0x2feff0
pushq $0x29
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390