// File: /workspace/github_c_makefile_star2_O1/PoulinV[P]AxiCLASS/build/../tools/dei_rkck.c
// Function: initialize_generic_integrator
int initialize_generic_integrator(
				  int n_dim,
				  struct generic_integrator_workspace * pgi){

  /** - Allocate workspace dynamically */

  pgi->n = n_dim;

  class_alloc(pgi->yscal,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->y,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->dydx,
	      sizeof(double)*n_dim,
	      pgi->error_message);

  class_alloc(pgi->yerr,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->ytempo,
	      sizeof(double)*n_dim,
	      pgi->error_message);

  class_alloc(pgi->ak2,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->ak3,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->ak4,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->ak5,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->ak6,
	      sizeof(double)*n_dim,
	      pgi->error_message);
  class_alloc(pgi->ytemp,
	      sizeof(double)*n_dim,
	      pgi->error_message);

  return _SUCCESS_;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x800, %rsp            # imm = 0x800
movq %rsi, %rbx
movl %edi, (%rsi)
movslq %edi, %r14
shlq $0x3, %r14
movq %r14, %rdi
callq 0x8460
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0xa29d
movq %r14, %rdi
callq 0x8460
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0xa2da
movq %r14, %rdi
callq 0x8460
movq %rax, 0x18(%rbx)
testq %rax, %rax
je 0xa317
movq %r14, %rdi
callq 0x8460
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0xa354
movq %r14, %rdi
callq 0x8460
movq %rax, 0x28(%rbx)
testq %rax, %rax
je 0xa391
movq %r14, %rdi
callq 0x8460
movq %rax, 0x30(%rbx)
testq %rax, %rax
je 0xa3ce
movq %r14, %rdi
callq 0x8460
movq %rax, 0x38(%rbx)
testq %rax, %rax
je 0xa40b
movq %r14, %rdi
callq 0x8460
movq %rax, 0x40(%rbx)
testq %rax, %rax
je 0xa448
movq %r14, %rdi
callq 0x8460
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0xa482
movq %r14, %rdi
callq 0x8460
movq %rax, 0x50(%rbx)
testq %rax, %rax
je 0xa4bc
movq %r14, %rdi
callq 0x8460
movq %rax, %rcx
movq %rax, 0x58(%rbx)
xorl %eax, %eax
testq %rcx, %rcx
jne 0xa503
leaq 0xe6d9d(%rip), %rsi     # 0xf1004
leaq 0xe7177(%rip), %rdx     # 0xf13e5
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6dab(%rip), %rsi     # 0xf1034
leaq 0xe70e3(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x31, %ecx
jmp 0xa4f4
leaq 0xe6d60(%rip), %rsi     # 0xf1004
leaq 0xe70bd(%rip), %rdx     # 0xf1368
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6d6e(%rip), %rsi     # 0xf1034
leaq 0xe70a6(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x11, %ecx
jmp 0xa4f4
leaq 0xe6d23(%rip), %rsi     # 0xf1004
leaq 0xe70a9(%rip), %rdx     # 0xf1391
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6d31(%rip), %rsi     # 0xf1034
leaq 0xe7069(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x14, %ecx
jmp 0xa4f4
leaq 0xe6ce6(%rip), %rsi     # 0xf1004
leaq 0xe7073(%rip), %rdx     # 0xf1398
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6cf4(%rip), %rsi     # 0xf1034
leaq 0xe702c(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x17, %ecx
jmp 0xa4f4
leaq 0xe6ca9(%rip), %rsi     # 0xf1004
leaq 0xe7040(%rip), %rdx     # 0xf13a2
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6cb7(%rip), %rsi     # 0xf1034
leaq 0xe6fef(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x1b, %ecx
jmp 0xa4f4
leaq 0xe6c6c(%rip), %rsi     # 0xf1004
leaq 0xe700d(%rip), %rdx     # 0xf13ac
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6c7a(%rip), %rsi     # 0xf1034
leaq 0xe6fb2(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x1e, %ecx
jmp 0xa4f4
leaq 0xe6c2f(%rip), %rsi     # 0xf1004
leaq 0xe6fdc(%rip), %rdx     # 0xf13b8
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6c3d(%rip), %rsi     # 0xf1034
leaq 0xe6f75(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x22, %ecx
jmp 0xa4f4
leaq 0xe6bf2(%rip), %rsi     # 0xf1004
leaq 0xe6fa8(%rip), %rdx     # 0xf13c1
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6c00(%rip), %rsi     # 0xf1034
leaq 0xe6f38(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x25, %ecx
jmp 0xa4f4
leaq 0xe6bb5(%rip), %rsi     # 0xf1004
leaq 0xe6f74(%rip), %rdx     # 0xf13ca
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6bc3(%rip), %rsi     # 0xf1034
leaq 0xe6efb(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x28, %ecx
jmp 0xa4f4
leaq 0xe6b7b(%rip), %rsi     # 0xf1004
leaq 0xe6f43(%rip), %rdx     # 0xf13d3
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6b89(%rip), %rsi     # 0xf1034
leaq 0xe6ec1(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x2b, %ecx
jmp 0xa4f4
leaq 0xe6b41(%rip), %rsi     # 0xf1004
leaq 0xe6f12(%rip), %rdx     # 0xf13dc
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x68, %rbx
leaq 0xe6b4f(%rip), %rsi     # 0xf1034
leaq 0xe6e87(%rip), %rdx     # 0xf1373
movq %rbx, %rdi
movl $0x2e, %ecx
movq %r15, %r8
xorl %eax, %eax
callq 0x30c2c
movl $0x1, %eax
addq $0x800, %rsp            # imm = 0x800
popq %rbx
popq %r14
popq %r15
retq