

'''simple docstring'''


from datetime import datetime

import matplotlib.pyplot as plt
import torch







def 						SCREAMING_SNAKE_CASE(  UpperCamelCase  )    ->    List[Any]:
	for param in module.parameters():
		UpperCAmelCase_		:      str       	=					False







def 						SCREAMING_SNAKE_CASE(  )    ->    int:
	UpperCAmelCase_		:      Any       	=					'cuda' if torch.cuda.is_available() else 'cpu'
	if torch.backends.mps.is_available() and torch.backends.mps.is_built():
		UpperCAmelCase_		:      int       	=					'mps'
	if device == "mps":
		print(
		    'WARNING: MPS currently doesn\'t seem to work, and messes up backpropagation without any visible torch'
		    ' errors. I recommend using CUDA on a colab notebook or CPU instead if you\'re facing inexplicable issues'
		    ' with generations.'  )
	return device







def 						SCREAMING_SNAKE_CASE(  UpperCamelCase  )    ->    Tuple:
	UpperCAmelCase_		:      Optional[Any]       	=					plt.imshow(UpperCamelCase  )
	fig.axes.get_xaxis().set_visible(UpperCamelCase  )
	fig.axes.get_yaxis().set_visible(UpperCamelCase  )
	plt.show()







def 						SCREAMING_SNAKE_CASE(  )    ->    Tuple:
	UpperCAmelCase_		:      str       	=					datetime.now()
	UpperCAmelCase_		:      Union[str, Any]       	=					current_time.strftime('%H:%M:%S'  )
	return timestamp









'''simple docstring'''


import qiskit







def 						SCREAMING_SNAKE_CASE(  UpperCamelCase   ,UpperCamelCase  )    ->    qiskit.result.counts.Counts:
	UpperCAmelCase_		:      Tuple       	=					qiskit.Aer.get_backend('aer_simulator'  )

	UpperCAmelCase_		:      List[str]       	=					qiskit.QuantumCircuit(4   ,2  )
	# encode inputs in qubits 0 and 1
	if bita == 1:
		qc_ha.x(0  )
	if bita == 1:
		qc_ha.x(1  )
	qc_ha.barrier()

	# use cnots to write XOR of the inputs on qubit2
	qc_ha.cx(0   ,2  )
	qc_ha.cx(1   ,2  )

	# use ccx / toffoli gate to write AND of the inputs on qubit3
	qc_ha.ccx(0   ,1   ,3  )
	qc_ha.barrier()

	# extract outputs
	qc_ha.measure(2   ,0  )  # extract XOR value
	qc_ha.measure(3   ,1  )  # extract AND value

	# Execute the circuit on the qasm simulator
	UpperCAmelCase_		:      List[str]       	=					qiskit.execute(UpperCamelCase   ,UpperCamelCase   ,shots=1_0_0_0  )

	# Return the histogram data of the results of the experiment
	return job.result().get_counts(UpperCamelCase  )


if __name__ == "__main__":
						lowerCAmelCase__										= half_adder(1, 1)
						print(F'Half Adder Output Qubit Counts: {counts}')






