// File: richardposner[P]BioNetFit2/src/code/Swarm.hh
// Function: void Swarm::serialize<boost::archive::binary_oarchive>(boost::archive::binary_oarchive&, unsigned int)
void serialize(Archive& ar, const unsigned version) {
		//std::cout << " serializing swarm" << std::endl;

		ar & options;

		ar & allGenFits;
		ar & bootstrapMaps;

		ar & isMaster;
		ar & currentGeneration;
		ar & resumingSavedSwarm;
		ar & hasMutate;

		ar & runningSubParticles_;
		ar & failedSubParticles_;
		ar & finishedSubParticles_;
		ar & finishedParticles_;
		ar & freeParamMapping; //razi this keeps the mapping from models free parameters to the full list of free parameters
		ar & runningParticles_;
		ar & failedParticles_;

		ar & exePath_;
		ar & configPath_;
		ar & sConf_;

		ar & populationTopology_;
		ar & particleBestFits_;
		ar & particleBestFitsByFit_;
		ar & swarmBestFits_;
		ar & particleParamVelocities_;
		ar & particleBestParamSets_;
		ar & particleCurrParamSets_;
		ar & particleWeights_;
		ar & particleIterationCounter_;
		ar & particleToIsland_;
		ar & islandToParticle_;

		ar & permanenceCounter_;
		ar & flightCounter_;
		ar & weightedAvgPos_;
		ar & optimum_;
		ar & inertiaUpdateCounter_;
		ar & beta_;
		ar & cauchyMutator_;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0x20(%rbp)
movq -0x10(%rbp), %rdi
addq $0x14c0, %rsi           # imm = 0x14C0
callq 0x144780
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x8, %rsi
callq 0x1447b0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x38, %rsi
callq 0x1447e0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x50, %rsi
callq 0x144810
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x13e8, %rsi           # imm = 0x13E8
callq 0x144840
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x13f0, %rsi           # imm = 0x13F0
callq 0x144810
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x13f1, %rsi           # imm = 0x13F1
callq 0x144810
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1820, %rsi           # imm = 0x1820
callq 0x144870
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1858, %rsi           # imm = 0x1858
callq 0x144870
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1890, %rsi           # imm = 0x1890
callq 0x144870
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x18c0, %rsi           # imm = 0x18C0
callq 0x144870
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1980, %rsi           # imm = 0x1980
callq 0x1448a0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1998, %rsi           # imm = 0x1998
callq 0x144870
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x19d0, %rsi           # imm = 0x19D0
callq 0x144870
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x17e0, %rsi           # imm = 0x17E0
callq 0x1448d0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1800, %rsi           # imm = 0x1800
callq 0x1448d0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1938, %rsi           # imm = 0x1938
callq 0x144900
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1a08, %rsi           # imm = 0x1A08
callq 0x144930
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1a20, %rsi           # imm = 0x1A20
callq 0x144960
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1ab0, %rsi           # imm = 0x1AB0
callq 0x144990
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1bd0, %rsi           # imm = 0x1BD0
callq 0x144990
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1c90, %rsi           # imm = 0x1C90
callq 0x1449c0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1cc0, %rsi           # imm = 0x1CC0
callq 0x1449c0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1400, %rsi           # imm = 0x1400
callq 0x1449c0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1cf0, %rsi           # imm = 0x1CF0
callq 0x144960
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1950, %rsi           # imm = 0x1950
callq 0x1449f0
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1d20, %rsi           # imm = 0x1D20
callq 0x144a20
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1d38, %rsi           # imm = 0x1D38
callq 0x144930
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1d80, %rsi           # imm = 0x1D80
callq 0x144840
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1d84, %rsi           # imm = 0x1D84
callq 0x144840
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1d88, %rsi           # imm = 0x1D88
callq 0x144a50
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1d90, %rsi           # imm = 0x1D90
callq 0x144a50
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1d98, %rsi           # imm = 0x1D98
callq 0x144840
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1da0, %rsi           # imm = 0x1DA0
callq 0x144a50
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdi
addq $0x1da8, %rsi           # imm = 0x1DA8
callq 0x144a50
addq $0x20, %rsp
popq %rbp
retq