summaryrefslogtreecommitdiff
path: root/third_party/spiro/curves/polymat-bad.py
blob: 493fcd8899ea81d704d0e99dea78b865ae134fbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from Numeric import *
import LinearAlgebra as la
import sys

n = 15
m = zeros(((n + 1) * 4, (n + 1) * 4), Float)
for i in range(n):
    m[4 * i + 2][4 * i + 0] = .5
    m[4 * i + 2][4 * i + 1] = -1./12
    m[4 * i + 2][4 * i + 2] = 1./48
    m[4 * i + 2][4 * i + 3] = -1./480
    m[4 * i + 2][4 * i + 4] = .5
    m[4 * i + 2][4 * i + 5] = 1./12
    m[4 * i + 2][4 * i + 6] = 1./48
    m[4 * i + 2][4 * i + 7] = 1./480

    m[4 * i + 3][4 * i + 0] = 1
    m[4 * i + 3][4 * i + 1] = .5
    m[4 * i + 3][4 * i + 2] = .125
    m[4 * i + 3][4 * i + 3] = 1./48
    m[4 * i + 3][4 * i + 4] = -1
    m[4 * i + 3][4 * i + 5] = .5
    m[4 * i + 3][4 * i + 6] = -.125
    m[4 * i + 3][4 * i + 7] = 1./48

    m[4 * i + 4][4 * i + 0] = 0
    m[4 * i + 4][4 * i + 1] = 1
    m[4 * i + 4][4 * i + 2] = .5
    m[4 * i + 4][4 * i + 3] = .125
    m[4 * i + 4][4 * i + 4] = 0
    m[4 * i + 4][4 * i + 5] = -1
    m[4 * i + 4][4 * i + 6] = .5
    m[4 * i + 4][4 * i + 7] = -.125

    m[4 * i + 5][4 * i + 0] = 0
    m[4 * i + 5][4 * i + 1] = 0
    m[4 * i + 5][4 * i + 2] = 1
    m[4 * i + 5][4 * i + 3] = .5
    m[4 * i + 5][4 * i + 4] = 0
    m[4 * i + 5][4 * i + 5] = 0
    m[4 * i + 5][4 * i + 6] = -1
    m[4 * i + 5][4 * i + 7] = .5

m[n * 4 + 2][2] = 1
m[n * 4 + 3][3] = 1

m[0][n * 4 + 2] = 1
m[1][n * 4 + 3] = 1

def printarr(m):
    for j in range(n * 4 + 4):
        for i in range(n * 4 + 4):
            print '%6.1f' % m[j][i],
        print ''

sys.output_line_width = 160
#print array2string(m, precision = 3)
mi = la.inverse(m)
#printarr(mi)
print ''
for j in range(n + 1):
    for k in range(4):
        print '%7.2f' % mi[j * 4 + k][(n / 2) * 4 + 2],
    print ''