"""simple docstring"""






import qiskit




def 						SCREAMING_SNAKE_CASE					(  __UpperCAmelCase  ,					__UpperCAmelCase       )							->   qiskit.result.counts.Counts:
				SCREAMING_SNAKE_CASE__		  =				qiskit.Aer.get_backend("aer_simulator"       )

				SCREAMING_SNAKE_CASE__		  =				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
				SCREAMING_SNAKE_CASE__		  =				qiskit.execute(__UpperCAmelCase  ,					__UpperCAmelCase  ,					shots=1_000       )

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


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





"""simple docstring"""






import math




def 						SCREAMING_SNAKE_CASE					(  __UpperCAmelCase  ,					__UpperCAmelCase       )							->   float:

				if initial_intensity < 0:
								raise ValueError("The value of intensity cannot be negative"       )
								# handling of negative values of initial intensity
				if angle < 0 or angle > 360:
								raise ValueError("In Malus Law, the angle is in the range 0-360 degrees"       )
								# handling of values out of allowed range
				return initial_intensity * (math.cos(math.radians(__UpperCAmelCase       )       ) ** 2)


if __name__ == "__main__":
						import doctest

						doctest.testmod(name='malus_law')




