diff options
Diffstat (limited to 'third_party/spiro/curves/polymat-bad.py')
-rw-r--r-- | third_party/spiro/curves/polymat-bad.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/third_party/spiro/curves/polymat-bad.py b/third_party/spiro/curves/polymat-bad.py new file mode 100644 index 0000000..493fcd8 --- /dev/null +++ b/third_party/spiro/curves/polymat-bad.py @@ -0,0 +1,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 '' |