// File: richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::outputRunSummary()
void Swarm::outputRunSummary() {
	// Output first two fields of header
	cout<<"Swarm::outputRunSummary() may need some modifications ...."<<endl; //mypause(); //razi TODO: later test
	//Raquel

	cout << left << setw(16) << "Fit" << left << setw(16) << "Iteration" << endl;

	cout << left << setw(16) << "Fit" << left << setw(16) << "Iteration";

	// Output parameter names
	//for (autoDE i: options.model->freeParams_) {
	for (auto i = options.freeParams_.begin(); i != options.freeParams_.end(); ++i) {

		cout  << left << setw(16) << i->first << endl;

		cout << left << setw(16) << i->first;
	}

	cout << endl;

	vector<string> paramVals;

	//for (auto i: allGenFits) {
	for (auto i = allGenFits.begin(); i != allGenFits.end(); ++i) {   //razi: TODO later check if allGenFits filled correctly when different model have different list of free parameters
		split(i->second, paramVals);

		cout << left << setw(16) << i->first << left << setw(16) << paramVals[0];

		for (unsigned int i = 1; i < paramVals.size(); i++) {
			cout << left << setw(16) << stod(paramVals[i]);
		}

		paramVals.clear();

		cout << endl;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq 0x1cc7bf(%rip), %rdi    # 0x2d4f50
leaq 0xdbbec(%rip), %rsi     # 0x1e4384
callq 0x2ff50
movq %rax, %rdi
movq 0x1cc821(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq 0x1cc79d(%rip), %rdi    # 0x2d4f50
leaq 0x1ce86(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xc8(%rbp)
movl $0x10, %edi
callq 0x125670
movq -0xc8(%rbp), %rdi
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %esi
callq 0x2fd50
movq %rax, %rdi
leaq 0xdbaaa(%rip), %rsi     # 0x1e4296
callq 0x2ff50
movq %rax, %rdi
leaq 0x1ce45(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xc0(%rbp)
movl $0x10, %edi
callq 0x125670
movq -0xc0(%rbp), %rdi
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %esi
callq 0x2fd50
movq %rax, %rdi
leaq 0xd818f(%rip), %rsi     # 0x1e09bc
callq 0x2ff50
movq %rax, %rdi
movq 0x1cc78c(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq 0x1cc708(%rip), %rdi    # 0x2d4f50
leaq 0x1cdf1(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xb8(%rbp)
movl $0x10, %edi
callq 0x125670
movq -0xb8(%rbp), %rdi
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %esi
callq 0x2fd50
movq %rax, %rdi
leaq 0xdba15(%rip), %rsi     # 0x1e4296
callq 0x2ff50
movq %rax, %rdi
leaq 0x1cdb0(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xb0(%rbp)
movl $0x10, %edi
callq 0x125670
movq -0xb0(%rbp), %rdi
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %esi
callq 0x2fd50
movq %rax, %rdi
leaq 0xd80fa(%rip), %rsi     # 0x1e09bc
callq 0x2ff50
movq -0xa8(%rbp), %rdi
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0xd0, %rdi
callq 0x44c70
movq %rax, -0x20(%rbp)
movq -0xa8(%rbp), %rdi
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0xd0, %rdi
callq 0x44cd0
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x44ca0
testb $0x1, %al
jne 0x108919
jmp 0x1089e0
movq 0x1cc630(%rip), %rdi    # 0x2d4f50
leaq 0x1cd19(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xe8(%rbp)
movl $0x10, %edi
callq 0x125670
movq -0xe8(%rbp), %rdi
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %esi
callq 0x2fd50
movq %rax, -0xe0(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x44d00
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
movq %rax, %rdi
movq 0x1cc650(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq 0x1cc5cc(%rip), %rdi    # 0x2d4f50
leaq 0x1ccb5(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xd8(%rbp)
movl $0x10, %edi
callq 0x125670
movq -0xd8(%rbp), %rdi
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %esi
callq 0x2fd50
movq %rax, -0xd0(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x44d00
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
leaq -0x20(%rbp), %rdi
callq 0x44d20
jmp 0x1088e5
movq 0x1cc569(%rip), %rdi    # 0x2d4f50
movq 0x1cc5da(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
leaq -0x48(%rbp), %rdi
callq 0x448b0
movq -0xa8(%rbp), %rdi
addq $0x8, %rdi
callq 0x1250c0
movq %rax, -0x50(%rbp)
movq -0xa8(%rbp), %rdi
addq $0x8, %rdi
callq 0x125b50
movq %rax, -0x58(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x125b20
testb $0x1, %al
jne 0x108a3a
jmp 0x108ce0
leaq -0x50(%rbp), %rdi
callq 0x1250f0
addq $0x8, %rax
movq %rax, -0xf8(%rbp)
leaq -0x79(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x30a70
movq -0xf0(%rbp), %rdx
leaq 0xdb663(%rip), %rsi     # 0x1e40cf
leaq -0x78(%rbp), %rdi
callq 0x44470
jmp 0x108a77
movq -0xf8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x17d490
jmp 0x108a8d
leaq -0x78(%rbp), %rdi
callq 0x311e8
leaq -0x79(%rbp), %rdi
callq 0x311c0
movq 0x1cc4aa(%rip), %rdi    # 0x2d4f50
leaq 0x1cb93(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0x100(%rbp)
jmp 0x108abb
movl $0x10, %edi
callq 0x125670
movl %eax, -0x104(%rbp)
jmp 0x108acd
movq -0x100(%rbp), %rdi
movl -0x104(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %esi
callq 0x2fd50
movq %rax, -0x110(%rbp)
jmp 0x108af4
leaq -0x50(%rbp), %rdi
callq 0x1250f0
movq -0x110(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x30710
movq %rax, -0x118(%rbp)
jmp 0x108b16
movq -0x118(%rbp), %rdi
leaq 0x1cb1c(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0x120(%rbp)
jmp 0x108b32
movl $0x10, %edi
callq 0x125670
movl %eax, -0x124(%rbp)
jmp 0x108b44
movq -0x120(%rbp), %rdi
movl -0x124(%rbp), %eax
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %esi
callq 0x2fd50
movq %rax, -0x130(%rbp)
jmp 0x108b6b
xorl %eax, %eax
movl %eax, %esi
leaq -0x48(%rbp), %rdi
callq 0x449e0
movq -0x130(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
jmp 0x108b89
movl $0x1, -0x98(%rbp)
movl -0x98(%rbp), %eax
movq %rax, -0x138(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x44960
movq %rax, %rcx
movq -0x138(%rbp), %rax
cmpq %rcx, %rax
jae 0x108cb2
movq 0x1cc38d(%rip), %rdi    # 0x2d4f50
leaq 0x1ca76(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0x140(%rbp)
jmp 0x108bd8
movl $0x10, %edi
callq 0x125670
movl %eax, -0x144(%rbp)
jmp 0x108bea
movq -0x140(%rbp), %rdi
movl -0x144(%rbp), %eax
movl %eax, -0x9c(%rbp)
movl -0x9c(%rbp), %esi
callq 0x2fd50
movq %rax, -0x150(%rbp)
jmp 0x108c11
movl -0x98(%rbp), %eax
movl %eax, %esi
leaq -0x48(%rbp), %rdi
callq 0x449e0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44830
movsd %xmm0, -0x158(%rbp)
jmp 0x108c38
movsd -0x158(%rbp), %xmm0
movq -0x150(%rbp), %rdi
callq 0x30710
jmp 0x108c4e
jmp 0x108c50
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0x108b93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x108c93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x311e8
leaq -0x79(%rbp), %rdi
callq 0x311c0
jmp 0x108cf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x108cf2
leaq -0x48(%rbp), %rdi
callq 0x451d0
movq 0x1cc28e(%rip), %rdi    # 0x2d4f50
movq 0x1cc2ff(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x108cd0
jmp 0x108cd2
leaq -0x50(%rbp), %rdi
callq 0x125b80
jmp 0x108a10
leaq -0x48(%rbp), %rdi
callq 0x448d0
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
leaq -0x48(%rbp), %rdi
callq 0x448d0
movq -0x88(%rbp), %rdi
callq 0x30170
nopw (%rax,%rax)