def stabilizeNetwork(self):

		#/###################/#
		# Determine the time constant structures
		# 

		#set
		if type(self.StabilizingConstantTimeVariable)==None.__class__:
			self.StabilizingConstantTimeVariable=map(
				lambda __DeriveStabilizer:
				__DeriveStabilizer.LifingConstantTimeFloat,
				self.TeamDict['Populations'].ManagementDict.values()
			)

		#debug
		'''
		self.debug(
			[
				('self.',self,[
						'StabilizingConstantTimeVariable'
					])
			]
		)
		'''

		#map
		map(
			lambda __TimeStr:
			SYS.setInitArray(
				self,
				'Stabilize',
				__TimeStr+'Time'
			),
			[
				'Constant',
				'Delay',
				'Decay',
				'Rise'
			]
		)

 
 		#/###################/#
		# Build the always fixed terms of the perturbation matrix
		# 

		#debug
		'''
		self.debug(
			[
				'We init the computations the StabilizedPerturbationWeightFloatsArray',
				('self.',self,[
						'StationarizingConstantTimeVariable',
						'StationarizedMeanWeightFloatsArray',
						'StabilizedConstantTimeVariable'
					])
			]
		)
		'''

		#set
		self.StabilizedPerturbationWeightFloatsArray=self.StationarizedMeanWeightFloatsArray[
			:
		]

		#mul
		SYS.setMatrixArray(
			self.StabilizedPerturbationWeightFloatsArray,
			self.StabilizedConstantTimeVariable,
			np.ndarray.__mul__
		)

		#debug
		'''
		self.debug(
			[
				'In the end',
				('self.',self,[
						'StabilizedPerturbationWeightFloatsArray'
					])
			]
		)
		'''

		#/###################/#
		# Determine which function to get for the synaptic computation
		#

		#debug
		'''
		self.debug(
			[
				"We determine the type of Synaptic function",
				('self.',self,[
						'StabilizedRiseTimeVariable',
						'StabilizedDecayTimeVariable',
						'StabilizedDelayTimeVariable'
					])
			]
		)
		'''

		#Check
		if SYS.getIsNullBool(
			self.StabilizedRiseTimeVariable
		):

			#Check
			if SYS.getIsNullBool(
				self.StabilizedDecayTimeVariable
			):
				
				#Check
				if SYS.getIsNullBool(
					self.StabilizedDelayTimeVariable
				):

					#set
					self.StabilizedSynapticPerturbationMethodVariable=lambda __PerturbationComplex:1.

				else:

					#set
					self.StabilizedSynapticPerturbationMethodVariable=self.getSynapticDelayPerturbationVariable

			else:

				#set
				self.StabilizedSynapticPerturbationMethodVariable=self.getSynapticDecayPerturbationVariable

		else:

			#set
			self.StabilizedSynapticPerturbationMethodVariable=self.getSynapticRisePerturbationVariable

		#/###################/#
		# Prepare the combinations to consider
		#

		#import 
		import itertools

		#list
		self.StabilizedIndexIntsTuplesList=list(
			itertools.product(
				xrange(self.StationarizingUnitsInt),
				xrange(self.StationarizingUnitsInt)
			)
		)

		#debug
		'''
		self.debug(
			[
				'We set a one root get',
				('self.',self,[
						'StabilizedIndexIntsTuplesList'
					])	
			]
		)
		self.getGlobalPerturbationRootFloatsTuple(
							(0.1,2.*np.pi*1.)
						)
		'''

		#import
		from numpy import linalg

		#set
		self.StabilizedDeterminantFunctionVariable=linalg.det

		#/################/#
		# Look for a rate instability
		#

		#debug
		'''
		self.debug(
			[
				"Ok first we look for a rate instability"
			]
		)
		'''

		#set
		self.StabilizedLifersVariable = self.TeamDict['Populations'].ManagementDict.values()

		#map
		self.StabilizedMeanPerturbationNullFloatsList=map(
			lambda __DeriveStabilizer:
			__DeriveStabilizer.lif(
				_ComputeStationaryBool=False,
				_PerturbationLambdaVariable=0.,
				_PerturbationMethodStr='Brunel',
				_ComputeNoisePerturbationBool=False
			).LifedPerturbationMeanComplexVariable,
			self.StabilizedLifersVariable
		) if self.StationarizingInteractionStr=="Spike" else [1.]*self.StationarizingUnitsInt

		#debug
		'''
		self.debug(
			[
				('self.',self,[
						'StabilizedMeanPerturbationNullFloatsList'
					])
			]
		)
		'''
			
		#set
		self.StabilizedNeuralPerturbationComplexesArrayesArray=np.zeros(
			self.StationarizingUnitsInt,
			dtype=complex
		)
					
		#Check
		if self.StabilizingComputeBool:

			#get
			self.StabilizedNeuralPerturbationMethodVariable=getattr(
				self,
				'getNeuralNullPerturbationVariable'
			)

			#get
			StabilizedRateDetermintantFloatsTuple=self.getGlobalPerturbationRootFloatsTuple(
				(0.,0.)
			)

			#get
			self.StabilizedIsStableBool=StabilizedRateDetermintantFloatsTuple[0]>0.
			self.StabilizedRateInstabilityBool=not self.StabilizedIsStableBool

			#debug
			'''
			self.debug(
				[
					'Is it rate instable ?',
					"StabilizedRateDetermintantFloatsTuple is "+str(StabilizedRateDetermintantFloatsTuple),
					('self.',self,[
							'StabilizedTotalPerturbationComplexesArray',
							'StabilizedIsStableBool'
						])
				]
			)
			'''

			#/################/#
			# Look for a hopf instability
			#

			#Check
			if self.StabilizedIsStableBool:

				#import 
				import scipy.optimize


				#get
				self.StabilizedNeuralPerturbationMethodVariable=getattr(
					self,
					'get'+self.StationarizingInteractionStr+'NeuralPerturbationVariable'
				)

				#debug
				'''
				self.debug(
					[
						"There is no rate instability so we do a Hopf scan analysis",
						('self.',self,['StabilizingScanFrequencyVariable'])
					]
				)
				'''

				#type
				StabilizedScanType=type(self.StabilizingScanFrequencyVariable)

				#Check
				if StabilizedScanType==None.__class__:

					#Check
					StabilizedFirstList=list(np.logspace(0,3,10))
					StabilizedSecondList=StabilizedFirstList[:]
					StabilizedSecondList.reverse()
					StabilizedSecondList=map(lambda __Variable:-__Variable,StabilizedSecondList)

					#set
					self.StabilizedStabilityScanFrequencyFloatsArray=np.array(
						StabilizedSecondList+StabilizedFirstList
					)

				elif StabilizedScanType in [np.float64,float]:

					#Check
					self.StabilizedStabilityScanFrequencyFloatsArray=np.array(
						[self.StabilizingScanFrequencyVariable]
					)

				else:

					#Check
					self.StabilizedStabilityScanFrequencyFloatsArray=np.array(
						self.StabilizingScanFrequencyVariable
					)

				#debug
				'''
				self.debug(
					[
						('self.',self,['StabilizedStabilityScanFrequencyFloatsArray'])
					]
				)
				'''


				#check
				'''
				if len(self.StabilizedStabilityScanFrequencyFloatsArray)==1:

					#debug
					self.debug(
						[
							"We just debug here"
						]
					)

					#try just the first
					self.getGlobalPerturbationRootFloatsTuple(
						(-0.1,2.*np.pi*self.StabilizedStabilityScanFrequencyFloatsArray[0])
					)
				'''

				#debug
				'''
				self.debug(
					[
						"Ok now we gradient"
					]
				)
				'''

				#loop
				for __ScanFrequencyFloat in self.StabilizedStabilityScanFrequencyFloatsArray:
				#for __ScanFrequencyFloat in [100.]:

					#debug
					'''
					self.debug(
						[
							'We try to find an instability around '+str(__ScanFrequencyFloat)+'Hz'
						]
					)
					'''

					#Get the solve of the ScipyOptimizeRoot
					StabilizedOptimizeRoot=scipy.optimize.root(
							self.getGlobalPerturbationRootFloatsTuple,
							(-0.1,2.*np.pi*__ScanFrequencyFloat),
							#method='lm',
							#tol=0.001
							options={
										#'maxiter':1000,
										#'ftol':0.001,
										#'direc':np.array([-0.1,0.1])
									},
						)

					#set
					StabilizedErrorFloat=np.sum(StabilizedOptimizeRoot.fun**2)

					#debug
					'''
					self.debug(
						[
							'StabilizedOptimizeRoot is ',
							str(StabilizedOptimizeRoot),
							"StabilizedErrorFloat is ",
							str(StabilizedErrorFloat)
						]
					)
					'''

					#set
					self.StabilizedOptimizeRoot=StabilizedOptimizeRoot

					#Check
					if StabilizedOptimizeRoot.success and StabilizedErrorFloat<0.001:

						#debug
						'''
						self.debug(
							[
								"It is a success",
								('self.',self,[
										'StabilizedBiggestLambdaFloatsTuple',
									]),
								"StabilizedOptimizeRoot.x is "+str(StabilizedOptimizeRoot.x)
							]
						)
						'''

						#Check
						if StabilizedOptimizeRoot.x[0]>0.:

							#set
							self.StabilizedIsStableBool=False

							#set
							self.StabilizedInstabilityStr="Hopf"

							#set
							self.StabilizedInstabilityLambdaFloatsTuple=tuple(
								StabilizedOptimizeRoot.x
							)

							self.StabilizedBiggestLambdaFloatsTuple=self.StabilizedInstabilityLambdaFloatsTuple

							#set
							self.StabilizedInstabilityFrequencyFloat=self.StabilizedInstabilityLambdaFloatsTuple[1]/(
								2.*np.pi
							)

							#break
							break

						elif len(
							self.StabilizedBiggestLambdaFloatsTuple
						)==0 or StabilizedOptimizeRoot.x[0]>self.StabilizedBiggestLambdaFloatsTuple[0]:

							#Check
							self.StabilizedBiggestLambdaFloatsTuple=tuple(
								StabilizedOptimizeRoot.x
							)