Пример #1
0
def test_inner_product():
    i, j, k, l = symbols("i,j,k,l")
    s1 = BBra([0])
    s2 = BKet([1])
    assert InnerProduct(s1, Dagger(s1)) == 1
    assert InnerProduct(s1, s2) == 0
    s1 = BBra([i, j])
    s2 = BKet([k, l])
    r = InnerProduct(s1, s2)
    assert r == KroneckerDelta(i, k) * KroneckerDelta(j, l)
Пример #2
0
def test_symbolic_matrix_elements():
    n, m = symbols("n,m")
    s1 = BBra([n])
    s2 = BKet([m])
    o = B(0)
    e = apply_operators(s1 * o * s2)
    assert e == sqrt(m) * KroneckerDelta(n, m - 1)
Пример #3
0
def test_dagger():
    i, j, n, m = symbols('i,j,n,m')
    assert Dagger(1) == 1
    assert Dagger(1.0) == 1.0
    assert Dagger(2 * I) == -2 * I
    assert Dagger(Rational(1, 2) * I / 3.0) == -Rational(1, 2) * I / 3.0
    assert Dagger(BKet([n])) == BBra([n])
    assert Dagger(B(0)) == Bd(0)
    assert Dagger(Bd(0)) == B(0)
    assert Dagger(B(n)) == Bd(n)
    assert Dagger(Bd(n)) == B(n)
    assert Dagger(B(0) + B(1)) == Bd(0) + Bd(1)
    assert Dagger(n * m) == Dagger(n) * Dagger(m)  # n, m commute
    assert Dagger(B(n) * B(m)) == Bd(m) * Bd(n)
    assert Dagger(B(n)**10) == Dagger(B(n))**10
Пример #4
0
def test_dagger():
    i, j, n, m = symbols("i,j,n,m")
    assert Dagger(1) == 1
    assert Dagger(1.0) == 1.0
    assert Dagger(2 * I) == -2 * I
    assert Dagger(S.Half * I / 3.0) == I * Rational(-1, 2) / 3.0
    assert Dagger(BKet([n])) == BBra([n])
    assert Dagger(B(0)) == Bd(0)
    assert Dagger(Bd(0)) == B(0)
    assert Dagger(B(n)) == Bd(n)
    assert Dagger(Bd(n)) == B(n)
    assert Dagger(B(0) + B(1)) == Bd(0) + Bd(1)
    assert Dagger(n * m) == Dagger(n) * Dagger(m)  # n, m commute
    assert Dagger(B(n) * B(m)) == Bd(m) * Bd(n)
    assert Dagger(B(n) ** 10) == Dagger(B(n)) ** 10
    assert Dagger("a") == Dagger(Symbol("a"))
    assert Dagger(Dagger("a")) == Symbol("a")