summaryrefslogtreecommitdiff
path: root/third_party/spiro/curves/polymat-bad.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/spiro/curves/polymat-bad.py')
-rw-r--r--third_party/spiro/curves/polymat-bad.py64
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 ''