import numpy as np

A = np.array([[1, 3, 2], [0, 2, 6]])
print("Matrix A:\n", A)

B = np.array([[2, 0, 1, 4], [3, 1, 3, 1], [1, 2, 2, 6]])
print("Matrix B:\n", B)

print("Matrix product:")
A @ B

A = np.array([[0, 1], [1, 0]])
print("Matrix A:\n", A)

B = np.array([[1], [0]])
print("Matrix B:\n", B)

A @ B

C = 2 * A
print("Matrix C:\n", C)

from qiskit.quantum_info import Statevector

ASV = Statevector([0, 1])
ASV.draw(output="latex")

ASV.draw(output="qsphere")

BSV = Statevector([1, 0])
BSV.draw(output="latex")

BSV.draw(output="qsphere")

CSV = BSV.tensor(ASV.tensor(BSV))
CSV.draw(output="latex")

A = np.array([ 1, 2 ])
B = np.array([ 1, 2 ])
np.tensordot(A, B, axes=0)

A = np.array([[1,3], [4,2]])
B = np.array([[2,1], [5,4]])
np.tensordot(A, B, axes=0)

x = 2
y = 1
z = complex(x, y)
z

print(np.real(z))
print(np.imag(z))

r = complex(2, 3)
r

r * z

x = complex((z.real * r.real) - (z.imag * r.imag), (z.real * r.imag) + (z.imag * r.real))
x

from qiskit.visualization import plot_bloch_vector
 
x = plot_bloch_vector([0,1,0], title="New Bloch Sphere")