working on the containing simplex problem. the get containing simplex function works, if the point is in the domain. I am trying to force the domain to contain the point (placing points along perimiter of the mesh). I am not doing that right, but have to run
--HG-- rename : bin/qhull-029.txt => data/qhull-029.txt rename : bin/qhull-029.txt.gv => data/qhull-029.txt.gv
This commit is contained in:
parent
cfcd1e15a2
commit
3dcc10ea0e
@ -3,6 +3,7 @@
|
|||||||
import sys
|
import sys
|
||||||
from grid.DDD import random_grid
|
from grid.DDD import random_grid
|
||||||
from baker import get_phis_3D, run_baker_3D
|
from baker import get_phis_3D, run_baker_3D
|
||||||
|
from baker.tools import logging as log
|
||||||
from baker.tools import exact_func_3D, smberror, improved_answer
|
from baker.tools import exact_func_3D, smberror, improved_answer
|
||||||
try:
|
try:
|
||||||
total_points = int(sys.argv[1])
|
total_points = int(sys.argv[1])
|
||||||
@ -10,7 +11,7 @@ except:
|
|||||||
total_points = 20
|
total_points = 20
|
||||||
|
|
||||||
|
|
||||||
print total_points
|
log.info(total_points)
|
||||||
g = random_grid(total_points)
|
g = random_grid(total_points)
|
||||||
|
|
||||||
open('/tmp/for_qhull.txt', 'w').write(g.for_qhull())
|
open('/tmp/for_qhull.txt', 'w').write(g.for_qhull())
|
||||||
|
@ -7,6 +7,8 @@ from baker.tools import exact_func, smberror, improved_answer
|
|||||||
from glob import glob
|
from glob import glob
|
||||||
from os import remove
|
from os import remove
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
FILE_PREFIX='/tmp/qhull-'
|
FILE_PREFIX='/tmp/qhull-'
|
||||||
|
|
||||||
for g in glob('%s*' % FILE_PREFIX):
|
for g in glob('%s*' % FILE_PREFIX):
|
||||||
@ -14,9 +16,10 @@ for g in glob('%s*' % FILE_PREFIX):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
total_points = int(sys.argv[1])
|
total_points = int(sys.argv[1])
|
||||||
total_tries = int(sys.argv[2])
|
random_points = int(sys.argv[2])
|
||||||
|
total_tries = int(sys.argv[3])
|
||||||
except:
|
except:
|
||||||
print "usage: app.py total_points total_tries"
|
print "usage: app.py [total points in random grid] [number of random points to attempt] [total attempts]"
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
@ -25,12 +28,12 @@ print "total points", total_points
|
|||||||
|
|
||||||
|
|
||||||
d = {True: 0, False: 0}
|
d = {True: 0, False: 0}
|
||||||
for i in xrange(total_tries):
|
for cur_try in xrange(total_tries):
|
||||||
g = random_grid(total_points)
|
g = random_grid(total_points)
|
||||||
|
open('%s%0.3d.txt' % (FILE_PREFIX, cur_try), 'w').write(g.for_qhull())
|
||||||
|
|
||||||
open('%s%0.3d.txt' % (FILE_PREFIX, i), 'w').write(g.for_qhull())
|
for i in xrange(random_points):
|
||||||
|
X = [np.random.rand(), np.random.rand()]
|
||||||
X = [0.3, 0.3]
|
|
||||||
exact = exact_func(X)
|
exact = exact_func(X)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -38,5 +41,6 @@ for i in xrange(total_tries):
|
|||||||
d[improved_answer(answer, exact)] += 1
|
d[improved_answer(answer, exact)] += 1
|
||||||
except smberror as e:
|
except smberror as e:
|
||||||
print e
|
print e
|
||||||
|
print d
|
||||||
|
|
||||||
print d
|
print d
|
||||||
|
@ -24,9 +24,8 @@ q = [exact_func(i) for i in verts]
|
|||||||
|
|
||||||
g = grid(verts,q)
|
g = grid(verts,q)
|
||||||
|
|
||||||
X = [0.3, 0.3]
|
X = [0.13206472640187261, 0.98644929172054607]
|
||||||
|
|
||||||
g.get_containing_simplex(X)
|
|
||||||
exact = exact_func(X)
|
exact = exact_func(X)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
502
data/qhull-000.txt
Normal file
502
data/qhull-000.txt
Normal file
@ -0,0 +1,502 @@
|
|||||||
|
2
|
||||||
|
500
|
||||||
|
0.501822 0.099459
|
||||||
|
0.398871 0.145078
|
||||||
|
0.717727 0.819884
|
||||||
|
0.218163 0.456135
|
||||||
|
0.692657 0.874376
|
||||||
|
0.698942 0.726672
|
||||||
|
0.514508 0.713024
|
||||||
|
0.635646 0.506584
|
||||||
|
0.838798 0.506751
|
||||||
|
0.090156 0.534329
|
||||||
|
0.763002 0.330018
|
||||||
|
0.325797 0.177421
|
||||||
|
0.929666 0.349459
|
||||||
|
0.903110 0.758269
|
||||||
|
0.788727 0.796974
|
||||||
|
0.827882 0.283563
|
||||||
|
0.932292 0.840258
|
||||||
|
0.730115 0.024117
|
||||||
|
0.050927 0.682638
|
||||||
|
0.340828 0.344778
|
||||||
|
0.265962 0.860156
|
||||||
|
0.254063 0.747634
|
||||||
|
0.066011 0.086948
|
||||||
|
0.124991 0.722423
|
||||||
|
0.774609 0.825563
|
||||||
|
0.743862 0.624939
|
||||||
|
0.587882 0.527069
|
||||||
|
0.003707 0.400760
|
||||||
|
0.606581 0.508782
|
||||||
|
0.733931 0.823112
|
||||||
|
0.875321 0.387433
|
||||||
|
0.421334 0.179495
|
||||||
|
0.487737 0.244955
|
||||||
|
0.986045 0.549714
|
||||||
|
0.803826 0.122495
|
||||||
|
0.513748 0.295921
|
||||||
|
0.862030 0.670105
|
||||||
|
0.855385 0.848034
|
||||||
|
0.254363 0.034489
|
||||||
|
0.244426 0.550130
|
||||||
|
0.039767 0.946977
|
||||||
|
0.324643 0.651447
|
||||||
|
0.325729 0.827348
|
||||||
|
0.209335 0.544249
|
||||||
|
0.579131 0.622810
|
||||||
|
0.174603 0.157842
|
||||||
|
0.872530 0.154341
|
||||||
|
0.588218 0.573515
|
||||||
|
0.259025 0.733801
|
||||||
|
0.573148 0.073529
|
||||||
|
0.781172 0.728942
|
||||||
|
0.995370 0.779436
|
||||||
|
0.002421 0.341314
|
||||||
|
0.288521 0.965963
|
||||||
|
0.947036 0.016416
|
||||||
|
0.548763 0.242006
|
||||||
|
0.138231 0.932469
|
||||||
|
0.695652 0.832567
|
||||||
|
0.553380 0.794949
|
||||||
|
0.495854 0.870735
|
||||||
|
0.336602 0.132771
|
||||||
|
0.682331 0.430044
|
||||||
|
0.475190 0.954946
|
||||||
|
0.294329 0.497394
|
||||||
|
0.180446 0.687540
|
||||||
|
0.627226 0.322490
|
||||||
|
0.107537 0.650209
|
||||||
|
0.325204 0.625028
|
||||||
|
0.883858 0.984149
|
||||||
|
0.472804 0.533670
|
||||||
|
0.906653 0.295008
|
||||||
|
0.463240 0.246410
|
||||||
|
0.313726 0.493177
|
||||||
|
0.613654 0.141180
|
||||||
|
0.567792 0.034890
|
||||||
|
0.294997 0.296258
|
||||||
|
0.432614 0.445397
|
||||||
|
0.656278 0.341600
|
||||||
|
0.358028 0.681119
|
||||||
|
0.322254 0.325132
|
||||||
|
0.954686 0.952094
|
||||||
|
0.219197 0.059499
|
||||||
|
0.973052 0.038154
|
||||||
|
0.079889 0.703179
|
||||||
|
0.953068 0.369875
|
||||||
|
0.781529 0.466225
|
||||||
|
0.156998 0.618783
|
||||||
|
0.504962 0.588302
|
||||||
|
0.036981 0.711112
|
||||||
|
0.225776 0.494560
|
||||||
|
0.595356 0.032457
|
||||||
|
0.287397 0.647716
|
||||||
|
0.555859 0.800712
|
||||||
|
0.103839 0.396361
|
||||||
|
0.856306 0.169453
|
||||||
|
0.899026 0.579813
|
||||||
|
0.253680 0.732919
|
||||||
|
0.934093 0.780840
|
||||||
|
0.052220 0.267688
|
||||||
|
0.088222 0.827587
|
||||||
|
0.024444 0.578090
|
||||||
|
0.771479 0.741172
|
||||||
|
0.472561 0.162611
|
||||||
|
0.830357 0.115662
|
||||||
|
0.832320 0.364346
|
||||||
|
0.853613 0.047028
|
||||||
|
0.261261 0.744922
|
||||||
|
0.635028 0.241084
|
||||||
|
0.975904 0.320519
|
||||||
|
0.247161 0.979842
|
||||||
|
0.227195 0.664762
|
||||||
|
0.414410 0.678235
|
||||||
|
0.849322 0.057320
|
||||||
|
0.889820 0.773301
|
||||||
|
0.852028 0.219397
|
||||||
|
0.961608 0.956863
|
||||||
|
0.780950 0.161184
|
||||||
|
0.984412 0.948117
|
||||||
|
0.109250 0.003821
|
||||||
|
0.828057 0.102844
|
||||||
|
0.882761 0.392760
|
||||||
|
0.482812 0.284440
|
||||||
|
0.897279 0.752738
|
||||||
|
0.783414 0.125775
|
||||||
|
0.137902 0.965423
|
||||||
|
0.443151 0.894608
|
||||||
|
0.602202 0.120583
|
||||||
|
0.902763 0.527426
|
||||||
|
0.052316 0.440764
|
||||||
|
0.181373 0.671437
|
||||||
|
0.340350 0.361405
|
||||||
|
0.761933 0.780775
|
||||||
|
0.337599 0.242759
|
||||||
|
0.672853 0.540019
|
||||||
|
0.606246 0.113563
|
||||||
|
0.666268 0.990161
|
||||||
|
0.519951 0.759898
|
||||||
|
0.464147 0.660421
|
||||||
|
0.907478 0.106734
|
||||||
|
0.959816 0.896417
|
||||||
|
0.350590 0.283244
|
||||||
|
0.844312 0.342034
|
||||||
|
0.780929 0.692151
|
||||||
|
0.937083 0.711286
|
||||||
|
0.042409 0.901348
|
||||||
|
0.830176 0.200075
|
||||||
|
0.532453 0.391126
|
||||||
|
0.737095 0.328319
|
||||||
|
0.386647 0.824122
|
||||||
|
0.770762 0.234036
|
||||||
|
0.090658 0.794761
|
||||||
|
0.542149 0.652688
|
||||||
|
0.447155 0.403339
|
||||||
|
0.393642 0.302263
|
||||||
|
0.419523 0.642328
|
||||||
|
0.164542 0.013951
|
||||||
|
0.480443 0.505623
|
||||||
|
0.824197 0.518905
|
||||||
|
0.462652 0.864183
|
||||||
|
0.442192 0.980663
|
||||||
|
0.249635 0.157728
|
||||||
|
0.236748 0.711805
|
||||||
|
0.806916 0.851598
|
||||||
|
0.968949 0.659096
|
||||||
|
0.061502 0.498107
|
||||||
|
0.197414 0.645504
|
||||||
|
0.435848 0.921071
|
||||||
|
0.758112 0.038039
|
||||||
|
0.723839 0.350983
|
||||||
|
0.745719 0.558800
|
||||||
|
0.391832 0.771099
|
||||||
|
0.015951 0.379046
|
||||||
|
0.076760 0.583620
|
||||||
|
0.779949 0.715885
|
||||||
|
0.378045 0.961058
|
||||||
|
0.208069 0.476748
|
||||||
|
0.525158 0.050896
|
||||||
|
0.429921 0.754940
|
||||||
|
0.324172 0.825312
|
||||||
|
0.338008 0.128663
|
||||||
|
0.515633 0.738803
|
||||||
|
0.287414 0.276497
|
||||||
|
0.525973 0.061000
|
||||||
|
0.975127 0.625654
|
||||||
|
0.140107 0.734905
|
||||||
|
0.671401 0.789625
|
||||||
|
0.695956 0.098697
|
||||||
|
0.930942 0.698302
|
||||||
|
0.334685 0.738623
|
||||||
|
0.603622 0.716263
|
||||||
|
0.879529 0.306514
|
||||||
|
0.115903 0.967280
|
||||||
|
0.746742 0.843177
|
||||||
|
0.713765 0.886153
|
||||||
|
0.115388 0.333187
|
||||||
|
0.626863 0.175279
|
||||||
|
0.648830 0.067674
|
||||||
|
0.322128 0.191630
|
||||||
|
0.843209 0.929941
|
||||||
|
0.113607 0.429130
|
||||||
|
0.764912 0.949248
|
||||||
|
0.853386 0.604863
|
||||||
|
0.802790 0.303906
|
||||||
|
0.077434 0.340228
|
||||||
|
0.958669 0.742775
|
||||||
|
0.659572 0.005397
|
||||||
|
0.981930 0.649579
|
||||||
|
0.638143 0.652816
|
||||||
|
0.294420 0.963091
|
||||||
|
0.692114 0.081922
|
||||||
|
0.102524 0.420897
|
||||||
|
0.852326 0.646664
|
||||||
|
0.569550 0.608715
|
||||||
|
0.109439 0.207973
|
||||||
|
0.921732 0.071777
|
||||||
|
0.480585 0.712810
|
||||||
|
0.087866 0.027396
|
||||||
|
0.482599 0.864175
|
||||||
|
0.119039 0.355474
|
||||||
|
0.560596 0.391998
|
||||||
|
0.765300 0.861846
|
||||||
|
0.755712 0.392778
|
||||||
|
0.415602 0.117571
|
||||||
|
0.111080 0.486659
|
||||||
|
0.673324 0.986224
|
||||||
|
0.707238 0.020572
|
||||||
|
0.347888 0.484752
|
||||||
|
0.770161 0.468600
|
||||||
|
0.667128 0.574563
|
||||||
|
0.296673 0.036848
|
||||||
|
0.463483 0.049365
|
||||||
|
0.157612 0.089058
|
||||||
|
0.853492 0.621741
|
||||||
|
0.354271 0.059681
|
||||||
|
0.074932 0.665053
|
||||||
|
0.576566 0.385005
|
||||||
|
0.677528 0.653185
|
||||||
|
0.975808 0.765341
|
||||||
|
0.182598 0.836122
|
||||||
|
0.934129 0.413901
|
||||||
|
0.715217 0.526190
|
||||||
|
0.524517 0.970114
|
||||||
|
0.462338 0.496160
|
||||||
|
0.172289 0.911521
|
||||||
|
0.052674 0.448721
|
||||||
|
0.130097 0.741582
|
||||||
|
0.220472 0.096307
|
||||||
|
0.170737 0.859070
|
||||||
|
0.988636 0.191693
|
||||||
|
0.303820 0.151587
|
||||||
|
0.639676 0.628261
|
||||||
|
0.422134 0.222226
|
||||||
|
0.499111 0.458441
|
||||||
|
0.832883 0.971754
|
||||||
|
0.996332 0.280903
|
||||||
|
0.404805 0.347382
|
||||||
|
0.219804 0.815241
|
||||||
|
0.872310 0.039327
|
||||||
|
0.085328 0.117189
|
||||||
|
0.034204 0.162739
|
||||||
|
0.122386 0.387208
|
||||||
|
0.221209 0.315134
|
||||||
|
0.490247 0.692898
|
||||||
|
0.244592 0.911100
|
||||||
|
0.274404 0.544079
|
||||||
|
0.897967 0.654600
|
||||||
|
0.723768 0.098982
|
||||||
|
0.215147 0.464956
|
||||||
|
0.295471 0.199515
|
||||||
|
0.785139 0.102539
|
||||||
|
0.915978 0.678969
|
||||||
|
0.485031 0.737332
|
||||||
|
0.396784 0.937990
|
||||||
|
0.295549 0.911359
|
||||||
|
0.817506 0.697086
|
||||||
|
0.558902 0.825836
|
||||||
|
0.990089 0.854087
|
||||||
|
0.680328 0.660951
|
||||||
|
0.190960 0.255092
|
||||||
|
0.227429 0.906142
|
||||||
|
0.840200 0.232338
|
||||||
|
0.412978 0.003388
|
||||||
|
0.281234 0.702691
|
||||||
|
0.606999 0.359344
|
||||||
|
0.142862 0.809069
|
||||||
|
0.095922 0.259706
|
||||||
|
0.678389 0.998062
|
||||||
|
0.085304 0.556810
|
||||||
|
0.778608 0.391243
|
||||||
|
0.376031 0.954876
|
||||||
|
0.585315 0.829717
|
||||||
|
0.632199 0.555069
|
||||||
|
0.992517 0.210612
|
||||||
|
0.851749 0.815774
|
||||||
|
0.929535 0.214854
|
||||||
|
0.737507 0.910058
|
||||||
|
0.593620 0.223300
|
||||||
|
0.483844 0.063215
|
||||||
|
0.797046 0.674707
|
||||||
|
0.002823 0.276132
|
||||||
|
0.212396 0.760201
|
||||||
|
0.226260 0.110551
|
||||||
|
0.331908 0.002332
|
||||||
|
0.683207 0.797607
|
||||||
|
0.218008 0.399797
|
||||||
|
0.811012 0.770548
|
||||||
|
0.513188 0.444371
|
||||||
|
0.547434 0.449839
|
||||||
|
0.421245 0.608438
|
||||||
|
0.294447 0.275174
|
||||||
|
0.804497 0.425950
|
||||||
|
0.475786 0.468890
|
||||||
|
0.758350 0.751438
|
||||||
|
0.947073 0.186788
|
||||||
|
0.680574 0.273894
|
||||||
|
0.816370 0.779451
|
||||||
|
0.808707 0.992098
|
||||||
|
0.597573 0.280983
|
||||||
|
0.992554 0.351677
|
||||||
|
0.296248 0.313174
|
||||||
|
0.289828 0.714345
|
||||||
|
0.904771 0.832176
|
||||||
|
0.968310 0.490132
|
||||||
|
0.870036 0.021450
|
||||||
|
0.376132 0.170474
|
||||||
|
0.377137 0.223095
|
||||||
|
0.055540 0.426383
|
||||||
|
0.147409 0.741300
|
||||||
|
0.300452 0.108651
|
||||||
|
0.032884 0.313330
|
||||||
|
0.867730 0.276854
|
||||||
|
0.484683 0.581226
|
||||||
|
0.271740 0.187032
|
||||||
|
0.802124 0.885425
|
||||||
|
0.467229 0.098781
|
||||||
|
0.925030 0.484433
|
||||||
|
0.929984 0.772211
|
||||||
|
0.349099 0.123479
|
||||||
|
0.678556 0.241998
|
||||||
|
0.584291 0.283861
|
||||||
|
0.621535 0.769794
|
||||||
|
0.712339 0.869903
|
||||||
|
0.121415 0.362363
|
||||||
|
0.139690 0.576022
|
||||||
|
0.623300 0.284221
|
||||||
|
0.874903 0.308943
|
||||||
|
0.050968 0.315062
|
||||||
|
0.415732 0.861086
|
||||||
|
0.269109 0.632107
|
||||||
|
0.915507 0.504078
|
||||||
|
0.263057 0.955175
|
||||||
|
0.080084 0.384505
|
||||||
|
0.825620 0.145982
|
||||||
|
0.696184 0.599655
|
||||||
|
0.041665 0.753284
|
||||||
|
0.935032 0.058134
|
||||||
|
0.919558 0.320587
|
||||||
|
0.996719 0.935324
|
||||||
|
0.034179 0.175121
|
||||||
|
0.853912 0.697859
|
||||||
|
0.237573 0.737667
|
||||||
|
0.267024 0.466481
|
||||||
|
0.752191 0.412488
|
||||||
|
0.573358 0.776042
|
||||||
|
0.117738 0.008809
|
||||||
|
0.391351 0.799168
|
||||||
|
0.351743 0.448648
|
||||||
|
0.662856 0.038363
|
||||||
|
0.155716 0.234058
|
||||||
|
0.138554 0.485890
|
||||||
|
0.172528 0.261335
|
||||||
|
0.667910 0.841149
|
||||||
|
0.704714 0.702788
|
||||||
|
0.326822 0.296431
|
||||||
|
0.165563 0.696065
|
||||||
|
0.535877 0.037066
|
||||||
|
0.790105 0.399294
|
||||||
|
0.863059 0.179309
|
||||||
|
0.946292 0.349932
|
||||||
|
0.190070 0.030322
|
||||||
|
0.548990 0.765724
|
||||||
|
0.189105 0.326289
|
||||||
|
0.593151 0.625304
|
||||||
|
0.080545 0.071429
|
||||||
|
0.609873 0.315857
|
||||||
|
0.065005 0.557161
|
||||||
|
0.172772 0.854238
|
||||||
|
0.236891 0.340104
|
||||||
|
0.243522 0.490912
|
||||||
|
0.521110 0.131008
|
||||||
|
0.265345 0.106485
|
||||||
|
0.556598 0.480571
|
||||||
|
0.583463 0.318790
|
||||||
|
0.422577 0.524559
|
||||||
|
0.047355 0.832263
|
||||||
|
0.015258 0.359675
|
||||||
|
0.087080 0.749055
|
||||||
|
0.586842 0.711002
|
||||||
|
0.500708 0.511499
|
||||||
|
0.906278 0.753350
|
||||||
|
0.191065 0.742964
|
||||||
|
0.850002 0.747699
|
||||||
|
0.810984 0.958665
|
||||||
|
0.745445 0.101771
|
||||||
|
0.812433 0.356154
|
||||||
|
0.349673 0.482697
|
||||||
|
0.309605 0.448379
|
||||||
|
0.906286 0.305023
|
||||||
|
0.871195 0.236735
|
||||||
|
0.880085 0.619723
|
||||||
|
0.252215 0.218488
|
||||||
|
0.501502 0.938435
|
||||||
|
0.571883 0.839314
|
||||||
|
0.491132 0.508797
|
||||||
|
0.613232 0.418147
|
||||||
|
0.838755 0.849814
|
||||||
|
0.319751 0.694594
|
||||||
|
0.102121 0.280414
|
||||||
|
0.493146 0.520976
|
||||||
|
0.080032 0.935737
|
||||||
|
0.978841 0.426193
|
||||||
|
0.572612 0.929880
|
||||||
|
0.562613 0.788561
|
||||||
|
0.162098 0.497810
|
||||||
|
0.187087 0.439069
|
||||||
|
0.080479 0.414313
|
||||||
|
0.900542 0.203189
|
||||||
|
0.746217 0.777058
|
||||||
|
0.733827 0.872460
|
||||||
|
0.735957 0.728743
|
||||||
|
0.129533 0.625628
|
||||||
|
0.579763 0.036779
|
||||||
|
0.481897 0.045606
|
||||||
|
0.909063 0.879236
|
||||||
|
0.415542 0.769329
|
||||||
|
0.550507 0.500253
|
||||||
|
0.726148 0.975612
|
||||||
|
0.000193 0.603004
|
||||||
|
0.487489 0.695720
|
||||||
|
0.954665 0.714453
|
||||||
|
0.362283 0.292757
|
||||||
|
0.948384 0.300804
|
||||||
|
0.395100 0.822704
|
||||||
|
0.135503 0.304895
|
||||||
|
0.592481 0.260597
|
||||||
|
0.021018 0.757291
|
||||||
|
0.592562 0.782326
|
||||||
|
0.138078 0.735031
|
||||||
|
0.638480 0.457732
|
||||||
|
0.587009 0.255635
|
||||||
|
0.355952 0.747673
|
||||||
|
0.721680 0.346664
|
||||||
|
0.302100 0.822532
|
||||||
|
0.451586 0.424316
|
||||||
|
0.795754 0.368634
|
||||||
|
0.074531 0.085938
|
||||||
|
0.171169 0.610738
|
||||||
|
0.169327 0.627517
|
||||||
|
0.170210 0.139028
|
||||||
|
0.716423 0.333147
|
||||||
|
0.757550 0.343675
|
||||||
|
0.547498 0.134499
|
||||||
|
0.797433 0.285402
|
||||||
|
0.056388 0.965889
|
||||||
|
0.876258 0.041214
|
||||||
|
0.940046 0.599479
|
||||||
|
0.414035 0.393592
|
||||||
|
0.240744 0.965824
|
||||||
|
0.848756 0.776561
|
||||||
|
0.699504 0.236643
|
||||||
|
0.378730 0.003658
|
||||||
|
0.659677 0.101798
|
||||||
|
0.855023 0.541043
|
||||||
|
0.206409 0.835201
|
||||||
|
0.864257 0.742651
|
||||||
|
0.507091 0.737711
|
||||||
|
0.278080 0.176298
|
||||||
|
0.439871 0.586918
|
||||||
|
0.325005 0.662985
|
||||||
|
0.898581 0.664883
|
||||||
|
0.973856 0.807850
|
||||||
|
0.767325 0.718386
|
||||||
|
0.616289 0.183717
|
||||||
|
0.002939 0.230201
|
||||||
|
0.925781 0.241950
|
||||||
|
0.500550 0.574635
|
||||||
|
0.622247 0.624035
|
||||||
|
0.260977 0.344729
|
||||||
|
0.644911 0.765267
|
||||||
|
0.253137 0.819781
|
||||||
|
0.241926 0.709515
|
||||||
|
0.359244 0.740632
|
||||||
|
0.109408 0.105881
|
||||||
|
0.306583 0.231504
|
||||||
|
0.197410 0.586292
|
||||||
|
0.066206 0.518310
|
||||||
|
0.375724 0.151438
|
||||||
|
0.459500 0.107776
|
||||||
|
0.088232 0.245200
|
||||||
|
0.558558 0.076231
|
@ -1,4 +1,5 @@
|
|||||||
from baker import *
|
from baker import *
|
||||||
|
from baker.tools import logging as log
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ def get_phis(X, R):
|
|||||||
phi = np.linalg.solve(A,b)
|
phi = np.linalg.solve(A,b)
|
||||||
except np.linalg.LinAlgError as e:
|
except np.linalg.LinAlgError as e:
|
||||||
msg = "warning: get_phis: calculation of phis yielded a linearly dependant system (%s)" % e
|
msg = "warning: get_phis: calculation of phis yielded a linearly dependant system (%s)" % e
|
||||||
# TODO: log this -- > print >> sys.stderr, msg
|
log.error(msg)
|
||||||
raise smberror(msg)
|
raise smberror(msg)
|
||||||
phi = np.dot(np.linalg.pinv(A), b)
|
phi = np.dot(np.linalg.pinv(A), b)
|
||||||
|
|
||||||
@ -136,7 +137,7 @@ def get_error_quadratic(phi, R, S):
|
|||||||
+ b * phi[1] * phi[2]\
|
+ b * phi[1] * phi[2]\
|
||||||
+ c * phi[2] * phi[0]
|
+ c * phi[2] * phi[0]
|
||||||
|
|
||||||
return error_term, a, b, c
|
return error_term
|
||||||
|
|
||||||
def get_error_cubic(phi, R, S):
|
def get_error_cubic(phi, R, S):
|
||||||
B = [] # baker eq 9
|
B = [] # baker eq 9
|
||||||
@ -181,7 +182,7 @@ def get_error_cubic(phi, R, S):
|
|||||||
+ f * phi[2] * phi[1] * phi[1]\
|
+ f * phi[2] * phi[1] * phi[1]\
|
||||||
+ g * phi[0] * phi[1] * phi[2]\
|
+ g * phi[0] * phi[1] * phi[2]\
|
||||||
|
|
||||||
return error_term, a, b, c
|
return error_term
|
||||||
|
|
||||||
|
|
||||||
def run_baker(X, R, S, order=2):
|
def run_baker(X, R, S, order=2):
|
||||||
@ -195,37 +196,29 @@ def run_baker(X, R, S, order=2):
|
|||||||
S = extra points
|
S = extra points
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# calculate values only for the simplex triangle
|
|
||||||
phi, qlin = qlinear(X, R)
|
|
||||||
|
|
||||||
if len(S.points) == 0:
|
|
||||||
answer = {
|
answer = {
|
||||||
'a': None,
|
'qlin': None,
|
||||||
'b': None,
|
|
||||||
'c': None,
|
|
||||||
'qlin': qlin,
|
|
||||||
'error': None,
|
'error': None,
|
||||||
'final': None,
|
'final': None,
|
||||||
}
|
}
|
||||||
return answer
|
# calculate values only for the simplex triangle
|
||||||
|
phi, qlin = qlinear(X, R)
|
||||||
|
|
||||||
if order == 2:
|
if order == 1:
|
||||||
error_term, a, b, c = get_error_quadratic(phi, R, S)
|
answer['qlin'] = qlin
|
||||||
|
return answer
|
||||||
|
elif order == 2:
|
||||||
|
error_term = get_error_quadratic(phi, R, S)
|
||||||
elif order == 3:
|
elif order == 3:
|
||||||
error_term, a, b, c = get_error_cubic(phi, R, S)
|
error_term = get_error_cubic(phi, R, S)
|
||||||
else:
|
else:
|
||||||
raise smberror('unacceptable order for baker method')
|
raise smberror('unacceptable order for baker method')
|
||||||
|
|
||||||
q_final = qlin + error_term
|
q_final = qlin + error_term
|
||||||
|
|
||||||
answer = {
|
answer['qlin' ] = qlin
|
||||||
'a': a,
|
answer['error'] = error_term
|
||||||
'b': b,
|
answer['final'] = q_final
|
||||||
'c': c,
|
|
||||||
'qlin': qlin,
|
|
||||||
'error': error_term,
|
|
||||||
'final': q_final,
|
|
||||||
}
|
|
||||||
|
|
||||||
return answer
|
return answer
|
||||||
|
|
||||||
@ -243,14 +236,6 @@ def run_baker_3D(X, R, S):
|
|||||||
# calculate values only for the triangle
|
# calculate values only for the triangle
|
||||||
phi, qlin = qlinear_3D(X, R)
|
phi, qlin = qlinear_3D(X, R)
|
||||||
|
|
||||||
if [i for i in phi if i <= 0.0]:
|
|
||||||
s = "this is not a containing simplex:\n"
|
|
||||||
s += " X: %s\n" % X
|
|
||||||
s += " R: %s\n" % R
|
|
||||||
s += " phi: %s, sum(%0.4e)\n" % (phi, sum(phi))
|
|
||||||
print >> sys.stderr, s
|
|
||||||
raise smberror("not containing simplex")
|
|
||||||
|
|
||||||
if len(S.points) == 0:
|
if len(S.points) == 0:
|
||||||
answer = {
|
answer = {
|
||||||
'a': None,
|
'a': None,
|
||||||
|
@ -1,5 +1,15 @@
|
|||||||
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logging.basicConfig(
|
||||||
|
level = logging.DEBUG,
|
||||||
|
format = '%(asctime)s %(levelname)s %(message)s',
|
||||||
|
filename = os.path.join(os.sep, 'tmp', 'baker.lol'),
|
||||||
|
)
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
class smberror(Exception):
|
class smberror(Exception):
|
||||||
"""
|
"""
|
||||||
this is a silly little exception subclass
|
this is a silly little exception subclass
|
||||||
|
@ -61,6 +61,15 @@ class random_grid(rect_grid):
|
|||||||
q = []
|
q = []
|
||||||
|
|
||||||
r = np.random
|
r = np.random
|
||||||
|
appx_side_res = int(np.sqrt(num_points))
|
||||||
|
delta = 1.0 / float(appx_side_res)
|
||||||
|
for x in xrange(appx_side_res):
|
||||||
|
cur_x = x * delta
|
||||||
|
for y in xrange(appx_side_res):
|
||||||
|
cur_y = y * delta
|
||||||
|
new_point = [cur_x, cur_y]
|
||||||
|
points.append(new_point)
|
||||||
|
q.append(exact_func(new_point))
|
||||||
|
|
||||||
for i in xrange(num_points):
|
for i in xrange(num_points):
|
||||||
cur_x = r.rand()
|
cur_x = r.rand()
|
||||||
|
@ -6,7 +6,7 @@ import numpy as np
|
|||||||
import scipy.spatial
|
import scipy.spatial
|
||||||
|
|
||||||
from baker import run_baker
|
from baker import run_baker
|
||||||
from baker.tools import exact_func, smberror
|
from baker.tools import exact_func, smberror, logging
|
||||||
from simplex import face, contains
|
from simplex import face, contains
|
||||||
from smcqdelaunay import *
|
from smcqdelaunay import *
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ class grid(object):
|
|||||||
self.tree = scipy.spatial.KDTree(self.points)
|
self.tree = scipy.spatial.KDTree(self.points)
|
||||||
self.faces = {}
|
self.faces = {}
|
||||||
self.facets_for_point = defaultdict(list)
|
self.facets_for_point = defaultdict(list)
|
||||||
|
self.counter = 0
|
||||||
|
|
||||||
def create_mesh(self, indicies):
|
def create_mesh(self, indicies):
|
||||||
p = [self.points[i] for i in indicies]
|
p = [self.points[i] for i in indicies]
|
||||||
@ -50,7 +50,45 @@ class grid(object):
|
|||||||
return grid(p, q)
|
return grid(p, q)
|
||||||
|
|
||||||
def get_containing_simplex(self, X):
|
def get_containing_simplex(self, X):
|
||||||
pass
|
if not self.faces:
|
||||||
|
logging.debug('get_containing_simplex: setting up connectivity')
|
||||||
|
self.construct_connectivity()
|
||||||
|
|
||||||
|
# get closest point
|
||||||
|
(dist, indicies) = self.tree.query(X, 2)
|
||||||
|
closest_point = indicies[0]
|
||||||
|
|
||||||
|
logging.debug('counter: %d' % self.counter)
|
||||||
|
self.counter += 1
|
||||||
|
logging.debug('X: %s' % X)
|
||||||
|
logging.debug('point index: %d' % closest_point)
|
||||||
|
logging.debug('actual point %s' % self.points[closest_point])
|
||||||
|
logging.debug('distance = %0.4f' % dist[0])
|
||||||
|
|
||||||
|
simplex = None
|
||||||
|
checked_facets = []
|
||||||
|
facets_to_check = self.facets_for_point[closest_point]
|
||||||
|
|
||||||
|
attempts = 0
|
||||||
|
while not simplex:
|
||||||
|
logging.debug('attempt: %d' % attempts)
|
||||||
|
attempts += 1
|
||||||
|
if attempts > 10:
|
||||||
|
raise smberror("probably recursing to many times")
|
||||||
|
cur_facet = facets_to_check.pop()
|
||||||
|
checked_facets.append(cur_facet)
|
||||||
|
facets_to_check.extend([i for i in cur_facet.neighbors if i not in checked_facets])
|
||||||
|
|
||||||
|
if cur_facet.contains(X, self):
|
||||||
|
simplex = cur_facet
|
||||||
|
|
||||||
|
if not simplex:
|
||||||
|
raise AssertionError('no containing simplex found')
|
||||||
|
|
||||||
|
R = self.create_mesh(simplex.verts)
|
||||||
|
|
||||||
|
logging.debug('this must be R: %s' % R)
|
||||||
|
return R
|
||||||
|
|
||||||
|
|
||||||
def get_simplex_and_nearest_points(self, X, extra_points = 3, simplex_size = 3):
|
def get_simplex_and_nearest_points(self, X, extra_points = 3, simplex_size = 3):
|
||||||
@ -64,9 +102,8 @@ class grid(object):
|
|||||||
"""
|
"""
|
||||||
(dist, indicies) = self.tree.query(X, simplex_size + extra_points)
|
(dist, indicies) = self.tree.query(X, simplex_size + extra_points)
|
||||||
|
|
||||||
|
# r_mesh = self.create_mesh(indicies[:simplex_size])
|
||||||
# get the containing simplex
|
r_mesh = self.get_containing_simplex(X)
|
||||||
r_mesh = self.create_mesh(indicies[:simplex_size])
|
|
||||||
# and some extra points
|
# and some extra points
|
||||||
s_mesh = self.create_mesh(indicies[simplex_size:])
|
s_mesh = self.create_mesh(indicies[simplex_size:])
|
||||||
|
|
||||||
@ -103,7 +140,7 @@ class grid(object):
|
|||||||
if not simplex:
|
if not simplex:
|
||||||
raise AssertionError('no containing simplex found')
|
raise AssertionError('no containing simplex found')
|
||||||
|
|
||||||
R = self.create_mesh(simplex.verts)
|
R = get_containing_simplex(X)# self.create_mesh(simplex.verts)
|
||||||
|
|
||||||
|
|
||||||
s = []
|
s = []
|
||||||
@ -136,6 +173,7 @@ class grid(object):
|
|||||||
|
|
||||||
this is part of the __init__ for a rect_grid, but can be called from any grid object
|
this is part of the __init__ for a rect_grid, but can be called from any grid object
|
||||||
"""
|
"""
|
||||||
|
logging.debug('calling construct_connectivity')
|
||||||
qdelaunay_string = get_qdelaunay_dump_str(self)
|
qdelaunay_string = get_qdelaunay_dump_str(self)
|
||||||
facet_to_facets = []
|
facet_to_facets = []
|
||||||
for matcher in grid.facet_re.finditer(qdelaunay_string):
|
for matcher in grid.facet_re.finditer(qdelaunay_string):
|
||||||
|
Loading…
Reference in New Issue
Block a user