// File: TBody[P]atomicpp/atomicpp/RateEquations.cpp
// Function: atomicpp::RateEquations::printDerivativeStruct(atomicpp::DerivStruct&)
void RateEquations::printDerivativeStruct(DerivStruct& derivative_struct){
	double Pcool             = derivative_struct.Pcool;
	double Prad              = derivative_struct.Prad;
	std::vector<double> dNzk = derivative_struct.dNzk;
	std::vector<double> F_zk = derivative_struct.F_zk;
	double dNe               = derivative_struct.dNe;
	double F_i               = derivative_struct.F_i;
	double dNn               = derivative_struct.dNn;
	double F_n               = derivative_struct.F_n;

	//Print-verifying the return from computeDerivs
	std::printf("Pcool:       %+.2e [J m^-3 s^-1]\n", Pcool);
	std::printf("Prad:        %+.2e [J m^-3 s^-1]\n" , Prad);
	for(int k=0; k<=Z; ++k){
	std::printf("dNz^(%i)/dt:  %+.2e [p m^-3 s^-1]\n",k ,dNzk[k]);
	}
	for(int k=0; k<=Z; ++k){
	std::printf("Fz^(%i):      %+.2e [N]\n",k ,F_zk[k]);
	}
	std::printf("dNe/dt:      %+.2e [p m^-3 s^-1]\n",dNe);
	std::printf("F_i:         %+.2e [N]\n",F_i);
	std::printf("dNn/dt:      %+.2e [p m^-3 s^-1]\n",dNn);
	std::printf("F_n:         %+.2e [N]\n",F_n);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x18(%rbp)
movq -0x10(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x20(%rbp)
movq -0x10(%rbp), %rsi
addq $0x10, %rsi
leaq -0x38(%rbp), %rdi
callq 0x20df0
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x50(%rbp), %rdi
callq 0x20df0
jmp 0x3562d
movq -0x10(%rbp), %rax
movsd 0x40(%rax), %xmm0
movsd %xmm0, -0x68(%rbp)
movq -0x10(%rbp), %rax
movsd 0x48(%rax), %xmm0
movsd %xmm0, -0x70(%rbp)
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
movsd %xmm0, -0x78(%rbp)
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x18(%rbp), %xmm0
leaq 0x3d9b(%rip), %rdi      # 0x3940c
movb $0x1, %al
callq 0x4080
jmp 0x3567a
movsd -0x20(%rbp), %xmm0
leaq 0x3da8(%rip), %rdi      # 0x3942e
movb $0x1, %al
callq 0x4080
jmp 0x3568f
movl $0x0, -0x84(%rbp)
movq -0x90(%rbp), %rcx
movl -0x84(%rbp), %eax
cmpl 0x34(%rcx), %eax
jg 0x3571b
movl -0x84(%rbp), %eax
movl %eax, -0x94(%rbp)
movslq %eax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x5950
movl -0x94(%rbp), %esi
movsd (%rax), %xmm0
leaq 0x3d7c(%rip), %rdi      # 0x39450
movb $0x1, %al
callq 0x4080
jmp 0x356dd
jmp 0x356df
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x84(%rbp)
jmp 0x35699
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x357eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x59b0
jmp 0x357eb
movl $0x0, -0x88(%rbp)
movq -0x90(%rbp), %rcx
movl -0x88(%rbp), %eax
cmpl 0x34(%rcx), %eax
jg 0x3577c
movl -0x88(%rbp), %eax
movl %eax, -0x98(%rbp)
movslq %eax, %rsi
leaq -0x50(%rbp), %rdi
callq 0x5950
movl -0x98(%rbp), %esi
movsd (%rax), %xmm0
leaq 0x3d13(%rip), %rdi      # 0x39473
movb $0x1, %al
callq 0x4080
jmp 0x35769
jmp 0x3576b
movl -0x88(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x88(%rbp)
jmp 0x35725
movsd -0x68(%rbp), %xmm0
leaq 0x3d04(%rip), %rdi      # 0x3948c
movb $0x1, %al
callq 0x4080
jmp 0x35791
movsd -0x70(%rbp), %xmm0
leaq 0x3d11(%rip), %rdi      # 0x394ae
movb $0x1, %al
callq 0x4080
jmp 0x357a6
movsd -0x78(%rbp), %xmm0
leaq 0x3d14(%rip), %rdi      # 0x394c6
movb $0x1, %al
callq 0x4080
jmp 0x357bb
movsd -0x80(%rbp), %xmm0
leaq 0x3d21(%rip), %rdi      # 0x394e8
movb $0x1, %al
callq 0x4080
jmp 0x357d0
leaq -0x50(%rbp), %rdi
callq 0x59b0
leaq -0x38(%rbp), %rdi
callq 0x59b0
addq $0xa0, %rsp
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x59b0
movq -0x58(%rbp), %rdi
callq 0x45e0
nopl (%rax)