File: fixed_point.cdb

package info (click to toggle)
cadabra2 2.4.3.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 78,796 kB
  • sloc: ansic: 133,450; cpp: 92,064; python: 1,530; javascript: 203; sh: 184; xml: 182; objc: 53; makefile: 51
file content (23 lines) | stat: -rw-r--r-- 598 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# Test functionality that enables user-defined procedures to be applied
# to an expression until it no longer changes (the user-defined analogue
# of the 'repeat=True' option).


def fixed(fun, obj):
    while fun(obj).state()==result_t.changed:
        print "ran"
    return obj

def runit(ex):
    join_gamma(ex)
    distribute(ex, keepstate=True)
    sort_product(ex, keepstate=True)
    print(ex)
    return ex

def test02():
    \delta_{m n}::KroneckerDelta.
    \Gamma_{#}::GammaMatrix(metric=\delta).
    obj3a:= \Gamma_{c d}\Gamma_{m1 m2 m3}\Gamma_{n1 n2};
    return fixed(runit, obj3a)