// File: /workspace/github_c_makefile_star2_O3/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 0xa281
movq %r14, %rdi
callq 0x8460
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0xa2be
movq %r14, %rdi
callq 0x8460
movq %rax, 0x18(%rbx)
testq %rax, %rax
je 0xa2fb
movq %r14, %rdi
callq 0x8460
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0xa338
movq %r14, %rdi
callq 0x8460
movq %rax, 0x28(%rbx)
testq %rax, %rax
je 0xa375
movq %r14, %rdi
callq 0x8460
movq %rax, 0x30(%rbx)
testq %rax, %rax
je 0xa3b2
movq %r14, %rdi
callq 0x8460
movq %rax, 0x38(%rbx)
testq %rax, %rax
je 0xa3ef
movq %r14, %rdi
callq 0x8460
movq %rax, 0x40(%rbx)
testq %rax, %rax
je 0xa42c
movq %r14, %rdi
callq 0x8460
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0xa466
movq %r14, %rdi
callq 0x8460
movq %rax, 0x50(%rbx)
testq %rax, %rax
je 0xa4a0
movq %r14, %rdi
callq 0x8460
movq %rax, %rcx
movq %rax, 0x58(%rbx)
xorl %eax, %eax
testq %rcx, %rcx
jne 0xa4e7
leaq 0xe3db9(%rip), %rsi     # 0xee004
leaq 0xe4193(%rip), %rdx     # 0xee3e5
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3dc7(%rip), %rsi     # 0xee034
leaq 0xe40ff(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x31, %ecx
jmp 0xa4d8
leaq 0xe3d7c(%rip), %rsi     # 0xee004
leaq 0xe40d9(%rip), %rdx     # 0xee368
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3d8a(%rip), %rsi     # 0xee034
leaq 0xe40c2(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x11, %ecx
jmp 0xa4d8
leaq 0xe3d3f(%rip), %rsi     # 0xee004
leaq 0xe40c5(%rip), %rdx     # 0xee391
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3d4d(%rip), %rsi     # 0xee034
leaq 0xe4085(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x14, %ecx
jmp 0xa4d8
leaq 0xe3d02(%rip), %rsi     # 0xee004
leaq 0xe408f(%rip), %rdx     # 0xee398
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3d10(%rip), %rsi     # 0xee034
leaq 0xe4048(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x17, %ecx
jmp 0xa4d8
leaq 0xe3cc5(%rip), %rsi     # 0xee004
leaq 0xe405c(%rip), %rdx     # 0xee3a2
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3cd3(%rip), %rsi     # 0xee034
leaq 0xe400b(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x1b, %ecx
jmp 0xa4d8
leaq 0xe3c88(%rip), %rsi     # 0xee004
leaq 0xe4029(%rip), %rdx     # 0xee3ac
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3c96(%rip), %rsi     # 0xee034
leaq 0xe3fce(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x1e, %ecx
jmp 0xa4d8
leaq 0xe3c4b(%rip), %rsi     # 0xee004
leaq 0xe3ff8(%rip), %rdx     # 0xee3b8
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3c59(%rip), %rsi     # 0xee034
leaq 0xe3f91(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x22, %ecx
jmp 0xa4d8
leaq 0xe3c0e(%rip), %rsi     # 0xee004
leaq 0xe3fc4(%rip), %rdx     # 0xee3c1
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3c1c(%rip), %rsi     # 0xee034
leaq 0xe3f54(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x25, %ecx
jmp 0xa4d8
leaq 0xe3bd1(%rip), %rsi     # 0xee004
leaq 0xe3f90(%rip), %rdx     # 0xee3ca
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3bdf(%rip), %rsi     # 0xee034
leaq 0xe3f17(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x28, %ecx
jmp 0xa4d8
leaq 0xe3b97(%rip), %rsi     # 0xee004
leaq 0xe3f5f(%rip), %rdx     # 0xee3d3
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3ba5(%rip), %rsi     # 0xee034
leaq 0xe3edd(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x2b, %ecx
jmp 0xa4d8
leaq 0xe3b5d(%rip), %rsi     # 0xee004
leaq 0xe3f2e(%rip), %rdx     # 0xee3dc
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x68, %rbx
leaq 0xe3b6b(%rip), %rsi     # 0xee034
leaq 0xe3ea3(%rip), %rdx     # 0xee373
movq %rbx, %rdi
movl $0x2e, %ecx
movq %r15, %r8
xorl %eax, %eax
callq 0x30af0
movl $0x1, %eax
addq $0x800, %rsp            # imm = 0x800
popq %rbx
popq %r14
popq %r15
retq