diff --git a/.classpath b/.classpath
index e353bd8..fa73730 100644
--- a/.classpath
+++ b/.classpath
@@ -1,13 +1,9 @@
+
+
-
-
-
-
-
-
-
+
diff --git a/.project b/.project
index af67f8c..bed1625 100644
--- a/.project
+++ b/.project
@@ -14,11 +14,4 @@
org.eclipse.jdt.core.javanature
-
-
- main
- 2
- /home/yliu/Desktop/tools/eclipse-kepler/E::/home/yliu/workspace_java/matrix-toolkits-java/src/main
-
-
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a698e59..0000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/BenchmarkData.txt b/BenchmarkData.txt
deleted file mode 100644
index cc1db66..0000000
--- a/BenchmarkData.txt
+++ /dev/null
@@ -1,415 +0,0 @@
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.058 0.025 0.02 0.002 0.014
-55 0.491 0.009 0.285 0.011 0.155
-105 0.187 0.012 0.812 0.013 0.482
-155 0.61 0.009 11.687 0.014 9.556
-205 0.477 0.006 15.856 0.011 12.854
-255 0.765 0.008 19.737 0.019 16.381
-305 0.878 0.006 23.669 0.017 19.534
-355 1.157 0.023 27.326 0.018 22.741
-405 1.527 0.005 31.14 0.024 25.97
-455 1.891 0.006 35.071 0.025 29.165
-505 2.781 0.008 38.67 0.038 32.283
-555 2.863 0.007 42.774 0.03 35.519
-605 3.375 0.007 46.374 0.027 38.734
-655 4.322 0.007 50.133 0.033 41.959
-705 4.697 0.008 53.9 0.037 45.137
-755 5.659 0.009 58.499 0.05 48.535
-
-
-
-with sum, without small functions
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.062 0.025 0.012 0.003 0.013
-55 0.506 0.009 0.278 0.012 0.35
-105 0.229 0.015 0.249 0.014 1.208
-155 0.456 0.01 1.292 0.015 3.317
-205 0.554 0.006 1.712 0.009 5.372
-255 0.695 0.007 2.128 0.012 7.918
-305 0.888 0.008 2.547 0.017 10.954
-355 1.195 0.008 2.951 0.018 14.412
-
-with sum, small functions
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.058 0.025 0.013 0.002 0.012
-55 0.553 0.009 0.109 0.011 0.352
-105 0.208 0.013 0.241 0.016 1.183
-155 0.363 0.009 1.288 0.016 2.438
-205 0.512 0.006 1.786 0.015 4.186
-255 0.707 0.007 2.163 0.021 6.498
-305 1.169 0.006 2.547 0.019 9.177
-355 1.265 0.007 2.972 0.031 12.325
-405 1.681 0.007 3.385 0.032 16.775
-455 1.954 0.006 3.791 0.037 20.142
-
-C++
-N=5: Grad=0.001523 Hess=0.002807
-N=55: Grad=0.018744 Hess=0.264852
-N=105: Grad=0.031632 Hess=0.962019
-N=155: Grad=0.047682 Hess=2.08109
-N=205: Grad=0.063254 Hess=3.6405
-N=255: Grad=0.077508 Hess=5.68046
-N=305: Grad=0.093359 Hess=8.07915
-N=355: Grad=0.111471 Hess=10.9616
-N=405: Grad=0.131659 Hess=14.3319
-N=455: Grad=0.164299 Hess=18.0198
-N=505: Grad=0.185296 Hess=22.538
-N=555: Grad=0.171085 Hess=26.8645
-
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.056 0.025 0.011 0.002 0.011
-55 0.601 0.01 0.109 0.038 0.067
-105 0.193 0.012 0.221 0.021 0.126
-155 0.349 0.008 1.283 0.035 0.203
-205 0.569 0.006 1.689 0.061 0.309
-255 0.823 0.007 2.099 0.08 0.424
-305 0.972 0.167 2.515 0.091 0.603
-355 1.189 0.006 2.921 0.113 0.731
-405 1.68 0.007 3.324 0.191 0.915
-455 1.984 0.006 3.739 0.132 1.195
-505 2.435 0.008 4.142 0.173 1.559
-555 3.009 0.006 4.557 0.229 2.042
-605 3.44 0.008 4.959 0.197 2.598
-655 4.443 0.008 5.388 0.256 3.204
-705 5.102 0.012 5.789 0.313 3.949
-755 5.556 0.009 6.207 0.295 4.65
-805 6.19 0.008 6.592 0.352 5.399
-Final Value=3.399999999857267E8
-
-
-g++ -O3
-N=5: Grad=0.001151 Hess=0.000818
-N=55: Grad=0.011713 Hess=0.007993
-N=105: Grad=0.022845 Hess=0.01805
-N=155: Grad=0.035496 Hess=0.02596
-N=205: Grad=0.048052 Hess=0.038288
-N=255: Grad=0.06439 Hess=0.094836
-N=305: Grad=0.068387 Hess=0.057918
-N=355: Grad=0.089015 Hess=0.069783
-N=405: Grad=0.102814 Hess=0.106349
-N=455: Grad=0.115396 Hess=0.091371
-N=505: Grad=0.157484 Hess=0.131465
-N=555: Grad=0.178366 Hess=0.156674
-N=605: Grad=0.187632 Hess=0.169453
-N=655: Grad=0.207495 Hess=0.150046
-N=705: Grad=0.2259 Hess=0.224388
-N=755: Grad=0.241367 Hess=0.27117
-N=805: Grad=0.309976 Hess=0.495865
- Final Value=3.4e+08
-
-
-yliu@yliu-dev:~/workspace_cpp/SymLLVM$ g++ benchmark-rosenbrock-manual.cpp -o run
-yliu@yliu-dev:~/workspace_cpp/SymLLVM$ ./run
-N=5: Grad=0.00733 Hess=0.00492
-N=55: Grad=0.093892 Hess=0.060972
-N=105: Grad=0.177875 Hess=0.122079
-N=155: Grad=0.274418 Hess=0.171955
-N=205: Grad=0.362189 Hess=0.231552
-N=255: Grad=0.455115 Hess=0.448342
-N=305: Grad=0.548107 Hess=0.341249
-N=355: Grad=0.637069 Hess=0.397283
-N=405: Grad=0.730289 Hess=0.458382
-N=455: Grad=0.806885 Hess=0.513731
-N=505: Grad=0.895405 Hess=0.624652
-N=555: Grad=0.988364 Hess=0.63463
-N=605: Grad=1.07374 Hess=0.731887
-N=655: Grad=1.16435 Hess=0.801067
-N=705: Grad=1.25048 Hess=0.877741
-N=755: Grad=1.40263 Hess=0.907993
-N=805: Grad=1.44907 Hess=1.01174
- Final Value=3.4e+08
-
-jit exprs=30
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.057 0.041 0.012 0.041 0.0
-55 0.558 0.011 0.094 0.011 0.0
-105 0.212 0.018 0.148 0.018 0.0
-155 0.334 0.038 0.217 0.038 0.0
-205 0.601 0.016 0.282 0.016 0.0
-255 0.94 0.013 0.35 0.013 0.0
-305 0.902 0.013 0.417 0.013 0.0
-355 1.211 0.016 0.487 0.016 0.0
-405 1.643 0.018 0.56 0.018 0.0
-455 2.032 0.052 0.624 0.052 0.0
-505 2.499 0.017 0.699 0.017 0.0
-555 2.956 0.017 0.756 0.017 0.0
-605 3.493 0.038 0.828 0.038 0.0
-655 4.2 0.052 0.892 0.052 0.0
-705 4.857 0.022 0.968 0.022 0.0
-755 5.623 0.023 1.035 0.023 0.0
-805 6.279 0.024 1.099 0.024 0.0
-Final Value=-0.01887435763237022
-
-jit exprs=10
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.056 0.026 0.013 0.026 0.0
-55 0.599 0.016 0.105 0.016 0.0
-105 0.197 0.021 0.143 0.021 0.0
-155 0.432 0.024 0.22 0.024 0.0
-205 0.611 0.039 0.284 0.039 0.0
-255 0.937 0.023 0.359 0.023 0.0
-305 0.896 0.037 0.42 0.037 0.0
-355 1.205 0.041 0.499 0.041 0.0
-405 1.566 0.053 0.555 0.053 0.0
-455 1.979 0.042 0.652 0.042 0.0
-505 2.468 0.036 0.71 0.036 0.0
-555 2.943 0.07 0.817 0.07 0.0
-605 3.477 0.108 0.885 0.108 0.0
-655 4.166 0.084 0.957 0.084 0.0
-705 4.892 0.069 1.045 0.069 0.0
-755 5.479 0.05 1.124 0.05 0.0
-805 6.244 0.069 1.212 0.069 0.0
-Final Value=-0.01887435763237022
-
-
-jit exprs=50
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.056 0.024 0.013 0.024 0.0
-55 0.518 0.011 0.119 0.011 0.0
-105 0.202 0.018 0.165 0.018 0.0
-155 0.441 0.016 0.247 0.016 0.0
-205 0.469 0.014 0.319 0.014 0.0
-255 0.919 0.013 0.402 0.013 0.0
-305 0.879 0.011 0.471 0.011 0.0
-355 1.198 0.014 0.562 0.014 0.0
-405 1.561 0.016 0.619 0.016 0.0
-455 1.967 0.012 0.755 0.012 0.0
-505 2.538 0.037 0.78 0.037 0.0
-555 2.886 0.013 0.849 0.013 0.0
-605 3.551 0.014 0.933 0.014 0.0
-655 4.14 0.014 1.0 0.014 0.0
-705 4.718 0.016 1.072 0.016 0.0
-755 5.567 0.016 1.158 0.016 0.0
-805 6.352 0.018 1.246 0.018 0.0
-Final Value=-0.01887435763237022
-
-JIT exprs=50
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.055 0.028 0.011 0.002 0.01
-55 0.487 0.012 0.16 0.026 0.065
-105 0.482 0.014 0.164 0.027 0.12
-155 0.591 0.011 0.246 0.02 0.177
-205 0.539 0.011 0.351 0.045 0.24
-255 0.903 0.009 0.455 0.022 0.35
-305 0.907 0.009 0.473 0.041 0.378
-355 1.173 0.01 0.555 0.029 0.459
-405 1.57 0.01 0.628 0.03 0.531
-455 1.942 0.012 0.701 0.037 0.579
-505 2.527 0.011 0.771 0.037 0.644
-555 2.966 0.012 0.852 0.068 0.731
-605 3.48 0.032 0.921 0.05 0.786
-655 4.18 0.036 1.003 0.051 0.82
-705 4.836 0.018 1.087 0.055 0.925
-755 5.494 0.016 1.155 0.087 1.002
-805 6.299 0.018 1.248 0.065 1.066
-Final Value=3.399999999857267E8
-
-JIT exprs=36
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.055 0.028 0.013 0.002 0.013
-55 0.431 0.011 0.111 0.016 0.068
-105 0.18 0.013 0.172 0.039 0.137
-155 0.312 0.012 0.253 0.023 0.197
-205 0.505 0.011 0.325 0.025 0.271
-255 0.932 0.01 0.392 0.022 0.395
-305 0.889 0.01 0.455 0.026 0.423
-355 1.198 0.011 0.53 0.034 0.499
-405 1.583 0.011 0.633 0.054 0.579
-455 2.051 0.034 0.68 0.039 0.684
-505 2.52 0.014 0.836 0.052 0.749
-555 2.903 0.016 0.838 0.053 0.827
-605 3.366 0.018 0.906 0.052 0.897
-655 4.149 0.016 0.979 0.057 0.934
-705 4.777 0.016 1.065 0.063 1.055
-755 5.462 0.017 1.124 0.082 1.167
-805 6.223 0.019 1.208 0.072 1.244
-Final Value=6.881736000015767E11
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian
-5 0.06 0.025 0.013 0.002 0.011
-55 0.483 0.011 0.113 0.016 0.069
-105 0.247 0.013 0.173 0.018 0.132
-155 0.271 0.012 0.252 0.038 0.202
-205 0.582 0.009 0.313 0.021 0.273
-255 0.878 0.01 0.396 0.021 0.395
-305 0.895 0.011 0.456 0.029 0.423
-355 1.203 0.011 0.53 0.058 0.503
-405 1.556 0.012 0.628 0.056 0.585
-455 1.987 0.031 0.733 0.044 0.629
-505 2.515 0.014 0.764 0.047 0.744
-555 2.881 0.014 0.845 0.073 0.813
-605 3.438 0.014 0.906 0.055 0.897
-655 4.091 0.017 0.978 0.081 0.956
-705 4.768 0.017 1.056 0.067 1.098
-755 5.412 0.018 1.129 0.067 1.141
-805 6.224 0.019 1.209 0.073 1.245
-Final Value=6.881736000015767E11
-
-
-yliu@yliu-dev:~/workspace_cpp/SymLLVM$ g++ benchmark-rosenbrock-manual.cpp -o run
-yliu@yliu-dev:~/workspace_cpp/SymLLVM$ ./run
-N=5: Grad=0.010515 Hess=0.006046
-N=55: Grad=0.108079 Hess=0.075674
-N=105: Grad=0.205374 Hess=0.14151
-N=155: Grad=0.319664 Hess=0.211846
-N=205: Grad=0.418111 Hess=0.284775
-N=255: Grad=0.51978 Hess=0.502621
-N=305: Grad=0.621614 Hess=0.425008
-N=355: Grad=0.725213 Hess=0.489046
-N=405: Grad=0.823972 Hess=0.56583
-N=455: Grad=0.928018 Hess=0.629761
-N=505: Grad=1.0312 Hess=0.742515
-N=555: Grad=1.13132 Hess=0.798598
-N=605: Grad=1.23703 Hess=0.876948
-N=655: Grad=1.35474 Hess=0.970951
-N=705: Grad=1.44381 Hess=1.0695
-N=755: Grad=1.54051 Hess=1.09616
-N=805: Grad=1.6446 Hess=1.18514
- Final Value=6.88174e+11
-
-yliu@yliu-dev:~/workspace_cpp/SymLLVM$ g++ -O3 benchmark-rosenbrock-manual.cpp -o run
-yliu@yliu-dev:~/workspace_cpp/SymLLVM$ ./run
-N=5: Grad=0.004045 Hess=0.002874
-N=55: Grad=0.017526 Hess=0.011655
-N=105: Grad=0.030795 Hess=0.025675
-N=155: Grad=0.046783 Hess=0.038598
-N=205: Grad=0.064157 Hess=0.056752
-N=255: Grad=0.262951 Hess=0.1346
-N=305: Grad=0.111215 Hess=0.083569
-N=355: Grad=0.146319 Hess=0.098378
-N=405: Grad=0.147776 Hess=0.165814
-N=455: Grad=0.198877 Hess=0.148392
-N=505: Grad=0.232979 Hess=0.196977
-N=555: Grad=0.213673 Hess=0.221002
-N=605: Grad=0.235828 Hess=0.275431
-N=655: Grad=0.226496 Hess=0.228843
-N=705: Grad=0.218672 Hess=0.279285
-N=755: Grad=0.234185 Hess=0.265979
-N=805: Grad=0.2888 Hess=0.315162
- Final Value=6.88174e+11
-
-g++ O3 compile time
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian|C Code Compile
-5 0.056 0.025 0.014 0.003 0.012 0.162
-55 0.479 0.014 0.11 0.019 0.069 0.32
-105 0.179 0.013 0.165 0.03 0.133 0.389
-155 0.314 0.013 0.245 0.024 0.193 0.563
-205 0.572 0.009 0.309 0.021 0.275 0.754
-255 0.811 0.01 0.406 0.023 0.392 0.964
-305 0.886 0.011 0.45 0.027 0.427 1.235
-355 1.246 0.011 0.528 0.049 0.498 1.526
-405 1.565 0.011 0.604 0.035 0.573 1.8
-455 1.969 0.013 0.671 0.057 0.685 2.135
-505 2.436 0.015 0.75 0.046 0.756 2.469
-555 3.01 0.015 0.822 0.063 0.815 2.856
-605 3.495 0.014 0.894 0.055 0.897 3.222
-655 4.19 0.015 0.986 0.084 1.029 3.403
-705 4.801 0.017 1.048 0.061 1.035 3.848
-755 5.53 0.018 1.118 0.08 1.103 4.221
-805 6.347 0.018 1.209 0.085 1.272 4.547
-Final Value=6.881736000015767E11
-yliu@yliu-dev:~/workspace_java/SymJava$ ./runall.sh
-N=5: Grad=0.00555 Hess=0.003054
- Final Value=4.008e+08
-N=55: Grad=0.015792 Hess=0.012052
- Final Value=5.4108e+09
-N=105: Grad=0.031341 Hess=0.025145
- Final Value=1.04208e+10
-N=155: Grad=0.048394 Hess=0.038475
- Final Value=1.54308e+10
-N=205: Grad=0.062533 Hess=0.054497
- Final Value=2.04408e+10
-N=255: Grad=0.078452 Hess=0.136445
- Final Value=2.54508e+10
-N=305: Grad=0.096971 Hess=0.083958
- Final Value=3.04608e+10
-N=355: Grad=0.110973 Hess=0.094553
- Final Value=3.54708e+10
-N=405: Grad=0.127781 Hess=0.138077
- Final Value=4.04808e+10
-N=455: Grad=0.142258 Hess=0.125689
- Final Value=4.54908e+10
-N=505: Grad=0.159458 Hess=0.199716
- Final Value=5.05008e+10
-N=555: Grad=0.176937 Hess=0.186688
- Final Value=5.55108e+10
-N=605: Grad=0.193468 Hess=0.238989
- Final Value=6.05208e+10
-N=655: Grad=0.205962 Hess=0.229768
- Final Value=6.55308e+10
-N=705: Grad=0.226367 Hess=0.305967
- Final Value=7.05408e+10
-N=755: Grad=0.23855 Hess=0.280694
- Final Value=7.55508e+10
-N=805: Grad=0.262885 Hess=0.319046
- Final Value=8.05608e+10
-
-
-g++ default
-============Benchmark for Rosenbrock==============
-N|Symbolic Manipulaton|Compile Gradient|Eval Gradient|Compile Hessian|Eval Hessian|C Code Compile
-5 0.058 0.025 0.012 0.002 0.013 0.133
-55 0.447 0.012 0.098 0.017 0.071 0.176
-105 0.311 0.015 0.166 0.018 0.127 0.223
-155 0.442 0.012 0.23 0.023 0.2 0.289
-205 0.463 0.013 0.307 0.043 0.278 0.366
-255 0.942 0.01 0.389 0.023 0.397 0.381
-305 0.915 0.011 0.453 0.026 0.43 0.444
-355 1.252 0.011 0.551 0.032 0.52 0.484
-405 1.545 0.011 0.604 0.04 0.565 0.55
-455 1.97 0.027 0.691 0.047 0.666 0.603
-505 2.481 0.032 0.799 0.046 0.735 0.693
-555 3.006 0.015 0.827 0.048 0.828 0.734
-605 3.455 0.015 0.905 0.054 0.881 0.804
-655 4.159 0.017 0.978 0.077 1.027 0.854
-705 4.824 0.017 1.096 0.061 1.049 0.918
-755 5.582 0.017 1.128 0.07 1.166 0.974
-805 6.167 0.018 1.197 0.069 1.227 1.03
-Final Value=6.881736000015767E11
-
-yliu@yliu-dev:~/workspace_java/SymJava$ ./runall.sh
-N=5: Grad=0.012285 Hess=0.005769
- Final Value=4.008e+08
-N=55: Grad=0.112945 Hess=0.074709
- Final Value=5.4108e+09
-N=105: Grad=0.205119 Hess=0.141377
- Final Value=1.04208e+10
-N=155: Grad=0.31637 Hess=0.210464
- Final Value=1.54308e+10
-N=205: Grad=0.417701 Hess=0.285483
- Final Value=2.04408e+10
-N=255: Grad=0.51677 Hess=0.51337
- Final Value=2.54508e+10
-N=305: Grad=0.617711 Hess=0.427058
- Final Value=3.04608e+10
-N=355: Grad=0.72675 Hess=0.501997
- Final Value=3.54708e+10
-N=405: Grad=0.820054 Hess=0.56362
- Final Value=4.04808e+10
-N=455: Grad=0.927727 Hess=0.630426
- Final Value=4.54908e+10
-N=505: Grad=1.02883 Hess=0.734305
- Final Value=5.05008e+10
-N=555: Grad=1.16798 Hess=0.786767
- Final Value=5.55108e+10
-N=605: Grad=1.26002 Hess=0.908035
- Final Value=6.05208e+10
-N=655: Grad=1.33347 Hess=0.942273
- Final Value=6.55308e+10
-N=705: Grad=1.4371 Hess=1.02455
- Final Value=7.05408e+10
-N=755: Grad=1.54837 Hess=1.08883
- Final Value=7.55508e+10
-N=805: Grad=1.66913 Hess=1.22527
- Final Value=8.05608e+10
-
diff --git a/README.md b/README.md
deleted file mode 100644
index d72fbd6..0000000
--- a/README.md
+++ /dev/null
@@ -1,393 +0,0 @@
-# SymJava
-SymJava is a Java library for symbolic-numeric computation.
-
-There are two unique features which make SymJava different:
-
-1. Operator Overloading is implemented by using Java-OO (https://github.com/amelentev/java-oo)
-
-2. Java bytecode is generated at runtime for symbolic expressions which make the numerical evaluation really fast.
-
-Install java-oo Eclipse plugin for Java Operator Overloading support (https://github.com/amelentev/java-oo):
-Click in menu: Help -> Install New Software. Enter in "Work with" field:
-http://amelentev.github.io/eclipse.jdt-oo-site/
-
-If you are using Eclipse-Kepler you need to install SR2 4.3.2 here https://www.eclipse.org/downloads/packages/release/kepler/sr2)
-
-If you are using Eclipse 4.4+, you need Scalar IDE plugin. see https://github.com/amelentev/java-oo
-
-Both Java 7 and 8 are supported.
-
-### Citing Our Papers ###
-
-If you were using Futureye_JIT for academic research, you are encouraged to cite the following papers:
-
-[Y. Liu, P. Zhang, M. Qiu, "Fast Numerical Evaluation for Symbolic Expressions in Java", 17th IEEE International Conference on High Performance and Communications (HPCC 2015), New York, USA, August 24-26, 2015.](http://ieeexplore.ieee.org/document/7336223/)
-
-[Y. Liu, P. Zhang, M. Qiu, "SNC: A Cloud Service Platform for Symbolic-Numeric Computation using Just-In-Time Compilation", IEEE Transactions on Cloud Computing, 2017](http://ieeexplore.ieee.org/abstract/document/7828007/)
-
-### Examples ###
-
-```Java
-package symjava.examples;
-
-import static symjava.symbolic.Symbol.*;
-import symjava.bytecode.BytecodeFunc;
-import symjava.symbolic.*;
-
-/**
- * This example uses Java Operator Overloading for symbolic computation.
- * See https://github.com/amelentev/java-oo for Java Operator Overloading.
- *
- */
-public class Example1 {
-
- public static void main(String[] args) {
- Expr expr = x + y * z;
- System.out.println(expr); //x + y*z
-
- Expr expr2 = expr.subs(x, y*y);
- System.out.println(expr2); //y^2 + y*z
- System.out.println(expr2.diff(y)); //2*y + z
-
- Func f = new Func("f1", expr2.diff(y));
- System.out.println(f); //2*y + z
-
- BytecodeFunc func = f.toBytecodeFunc();
- System.out.println(func.apply(1,2)); //4.0
- }
-}
-```
-
-```Java
-package symjava.examples;
-
-import symjava.relational.Eq;
-import symjava.symbolic.Symbol;
-import static symjava.symbolic.Symbol.*;
-
-
-public class Example2 {
-
- /**
- * Example from Wikipedia
- * (http://en.wikipedia.org/wiki/Gauss-Newton_algorithm)
- *
- * Use Gauss-Newton algorithm to fit a given model y=a*x/(b-x)
- *
- */
- public static void example1() {
- //Model y=a*x/(b-x), Unknown parameters: a, b
- Symbol[] freeVars = {x};
- Symbol[] params = {a, b};
- Eq eq = new Eq(y, a*x/(b+x), freeVars, params);
-
- //Data for (x,y)
- double[][] data = {
- {0.038,0.050},
- {0.194,0.127},
- {0.425,0.094},
- {0.626,0.2122},
- {1.253,0.2729},
- {2.500,0.2665},
- {3.740,0.3317}
- };
-
- double[] initialGuess = {0.9, 0.2};
-
- //Here we go ...
- GaussNewton.solve(eq, initialGuess, data, 100, 1e-4);
-
- }
-
- /**
- * Example from Apache Commons Math
- * (http://commons.apache.org/proper/commons-math/userguide/optimization.html)
- *
- * "We are looking to find the best parameters [a, b, c] for the quadratic function
- *
- * f(x) = a x2 + b x + c.
- *
- * The data set below was generated using [a = 8, b = 10, c = 16]. A random number
- * between zero and one was added to each y value calculated. "
- *
- */
- public static void example2() {
- Symbol[] freeVars = {x};
- Symbol[] params = {a, b, c};
- Eq eq = new Eq(y, a*x*x + b*x + c, freeVars, params);
-
- double[][] data = {
- {1 , 34.234064369},
- {2 , 68.2681162306108},
- {3 , 118.615899084602},
- {4 , 184.138197238557},
- {5 , 266.599877916276},
- {6 , 364.147735251579},
- {7 , 478.019226091914},
- {8 , 608.140949270688},
- {9 , 754.598868667148},
- {10, 916.128818085883},
- };
-
- double[] initialGuess = {1, 1, 1};
-
- GaussNewton.solve(eq, initialGuess, data, 100, 1e-4);
- }
-
- public static void main(String[] args) {
- example1();
- example2();
- }
-}
-```
-
-Output in Latex:
-
-
-Jacobian Matrix =
-
-
-Residuals =
-
-
-```
-Iterativly sovle ...
-a=0.33266 b=0.26017
-a=0.34281 b=0.42608
-a=0.35778 b=0.52951
-a=0.36141 b=0.55366
-a=0.36180 b=0.55607
-a=0.36183 b=0.55625
-```
-
-Jacobian Matrix =
-
-
-Residuals =
-
-
-```
-Iterativly sovle ...
-a=7.99883 b=10.00184 c=16.32401
-```
-
-```Java
-package symjava.examples;
-
-import Jama.Matrix;
-import symjava.matrix.*;
-import symjava.relational.Eq;
-import symjava.symbolic.Expr;
-
-/**
- * A general Gauss Newton solver using SymJava for simbolic computations
- * instead of writing your own Jacobian matrix and Residuals
- */
-public class GaussNewton {
-
- public static void solve(Eq eq, double[] init, double[][] data, int maxIter, double eps) {
- int n = data.length;
-
- //Construct Jacobian Matrix and Residuals
- SymVector res = new SymVector(n);
- SymMatrix J = new SymMatrix(n, eq.getParams().length);
-
- Expr[] params = eq.getParams();
- for(int i=0; i
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/class_diagram1.ucls b/src/class_diagram1.ucls
deleted file mode 100644
index 3842fdc..0000000
--- a/src/class_diagram1.ucls
+++ /dev/null
@@ -1,693 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/lambdacloud/examples/ExampleFEM.java b/src/lambdacloud/examples/ExampleFEM.java
index 9fc9f6d..0f5b2c6 100644
--- a/src/lambdacloud/examples/ExampleFEM.java
+++ b/src/lambdacloud/examples/ExampleFEM.java
@@ -1,4 +1,4 @@
-package lambdacloud.examples;
+/*package lambdacloud.examples;
import java.awt.BasicStroke;
import java.awt.Color;
@@ -25,7 +25,7 @@
import symjava.symbolic.Expr;
public class ExampleFEM {
-
+
public static class MyFrame extends JFrame {
private static final long serialVersionUID = 1L;
public MyFrame() {
@@ -39,7 +39,7 @@ public MyFrame() {
setSize(550, 550);
setLocationRelativeTo(null);
}
-
+
public static class MyPanel extends JPanel {
private static final long serialVersionUID = 1L;
double[] data;
@@ -60,24 +60,24 @@ private void doDrawing(Graphics g) {
g2d.drawLine(0, x1, w, x1);
}
}
-
+
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}
}
-
+
public static void main(String[] args) {
FEMImp1(args);
-
+
// MyFrame frame = new MyFrame();
// frame.setVisible(true);
}
-
+
public static void FEMImp1(String[] args) {
System.out.println("Current working dir="+System.getProperty("user.dir"));
-
+
String configFile = "job_google.conf";
int nData = 1000;
int nEle = 100000;
@@ -94,17 +94,17 @@ public static void FEMImp1(String[] args) {
isAsync = Boolean.valueOf(args[3]);
}
}
-
+
CloudConfig config = CloudConfig.setGlobalConfig(configFile);
-
+
double[] data = new double[nData];
for(int i=0; i map = new HashMap();
map.put("x", fx);
map.put("y", fy);
MathFunc ff = f.compose(map);
-
+
MathFunc[][] lhs = new MathFunc[3][3];
MathFunc[] rhs = new MathFunc[3];
for(int j=0; j<3; j++) {
@@ -155,7 +155,7 @@ public static void solveLaplace(double[] nodesData) {
rhs[j] = v*ff*jac;
rhs[j].setName("RHS"+j);
}
-
+
CompiledFunc[][] clhs = new CompiledFunc[3][3];
CompiledFunc[] crhs = new CompiledFunc[3];
for(int j=0; j<3; j++) {
@@ -164,7 +164,7 @@ public static void solveLaplace(double[] nodesData) {
}
crhs[j] = rhs[j].compile(argsOrder);
}
-
+
double[][] A = new double[3][3];
double[] b = new double[3];
double[] params = new double[9];
@@ -181,7 +181,7 @@ public static void solveLaplace(double[] nodesData) {
}
}
System.out.println(System.currentTimeMillis()-start);
-
+
for(int j=0; j<3; j++) {
for(int i=0; i<3; i++) {
System.out.print(A[j][i]+" ");
@@ -191,31 +191,32 @@ public static void solveLaplace(double[] nodesData) {
for(int j=0; j<3; j++) {
System.out.println(b[j]);
}
- /*
- *
- * 1.4999999999999984 0.0 -1.4999999999999984
- 0.0 0.9999999999999989 -0.9999999999999989
- -1.4999999999999984 -0.9999999999999989 2.4999999999999973
+
+ *
+ * 1.4999999999999984 0.0 -1.4999999999999984
+ 0.0 0.9999999999999989 -0.9999999999999989
+ -1.4999999999999984 -0.9999999999999989 2.4999999999999973
0.8749999999999991
0.8749999999999991
-1.7499999999999982
Correct: (add setArgIdx() in FComposite)
- 1.0833333333333321 -0.45833333333333287 -0.45833333333333287
- -0.45833333333333287 0.5833333333333327 0.04166666666666662
- -0.45833333333333287 0.04166666666666662 0.5833333333333327
+ 1.0833333333333321 -0.45833333333333287 -0.45833333333333287
+ -0.45833333333333287 0.5833333333333327 0.04166666666666662
+ -0.45833333333333287 0.04166666666666662 0.5833333333333327
0.24999999999999972
0.31249999999999967
0.31249999999999967
- */
+
}
public static void main(String[] args) {
solveLaplace(new double[]{100});
}
-
+
@Override
public double apply(double... args) {
solveLaplace(args);
return args[0];
- }
+ }
}
+*/
\ No newline at end of file
diff --git a/src/symjava/examples/Solver.java b/src/symjava/examples/Solver.java
index 5204679..7a50bc2 100644
--- a/src/symjava/examples/Solver.java
+++ b/src/symjava/examples/Solver.java
@@ -29,7 +29,7 @@ public static double[] solveCG2(double[][] _A, double[] _b, double[] _x) {
//for(int i=0; i<_b.length; i++)
// System.out.println(_b[i]+" ");
//System.out.println();
-
+
Matrix A = new DenseMatrix(_A);
Vector b = new DenseVector(_b);
DenseVector x = new DenseVector(_x);
@@ -43,7 +43,7 @@ public static double[] solveCG2(double[][] _A, double[] _b, double[] _x) {
ATA.add(I);
Vector ATb = new DenseVector(AT.numRows());
ATb = AT.mult(b, ATb);
-
+
CG sol = new CG(ATb);
try {
long begin = System.currentTimeMillis();
@@ -57,7 +57,7 @@ public static double[] solveCG2(double[][] _A, double[] _b, double[] _x) {
System.arraycopy(x.getData(), 0, _x, 0, _x.length);
return _x;
}
-
+
public static void main(String[] args) {
double[][] A = {
{ 2, 1, 3},
@@ -70,7 +70,7 @@ public static void main(String[] args) {
for(double i : x)
System.out.println(i);
//x=(0.3,0.4,0)
-
+
int N = Integer.valueOf(args[0]);
long begin = System.currentTimeMillis();
double[][] AA = new double[N][N];
diff --git a/src/symjava/examples/TestLibsvm.java b/src/symjava/examples/TestLibsvm.java
index 8d3eff1..f9568dc 100644
--- a/src/symjava/examples/TestLibsvm.java
+++ b/src/symjava/examples/TestLibsvm.java
@@ -1,4 +1,4 @@
-package symjava.examples;
+/*package symjava.examples;
import libsvm.svm;
import libsvm.svm_model;
@@ -28,7 +28,7 @@ public static double evaluate(double[] features, svm_model model) {
if(features[0]!=v) {
System.out.print("Actual >>>" + features[0] + " " + v + "<<< Prediction");
-
+
for (int i = 0; i < totalClasses; i++) {
System.out.print("(" + labels[i] + ":" + prob_estimates[i] + ")");
}
@@ -104,3 +104,4 @@ public static void main(String[] args) {
}
}
+*/
\ No newline at end of file
diff --git a/src/symjava/test/TestSymbolic.java b/src/symjava/test/TestSymbolic.java
index 8187999..12bea95 100644
--- a/src/symjava/test/TestSymbolic.java
+++ b/src/symjava/test/TestSymbolic.java
@@ -502,9 +502,7 @@ public static void testMathematicalFunction() {
}
public static void main(String[] args) {
- //eclipse不能编译的问题:cmd进到某个class目录后,该目录不允许删除,
- //导致eclipse不能删除该目录,所以不能编译
-// testBasic();
+ testBasic();
// testPrint();
// testSimplify();
// testSummation();
@@ -520,6 +518,6 @@ public static void main(String[] args) {
//set vm parameters: -XX:+PrintCompilation
//testJITVectorized();
//testSymRandom();
- testMathematicalFunction();
+// testMathematicalFunction();
}
}
diff --git a/triangle.dat b/triangle.dat
deleted file mode 100644
index 95031d0..0000000
--- a/triangle.dat
+++ /dev/null
@@ -1,447 +0,0 @@
-VARIABLES="X","Y","U"
-ZONE F=FEPOINT ET=TRIANGLE N=161 E=284
-3.000000 3.000000 0.000000
--3.000000 3.000000 0.000000
--3.000000 -3.000000 0.000000
-3.000000 -3.000000 0.000000
-2.333333 3.000000 0.000000
-1.666667 3.000000 0.000000
-1.000000 3.000000 0.000000
-0.333333 3.000000 0.000000
--0.333333 3.000000 0.000000
--1.000000 3.000000 0.000000
--1.666667 3.000000 0.000000
--2.333333 3.000000 0.000000
--3.000000 2.333333 0.000000
--3.000000 1.666667 0.000000
--3.000000 1.000000 0.000000
--3.000000 0.333333 0.000000
--3.000000 -0.333333 0.000000
--3.000000 -1.000000 0.000000
--3.000000 -1.666667 0.000000
--3.000000 -2.333333 0.000000
-2.333333 -3.000000 0.000000
-1.666667 -3.000000 0.000000
-1.000000 -3.000000 0.000000
-0.333333 -3.000000 0.000000
--0.333333 -3.000000 0.000000
--1.000000 -3.000000 0.000000
--1.666667 -3.000000 0.000000
--2.333333 -3.000000 0.000000
-3.000000 2.333333 0.000000
-3.000000 1.666667 0.000000
-3.000000 1.000000 0.000000
-3.000000 0.333333 0.000000
-3.000000 -0.333333 0.000000
-3.000000 -1.000000 0.000000
-3.000000 -1.666667 0.000000
-3.000000 -2.333333 0.000000
--1.996795 1.996795 25.520632
--1.786509 1.395641 40.948450
--1.381602 1.747001 42.244250
-2.687000 2.687000 3.204465
-2.414665 2.414665 10.355239
-2.687000 -2.687000 3.191939
-2.414665 -2.414665 10.311753
--2.687000 2.687000 3.184532
--2.414665 2.414665 10.286036
--2.687000 -2.687000 3.177874
--2.414665 -2.414665 10.262920
-2.439027 -1.396248 21.895350
-2.558251 -1.924005 12.893389
--2.591268 1.865444 12.551084
--2.709003 1.333932 12.003944
-0.821309 -2.027533 40.803573
-1.358555 -2.289309 27.038654
-1.347485 -1.741104 42.866249
-1.996795 -1.996795 25.489815
--0.788934 2.048816 40.333959
--1.394140 2.433171 22.112389
--1.491504 -2.317436 24.841395
--1.924005 -2.558251 13.014498
-2.085412 0.847887 38.608280
-2.339115 0.228740 31.776046
-2.583168 0.867246 19.336907
-2.714035 0.000000 14.433707
-2.464298 -0.369310 25.835176
-0.191070 -2.295472 33.635743
-0.411710 -1.805212 50.452125
-1.813941 0.419244 50.111056
--2.085412 -0.847887 38.503812
--2.442360 -1.389242 21.857794
--1.811324 -1.347319 41.100377
--1.996795 -1.996795 25.478650
--0.041330 -2.676601 16.154792
--0.415534 -2.412628 27.914657
-0.846082 -2.562099 20.281043
-0.228740 2.339115 31.724182
--0.362727 2.469069 25.642301
--0.281857 2.031116 43.234973
-1.345644 2.702400 12.167832
-1.855583 2.566671 13.314946
-2.289558 1.388149 26.692551
-1.736746 1.348401 42.930422
-1.996795 1.996795 25.358348
-1.376393 2.286163 26.891977
-0.855333 2.568848 19.948148
-0.847887 2.085412 38.519837
--0.787617 2.597531 18.819553
--2.587741 -0.785370 19.208383
--2.410932 -0.356389 28.213422
--2.288023 0.206717 33.951666
--1.913731 -0.332610 47.438060
--1.491079 -0.767388 57.134469
--0.966913 -0.955370 65.063699
--0.924722 -0.469911 71.695923
--1.454343 -1.792452 39.964900
--0.030042 -0.798192 74.937473
--0.070874 -1.224309 67.292074
-0.375039 -1.018424 70.338823
-1.787992 -1.396357 40.945606
--2.291776 1.354897 26.951240
--2.562369 0.846128 20.253104
--2.085412 0.847887 38.561220
--0.144650 0.585519 77.850957
-0.017951 1.199874 67.981281
--0.480120 1.086735 68.401245
-1.473252 0.774028 57.388562
-0.953551 0.944175 65.315382
-0.912896 0.465330 71.737189
-1.384444 1.773673 41.431751
--0.590643 0.111098 77.902113
--1.166446 0.087339 68.606763
--1.368369 0.599574 61.575274
--1.688483 0.133677 55.191589
--0.880851 1.454021 56.538629
--0.926033 0.880849 66.780758
-0.598148 1.355920 61.897548
-0.112610 1.731900 53.854354
-0.609961 -0.014911 77.527139
-1.163893 -0.045010 68.645166
-1.466650 -0.631237 59.179027
-1.710317 -0.000000 54.608136
-0.772952 -1.472005 57.470278
-0.873109 -0.905285 67.363692
--0.631237 -1.466650 59.161784
-0.000000 -1.710317 54.586747
-2.567236 1.857542 13.301943
-1.852610 -2.567195 13.332587
--1.924005 2.558251 12.898566
--2.558251 -1.924005 12.872511
--0.968334 -2.626306 16.964120
-0.450331 0.821385 73.134987
--1.669107 0.926944 50.242047
--1.329698 1.178059 54.920269
-0.303307 -0.466573 78.314594
-1.676346 -1.024268 48.795778
-1.320728 -1.206746 54.625739
-0.855159 -0.394841 72.828656
-0.925381 1.664115 50.371905
-1.191017 1.309872 55.101347
--0.945234 0.433707 71.106298
--1.024268 -1.676346 48.863898
--1.222157 -1.311644 54.589592
-1.345644 -2.702400 12.200057
-2.702400 1.345644 12.177502
--0.433747 1.609805 56.346666
-2.597747 -0.789356 18.754670
--0.609578 0.583016 74.384192
--1.481222 -0.284110 60.500534
--0.286010 -0.425521 78.635744
-1.428376 0.305601 61.670063
-0.364093 0.377490 78.223581
-0.305601 -1.428376 61.643591
-0.546426 1.855568 48.096963
-2.085412 -0.847887 38.518010
--1.855243 0.541617 48.179900
--0.902965 -2.027769 40.076374
-2.002485 -0.321355 44.195071
-0.000000 2.714035 14.421741
--0.351733 -1.982567 44.790095
--2.714035 0.000000 14.365843
--0.471669 -0.856131 72.490166
-0.000000 -0.000000 80.965887
-37 38 39
-40 5 41
-42 36 43
-44 13 45
-46 28 47
-35 48 49
-21 4 42
-50 13 14
-51 50 14
-52 53 54
-49 55 43
-50 37 45
-56 57 39
-27 58 59
-20 3 46
-60 61 62
-63 64 33
-65 52 66
-61 60 67
-68 69 70
-59 71 47
-72 73 25
-52 65 74
-24 65 72
-75 76 77
-78 79 6
-79 5 6
-60 80 81
-79 82 41
-83 84 85
-86 9 10
-9 86 76
-17 87 88
-87 17 18
-89 88 90
-32 61 63
-91 92 93
-71 94 70
-95 96 97
-55 98 54
-99 100 101
-102 103 104
-105 106 107
-82 108 81
-109 110 93
-110 111 112
-113 114 104
-115 116 103
-117 118 107
-119 120 118
-121 122 97
-123 124 96
-29 41 125
-84 83 78
-21 43 126
-34 48 35
-12 45 127
-100 99 51
-20 47 128
-27 129 58
-103 102 130
-131 132 38
-97 133 95
-134 135 98
-118 117 136
-137 138 108
-110 109 139
-140 141 94
-126 142 22
-122 121 135
-37 99 38
-16 89 100
-82 83 108
-8 75 84
-125 143 30
-106 105 138
-69 87 18
-92 91 141
-57 86 10
-104 144 113
-55 48 98
-33 64 145
-71 58 94
-25 73 129
-109 102 146
-75 77 116
-90 91 147
-93 148 109
-67 105 149
-130 102 150
-66 121 151
-117 133 136
-80 60 62
-29 125 30
-6 7 78
-152 137 85
-34 145 48
-153 119 134
-53 52 74
-21 126 22
-14 15 51
-154 131 101
-57 56 86
-12 127 11
-69 68 87
-20 128 19
-27 26 129
-155 123 140
-61 156 64
-32 31 62
-8 9 157
-75 116 152
-65 158 73
-24 23 74
-16 17 159
-89 112 154
-37 57 127
-12 2 44
-36 35 49
-55 53 126
-28 27 59
-71 69 128
-82 80 125
-29 1 40
-119 153 156
-119 136 122
-137 152 115
-115 130 106
-123 155 158
-123 160 92
-111 139 114
-131 154 111
-88 68 90
-88 89 159
-61 120 156
-64 153 145
-56 144 77
-76 75 157
-65 124 158
-73 155 129
-102 104 146
-161 117 150
-121 97 151
-121 52 54
-105 107 149
-105 60 81
-91 93 147
-91 68 70
-93 160 148
-109 161 102
-107 130 150
-117 161 133
-133 161 148
-133 97 122
-56 39 113
-144 104 103
-108 83 85
-108 138 81
-38 99 101
-38 132 39
-98 48 153
-98 135 54
-94 58 155
-94 141 70
-122 135 119
-122 136 133
-106 138 115
-107 106 130
-92 141 123
-93 92 160
-103 130 115
-103 116 144
-81 80 82
-81 138 105
-39 57 37
-113 132 114
-70 69 71
-70 141 91
-54 53 55
-54 135 121
-100 15 16
-101 100 89
-62 61 32
-62 31 143
-74 65 24
-74 23 142
-84 7 8
-85 84 75
-50 99 37
-50 45 13
-126 43 55
-126 53 142
-49 48 55
-49 43 36
-79 83 82
-79 41 5
-125 41 82
-125 80 143
-128 47 71
-19 128 69
-59 58 71
-59 47 28
-127 45 37
-11 127 57
-118 136 119
-118 120 149
-114 132 111
-114 139 146
-110 139 111
-110 112 147
-96 160 123
-96 124 151
-87 68 88
-18 19 69
-129 26 25
-58 129 155
-86 56 76
-10 11 57
-145 34 33
-48 145 153
-150 102 161
-150 117 107
-90 68 91
-90 112 89
-158 124 123
-73 158 155
-156 120 119
-64 156 153
-154 112 111
-89 154 101
-66 52 121
-65 66 124
-67 60 105
-61 67 120
-152 116 115
-75 152 85
-148 160 95
-109 148 161
-63 61 64
-32 63 33
-159 17 88
-16 159 89
-72 65 73
-24 72 25
-157 9 76
-8 157 75
-131 111 132
-101 131 38
-134 119 135
-153 134 98
-140 123 141
-155 140 94
-137 115 138
-85 137 108
-113 144 56
-132 113 39
-146 104 114
-146 139 109
-142 53 74
-22 142 23
-78 7 84
-78 83 79
-51 15 100
-51 99 50
-143 80 62
-30 143 31
-149 107 118
-149 120 67
-151 97 96
-151 124 66
-147 93 110
-147 112 90
-95 133 148
-95 160 96
-77 76 56
-116 77 144
-42 4 36
-21 42 43
-44 2 13
-12 44 45
-46 3 28
-20 46 47
-40 1 5
-29 40 41
diff --git a/triangle.grd b/triangle.grd
deleted file mode 100644
index a6fa4b5..0000000
--- a/triangle.grd
+++ /dev/null
@@ -1,449 +0,0 @@
-# UCD geometry file from Gridgen 15.08R1, a product of Pointwise, Inc.
-# 10-Jul-10 20:25:04
-#
-161 284 0 0 0
-1 3.000000000e+000 3.000000000e+000 0.000000000e+000
-2 -3.000000000e+000 3.000000000e+000 0.000000000e+000
-3 -3.000000000e+000 -3.000000000e+000 0.000000000e+000
-4 3.000000000e+000 -3.000000000e+000 0.000000000e+000
-5 2.333333333e+000 3.000000000e+000 0.000000000e+000
-6 1.666666667e+000 3.000000000e+000 0.000000000e+000
-7 1.000000000e+000 3.000000000e+000 0.000000000e+000
-8 3.333333333e-001 3.000000000e+000 0.000000000e+000
-9 -3.333333333e-001 3.000000000e+000 0.000000000e+000
-10 -1.000000000e+000 3.000000000e+000 0.000000000e+000
-11 -1.666666667e+000 3.000000000e+000 0.000000000e+000
-12 -2.333333333e+000 3.000000000e+000 0.000000000e+000
-13 -3.000000000e+000 2.333333333e+000 0.000000000e+000
-14 -3.000000000e+000 1.666666667e+000 0.000000000e+000
-15 -3.000000000e+000 1.000000000e+000 0.000000000e+000
-16 -3.000000000e+000 3.333333333e-001 0.000000000e+000
-17 -3.000000000e+000 -3.333333333e-001 0.000000000e+000
-18 -3.000000000e+000 -1.000000000e+000 0.000000000e+000
-19 -3.000000000e+000 -1.666666667e+000 0.000000000e+000
-20 -3.000000000e+000 -2.333333333e+000 0.000000000e+000
-21 2.333333333e+000 -3.000000000e+000 0.000000000e+000
-22 1.666666667e+000 -3.000000000e+000 0.000000000e+000
-23 1.000000000e+000 -3.000000000e+000 0.000000000e+000
-24 3.333333333e-001 -3.000000000e+000 0.000000000e+000
-25 -3.333333333e-001 -3.000000000e+000 0.000000000e+000
-26 -1.000000000e+000 -3.000000000e+000 0.000000000e+000
-27 -1.666666667e+000 -3.000000000e+000 0.000000000e+000
-28 -2.333333333e+000 -3.000000000e+000 0.000000000e+000
-29 3.000000000e+000 2.333333333e+000 0.000000000e+000
-30 3.000000000e+000 1.666666667e+000 0.000000000e+000
-31 3.000000000e+000 1.000000000e+000 0.000000000e+000
-32 3.000000000e+000 3.333333333e-001 0.000000000e+000
-33 3.000000000e+000 -3.333333333e-001 0.000000000e+000
-34 3.000000000e+000 -1.000000000e+000 0.000000000e+000
-35 3.000000000e+000 -1.666666667e+000 0.000000000e+000
-36 3.000000000e+000 -2.333333333e+000 0.000000000e+000
-37 -1.996794872e+000 1.996794872e+000 0.000000000e+000
-38 -1.786508761e+000 1.395640906e+000 0.000000000e+000
-39 -1.381601534e+000 1.747001174e+000 0.000000000e+000
-40 2.686999678e+000 2.686999678e+000 0.000000000e+000
-41 2.414665378e+000 2.414665378e+000 0.000000000e+000
-42 2.686999678e+000 -2.686999678e+000 0.000000000e+000
-43 2.414665378e+000 -2.414665378e+000 0.000000000e+000
-44 -2.686999678e+000 2.686999678e+000 0.000000000e+000
-45 -2.414665378e+000 2.414665378e+000 0.000000000e+000
-46 -2.686999678e+000 -2.686999678e+000 0.000000000e+000
-47 -2.414665378e+000 -2.414665378e+000 0.000000000e+000
-48 2.439026814e+000 -1.396247864e+000 0.000000000e+000
-49 2.558251394e+000 -1.924004801e+000 0.000000000e+000
-50 -2.591268003e+000 1.865443892e+000 0.000000000e+000
-51 -2.709003073e+000 1.333932309e+000 0.000000000e+000
-52 8.213088311e-001 -2.027533399e+000 0.000000000e+000
-53 1.358555186e+000 -2.289308558e+000 0.000000000e+000
-54 1.347484832e+000 -1.741104037e+000 0.000000000e+000
-55 1.996794872e+000 -1.996794872e+000 0.000000000e+000
-56 -7.889343091e-001 2.048816309e+000 0.000000000e+000
-57 -1.394139893e+000 2.433171006e+000 0.000000000e+000
-58 -1.491504497e+000 -2.317436097e+000 0.000000000e+000
-59 -1.924004801e+000 -2.558251394e+000 0.000000000e+000
-60 2.085412440e+000 8.478870805e-001 0.000000000e+000
-61 2.339115223e+000 2.287397616e-001 0.000000000e+000
-62 2.583167729e+000 8.672457389e-001 0.000000000e+000
-63 2.714035283e+000 2.220446049e-016 0.000000000e+000
-64 2.464297567e+000 -3.693099428e-001 0.000000000e+000
-65 1.910696370e-001 -2.295472060e+000 0.000000000e+000
-66 4.117096533e-001 -1.805212040e+000 0.000000000e+000
-67 1.813940672e+000 4.192436782e-001 0.000000000e+000
-68 -2.085412440e+000 -8.478870805e-001 0.000000000e+000
-69 -2.442360051e+000 -1.389242338e+000 0.000000000e+000
-70 -1.811324489e+000 -1.347318654e+000 0.000000000e+000
-71 -1.996794872e+000 -1.996794872e+000 0.000000000e+000
-72 -4.132981970e-002 -2.676600911e+000 0.000000000e+000
-73 -4.155339731e-001 -2.412628465e+000 0.000000000e+000
-74 8.460816214e-001 -2.562098801e+000 0.000000000e+000
-75 2.287397616e-001 2.339115223e+000 0.000000000e+000
-76 -3.627269269e-001 2.469069400e+000 0.000000000e+000
-77 -2.818566154e-001 2.031116292e+000 0.000000000e+000
-78 1.345644491e+000 2.702399751e+000 0.000000000e+000
-79 1.855582896e+000 2.566670511e+000 0.000000000e+000
-80 2.289558446e+000 1.388149273e+000 0.000000000e+000
-81 1.736746487e+000 1.348400601e+000 0.000000000e+000
-82 1.996794872e+000 1.996794872e+000 0.000000000e+000
-83 1.376392634e+000 2.286163064e+000 0.000000000e+000
-84 8.553328834e-001 2.568848413e+000 0.000000000e+000
-85 8.478870805e-001 2.085412440e+000 0.000000000e+000
-86 -7.876174466e-001 2.597530569e+000 0.000000000e+000
-87 -2.587740815e+000 -7.853703336e-001 0.000000000e+000
-88 -2.410931584e+000 -3.563889158e-001 0.000000000e+000
-89 -2.288023379e+000 2.067171397e-001 0.000000000e+000
-90 -1.913731499e+000 -3.326098615e-001 0.000000000e+000
-91 -1.491079463e+000 -7.673882457e-001 0.000000000e+000
-92 -9.669133572e-001 -9.553703940e-001 0.000000000e+000
-93 -9.247222620e-001 -4.699110269e-001 0.000000000e+000
-94 -1.454343342e+000 -1.792451530e+000 0.000000000e+000
-95 -3.004159163e-002 -7.981915120e-001 0.000000000e+000
-96 -7.087405694e-002 -1.224309397e+000 0.000000000e+000
-97 3.750386586e-001 -1.018423943e+000 0.000000000e+000
-98 1.787991827e+000 -1.396357332e+000 0.000000000e+000
-99 -2.291775925e+000 1.354896713e+000 0.000000000e+000
-100 -2.562369136e+000 8.461277626e-001 0.000000000e+000
-101 -2.085412440e+000 8.478870805e-001 0.000000000e+000
-102 -1.446504788e-001 5.855193921e-001 0.000000000e+000
-103 1.795072924e-002 1.199873800e+000 0.000000000e+000
-104 -4.801200716e-001 1.086734787e+000 0.000000000e+000
-105 1.473251844e+000 7.740283463e-001 0.000000000e+000
-106 9.535508755e-001 9.441750991e-001 0.000000000e+000
-107 9.128963449e-001 4.653299898e-001 0.000000000e+000
-108 1.384444476e+000 1.773672512e+000 0.000000000e+000
-109 -5.906434787e-001 1.110977934e-001 0.000000000e+000
-110 -1.166445722e+000 8.733918611e-002 0.000000000e+000
-111 -1.368369160e+000 5.995738609e-001 0.000000000e+000
-112 -1.688483099e+000 1.336771601e-001 0.000000000e+000
-113 -8.808509060e-001 1.454020967e+000 0.000000000e+000
-114 -9.260327871e-001 8.808493333e-001 0.000000000e+000
-115 5.981481493e-001 1.355919902e+000 0.000000000e+000
-116 1.126102619e-001 1.731899692e+000 0.000000000e+000
-117 6.099608418e-001 -1.491138191e-002 0.000000000e+000
-118 1.163893262e+000 -4.500984824e-002 0.000000000e+000
-119 1.466649760e+000 -6.312373202e-001 0.000000000e+000
-120 1.710317460e+000 -1.110223025e-016 0.000000000e+000
-121 7.729520570e-001 -1.472004897e+000 0.000000000e+000
-122 8.731094594e-001 -9.052849301e-001 0.000000000e+000
-123 -6.312373202e-001 -1.466649760e+000 0.000000000e+000
-124 1.387778781e-017 -1.710317460e+000 0.000000000e+000
-125 2.567236408e+000 1.857542336e+000 0.000000000e+000
-126 1.852609988e+000 -2.567194760e+000 0.000000000e+000
-127 -1.924004801e+000 2.558251394e+000 0.000000000e+000
-128 -2.558251394e+000 -1.924004801e+000 0.000000000e+000
-129 -9.683338586e-001 -2.626305670e+000 0.000000000e+000
-130 4.503314736e-001 8.213846332e-001 0.000000000e+000
-131 -1.669106639e+000 9.269438537e-001 0.000000000e+000
-132 -1.329697818e+000 1.178058902e+000 0.000000000e+000
-133 3.033073575e-001 -4.665725709e-001 0.000000000e+000
-134 1.676346038e+000 -1.024267782e+000 0.000000000e+000
-135 1.320727966e+000 -1.206746125e+000 0.000000000e+000
-136 8.551587302e-001 -3.948412698e-001 0.000000000e+000
-137 9.253812189e-001 1.664114608e+000 0.000000000e+000
-138 1.191016842e+000 1.309871520e+000 0.000000000e+000
-139 -9.452340023e-001 4.337069851e-001 0.000000000e+000
-140 -1.024267782e+000 -1.676346038e+000 0.000000000e+000
-141 -1.222156611e+000 -1.311644350e+000 0.000000000e+000
-142 1.345644491e+000 -2.702399751e+000 0.000000000e+000
-143 2.702399751e+000 1.345644491e+000 0.000000000e+000
-144 -4.337468421e-001 1.609804753e+000 0.000000000e+000
-145 2.597747364e+000 -7.893556441e-001 0.000000000e+000
-146 -6.095777425e-001 5.830158392e-001 0.000000000e+000
-147 -1.481222327e+000 -2.841096559e-001 0.000000000e+000
-148 -2.860104688e-001 -4.255206929e-001 0.000000000e+000
-149 1.428376434e+000 3.056008927e-001 0.000000000e+000
-150 3.640932214e-001 3.774896164e-001 0.000000000e+000
-151 3.056008927e-001 -1.428376434e+000 0.000000000e+000
-152 5.464263888e-001 1.855568184e+000 0.000000000e+000
-153 2.085412440e+000 -8.478870805e-001 0.000000000e+000
-154 -1.855242834e+000 5.416174205e-001 0.000000000e+000
-155 -9.029646811e-001 -2.027769461e+000 0.000000000e+000
-156 2.002485293e+000 -3.213547110e-001 0.000000000e+000
-157 2.220446049e-016 2.714035283e+000 0.000000000e+000
-158 -3.517332675e-001 -1.982567441e+000 0.000000000e+000
-159 -2.714035283e+000 2.220446049e-016 0.000000000e+000
-160 -4.716694485e-001 -8.561309558e-001 0.000000000e+000
-161 0.000000000e+000 -2.775557562e-017 0.000000000e+000
-1 0 tri 37 38 39
-2 0 tri 40 5 41
-3 0 tri 42 36 43
-4 0 tri 44 13 45
-5 0 tri 46 28 47
-6 0 tri 35 48 49
-7 0 tri 21 4 42
-8 0 tri 50 13 14
-9 0 tri 51 50 14
-10 0 tri 52 53 54
-11 0 tri 49 55 43
-12 0 tri 50 37 45
-13 0 tri 56 57 39
-14 0 tri 27 58 59
-15 0 tri 20 3 46
-16 0 tri 60 61 62
-17 0 tri 63 64 33
-18 0 tri 65 52 66
-19 0 tri 61 60 67
-20 0 tri 68 69 70
-21 0 tri 59 71 47
-22 0 tri 72 73 25
-23 0 tri 52 65 74
-24 0 tri 24 65 72
-25 0 tri 75 76 77
-26 0 tri 78 79 6
-27 0 tri 79 5 6
-28 0 tri 60 80 81
-29 0 tri 79 82 41
-30 0 tri 83 84 85
-31 0 tri 86 9 10
-32 0 tri 9 86 76
-33 0 tri 17 87 88
-34 0 tri 87 17 18
-35 0 tri 89 88 90
-36 0 tri 32 61 63
-37 0 tri 91 92 93
-38 0 tri 71 94 70
-39 0 tri 95 96 97
-40 0 tri 55 98 54
-41 0 tri 99 100 101
-42 0 tri 102 103 104
-43 0 tri 105 106 107
-44 0 tri 82 108 81
-45 0 tri 109 110 93
-46 0 tri 110 111 112
-47 0 tri 113 114 104
-48 0 tri 115 116 103
-49 0 tri 117 118 107
-50 0 tri 119 120 118
-51 0 tri 121 122 97
-52 0 tri 123 124 96
-53 0 tri 29 41 125
-54 0 tri 84 83 78
-55 0 tri 21 43 126
-56 0 tri 34 48 35
-57 0 tri 12 45 127
-58 0 tri 100 99 51
-59 0 tri 20 47 128
-60 0 tri 27 129 58
-61 0 tri 103 102 130
-62 0 tri 131 132 38
-63 0 tri 97 133 95
-64 0 tri 134 135 98
-65 0 tri 118 117 136
-66 0 tri 137 138 108
-67 0 tri 110 109 139
-68 0 tri 140 141 94
-69 0 tri 126 142 22
-70 0 tri 122 121 135
-71 0 tri 37 99 38
-72 0 tri 16 89 100
-73 0 tri 82 83 108
-74 0 tri 8 75 84
-75 0 tri 125 143 30
-76 0 tri 106 105 138
-77 0 tri 69 87 18
-78 0 tri 92 91 141
-79 0 tri 57 86 10
-80 0 tri 104 144 113
-81 0 tri 55 48 98
-82 0 tri 33 64 145
-83 0 tri 71 58 94
-84 0 tri 25 73 129
-85 0 tri 109 102 146
-86 0 tri 75 77 116
-87 0 tri 90 91 147
-88 0 tri 93 148 109
-89 0 tri 67 105 149
-90 0 tri 130 102 150
-91 0 tri 66 121 151
-92 0 tri 117 133 136
-93 0 tri 80 60 62
-94 0 tri 29 125 30
-95 0 tri 6 7 78
-96 0 tri 152 137 85
-97 0 tri 34 145 48
-98 0 tri 153 119 134
-99 0 tri 53 52 74
-100 0 tri 21 126 22
-101 0 tri 14 15 51
-102 0 tri 154 131 101
-103 0 tri 57 56 86
-104 0 tri 12 127 11
-105 0 tri 69 68 87
-106 0 tri 20 128 19
-107 0 tri 27 26 129
-108 0 tri 155 123 140
-109 0 tri 61 156 64
-110 0 tri 32 31 62
-111 0 tri 8 9 157
-112 0 tri 75 116 152
-113 0 tri 65 158 73
-114 0 tri 24 23 74
-115 0 tri 16 17 159
-116 0 tri 89 112 154
-117 0 tri 37 57 127
-118 0 tri 12 2 44
-119 0 tri 36 35 49
-120 0 tri 55 53 126
-121 0 tri 28 27 59
-122 0 tri 71 69 128
-123 0 tri 82 80 125
-124 0 tri 29 1 40
-125 0 tri 119 153 156
-126 0 tri 119 136 122
-127 0 tri 137 152 115
-128 0 tri 115 130 106
-129 0 tri 123 155 158
-130 0 tri 123 160 92
-131 0 tri 111 139 114
-132 0 tri 131 154 111
-133 0 tri 88 68 90
-134 0 tri 88 89 159
-135 0 tri 61 120 156
-136 0 tri 64 153 145
-137 0 tri 56 144 77
-138 0 tri 76 75 157
-139 0 tri 65 124 158
-140 0 tri 73 155 129
-141 0 tri 102 104 146
-142 0 tri 161 117 150
-143 0 tri 121 97 151
-144 0 tri 121 52 54
-145 0 tri 105 107 149
-146 0 tri 105 60 81
-147 0 tri 91 93 147
-148 0 tri 91 68 70
-149 0 tri 93 160 148
-150 0 tri 109 161 102
-151 0 tri 107 130 150
-152 0 tri 117 161 133
-153 0 tri 133 161 148
-154 0 tri 133 97 122
-155 0 tri 56 39 113
-156 0 tri 144 104 103
-157 0 tri 108 83 85
-158 0 tri 108 138 81
-159 0 tri 38 99 101
-160 0 tri 38 132 39
-161 0 tri 98 48 153
-162 0 tri 98 135 54
-163 0 tri 94 58 155
-164 0 tri 94 141 70
-165 0 tri 122 135 119
-166 0 tri 122 136 133
-167 0 tri 106 138 115
-168 0 tri 107 106 130
-169 0 tri 92 141 123
-170 0 tri 93 92 160
-171 0 tri 103 130 115
-172 0 tri 103 116 144
-173 0 tri 81 80 82
-174 0 tri 81 138 105
-175 0 tri 39 57 37
-176 0 tri 113 132 114
-177 0 tri 70 69 71
-178 0 tri 70 141 91
-179 0 tri 54 53 55
-180 0 tri 54 135 121
-181 0 tri 100 15 16
-182 0 tri 101 100 89
-183 0 tri 62 61 32
-184 0 tri 62 31 143
-185 0 tri 74 65 24
-186 0 tri 74 23 142
-187 0 tri 84 7 8
-188 0 tri 85 84 75
-189 0 tri 50 99 37
-190 0 tri 50 45 13
-191 0 tri 126 43 55
-192 0 tri 126 53 142
-193 0 tri 49 48 55
-194 0 tri 49 43 36
-195 0 tri 79 83 82
-196 0 tri 79 41 5
-197 0 tri 125 41 82
-198 0 tri 125 80 143
-199 0 tri 128 47 71
-200 0 tri 19 128 69
-201 0 tri 59 58 71
-202 0 tri 59 47 28
-203 0 tri 127 45 37
-204 0 tri 11 127 57
-205 0 tri 118 136 119
-206 0 tri 118 120 149
-207 0 tri 114 132 111
-208 0 tri 114 139 146
-209 0 tri 110 139 111
-210 0 tri 110 112 147
-211 0 tri 96 160 123
-212 0 tri 96 124 151
-213 0 tri 87 68 88
-214 0 tri 18 19 69
-215 0 tri 129 26 25
-216 0 tri 58 129 155
-217 0 tri 86 56 76
-218 0 tri 10 11 57
-219 0 tri 145 34 33
-220 0 tri 48 145 153
-221 0 tri 150 102 161
-222 0 tri 150 117 107
-223 0 tri 90 68 91
-224 0 tri 90 112 89
-225 0 tri 158 124 123
-226 0 tri 73 158 155
-227 0 tri 156 120 119
-228 0 tri 64 156 153
-229 0 tri 154 112 111
-230 0 tri 89 154 101
-231 0 tri 66 52 121
-232 0 tri 65 66 124
-233 0 tri 67 60 105
-234 0 tri 61 67 120
-235 0 tri 152 116 115
-236 0 tri 75 152 85
-237 0 tri 148 160 95
-238 0 tri 109 148 161
-239 0 tri 63 61 64
-240 0 tri 32 63 33
-241 0 tri 159 17 88
-242 0 tri 16 159 89
-243 0 tri 72 65 73
-244 0 tri 24 72 25
-245 0 tri 157 9 76
-246 0 tri 8 157 75
-247 0 tri 131 111 132
-248 0 tri 101 131 38
-249 0 tri 134 119 135
-250 0 tri 153 134 98
-251 0 tri 140 123 141
-252 0 tri 155 140 94
-253 0 tri 137 115 138
-254 0 tri 85 137 108
-255 0 tri 113 144 56
-256 0 tri 132 113 39
-257 0 tri 146 104 114
-258 0 tri 146 139 109
-259 0 tri 142 53 74
-260 0 tri 22 142 23
-261 0 tri 78 7 84
-262 0 tri 78 83 79
-263 0 tri 51 15 100
-264 0 tri 51 99 50
-265 0 tri 143 80 62
-266 0 tri 30 143 31
-267 0 tri 149 107 118
-268 0 tri 149 120 67
-269 0 tri 151 97 96
-270 0 tri 151 124 66
-271 0 tri 147 93 110
-272 0 tri 147 112 90
-273 0 tri 95 133 148
-274 0 tri 95 160 96
-275 0 tri 77 76 56
-276 0 tri 116 77 144
-277 0 tri 42 4 36
-278 0 tri 21 42 43
-279 0 tri 44 2 13
-280 0 tri 12 44 45
-281 0 tri 46 3 28
-282 0 tri 20 46 47
-283 0 tri 40 1 5
-284 0 tri 29 40 41
diff --git a/triangle_hardcode.dat b/triangle_hardcode.dat
deleted file mode 100644
index 95031d0..0000000
--- a/triangle_hardcode.dat
+++ /dev/null
@@ -1,447 +0,0 @@
-VARIABLES="X","Y","U"
-ZONE F=FEPOINT ET=TRIANGLE N=161 E=284
-3.000000 3.000000 0.000000
--3.000000 3.000000 0.000000
--3.000000 -3.000000 0.000000
-3.000000 -3.000000 0.000000
-2.333333 3.000000 0.000000
-1.666667 3.000000 0.000000
-1.000000 3.000000 0.000000
-0.333333 3.000000 0.000000
--0.333333 3.000000 0.000000
--1.000000 3.000000 0.000000
--1.666667 3.000000 0.000000
--2.333333 3.000000 0.000000
--3.000000 2.333333 0.000000
--3.000000 1.666667 0.000000
--3.000000 1.000000 0.000000
--3.000000 0.333333 0.000000
--3.000000 -0.333333 0.000000
--3.000000 -1.000000 0.000000
--3.000000 -1.666667 0.000000
--3.000000 -2.333333 0.000000
-2.333333 -3.000000 0.000000
-1.666667 -3.000000 0.000000
-1.000000 -3.000000 0.000000
-0.333333 -3.000000 0.000000
--0.333333 -3.000000 0.000000
--1.000000 -3.000000 0.000000
--1.666667 -3.000000 0.000000
--2.333333 -3.000000 0.000000
-3.000000 2.333333 0.000000
-3.000000 1.666667 0.000000
-3.000000 1.000000 0.000000
-3.000000 0.333333 0.000000
-3.000000 -0.333333 0.000000
-3.000000 -1.000000 0.000000
-3.000000 -1.666667 0.000000
-3.000000 -2.333333 0.000000
--1.996795 1.996795 25.520632
--1.786509 1.395641 40.948450
--1.381602 1.747001 42.244250
-2.687000 2.687000 3.204465
-2.414665 2.414665 10.355239
-2.687000 -2.687000 3.191939
-2.414665 -2.414665 10.311753
--2.687000 2.687000 3.184532
--2.414665 2.414665 10.286036
--2.687000 -2.687000 3.177874
--2.414665 -2.414665 10.262920
-2.439027 -1.396248 21.895350
-2.558251 -1.924005 12.893389
--2.591268 1.865444 12.551084
--2.709003 1.333932 12.003944
-0.821309 -2.027533 40.803573
-1.358555 -2.289309 27.038654
-1.347485 -1.741104 42.866249
-1.996795 -1.996795 25.489815
--0.788934 2.048816 40.333959
--1.394140 2.433171 22.112389
--1.491504 -2.317436 24.841395
--1.924005 -2.558251 13.014498
-2.085412 0.847887 38.608280
-2.339115 0.228740 31.776046
-2.583168 0.867246 19.336907
-2.714035 0.000000 14.433707
-2.464298 -0.369310 25.835176
-0.191070 -2.295472 33.635743
-0.411710 -1.805212 50.452125
-1.813941 0.419244 50.111056
--2.085412 -0.847887 38.503812
--2.442360 -1.389242 21.857794
--1.811324 -1.347319 41.100377
--1.996795 -1.996795 25.478650
--0.041330 -2.676601 16.154792
--0.415534 -2.412628 27.914657
-0.846082 -2.562099 20.281043
-0.228740 2.339115 31.724182
--0.362727 2.469069 25.642301
--0.281857 2.031116 43.234973
-1.345644 2.702400 12.167832
-1.855583 2.566671 13.314946
-2.289558 1.388149 26.692551
-1.736746 1.348401 42.930422
-1.996795 1.996795 25.358348
-1.376393 2.286163 26.891977
-0.855333 2.568848 19.948148
-0.847887 2.085412 38.519837
--0.787617 2.597531 18.819553
--2.587741 -0.785370 19.208383
--2.410932 -0.356389 28.213422
--2.288023 0.206717 33.951666
--1.913731 -0.332610 47.438060
--1.491079 -0.767388 57.134469
--0.966913 -0.955370 65.063699
--0.924722 -0.469911 71.695923
--1.454343 -1.792452 39.964900
--0.030042 -0.798192 74.937473
--0.070874 -1.224309 67.292074
-0.375039 -1.018424 70.338823
-1.787992 -1.396357 40.945606
--2.291776 1.354897 26.951240
--2.562369 0.846128 20.253104
--2.085412 0.847887 38.561220
--0.144650 0.585519 77.850957
-0.017951 1.199874 67.981281
--0.480120 1.086735 68.401245
-1.473252 0.774028 57.388562
-0.953551 0.944175 65.315382
-0.912896 0.465330 71.737189
-1.384444 1.773673 41.431751
--0.590643 0.111098 77.902113
--1.166446 0.087339 68.606763
--1.368369 0.599574 61.575274
--1.688483 0.133677 55.191589
--0.880851 1.454021 56.538629
--0.926033 0.880849 66.780758
-0.598148 1.355920 61.897548
-0.112610 1.731900 53.854354
-0.609961 -0.014911 77.527139
-1.163893 -0.045010 68.645166
-1.466650 -0.631237 59.179027
-1.710317 -0.000000 54.608136
-0.772952 -1.472005 57.470278
-0.873109 -0.905285 67.363692
--0.631237 -1.466650 59.161784
-0.000000 -1.710317 54.586747
-2.567236 1.857542 13.301943
-1.852610 -2.567195 13.332587
--1.924005 2.558251 12.898566
--2.558251 -1.924005 12.872511
--0.968334 -2.626306 16.964120
-0.450331 0.821385 73.134987
--1.669107 0.926944 50.242047
--1.329698 1.178059 54.920269
-0.303307 -0.466573 78.314594
-1.676346 -1.024268 48.795778
-1.320728 -1.206746 54.625739
-0.855159 -0.394841 72.828656
-0.925381 1.664115 50.371905
-1.191017 1.309872 55.101347
--0.945234 0.433707 71.106298
--1.024268 -1.676346 48.863898
--1.222157 -1.311644 54.589592
-1.345644 -2.702400 12.200057
-2.702400 1.345644 12.177502
--0.433747 1.609805 56.346666
-2.597747 -0.789356 18.754670
--0.609578 0.583016 74.384192
--1.481222 -0.284110 60.500534
--0.286010 -0.425521 78.635744
-1.428376 0.305601 61.670063
-0.364093 0.377490 78.223581
-0.305601 -1.428376 61.643591
-0.546426 1.855568 48.096963
-2.085412 -0.847887 38.518010
--1.855243 0.541617 48.179900
--0.902965 -2.027769 40.076374
-2.002485 -0.321355 44.195071
-0.000000 2.714035 14.421741
--0.351733 -1.982567 44.790095
--2.714035 0.000000 14.365843
--0.471669 -0.856131 72.490166
-0.000000 -0.000000 80.965887
-37 38 39
-40 5 41
-42 36 43
-44 13 45
-46 28 47
-35 48 49
-21 4 42
-50 13 14
-51 50 14
-52 53 54
-49 55 43
-50 37 45
-56 57 39
-27 58 59
-20 3 46
-60 61 62
-63 64 33
-65 52 66
-61 60 67
-68 69 70
-59 71 47
-72 73 25
-52 65 74
-24 65 72
-75 76 77
-78 79 6
-79 5 6
-60 80 81
-79 82 41
-83 84 85
-86 9 10
-9 86 76
-17 87 88
-87 17 18
-89 88 90
-32 61 63
-91 92 93
-71 94 70
-95 96 97
-55 98 54
-99 100 101
-102 103 104
-105 106 107
-82 108 81
-109 110 93
-110 111 112
-113 114 104
-115 116 103
-117 118 107
-119 120 118
-121 122 97
-123 124 96
-29 41 125
-84 83 78
-21 43 126
-34 48 35
-12 45 127
-100 99 51
-20 47 128
-27 129 58
-103 102 130
-131 132 38
-97 133 95
-134 135 98
-118 117 136
-137 138 108
-110 109 139
-140 141 94
-126 142 22
-122 121 135
-37 99 38
-16 89 100
-82 83 108
-8 75 84
-125 143 30
-106 105 138
-69 87 18
-92 91 141
-57 86 10
-104 144 113
-55 48 98
-33 64 145
-71 58 94
-25 73 129
-109 102 146
-75 77 116
-90 91 147
-93 148 109
-67 105 149
-130 102 150
-66 121 151
-117 133 136
-80 60 62
-29 125 30
-6 7 78
-152 137 85
-34 145 48
-153 119 134
-53 52 74
-21 126 22
-14 15 51
-154 131 101
-57 56 86
-12 127 11
-69 68 87
-20 128 19
-27 26 129
-155 123 140
-61 156 64
-32 31 62
-8 9 157
-75 116 152
-65 158 73
-24 23 74
-16 17 159
-89 112 154
-37 57 127
-12 2 44
-36 35 49
-55 53 126
-28 27 59
-71 69 128
-82 80 125
-29 1 40
-119 153 156
-119 136 122
-137 152 115
-115 130 106
-123 155 158
-123 160 92
-111 139 114
-131 154 111
-88 68 90
-88 89 159
-61 120 156
-64 153 145
-56 144 77
-76 75 157
-65 124 158
-73 155 129
-102 104 146
-161 117 150
-121 97 151
-121 52 54
-105 107 149
-105 60 81
-91 93 147
-91 68 70
-93 160 148
-109 161 102
-107 130 150
-117 161 133
-133 161 148
-133 97 122
-56 39 113
-144 104 103
-108 83 85
-108 138 81
-38 99 101
-38 132 39
-98 48 153
-98 135 54
-94 58 155
-94 141 70
-122 135 119
-122 136 133
-106 138 115
-107 106 130
-92 141 123
-93 92 160
-103 130 115
-103 116 144
-81 80 82
-81 138 105
-39 57 37
-113 132 114
-70 69 71
-70 141 91
-54 53 55
-54 135 121
-100 15 16
-101 100 89
-62 61 32
-62 31 143
-74 65 24
-74 23 142
-84 7 8
-85 84 75
-50 99 37
-50 45 13
-126 43 55
-126 53 142
-49 48 55
-49 43 36
-79 83 82
-79 41 5
-125 41 82
-125 80 143
-128 47 71
-19 128 69
-59 58 71
-59 47 28
-127 45 37
-11 127 57
-118 136 119
-118 120 149
-114 132 111
-114 139 146
-110 139 111
-110 112 147
-96 160 123
-96 124 151
-87 68 88
-18 19 69
-129 26 25
-58 129 155
-86 56 76
-10 11 57
-145 34 33
-48 145 153
-150 102 161
-150 117 107
-90 68 91
-90 112 89
-158 124 123
-73 158 155
-156 120 119
-64 156 153
-154 112 111
-89 154 101
-66 52 121
-65 66 124
-67 60 105
-61 67 120
-152 116 115
-75 152 85
-148 160 95
-109 148 161
-63 61 64
-32 63 33
-159 17 88
-16 159 89
-72 65 73
-24 72 25
-157 9 76
-8 157 75
-131 111 132
-101 131 38
-134 119 135
-153 134 98
-140 123 141
-155 140 94
-137 115 138
-85 137 108
-113 144 56
-132 113 39
-146 104 114
-146 139 109
-142 53 74
-22 142 23
-78 7 84
-78 83 79
-51 15 100
-51 99 50
-143 80 62
-30 143 31
-149 107 118
-149 120 67
-151 97 96
-151 124 66
-147 93 110
-147 112 90
-95 133 148
-95 160 96
-77 76 56
-116 77 144
-42 4 36
-21 42 43
-44 2 13
-12 44 45
-46 3 28
-20 46 47
-40 1 5
-29 40 41
diff --git a/triangle_neumann.dat b/triangle_neumann.dat
deleted file mode 100644
index 95031d0..0000000
--- a/triangle_neumann.dat
+++ /dev/null
@@ -1,447 +0,0 @@
-VARIABLES="X","Y","U"
-ZONE F=FEPOINT ET=TRIANGLE N=161 E=284
-3.000000 3.000000 0.000000
--3.000000 3.000000 0.000000
--3.000000 -3.000000 0.000000
-3.000000 -3.000000 0.000000
-2.333333 3.000000 0.000000
-1.666667 3.000000 0.000000
-1.000000 3.000000 0.000000
-0.333333 3.000000 0.000000
--0.333333 3.000000 0.000000
--1.000000 3.000000 0.000000
--1.666667 3.000000 0.000000
--2.333333 3.000000 0.000000
--3.000000 2.333333 0.000000
--3.000000 1.666667 0.000000
--3.000000 1.000000 0.000000
--3.000000 0.333333 0.000000
--3.000000 -0.333333 0.000000
--3.000000 -1.000000 0.000000
--3.000000 -1.666667 0.000000
--3.000000 -2.333333 0.000000
-2.333333 -3.000000 0.000000
-1.666667 -3.000000 0.000000
-1.000000 -3.000000 0.000000
-0.333333 -3.000000 0.000000
--0.333333 -3.000000 0.000000
--1.000000 -3.000000 0.000000
--1.666667 -3.000000 0.000000
--2.333333 -3.000000 0.000000
-3.000000 2.333333 0.000000
-3.000000 1.666667 0.000000
-3.000000 1.000000 0.000000
-3.000000 0.333333 0.000000
-3.000000 -0.333333 0.000000
-3.000000 -1.000000 0.000000
-3.000000 -1.666667 0.000000
-3.000000 -2.333333 0.000000
--1.996795 1.996795 25.520632
--1.786509 1.395641 40.948450
--1.381602 1.747001 42.244250
-2.687000 2.687000 3.204465
-2.414665 2.414665 10.355239
-2.687000 -2.687000 3.191939
-2.414665 -2.414665 10.311753
--2.687000 2.687000 3.184532
--2.414665 2.414665 10.286036
--2.687000 -2.687000 3.177874
--2.414665 -2.414665 10.262920
-2.439027 -1.396248 21.895350
-2.558251 -1.924005 12.893389
--2.591268 1.865444 12.551084
--2.709003 1.333932 12.003944
-0.821309 -2.027533 40.803573
-1.358555 -2.289309 27.038654
-1.347485 -1.741104 42.866249
-1.996795 -1.996795 25.489815
--0.788934 2.048816 40.333959
--1.394140 2.433171 22.112389
--1.491504 -2.317436 24.841395
--1.924005 -2.558251 13.014498
-2.085412 0.847887 38.608280
-2.339115 0.228740 31.776046
-2.583168 0.867246 19.336907
-2.714035 0.000000 14.433707
-2.464298 -0.369310 25.835176
-0.191070 -2.295472 33.635743
-0.411710 -1.805212 50.452125
-1.813941 0.419244 50.111056
--2.085412 -0.847887 38.503812
--2.442360 -1.389242 21.857794
--1.811324 -1.347319 41.100377
--1.996795 -1.996795 25.478650
--0.041330 -2.676601 16.154792
--0.415534 -2.412628 27.914657
-0.846082 -2.562099 20.281043
-0.228740 2.339115 31.724182
--0.362727 2.469069 25.642301
--0.281857 2.031116 43.234973
-1.345644 2.702400 12.167832
-1.855583 2.566671 13.314946
-2.289558 1.388149 26.692551
-1.736746 1.348401 42.930422
-1.996795 1.996795 25.358348
-1.376393 2.286163 26.891977
-0.855333 2.568848 19.948148
-0.847887 2.085412 38.519837
--0.787617 2.597531 18.819553
--2.587741 -0.785370 19.208383
--2.410932 -0.356389 28.213422
--2.288023 0.206717 33.951666
--1.913731 -0.332610 47.438060
--1.491079 -0.767388 57.134469
--0.966913 -0.955370 65.063699
--0.924722 -0.469911 71.695923
--1.454343 -1.792452 39.964900
--0.030042 -0.798192 74.937473
--0.070874 -1.224309 67.292074
-0.375039 -1.018424 70.338823
-1.787992 -1.396357 40.945606
--2.291776 1.354897 26.951240
--2.562369 0.846128 20.253104
--2.085412 0.847887 38.561220
--0.144650 0.585519 77.850957
-0.017951 1.199874 67.981281
--0.480120 1.086735 68.401245
-1.473252 0.774028 57.388562
-0.953551 0.944175 65.315382
-0.912896 0.465330 71.737189
-1.384444 1.773673 41.431751
--0.590643 0.111098 77.902113
--1.166446 0.087339 68.606763
--1.368369 0.599574 61.575274
--1.688483 0.133677 55.191589
--0.880851 1.454021 56.538629
--0.926033 0.880849 66.780758
-0.598148 1.355920 61.897548
-0.112610 1.731900 53.854354
-0.609961 -0.014911 77.527139
-1.163893 -0.045010 68.645166
-1.466650 -0.631237 59.179027
-1.710317 -0.000000 54.608136
-0.772952 -1.472005 57.470278
-0.873109 -0.905285 67.363692
--0.631237 -1.466650 59.161784
-0.000000 -1.710317 54.586747
-2.567236 1.857542 13.301943
-1.852610 -2.567195 13.332587
--1.924005 2.558251 12.898566
--2.558251 -1.924005 12.872511
--0.968334 -2.626306 16.964120
-0.450331 0.821385 73.134987
--1.669107 0.926944 50.242047
--1.329698 1.178059 54.920269
-0.303307 -0.466573 78.314594
-1.676346 -1.024268 48.795778
-1.320728 -1.206746 54.625739
-0.855159 -0.394841 72.828656
-0.925381 1.664115 50.371905
-1.191017 1.309872 55.101347
--0.945234 0.433707 71.106298
--1.024268 -1.676346 48.863898
--1.222157 -1.311644 54.589592
-1.345644 -2.702400 12.200057
-2.702400 1.345644 12.177502
--0.433747 1.609805 56.346666
-2.597747 -0.789356 18.754670
--0.609578 0.583016 74.384192
--1.481222 -0.284110 60.500534
--0.286010 -0.425521 78.635744
-1.428376 0.305601 61.670063
-0.364093 0.377490 78.223581
-0.305601 -1.428376 61.643591
-0.546426 1.855568 48.096963
-2.085412 -0.847887 38.518010
--1.855243 0.541617 48.179900
--0.902965 -2.027769 40.076374
-2.002485 -0.321355 44.195071
-0.000000 2.714035 14.421741
--0.351733 -1.982567 44.790095
--2.714035 0.000000 14.365843
--0.471669 -0.856131 72.490166
-0.000000 -0.000000 80.965887
-37 38 39
-40 5 41
-42 36 43
-44 13 45
-46 28 47
-35 48 49
-21 4 42
-50 13 14
-51 50 14
-52 53 54
-49 55 43
-50 37 45
-56 57 39
-27 58 59
-20 3 46
-60 61 62
-63 64 33
-65 52 66
-61 60 67
-68 69 70
-59 71 47
-72 73 25
-52 65 74
-24 65 72
-75 76 77
-78 79 6
-79 5 6
-60 80 81
-79 82 41
-83 84 85
-86 9 10
-9 86 76
-17 87 88
-87 17 18
-89 88 90
-32 61 63
-91 92 93
-71 94 70
-95 96 97
-55 98 54
-99 100 101
-102 103 104
-105 106 107
-82 108 81
-109 110 93
-110 111 112
-113 114 104
-115 116 103
-117 118 107
-119 120 118
-121 122 97
-123 124 96
-29 41 125
-84 83 78
-21 43 126
-34 48 35
-12 45 127
-100 99 51
-20 47 128
-27 129 58
-103 102 130
-131 132 38
-97 133 95
-134 135 98
-118 117 136
-137 138 108
-110 109 139
-140 141 94
-126 142 22
-122 121 135
-37 99 38
-16 89 100
-82 83 108
-8 75 84
-125 143 30
-106 105 138
-69 87 18
-92 91 141
-57 86 10
-104 144 113
-55 48 98
-33 64 145
-71 58 94
-25 73 129
-109 102 146
-75 77 116
-90 91 147
-93 148 109
-67 105 149
-130 102 150
-66 121 151
-117 133 136
-80 60 62
-29 125 30
-6 7 78
-152 137 85
-34 145 48
-153 119 134
-53 52 74
-21 126 22
-14 15 51
-154 131 101
-57 56 86
-12 127 11
-69 68 87
-20 128 19
-27 26 129
-155 123 140
-61 156 64
-32 31 62
-8 9 157
-75 116 152
-65 158 73
-24 23 74
-16 17 159
-89 112 154
-37 57 127
-12 2 44
-36 35 49
-55 53 126
-28 27 59
-71 69 128
-82 80 125
-29 1 40
-119 153 156
-119 136 122
-137 152 115
-115 130 106
-123 155 158
-123 160 92
-111 139 114
-131 154 111
-88 68 90
-88 89 159
-61 120 156
-64 153 145
-56 144 77
-76 75 157
-65 124 158
-73 155 129
-102 104 146
-161 117 150
-121 97 151
-121 52 54
-105 107 149
-105 60 81
-91 93 147
-91 68 70
-93 160 148
-109 161 102
-107 130 150
-117 161 133
-133 161 148
-133 97 122
-56 39 113
-144 104 103
-108 83 85
-108 138 81
-38 99 101
-38 132 39
-98 48 153
-98 135 54
-94 58 155
-94 141 70
-122 135 119
-122 136 133
-106 138 115
-107 106 130
-92 141 123
-93 92 160
-103 130 115
-103 116 144
-81 80 82
-81 138 105
-39 57 37
-113 132 114
-70 69 71
-70 141 91
-54 53 55
-54 135 121
-100 15 16
-101 100 89
-62 61 32
-62 31 143
-74 65 24
-74 23 142
-84 7 8
-85 84 75
-50 99 37
-50 45 13
-126 43 55
-126 53 142
-49 48 55
-49 43 36
-79 83 82
-79 41 5
-125 41 82
-125 80 143
-128 47 71
-19 128 69
-59 58 71
-59 47 28
-127 45 37
-11 127 57
-118 136 119
-118 120 149
-114 132 111
-114 139 146
-110 139 111
-110 112 147
-96 160 123
-96 124 151
-87 68 88
-18 19 69
-129 26 25
-58 129 155
-86 56 76
-10 11 57
-145 34 33
-48 145 153
-150 102 161
-150 117 107
-90 68 91
-90 112 89
-158 124 123
-73 158 155
-156 120 119
-64 156 153
-154 112 111
-89 154 101
-66 52 121
-65 66 124
-67 60 105
-61 67 120
-152 116 115
-75 152 85
-148 160 95
-109 148 161
-63 61 64
-32 63 33
-159 17 88
-16 159 89
-72 65 73
-24 72 25
-157 9 76
-8 157 75
-131 111 132
-101 131 38
-134 119 135
-153 134 98
-140 123 141
-155 140 94
-137 115 138
-85 137 108
-113 144 56
-132 113 39
-146 104 114
-146 139 109
-142 53 74
-22 142 23
-78 7 84
-78 83 79
-51 15 100
-51 99 50
-143 80 62
-30 143 31
-149 107 118
-149 120 67
-151 97 96
-151 124 66
-147 93 110
-147 112 90
-95 133 148
-95 160 96
-77 76 56
-116 77 144
-42 4 36
-21 42 43
-44 2 13
-12 44 45
-46 3 28
-20 46 47
-40 1 5
-29 40 41