#Adding Two Numbers
x=2+5
print(x)

#Subtracting Two Numbers
y=8-5
print(y)

#Multiplying Two Numbers
a=3*5
print(a)

#Dividing Two Numbers
b=8/4
print(b)

#Calculate the Remainder
r=4%3
print(r)

#Exponent of a Number
e=5**3
print(e)

c1=1j*1j
print(c1)

#Initialize two complex numbers
z=4+8j
w=5-5j

import numpy as np

print("Real part of z is:", np.real(z))

print("Imaginary part of w is:", np.imag(w))

#Add two complex numbers
add=z+w
print(add)

#Subtract two complex numbers
sub=z-w
print(sub)

#complex conjugate of w
print(w)
print("Complex conjugate of w is:", np.conj(w))

#Calculating absolute values for z and w
print(z)
print("Norm/Absolute value of z is:", np.abs(z))
print(w)
print("Norm/Absolute value of w is:", np.abs(w))

#Initialize a row vector
row_vector=np.array([1, 2+2j, 3])
print(row_vector)

#Initialize a column vector
column_vector=np.array([[1],[2+2j],[3j]])
print(column_vector)

# Define the 4x1 matrix version of a column vector 
A=np.array([[1],[4-5j],[5],[-3]])

# Define B as a 1x4 matrix
B=np.array([1, 5, -4j, -1j])

# Compute <B|A>
np.dot(B,A)

M=np.array([[2-1j, -3], [-5j, 2]])
#Note how the brackets are placed!
print(M)

M=np.matrix([[2-1j, 3],[-5j, 2]])
print(M)

#To calculate hermitian matrix simple follow: <your matrix>.H 
hermitian = M.H
print(hermitian)

#Use the np.kron method 
np.kron(M,M)

