// File: /workspace/github_c_makefile_star2_O2/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 0x8490
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x8deb
movq %r14, %rdi
callq 0x8490
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0x8e22
movq %r14, %rdi
callq 0x8490
movq %rax, 0x18(%rbx)
testq %rax, %rax
je 0x8e59
movq %r14, %rdi
callq 0x8490
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0x8e90
movq %r14, %rdi
callq 0x8490
movq %rax, 0x28(%rbx)
testq %rax, %rax
je 0x8ec7
movq %r14, %rdi
callq 0x8490
movq %rax, 0x30(%rbx)
testq %rax, %rax
je 0x8efe
movq %r14, %rdi
callq 0x8490
movq %rax, 0x38(%rbx)
testq %rax, %rax
je 0x8f35
movq %r14, %rdi
callq 0x8490
movq %rax, 0x40(%rbx)
testq %rax, %rax
je 0x8f6c
movq %r14, %rdi
callq 0x8490
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0x8fa0
movq %r14, %rdi
callq 0x8490
movq %rax, 0x50(%rbx)
testq %rax, %rax
je 0x8fd4
movq %r14, %rdi
callq 0x8490
movq %rax, %rcx
movq %rax, 0x58(%rbx)
xorl %eax, %eax
testq %rcx, %rcx
jne 0x9017
leaq 0xdc249(%rip), %rsi     # 0xe5004
leaq 0xdc623(%rip), %rdx     # 0xe53e5
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc257(%rip), %rsi     # 0xe5034
leaq 0xdc58f(%rip), %rdx     # 0xe5373
pushq $0x31
jmp 0x9006
leaq 0xdc212(%rip), %rsi     # 0xe5004
leaq 0xdc56f(%rip), %rdx     # 0xe5368
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc220(%rip), %rsi     # 0xe5034
leaq 0xdc558(%rip), %rdx     # 0xe5373
pushq $0x11
jmp 0x9006
leaq 0xdc1db(%rip), %rsi     # 0xe5004
leaq 0xdc561(%rip), %rdx     # 0xe5391
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc1e9(%rip), %rsi     # 0xe5034
leaq 0xdc521(%rip), %rdx     # 0xe5373
pushq $0x14
jmp 0x9006
leaq 0xdc1a4(%rip), %rsi     # 0xe5004
leaq 0xdc531(%rip), %rdx     # 0xe5398
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc1b2(%rip), %rsi     # 0xe5034
leaq 0xdc4ea(%rip), %rdx     # 0xe5373
pushq $0x17
jmp 0x9006
leaq 0xdc16d(%rip), %rsi     # 0xe5004
leaq 0xdc504(%rip), %rdx     # 0xe53a2
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc17b(%rip), %rsi     # 0xe5034
leaq 0xdc4b3(%rip), %rdx     # 0xe5373
pushq $0x1b
jmp 0x9006
leaq 0xdc136(%rip), %rsi     # 0xe5004
leaq 0xdc4d7(%rip), %rdx     # 0xe53ac
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc144(%rip), %rsi     # 0xe5034
leaq 0xdc47c(%rip), %rdx     # 0xe5373
pushq $0x1e
jmp 0x9006
leaq 0xdc0ff(%rip), %rsi     # 0xe5004
leaq 0xdc4ac(%rip), %rdx     # 0xe53b8
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc10d(%rip), %rsi     # 0xe5034
leaq 0xdc445(%rip), %rdx     # 0xe5373
pushq $0x22
jmp 0x9006
leaq 0xdc0c8(%rip), %rsi     # 0xe5004
leaq 0xdc47e(%rip), %rdx     # 0xe53c1
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc0d6(%rip), %rsi     # 0xe5034
leaq 0xdc40e(%rip), %rdx     # 0xe5373
pushq $0x25
jmp 0x9006
leaq 0xdc091(%rip), %rsi     # 0xe5004
leaq 0xdc450(%rip), %rdx     # 0xe53ca
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc09f(%rip), %rsi     # 0xe5034
leaq 0xdc3d7(%rip), %rdx     # 0xe5373
pushq $0x28
jmp 0x9006
leaq 0xdc05d(%rip), %rsi     # 0xe5004
leaq 0xdc425(%rip), %rdx     # 0xe53d3
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc06b(%rip), %rsi     # 0xe5034
leaq 0xdc3a3(%rip), %rdx     # 0xe5373
pushq $0x2b
jmp 0x9006
leaq 0xdc029(%rip), %rsi     # 0xe5004
leaq 0xdc3fa(%rip), %rdx     # 0xe53dc
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x68, %rbx
leaq 0xdc037(%rip), %rsi     # 0xe5034
leaq 0xdc36f(%rip), %rdx     # 0xe5373
pushq $0x2e
popq %rcx
movq %rbx, %rdi
movq %r15, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rax
addq $0x800, %rsp            # imm = 0x800
popq %rbx
popq %r14
popq %r15
retq