changeset 6:188facdd5a60

Still buggy. Need a better way to precompute RBFs.
author Jordi Guitérrez Hermoso <jordigh@gmail.com>
date Sun, 29 Jun 2008 05:00:15 -0500
parents 22523575ef22
children 1c73d93a7366
files Makefile data/circ_bdry.matrix data/circ_intr.matrix data/circ_nrml.matrix data/h_init.map include/interpolator.hpp interpolator.cpp main-linear-wave-eq.cpp main.cpp
diffstat 9 files changed, 1152 insertions(+), 854 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 CPP = g++
-LINKING = -lgsl -lgslcblas  
-CFLAGS = -g
+LINKING = -lgsl -lgslcblas  -pg
+CFLAGS = -pg
 OPTIONS = -Wall -pedantic  -W -Werror -Wconversion -Wshadow \
 	  -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings  \
 	  -fshort-enums -fno-common -Wfatal-errors 
--- a/data/circ_bdry.matrix
+++ b/data/circ_bdry.matrix
@@ -1,89 +1,115 @@
-# Created by Octave 3.0.1, Sun Jun 29 04:02:42 2008 CDT <jordi@Iris>
+# Created by Octave 3.0.1, Sun Jun 29 04:50:49 2008 CDT <jordi@Iris>
 # name: bdry
 # type: matrix
-# rows: 84
+# rows: 110
 # columns: 2
- 1 0
- 0.9972037971811801 0.07473009358642425
- 0.9888308262251285 0.1490422661761744
- 0.9749279121818236 0.2225209339563144
- 0.9555728057861407 0.2947551744109042
- 0.9308737486442042 0.365341024366395
- 0.9009688679024191 0.4338837391175581
- 0.8660254037844386 0.5
- 0.8262387743159949 0.5633200580636221
- 0.7818314824680298 0.6234898018587335
- 0.7330518718298263 0.6801727377709195
- 0.6801727377709194 0.7330518718298263
- 0.6234898018587336 0.7818314824680298
- 0.563320058063622 0.8262387743159949
- 0.4999999999999999 0.8660254037844387
- 0.4338837391175582 0.9009688679024191
- 0.365341024366395 0.9308737486442042
- 0.2947551744109041 0.9555728057861408
- 0.2225209339563144 0.9749279121818236
- 0.1490422661761744 0.9888308262251285
- 0.07473009358642417 0.9972037971811801
- 6.123233995736766e-17 1
- -0.07473009358642427 0.9972037971811801
- -0.1490422661761745 0.9888308262251285
- -0.2225209339563143 0.9749279121818236
- -0.2947551744109042 0.9555728057861407
- -0.3653410243663951 0.9308737486442042
- -0.4338837391175581 0.9009688679024191
- -0.5000000000000002 0.8660254037844385
- -0.5633200580636221 0.8262387743159948
- -0.6234898018587335 0.7818314824680299
- -0.6801727377709196 0.7330518718298262
- -0.7330518718298263 0.6801727377709194
- -0.7818314824680298 0.6234898018587336
- -0.826238774315995 0.5633200580636218
- -0.8660254037844387 0.4999999999999999
- -0.900968867902419 0.4338837391175582
- -0.9308737486442044 0.3653410243663948
- -0.9555728057861408 0.2947551744109042
- -0.9749279121818236 0.2225209339563145
- -0.9888308262251285 0.1490422661761743
- -0.9972037971811801 0.07473009358642423
- -1 1.224646799147353e-16
- -0.9972037971811801 -0.07473009358642442
- -0.9888308262251285 -0.1490422661761745
- -0.9749279121818236 -0.2225209339563143
- -0.9555728057861407 -0.2947551744109044
- -0.9308737486442042 -0.365341024366395
- -0.9009688679024191 -0.433883739117558
- -0.8660254037844386 -0.5000000000000001
- -0.8262387743159949 -0.5633200580636221
- -0.7818314824680296 -0.6234898018587338
- -0.7330518718298262 -0.6801727377709195
- -0.6801727377709194 -0.7330518718298263
- -0.6234898018587337 -0.7818314824680297
- -0.563320058063622 -0.8262387743159949
- -0.4999999999999996 -0.8660254037844388
- -0.4338837391175583 -0.900968867902419
- -0.3653410243663949 -0.9308737486442044
- -0.2947551744109038 -0.9555728057861409
- -0.2225209339563146 -0.9749279121818236
- -0.1490422661761743 -0.9888308262251285
- -0.07473009358642384 -0.9972037971811801
- -1.83697019872103e-16 -1
- 0.07473009358642436 -0.9972037971811801
- 0.1490422661761748 -0.9888308262251285
- 0.2225209339563142 -0.9749279121818236
- 0.2947551744109043 -0.9555728057861407
- 0.3653410243663954 -0.9308737486442041
- 0.433883739117558 -0.9009688679024193
- 0.5000000000000001 -0.8660254037844386
- 0.5633200580636224 -0.8262387743159947
- 0.6234898018587334 -0.7818314824680299
- 0.6801727377709195 -0.7330518718298262
- 0.7330518718298266 -0.6801727377709191
- 0.7818314824680297 -0.6234898018587337
- 0.8262387743159949 -0.563320058063622
- 0.8660254037844388 -0.4999999999999997
- 0.900968867902419 -0.4338837391175583
- 0.9308737486442042 -0.3653410243663949
- 0.9555728057861408 -0.2947551744109039
- 0.9749279121818235 -0.2225209339563146
- 0.9888308262251285 -0.1490422661761744
- 0.9972037971811801 -0.07473009358642391
+ 0.9998766324816606 -0.01570731731182068
+ 0.9991426496745736 0.041400067648161
+ 0.9951496712183173 0.09837241419257248
+ 0.9879107213786663 0.1550238903688175
+ 0.9774494121053654 0.2111697108367472
+ 0.9637998660148573 0.2666267396000314
+ 0.9470066050894002 0.3212140873577138
+ 0.927124405455615 0.374753701527513
+ 0.9042181187161473 0.4270709470163375
+ 0.8783624604172172 0.477995175843661
+ 0.8496417663420387 0.5273602837597655
+ 0.8181497174250234 0.5750052520432786
+ 0.7839890341840449 0.620774672710774
+ 0.7472711416674593 0.6645192554253126
+ 0.7081158060087587 0.7060963144504906
+ 0.6666507437743361 0.7453702340616537
+ 0.623011205378593 0.7822129108962039
+ 0.577339533925199 0.8165041718001409
+ 0.5297847009134744 0.8481321658079125
+ 0.4805018203243236 0.8769937289770158
+ 0.4296516426706695 0.9029947208873346
+ 0.3774000306626937 0.9260503317076226
+ 0.3239174181981495 0.9460853588275453
+ 0.2693782544424143 0.9630344521529631
+ 0.2139604348115697 0.9768423272643565
+ 0.1578447207145324 0.9874639457431098
+ 0.1012141499469077 0.9948646620774731
+ 0.04425343965974749 0.9990203366690195
+ -0.01285161614940513 0.9999174145709976
+ -0.06991475265791579 0.997552969701751
+ -0.1267498417751967 0.9919347143889877
+ -0.1831714992538492 0.9830809742137711
+ -0.238995689374548 0.9710206282362824
+ -0.2940403252323039 0.9557930147983302
+ -0.3481258626661013 0.9374478032098549
+ -0.4010758858946333 0.9160448317379641
+ -0.452717682947911 0.891653912426943
+ -0.502882809017811 0.8643546033858764
+ -0.5514076358900291 0.8342359492866327
+ -0.5981338856653033 0.8013961909186528
+ -0.6429091470290245 0.7659424447479145
+ -0.6855873723852631 0.7279903535252857
+ -0.7260293542336737 0.6876637090839059
+ -0.7641031792354241 0.6450940485559584
+ -0.7996846584870905 0.6004202253258841
+ -0.8326577325990443 0.5537879561195048
+ -0.8629148502570608 0.5053493457063482
+ -0.8903573190323506 0.4552623907655068
+ -0.914895627295748 0.4036904645333099
+ -0.9364497361860409 0.3508017839137857
+ -0.9549493406800994 0.2967688607900824
+ -0.9703340989132492 0.2417679393265632
+ -0.9825538290018901 0.1859784210969765
+ -0.9915686727263722 0.1295822799138087
+ -0.9973492255402215 0.07276346826753322
+ -0.9998766324816606 0.0157073173118208
+ -0.9991426496745736 -0.04140006764816076
+ -0.9951496712183173 -0.09837241419257212
+ -0.9879107213786663 -0.1550238903688171
+ -0.9774494121053655 -0.211169710836747
+ -0.9637998660148575 -0.2666267396000311
+ -0.9470066050894003 -0.3212140873577135
+ -0.9271244054556153 -0.3747537015275125
+ -0.9042181187161474 -0.4270709470163373
+ -0.8783624604172174 -0.4779951758436607
+ -0.8496417663420389 -0.5273602837597652
+ -0.8181497174250235 -0.5750052520432785
+ -0.783989034184045 -0.6207746727107738
+ -0.7472711416674596 -0.6645192554253124
+ -0.7081158060087589 -0.7060963144504903
+ -0.6666507437743362 -0.7453702340616536
+ -0.6230112053785932 -0.7822129108962037
+ -0.5773395339251989 -0.816504171800141
+ -0.5297847009134748 -0.8481321658079123
+ -0.4805018203243237 -0.8769937289770157
+ -0.4296516426706702 -0.9029947208873342
+ -0.377400030662694 -0.9260503317076225
+ -0.3239174181981496 -0.9460853588275453
+ -0.2693782544424148 -0.963034452152963
+ -0.21396043481157 -0.9768423272643564
+ -0.1578447207145323 -0.9874639457431098
+ -0.1012141499469083 -0.9948646620774731
+ -0.04425343965974761 -0.9990203366690195
+ 0.01285161614940523 -0.9999174145709976
+ 0.06991475265791544 -0.997552969701751
+ 0.1267498417751965 -0.9919347143889877
+ 0.1831714992538486 -0.9830809742137711
+ 0.2389956893745477 -0.9710206282362824
+ 0.2940403252323038 -0.9557930147983302
+ 0.3481258626661007 -0.9374478032098551
+ 0.4010758858946331 -0.9160448317379642
+ 0.4527176829479109 -0.8916539124269431
+ 0.5028828090178106 -0.8643546033858768
+ 0.5514076358900289 -0.8342359492866327
+ 0.5981338856653029 -0.8013961909186531
+ 0.642909147029024 -0.765942444747915
+ 0.685587372385263 -0.7279903535252857
+ 0.7260293542336733 -0.6876637090839064
+ 0.7641031792354241 -0.6450940485559585
+ 0.7996846584870905 -0.6004202253258842
+ 0.832657732599044 -0.5537879561195053
+ 0.8629148502570607 -0.5053493457063483
+ 0.8903573190323507 -0.4552623907655065
+ 0.9148956272957478 -0.4036904645333105
+ 0.9364497361860408 -0.3508017839137859
+ 0.9549493406800993 -0.296768860790083
+ 0.9703340989132491 -0.2417679393265637
+ 0.9825538290018901 -0.1859784210969766
+ 0.9915686727263721 -0.1295822799138092
+ 0.9973492255402215 -0.07276346826753334
--- a/data/circ_intr.matrix
+++ b/data/circ_intr.matrix
@@ -1,551 +1,556 @@
-# Created by Octave 3.0.1, Sun Jun 29 04:02:42 2008 CDT <jordi@Iris>
+# Created by Octave 3.0.1, Sun Jun 29 04:50:49 2008 CDT <jordi@Iris>
 # name: intr
 # type: matrix
-# rows: 546
+# rows: 551
 # columns: 2
- 0.07142857142857142 0
- 0.03571428571428572 0.06185895741317418
- -0.0357142857142857 0.06185895741317419
- -0.07142857142857142 8.747477136766808e-18
- -0.03571428571428575 -0.06185895741317417
- 0.03571428571428566 -0.06185895741317422
- 0.1428571428571428 0
- 0.1237179148263484 0.07142857142857141
- 0.07142857142857144 0.1237179148263484
- 8.747477136766808e-18 0.1428571428571428
- -0.0714285714285714 0.1237179148263484
- -0.1237179148263483 0.07142857142857147
- -0.1428571428571428 1.749495427353362e-17
- -0.1237179148263484 -0.07142857142857138
- -0.07142857142857149 -0.1237179148263483
- -2.624243141030042e-17 -0.1428571428571428
- 0.07142857142857133 -0.1237179148263484
- 0.1237179148263483 -0.07142857142857149
- 0.2142857142857143 0
- 0.2013627044541232 0.0732900307126433
- 0.1641523806683524 0.137740202075687
- 0.1071428571428572 0.1855768722395225
- 0.0372103237857708 0.2110302327883303
- -0.03721032378577078 0.2110302327883303
- -0.1071428571428571 0.1855768722395226
- -0.1641523806683524 0.137740202075687
- -0.2013627044541232 0.07329003071264333
- -0.2142857142857143 2.624243141030042e-17
- -0.2013627044541232 -0.07329003071264328
- -0.1641523806683524 -0.137740202075687
- -0.1071428571428572 -0.1855768722395225
- -0.03721032378577079 -0.2110302327883303
- 0.03721032378577071 -0.2110302327883303
- 0.1071428571428572 -0.1855768722395225
- 0.1641523806683524 -0.137740202075687
- 0.2013627044541232 -0.07329003071264345
- 0.2857142857142857 0
- 0.2759788075111624 0.07394829860072021
- 0.2474358296526968 0.1428571428571428
- 0.2020305089104422 0.2020305089104421
- 0.1428571428571429 0.2474358296526967
- 0.07394829860072027 0.2759788075111623
- 1.749495427353362e-17 0.2857142857142857
- -0.07394829860072018 0.2759788075111624
- -0.1428571428571428 0.2474358296526968
- -0.2020305089104421 0.2020305089104422
- -0.2474358296526967 0.1428571428571429
- -0.2759788075111623 0.07394829860072029
- -0.2857142857142857 3.498990854706723e-17
- -0.2759788075111624 -0.07394829860072009
- -0.2474358296526968 -0.1428571428571428
- -0.2020305089104422 -0.202030508910442
- -0.142857142857143 -0.2474358296526967
- -0.07394829860072043 -0.2759788075111623
- -5.248486282060085e-17 -0.2857142857142857
- 0.07394829860072008 -0.2759788075111624
- 0.1428571428571427 -0.2474358296526969
- 0.2020305089104421 -0.2020305089104422
- 0.2474358296526967 -0.142857142857143
- 0.2759788075111623 -0.07394829860072044
- 0.3571428571428571 0
- 0.349338428833502 0.07425417529205688
- 0.3262662348723574 0.1452630868127857
- 0.2889346408481955 0.209923304390169
- 0.2389752165567351 0.2654088662419264
- 0.1785714285714286 0.3092947870658709
- 0.1103632122767669 0.3396630415339834
- 0.03733159402416202 0.3551863912029547
- -0.0373315940241619 0.3551863912029548
- -0.1103632122767669 0.3396630415339834
- -0.1785714285714285 0.3092947870658709
- -0.2389752165567349 0.2654088662419266
- -0.2889346408481954 0.209923304390169
- -0.3262662348723574 0.1452630868127859
- -0.349338428833502 0.07425417529205704
- -0.3571428571428571 4.373738568383403e-17
- -0.349338428833502 -0.0742541752920568
- -0.3262662348723575 -0.1452630868127856
- -0.2889346408481955 -0.2099233043901689
- -0.2389752165567351 -0.2654088662419264
- -0.1785714285714287 -0.3092947870658708
- -0.110363212276767 -0.3396630415339834
- -0.03733159402416222 -0.3551863912029547
- 0.03733159402416177 -0.3551863912029548
- 0.1103632122767668 -0.3396630415339834
- 0.1785714285714283 -0.309294787065871
- 0.2389752165567349 -0.2654088662419266
- 0.2889346408481954 -0.209923304390169
- 0.3262662348723573 -0.145263086812786
- 0.349338428833502 -0.07425417529205709
- 0.4285714285714285 0
- 0.4220604655766605 0.07442064757154157
- 0.4027254089082464 0.1465800614252866
- 0.3711537444790451 0.2142857142857142
- 0.3283047613367048 0.2754804041513739
- 0.275480404151374 0.3283047613367048
- 0.2142857142857143 0.3711537444790451
- 0.1465800614252866 0.4027254089082464
- 0.0744206475715416 0.4220604655766605
- 2.624243141030042e-17 0.4285714285714285
- -0.07442064757154156 0.4220604655766605
- -0.1465800614252866 0.4027254089082464
- -0.2142857142857142 0.3711537444790451
- -0.275480404151374 0.3283047613367048
- -0.3283047613367048 0.275480404151374
- -0.3711537444790451 0.2142857142857142
- -0.4027254089082464 0.1465800614252867
- -0.4220604655766605 0.07442064757154172
- -0.4285714285714285 5.248486282060085e-17
- -0.4220604655766606 -0.07442064757154143
- -0.4027254089082464 -0.1465800614252866
- -0.3711537444790452 -0.2142857142857142
- -0.3283047613367048 -0.2754804041513739
- -0.275480404151374 -0.3283047613367048
- -0.2142857142857145 -0.371153744479045
- -0.1465800614252869 -0.4027254089082464
- -0.07442064757154157 -0.4220604655766605
- -7.872729423090127e-17 -0.4285714285714285
- 0.07442064757154142 -0.4220604655766606
- 0.1465800614252863 -0.4027254089082465
- 0.2142857142857143 -0.3711537444790451
- 0.2754804041513739 -0.3283047613367049
- 0.3283047613367048 -0.2754804041513741
- 0.371153744479045 -0.2142857142857145
- 0.4027254089082463 -0.1465800614252869
- 0.4220604655766605 -0.07442064757154158
- 0.5 0
- 0.4944154131125643 0.07452113308808722
- 0.4777864028930703 0.1473775872054521
- 0.4504844339512096 0.2169418695587791
- 0.4131193871579975 0.281660029031811
- 0.3665259359149132 0.3400863688854597
- 0.3117449009293668 0.3909157412340149
- 0.2499999999999999 0.4330127018922194
- 0.1826705121831975 0.4654368743221021
- 0.1112604669781572 0.4874639560909118
- 0.03736504679321209 0.4986018985905901
- -0.03736504679321213 0.4986018985905901
- -0.1112604669781572 0.4874639560909118
- -0.1826705121831975 0.4654368743221021
- -0.2500000000000001 0.4330127018922192
- -0.3117449009293667 0.390915741234015
- -0.3665259359149132 0.3400863688854597
- -0.4131193871579975 0.2816600290318109
- -0.4504844339512095 0.2169418695587791
- -0.4777864028930704 0.1473775872054521
- -0.4944154131125643 0.07452113308808714
- -0.5 6.123233995736766e-17
- -0.4944154131125643 -0.07452113308808724
- -0.4777864028930703 -0.1473775872054522
- -0.4504844339512096 -0.216941869558779
- -0.4131193871579975 -0.281660029031811
- -0.3665259359149131 -0.3400863688854597
- -0.3117449009293669 -0.3909157412340148
- -0.2499999999999998 -0.4330127018922194
- -0.1826705121831974 -0.4654368743221022
- -0.1112604669781573 -0.4874639560909118
- -0.03736504679321192 -0.4986018985905901
- 0.03736504679321218 -0.4986018985905901
- 0.1112604669781571 -0.4874639560909118
- 0.1826705121831977 -0.4654368743221021
- 0.2500000000000001 -0.4330127018922193
- 0.3117449009293667 -0.390915741234015
- 0.3665259359149133 -0.3400863688854596
- 0.4131193871579975 -0.281660029031811
- 0.4504844339512095 -0.2169418695587792
- 0.4777864028930704 -0.1473775872054519
- 0.4944154131125642 -0.07452113308808764
- 0.5714285714285714 0
- 0.5665399207850345 0.07458639555431518
- 0.5519576150223248 0.1478965972014404
- 0.5279311614350209 0.2186762470657656
- 0.4948716593053935 0.2857142857142856
- 0.4533447658807058 0.3478636737192689
- 0.4040610178208843 0.4040610178208842
- 0.3478636737192689 0.4533447658807058
- 0.2857142857142858 0.4948716593053935
- 0.2186762470657656 0.5279311614350209
- 0.1478965972014405 0.5519576150223247
- 0.07458639555431526 0.5665399207850345
- 3.498990854706723e-17 0.5714285714285714
- -0.07458639555431507 0.5665399207850346
- -0.1478965972014404 0.5519576150223248
- -0.2186762470657654 0.5279311614350211
- -0.2857142857142856 0.4948716593053935
- -0.3478636737192687 0.4533447658807059
- -0.4040610178208842 0.4040610178208843
- -0.4533447658807057 0.3478636737192691
- -0.4948716593053934 0.2857142857142859
- -0.5279311614350209 0.2186762470657656
- -0.5519576150223247 0.1478965972014406
- -0.5665399207850345 0.07458639555431541
- -0.5714285714285714 6.997981709413447e-17
- -0.5665399207850346 -0.07458639555431504
- -0.5519576150223248 -0.1478965972014402
- -0.5279311614350211 -0.2186762470657653
- -0.4948716593053936 -0.2857142857142855
- -0.4533447658807059 -0.3478636737192687
- -0.4040610178208845 -0.404061017820884
- -0.3478636737192691 -0.4533447658807057
- -0.285714285714286 -0.4948716593053933
- -0.2186762470657659 -0.5279311614350208
- -0.1478965972014409 -0.5519576150223245
- -0.0745863955543157 -0.5665399207850345
- -1.049697256412017e-16 -0.5714285714285714
- 0.07458639555431501 -0.5665399207850346
- 0.1478965972014402 -0.5519576150223248
- 0.2186762470657652 -0.5279311614350211
- 0.2857142857142853 -0.4948716593053937
- 0.3478636737192685 -0.4533447658807061
- 0.4040610178208842 -0.4040610178208844
- 0.4533447658807057 -0.3478636737192691
- 0.4948716593053933 -0.285714285714286
- 0.5279311614350208 -0.2186762470657659
- 0.5519576150223245 -0.1478965972014409
- 0.5665399207850345 -0.07458639555431575
- 0.6428571428571428 0
- 0.6385103728341062 0.07463115908050515
- 0.6255288453727438 0.1482530597629972
- 0.6040881133623697 0.2198700921379299
- 0.5744781259221935 0.2885137587002971
- 0.5370993073368877 0.3532557716169467
- 0.4924571420050572 0.4132206062270609
- 0.4411553386299001 0.4675973410112455
- 0.3838876660946482 0.5156506239139567
- 0.3214285714285715 0.5567306167185676
- 0.254622706739458 0.5902817829944618
- 0.1843735067428438 0.6158504007742428
- 0.1116309713573124 0.6330906983649908
- 0.03737881858530593 0.6417695303172438
- -0.03737881858530585 0.6417695303172438
- -0.1116309713573123 0.6330906983649908
- -0.1843735067428437 0.6158504007742428
- -0.2546227067394579 0.5902817829944618
- -0.3214285714285712 0.5567306167185677
- -0.3838876660946481 0.5156506239139568
- -0.4411553386299001 0.4675973410112456
- -0.4924571420050572 0.413220606227061
- -0.5370993073368876 0.3532557716169468
- -0.5744781259221935 0.2885137587002972
- -0.6040881133623696 0.21987009213793
- -0.6255288453727438 0.1482530597629974
- -0.6385103728341062 0.07463115908050523
- -0.6428571428571428 7.872729423090127e-17
- -0.6385103728341062 -0.07463115908050508
- -0.6255288453727438 -0.1482530597629972
- -0.6040881133623697 -0.2198700921379298
- -0.5744781259221935 -0.2885137587002971
- -0.5370993073368877 -0.3532557716169467
- -0.4924571420050572 -0.4132206062270609
- -0.4411553386299001 -0.4675973410112455
- -0.3838876660946482 -0.5156506239139567
- -0.3214285714285717 -0.5567306167185675
- -0.254622706739458 -0.5902817829944618
- -0.184373506742844 -0.6158504007742427
- -0.1116309713573123 -0.6330906983649908
- -0.03737881858530615 -0.6417695303172438
- 0.03737881858530592 -0.6417695303172438
- 0.1116309713573121 -0.6330906983649909
- 0.1843735067428438 -0.6158504007742428
- 0.2546227067394577 -0.5902817829944619
- 0.3214285714285715 -0.5567306167185676
- 0.383887666094648 -0.5156506239139568
- 0.4411553386299002 -0.4675973410112455
- 0.4924571420050571 -0.4132206062270611
- 0.5370993073368877 -0.3532557716169466
- 0.5744781259221935 -0.2885137587002973
- 0.6040881133623697 -0.2198700921379298
- 0.6255288453727438 -0.1482530597629974
- 0.6385103728341062 -0.07463115908050502
- 0.7142857142857142 0
- 0.7103727824059094 0.07466318804832389
- 0.6986768576670039 0.1485083505841138
- 0.6793260830679667 0.2207264245535338
- 0.6525324697447148 0.2905261736255715
- 0.6185895741317419 0.357142857142857
- 0.577869281696391 0.4198466087803379
- 0.530817732483853 0.47795043311347
- 0.4779504331134701 0.5308177324838529
- 0.4198466087803379 0.577869281696391
- 0.3571428571428572 0.6185895741317418
- 0.2905261736255716 0.6525324697447148
- 0.2207264245535339 0.6793260830679667
- 0.1485083505841139 0.6986768576670039
- 0.07466318804832404 0.7103727824059094
- 4.373738568383403e-17 0.7142857142857142
- -0.07466318804832379 0.7103727824059095
- -0.1485083505841136 0.6986768576670039
- -0.2207264245535338 0.6793260830679668
- -0.2905261736255714 0.6525324697447149
- -0.3571428571428569 0.6185895741317419
- -0.4198466087803378 0.577869281696391
- -0.4779504331134699 0.5308177324838531
- -0.5308177324838528 0.4779504331134702
- -0.5778692816963908 0.419846608780338
- -0.6185895741317416 0.3571428571428573
- -0.6525324697447148 0.2905261736255717
- -0.6793260830679667 0.2207264245535339
- -0.6986768576670039 0.1485083505841141
- -0.7103727824059094 0.07466318804832409
- -0.7142857142857142 8.747477136766807e-17
- -0.7103727824059095 -0.0746631880483236
- -0.6986768576670039 -0.1485083505841136
- -0.6793260830679668 -0.2207264245535338
- -0.652532469744715 -0.2905261736255713
- -0.618589574131742 -0.3571428571428569
- -0.5778692816963911 -0.4198466087803378
- -0.5308177324838532 -0.4779504331134699
- -0.4779504331134702 -0.5308177324838528
- -0.419846608780338 -0.5778692816963908
- -0.3571428571428574 -0.6185895741317416
- -0.290526173625572 -0.6525324697447146
- -0.2207264245535339 -0.6793260830679667
- -0.1485083505841141 -0.6986768576670039
- -0.07466318804832445 -0.7103727824059094
- -1.312121570515021e-16 -0.7142857142857142
- 0.07466318804832354 -0.7103727824059095
- 0.1485083505841132 -0.698676857667004
- 0.2207264245535337 -0.6793260830679668
- 0.2905261736255712 -0.652532469744715
- 0.3571428571428566 -0.6185895741317421
- 0.4198466087803377 -0.5778692816963911
- 0.4779504331134698 -0.5308177324838532
- 0.5308177324838526 -0.4779504331134705
- 0.5778692816963908 -0.4198466087803381
- 0.6185895741317416 -0.3571428571428574
- 0.6525324697447146 -0.290526173625572
- 0.6793260830679667 -0.220726424553534
- 0.6986768576670039 -0.1485083505841142
- 0.7103727824059094 -0.07466318804832449
- 0.7857142857142857 0
- 0.7821565105931378 0.07468689116757209
- 0.7715154049921267 0.1486974062831794
- 0.7538873364113908 0.2213612946611233
- 0.7294319473697712 0.2920205008759716
- 0.6983707096574399 0.3600351242143938
- 0.660984918653071 0.4247892137151124
- 0.617613145869333 0.4856963463161897
- 0.5686481727968409 0.542204937593088
- 0.5145334338141526 0.5938032369926315
- 0.45575900037737 0.6400239623252637
- 0.392857142857143 0.680448531544916
- 0.3263975102157679 0.7147108534928358
- 0.2569819711779742 0.7425006432758109
- 0.18523916361455 0.7635662322542113
- 0.1118188015004385 0.7777168471921614
- 0.03738579100436903 0.7848243379295062
- -0.03738579100436893 0.7848243379295062
- -0.1118188015004382 0.7777168471921615
- -0.1852391636145499 0.7635662322542113
- -0.256981971177974 0.742500643275811
- -0.3263975102157678 0.7147108534928359
- -0.3928571428571427 0.6804485315449161
- -0.4557590003773699 0.6400239623252638
- -0.5145334338141525 0.5938032369926315
- -0.5686481727968409 0.542204937593088
- -0.6176131458693328 0.48569634631619
- -0.6609849186530709 0.4247892137151125
- -0.6983707096574397 0.360035124214394
- -0.7294319473697712 0.2920205008759716
- -0.7538873364113907 0.2213612946611236
- -0.7715154049921266 0.1486974062831797
- -0.7821565105931378 0.07468689116757227
- -0.7857142857142857 9.622224850443489e-17
- -0.7821565105931378 -0.07468689116757206
- -0.7715154049921268 -0.1486974062831792
- -0.7538873364113908 -0.2213612946611231
- -0.7294319473697713 -0.2920205008759715
- -0.6983707096574399 -0.3600351242143938
- -0.6609849186530711 -0.4247892137151121
- -0.6176131458693332 -0.4856963463161896
- -0.568648172796841 -0.5422049375930879
- -0.5145334338141526 -0.5938032369926314
- -0.45575900037737 -0.6400239623252637
- -0.3928571428571432 -0.6804485315449158
- -0.3263975102157678 -0.7147108534928359
- -0.2569819711779743 -0.7425006432758108
- -0.1852391636145505 -0.7635662322542112
- -0.1118188015004384 -0.7777168471921614
- -0.03738579100436931 -0.7848243379295062
- 0.03738579100436901 -0.7848243379295062
- 0.1118188015004381 -0.7777168471921615
- 0.1852391636145495 -0.7635662322542115
- 0.2569819711779741 -0.742500643275811
- 0.3263975102157676 -0.714710853492836
- 0.3928571428571423 -0.6804485315449164
- 0.4557590003773698 -0.6400239623252638
- 0.5145334338141522 -0.5938032369926318
- 0.5686481727968408 -0.542204937593088
- 0.6176131458693328 -0.48569634631619
- 0.6609849186530706 -0.4247892137151129
- 0.6983707096574397 -0.360035124214394
- 0.7294319473697711 -0.292020500875972
- 0.7538873364113908 -0.2213612946611234
- 0.7715154049921266 -0.1486974062831798
- 0.7821565105931378 -0.0746868911675727
- 0.8571428571428571 0
- 0.8538811697929247 0.07470492235513557
- 0.8441209311533211 0.1488412951430831
- 0.8279364225334871 0.2218448958021606
- 0.8054508178164929 0.2931601228505732
- 0.7768352460314142 0.3622442243491709
- 0.7423074889580903 0.4285714285714285
- 0.7021303236762787 0.4916369454437537
- 0.6566095226734097 0.5509608083027479
- 0.6060915267313265 0.6060915267313264
- 0.550960808302748 0.6566095226734097
- 0.4916369454437538 0.7021303236762787
- 0.4285714285714287 0.7423074889580902
- 0.3622442243491709 0.7768352460314142
- 0.2931601228505732 0.8054508178164927
- 0.2218448958021606 0.8279364225334871
- 0.1488412951430832 0.8441209311533211
- 0.07470492235513573 0.8538811697929247
- 5.248486282060085e-17 0.8571428571428571
- -0.07470492235513544 0.8538811697929247
- -0.1488412951430831 0.8441209311533211
- -0.2218448958021605 0.8279364225334871
- -0.2931601228505732 0.8054508178164929
- -0.3622442243491708 0.7768352460314143
- -0.4285714285714284 0.7423074889580903
- -0.4916369454437535 0.7021303236762788
- -0.550960808302748 0.6566095226734097
- -0.6060915267313264 0.6060915267313265
- -0.6566095226734096 0.5509608083027481
- -0.7021303236762785 0.491636945443754
- -0.7423074889580903 0.4285714285714285
- -0.7768352460314142 0.362244224349171
- -0.8054508178164927 0.2931601228505733
- -0.827936422533487 0.2218448958021609
- -0.8441209311533211 0.1488412951430834
- -0.8538811697929247 0.07470492235513559
- -0.8571428571428571 1.049697256412017e-16
- -0.8538811697929247 -0.07470492235513537
- -0.8441209311533212 -0.1488412951430829
- -0.8279364225334871 -0.2218448958021607
- -0.8054508178164929 -0.2931601228505731
- -0.7768352460314143 -0.3622442243491708
- -0.7423074889580904 -0.4285714285714283
- -0.7021303236762788 -0.4916369454437535
- -0.6566095226734097 -0.5509608083027479
- -0.6060915267313266 -0.6060915267313264
- -0.5509608083027481 -0.6566095226734096
- -0.491636945443754 -0.7021303236762785
- -0.4285714285714289 -0.74230748895809
- -0.3622442243491714 -0.776835246031414
- -0.2931601228505737 -0.8054508178164927
- -0.2218448958021605 -0.8279364225334871
- -0.1488412951430831 -0.8441209311533211
- -0.07470492235513564 -0.8538811697929247
- -1.574545884618025e-16 -0.8571428571428571
- 0.07470492235513533 -0.8538811697929247
- 0.1488412951430828 -0.8441209311533212
- 0.2218448958021602 -0.8279364225334872
- 0.2931601228505727 -0.805450817816493
- 0.3622442243491704 -0.7768352460314145
- 0.4285714285714287 -0.7423074889580902
- 0.4916369454437537 -0.7021303236762787
- 0.5509608083027479 -0.6566095226734098
- 0.6060915267313263 -0.6060915267313266
- 0.6566095226734096 -0.5509608083027482
- 0.7021303236762785 -0.4916369454437541
- 0.74230748895809 -0.4285714285714289
- 0.776835246031414 -0.3622442243491714
- 0.8054508178164926 -0.2931601228505738
- 0.8279364225334871 -0.2218448958021606
- 0.8441209311533211 -0.1488412951430832
- 0.8538811697929247 -0.07470492235513569
- 0.9285714285714285 0
- 0.925560357553195 0.07471895666553116
- 0.9165466724494904 0.148953332225063
- 0.9015888304670482 0.2222216882670179
- 0.8807838389509207 0.2940488513870816
- 0.8542666262546225 0.3639689948700696
- 0.8222091666779806 0.4315286597549279
- 0.7848193651478093 0.4962896956901009
- 0.7423397088746796 0.5578321025066946
- 0.6950456947303082 0.6157567540807383
- 0.6432440425446281 0.6696879868192562
- 0.5872707059099931 0.7192760359828221
- 0.5274886933932161 0.7641993040441094
- 0.4642857142857144 0.8041664463712643
- 0.3980716641599789 0.8389182607096406
- 0.3292759665394975 0.868229368207885
- 0.2583447879224204 0.8919096750862742
- 0.1857381442206127 0.9098056054678199
- 0.111926917379943 0.9218010973767643
- 0.03738980153017129 0.9278183554450288
- -0.03738980153017098 0.9278183554450289
- -0.1119269173799427 0.9218010973767643
- -0.1857381442206126 0.9098056054678199
- -0.25834478792242 0.8919096750862743
- -0.3292759665394972 0.8682293682078851
- -0.3980716641599786 0.8389182607096407
- -0.464285714285714 0.8041664463712644
- -0.5274886933932159 0.7641993040441095
- -0.5872707059099931 0.7192760359828221
- -0.643244042544628 0.6696879868192563
- -0.6950456947303079 0.6157567540807386
- -0.7423397088746794 0.5578321025066949
- -0.7848193651478093 0.4962896956901011
- -0.8222091666779805 0.431528659754928
- -0.8542666262546225 0.3639689948700697
- -0.8807838389509206 0.294048851387082
- -0.9015888304670481 0.2222216882670182
- -0.9165466724494904 0.1489533322250633
- -0.9255603575531949 0.07471895666553136
- -0.9285714285714285 1.137172027779685e-16
- -0.925560357553195 -0.07471895666553072
- -0.9165466724494905 -0.1489533322250627
- -0.9015888304670483 -0.2222216882670176
- -0.8807838389509208 -0.2940488513870814
- -0.8542666262546225 -0.3639689948700696
- -0.8222091666779806 -0.4315286597549278
- -0.7848193651478096 -0.4962896956901006
- -0.7423397088746798 -0.5578321025066943
- -0.6950456947303083 -0.6157567540807382
- -0.6432440425446282 -0.6696879868192561
- -0.5872707059099935 -0.7192760359828216
- -0.5274886933932161 -0.7641993040441094
- -0.4642857142857146 -0.8041664463712641
- -0.3980716641599788 -0.8389182607096407
- -0.3292759665394976 -0.868229368207885
- -0.2583447879224209 -0.8919096750862741
- -0.1857381442206128 -0.9098056054678199
- -0.1119269173799433 -0.9218010973767643
- -0.0373898015301712 -0.9278183554450288
- 0.03738980153017086 -0.9278183554450289
- 0.1119269173799421 -0.9218010973767644
- 0.1857381442206125 -0.90980560546782
- 0.2583447879224198 -0.8919096750862744
- 0.3292759665394973 -0.8682293682078851
- 0.3980716641599785 -0.8389182607096407
- 0.4642857142857136 -0.8041664463712648
- 0.5274886933932159 -0.7641993040441096
- 0.5872707059099926 -0.7192760359828225
- 0.6432440425446279 -0.6696879868192565
- 0.6950456947303078 -0.6157567540807386
- 0.742339708874679 -0.5578321025066953
- 0.7848193651478093 -0.4962896956901012
- 0.8222091666779803 -0.4315286597549285
- 0.8542666262546224 -0.3639689948700698
- 0.8807838389509206 -0.2940488513870821
- 0.901588830467048 -0.2222216882670187
- 0.9165466724494904 -0.1489533322250634
- 0.9255603575531949 -0.07471895666553187
+ 0 0
+ 0.09090909090909091 0
+ 0.0735469994886316 0.05343502293567938
+ 0.02809245403408613 0.08645968329955941
+ -0.02809245403408612 0.08645968329955943
+ -0.07354699948863158 0.05343502293567939
+ -0.09090909090909091 1.113315271952139e-17
+ -0.0735469994886316 -0.05343502293567937
+ -0.02809245403408614 -0.08645968329955941
+ 0.02809245403408611 -0.08645968329955943
+ 0.07354699948863158 -0.0534350229356794
+ 0.1818181818181818 0
+ 0.1729193665991188 0.05618490806817226
+ 0.1470939989772632 0.1068700458713588
+ 0.1068700458713588 0.1470939989772632
+ 0.05618490806817227 0.1729193665991188
+ 1.113315271952139e-17 0.1818181818181818
+ -0.05618490806817224 0.1729193665991189
+ -0.1068700458713587 0.1470939989772632
+ -0.1470939989772632 0.1068700458713588
+ -0.1729193665991188 0.05618490806817227
+ -0.1818181818181818 2.226630543904279e-17
+ -0.1729193665991189 -0.05618490806817224
+ -0.1470939989772632 -0.1068700458713587
+ -0.1068700458713588 -0.1470939989772632
+ -0.05618490806817229 -0.1729193665991188
+ -3.339945815856418e-17 -0.1818181818181818
+ 0.05618490806817222 -0.1729193665991189
+ 0.1068700458713587 -0.1470939989772632
+ 0.1470939989772632 -0.1068700458713588
+ 0.1729193665991188 -0.05618490806817229
+ 0.2727272727272727 0
+ 0.2667675274728561 0.05670318840484345
+ 0.2491487611752548 0.1109281753843091
+ 0.2206409984658947 0.1603050688070381
+ 0.1824901653705977 0.2026758614938347
+ 0.1363636363636364 0.236188746486665
+ 0.08427736210225839 0.2593790498986782
+ 0.02850776270936009 0.2712332441913473
+ -0.02850776270936 0.2712332441913473
+ -0.08427736210225836 0.2593790498986783
+ -0.1363636363636363 0.2361887464866651
+ -0.1824901653705976 0.2026758614938348
+ -0.2206409984658947 0.1603050688070382
+ -0.2491487611752547 0.1109281753843092
+ -0.266767527472856 0.05670318840484356
+ -0.2727272727272727 3.339945815856417e-17
+ -0.2667675274728561 -0.05670318840484338
+ -0.2491487611752548 -0.110928175384309
+ -0.2206409984658948 -0.1603050688070381
+ -0.1824901653705978 -0.2026758614938347
+ -0.1363636363636365 -0.236188746486665
+ -0.08427736210225842 -0.2593790498986782
+ -0.02850776270936024 -0.2712332441913473
+ 0.0285077627093599 -0.2712332441913473
+ 0.08427736210225834 -0.2593790498986783
+ 0.1363636363636362 -0.2361887464866652
+ 0.1824901653705976 -0.2026758614938349
+ 0.2206409984658947 -0.1603050688070382
+ 0.2491487611752547 -0.1109281753843093
+ 0.266767527472856 -0.0567031884048436
+ 0.3636363636363636 0
+ 0.3591593965800501 0.05688526001462941
+ 0.3458387331982377 0.1123698161363445
+ 0.3240023724321338 0.1650874544507443
+ 0.2941879979545264 0.2137400917427175
+ 0.25712973861329 0.25712973861329
+ 0.2137400917427175 0.2941879979545264
+ 0.1650874544507443 0.3240023724321338
+ 0.1123698161363445 0.3458387331982377
+ 0.05688526001462943 0.3591593965800501
+ 2.226630543904279e-17 0.3636363636363636
+ -0.05688526001462939 0.3591593965800501
+ -0.1123698161363445 0.3458387331982377
+ -0.1650874544507443 0.3240023724321338
+ -0.2137400917427175 0.2941879979545264
+ -0.25712973861329 0.25712973861329
+ -0.2941879979545263 0.2137400917427175
+ -0.3240023724321338 0.1650874544507443
+ -0.3458387331982377 0.1123698161363445
+ -0.3591593965800501 0.05688526001462945
+ -0.3636363636363636 4.453261087808557e-17
+ -0.3591593965800501 -0.05688526001462936
+ -0.3458387331982377 -0.1123698161363445
+ -0.3240023724321338 -0.1650874544507443
+ -0.2941879979545264 -0.2137400917427175
+ -0.2571297386132901 -0.25712973861329
+ -0.2137400917427175 -0.2941879979545263
+ -0.1650874544507443 -0.3240023724321338
+ -0.1123698161363446 -0.3458387331982377
+ -0.05688526001462947 -0.3591593965800501
+ -6.679891631712836e-17 -0.3636363636363636
+ 0.05688526001462934 -0.3591593965800501
+ 0.1123698161363444 -0.3458387331982377
+ 0.1650874544507442 -0.3240023724321338
+ 0.2137400917427174 -0.2941879979545264
+ 0.25712973861329 -0.2571297386132901
+ 0.2941879979545263 -0.2137400917427176
+ 0.3240023724321338 -0.1650874544507444
+ 0.3458387331982377 -0.1123698161363446
+ 0.3591593965800501 -0.05688526001462949
+ 0.4545454545454546 0
+ 0.4509612278702173 0.0569696516201383
+ 0.4402650732402869 0.1130408578022067
+ 0.4226256754037506 0.1673293421293991
+ 0.3983212182017562 0.218978942773507
+ 0.367734997443158 0.2671751146783969
+ 0.3313493761006416 0.3111577754221312
+ 0.2897381771584953 0.3502332921708133
+ 0.2435576340813621 0.3837854206827341
+ 0.1935360416204876 0.4112850238481908
+ 0.1404622701704307 0.4322984164977971
+ 0.08517332481169297 0.4464942048766767
+ 0.02854114524059696 0.4536485129219416
+ -0.028541145240597 0.4536485129219416
+ -0.08517332481169311 0.4464942048766767
+ -0.1404622701704307 0.4322984164977971
+ -0.1935360416204876 0.4112850238481907
+ -0.2435576340813622 0.3837854206827341
+ -0.2897381771584954 0.3502332921708133
+ -0.3313493761006417 0.3111577754221312
+ -0.3677349974431579 0.2671751146783969
+ -0.3983212182017562 0.2189789427735069
+ -0.4226256754037507 0.167329342129399
+ -0.4402650732402869 0.1130408578022068
+ -0.4509612278702173 0.05696965162013823
+ -0.4545454545454546 -1.461929681524215e-16
+ -0.4509612278702173 -0.05696965162013832
+ -0.4402650732402869 -0.1130408578022068
+ -0.4226256754037506 -0.1673293421293992
+ -0.3983212182017561 -0.218978942773507
+ -0.3677349974431579 -0.267175114678397
+ -0.3313493761006416 -0.3111577754221312
+ -0.2897381771584953 -0.3502332921708134
+ -0.243557634081362 -0.3837854206827342
+ -0.1935360416204874 -0.4112850238481909
+ -0.1404622701704307 -0.4322984164977971
+ -0.08517332481169303 -0.4464942048766767
+ -0.02854114524059691 -0.4536485129219416
+ 0.02854114524059715 -0.4536485129219416
+ 0.08517332481169325 -0.4464942048766767
+ 0.1404622701704306 -0.4322984164977972
+ 0.1935360416204876 -0.4112850238481908
+ 0.2435576340813622 -0.3837854206827341
+ 0.2897381771584955 -0.3502332921708132
+ 0.3313493761006418 -0.3111577754221311
+ 0.3677349974431581 -0.2671751146783967
+ 0.3983212182017562 -0.218978942773507
+ 0.4226256754037507 -0.167329342129399
+ 0.440265073240287 -0.1130408578022066
+ 0.4509612278702172 -0.05696965162013848
+ 0.5454545454545454 0
+ 0.5424664883826945 0.05701552541872006
+ 0.5335350549457122 0.1134063768096869
+ 0.5187580997973564 0.1685547242045168
+ 0.4982975223505095 0.2218563507686183
+ 0.4723774929733301 0.2727272727272727
+ 0.4412819969317895 0.3206101376140763
+ 0.4053517229876696 0.3649803307411953
+ 0.3649803307411954 0.4053517229876695
+ 0.3206101376140763 0.4412819969317895
+ 0.2727272727272728 0.4723774929733301
+ 0.2218563507686184 0.4982975223505095
+ 0.1685547242045168 0.5187580997973564
+ 0.113406376809687 0.5335350549457121
+ 0.05701552541872018 0.5424664883826945
+ 3.339945815856417e-17 0.5454545454545454
+ -0.05701552541871999 0.5424664883826945
+ -0.1134063768096868 0.5335350549457122
+ -0.1685547242045167 0.5187580997973565
+ -0.2218563507686182 0.4982975223505096
+ -0.2727272727272726 0.4723774929733301
+ -0.3206101376140762 0.4412819969317895
+ -0.3649803307411952 0.4053517229876697
+ -0.4053517229876694 0.3649803307411955
+ -0.4412819969317894 0.3206101376140763
+ -0.47237749297333 0.2727272727272729
+ -0.4982975223505094 0.2218563507686184
+ -0.5187580997973564 0.1685547242045168
+ -0.5335350549457121 0.1134063768096871
+ -0.5424664883826945 0.05701552541872022
+ -0.5454545454545454 6.679891631712835e-17
+ -0.5424664883826945 -0.05701552541871984
+ -0.5335350549457122 -0.1134063768096868
+ -0.5187580997973565 -0.1685547242045167
+ -0.4982975223505097 -0.2218563507686181
+ -0.4723774929733302 -0.2727272727272725
+ -0.4412819969317895 -0.3206101376140762
+ -0.4053517229876697 -0.3649803307411952
+ -0.3649803307411955 -0.4053517229876694
+ -0.3206101376140763 -0.4412819969317894
+ -0.2727272727272729 -0.47237749297333
+ -0.2218563507686186 -0.4982975223505093
+ -0.1685547242045168 -0.5187580997973564
+ -0.1134063768096872 -0.5335350549457121
+ -0.05701552541872049 -0.5424664883826945
+ -1.001983744756925e-16 -0.5454545454545454
+ 0.05701552541871981 -0.5424664883826945
+ 0.1134063768096865 -0.5335350549457122
+ 0.1685547242045167 -0.5187580997973565
+ 0.221856350768618 -0.4982975223505097
+ 0.2727272727272723 -0.4723774929733304
+ 0.3206101376140761 -0.4412819969317895
+ 0.3649803307411951 -0.4053517229876697
+ 0.4053517229876692 -0.3649803307411957
+ 0.4412819969317894 -0.3206101376140764
+ 0.47237749297333 -0.2727272727272729
+ 0.4982975223505093 -0.2218563507686187
+ 0.5187580997973564 -0.1685547242045169
+ 0.5335350549457121 -0.1134063768096872
+ 0.5424664883826945 -0.05701552541872053
+ 0.6363636363636364 0
+ 0.6338018234515158 0.05704319657491223
+ 0.6261370109264007 0.1136271148718597
+ 0.6134309113519066 0.1692961744515205
+ 0.5957858267707419 0.2236021607790362
+ 0.5733438250288122 0.2761078339839006
+ 0.5462855959284603 0.3263904492583039
+ 0.5148289964204211 0.3740451605497556
+ 0.4792272965477524 0.4186882801434534
+ 0.4397671402643684 0.4599603678901583
+ 0.3967662375464668 0.497529125206928
+ 0.3505708063786107 0.5310920705499198
+ 0.30155278521009 0.5603789748179242
+ 0.2501068383252241 0.5851540370781958
+ 0.1966471782386029 0.6052177830969159
+ 0.1416042306994728 0.6204086713884333
+ 0.08542116915668989 0.630604393852322
+ 0.02855034658669136 0.6357228605262911
+ -0.02855034658669128 0.6357228605262911
+ -0.08542116915668981 0.6306043938523221
+ -0.1416042306994728 0.6204086713884333
+ -0.1966471782386028 0.605217783096916
+ -0.2501068383252241 0.5851540370781959
+ -0.30155278521009 0.5603789748179242
+ -0.3505708063786106 0.5310920705499198
+ -0.3967662375464668 0.4975291252069281
+ -0.4397671402643684 0.4599603678901583
+ -0.4792272965477524 0.4186882801434536
+ -0.514828996420421 0.3740451605497557
+ -0.5462855959284603 0.326390449258304
+ -0.5733438250288121 0.2761078339839007
+ -0.5957858267707419 0.2236021607790363
+ -0.6134309113519066 0.1692961744515206
+ -0.6261370109264007 0.1136271148718598
+ -0.6338018234515158 0.0570431965749123
+ -0.6363636363636364 7.793206903664974e-17
+ -0.6338018234515158 -0.05704319657491214
+ -0.6261370109264007 -0.1136271148718596
+ -0.6134309113519066 -0.1692961744515205
+ -0.5957858267707419 -0.2236021607790362
+ -0.5733438250288122 -0.2761078339839005
+ -0.5462855959284603 -0.3263904492583038
+ -0.5148289964204211 -0.3740451605497556
+ -0.4792272965477525 -0.4186882801434534
+ -0.4397671402643685 -0.4599603678901582
+ -0.3967662375464669 -0.497529125206928
+ -0.3505708063786108 -0.5310920705499198
+ -0.3015527852100902 -0.5603789748179241
+ -0.2501068383252242 -0.5851540370781958
+ -0.196647178238603 -0.6052177830969159
+ -0.1416042306994729 -0.6204086713884333
+ -0.08542116915668996 -0.630604393852322
+ -0.02855034658669143 -0.6357228605262911
+ 0.0285503465866912 -0.6357228605262911
+ 0.08542116915668974 -0.6306043938523221
+ 0.1416042306994727 -0.6204086713884333
+ 0.1966471782386028 -0.605217783096916
+ 0.250106838325224 -0.5851540370781959
+ 0.3015527852100899 -0.5603789748179242
+ 0.3505708063786105 -0.5310920705499199
+ 0.3967662375464667 -0.4975291252069281
+ 0.4397671402643684 -0.4599603678901583
+ 0.4792272965477523 -0.4186882801434536
+ 0.514828996420421 -0.3740451605497558
+ 0.5462855959284602 -0.326390449258304
+ 0.5733438250288121 -0.2761078339839008
+ 0.5957858267707418 -0.2236021607790364
+ 0.6134309113519066 -0.1692961744515207
+ 0.6261370109264007 -0.1136271148718598
+ 0.6338018234515157 -0.05704319657491239
+ 0.7272727272727273 0
+ 0.7250307881695476 0.05706116052934178
+ 0.7183187931601002 0.1137705200292588
+ 0.707178123925583 0.1697784464406585
+ 0.6916774663964753 0.224739632272689
+ 0.6719123872809358 0.2783152235382471
+ 0.6480047448642676 0.3301749089014885
+ 0.620101937712067 0.3799989561570537
+ 0.5883759959090528 0.427480183485435
+ 0.5530225204363861 0.4723258533310427
+ 0.5142594772265801 0.5142594772265799
+ 0.4723258533310427 0.5530225204363861
+ 0.427480183485435 0.5883759959090528
+ 0.3799989561570538 0.620101937712067
+ 0.3301749089014886 0.6480047448642675
+ 0.2783152235382472 0.6719123872809358
+ 0.2247396322726891 0.6916774663964753
+ 0.1697784464406585 0.707178123925583
+ 0.1137705200292589 0.7183187931601002
+ 0.05706116052934182 0.7250307881695476
+ 4.453261087808557e-17 0.7272727272727273
+ -0.05706116052934173 0.7250307881695476
+ -0.1137705200292588 0.7183187931601002
+ -0.1697784464406584 0.7071781239255831
+ -0.224739632272689 0.6916774663964754
+ -0.2783152235382471 0.6719123872809358
+ -0.3301749089014885 0.6480047448642676
+ -0.3799989561570537 0.6201019377120671
+ -0.4274801834854349 0.5883759959090528
+ -0.4723258533310426 0.5530225204363862
+ -0.5142594772265799 0.5142594772265801
+ -0.5530225204363861 0.4723258533310428
+ -0.5883759959090527 0.4274801834854351
+ -0.620101937712067 0.3799989561570538
+ -0.6480047448642675 0.3301749089014887
+ -0.6719123872809358 0.2783152235382472
+ -0.6916774663964753 0.2247396322726891
+ -0.707178123925583 0.1697784464406586
+ -0.7183187931601002 0.1137705200292589
+ -0.7250307881695476 0.05706116052934187
+ -0.7272727272727273 8.906522175617114e-17
+ -0.7250307881695476 -0.05706116052934169
+ -0.7183187931601002 -0.1137705200292587
+ -0.7071781239255831 -0.1697784464406584
+ -0.6916774663964754 -0.2247396322726889
+ -0.6719123872809359 -0.2783152235382471
+ -0.6480047448642676 -0.3301749089014885
+ -0.6201019377120671 -0.3799989561570536
+ -0.5883759959090528 -0.4274801834854349
+ -0.5530225204363862 -0.4723258533310426
+ -0.5142594772265802 -0.5142594772265799
+ -0.472325853331043 -0.5530225204363859
+ -0.4274801834854351 -0.5883759959090527
+ -0.3799989561570535 -0.6201019377120672
+ -0.3301749089014887 -0.6480047448642675
+ -0.2783152235382475 -0.6719123872809357
+ -0.2247396322726891 -0.6916774663964753
+ -0.1697784464406583 -0.7071781239255831
+ -0.1137705200292589 -0.7183187931601002
+ -0.05706116052934224 -0.7250307881695476
+ -1.335978326342567e-16 -0.7272727272727273
+ 0.05706116052934197 -0.7250307881695476
+ 0.1137705200292587 -0.7183187931601002
+ 0.169778446440658 -0.7071781239255831
+ 0.2247396322726889 -0.6916774663964754
+ 0.2783152235382473 -0.6719123872809357
+ 0.3301749089014885 -0.6480047448642676
+ 0.3799989561570534 -0.6201019377120673
+ 0.4274801834854349 -0.5883759959090528
+ 0.4723258533310428 -0.5530225204363861
+ 0.5142594772265799 -0.5142594772265802
+ 0.5530225204363858 -0.4723258533310431
+ 0.5883759959090527 -0.4274801834854352
+ 0.6201019377120671 -0.3799989561570536
+ 0.6480047448642675 -0.3301749089014887
+ 0.6719123872809357 -0.2783152235382476
+ 0.6916774663964753 -0.2247396322726892
+ 0.7071781239255831 -0.1697784464406583
+ 0.7183187931601002 -0.113770520029259
+ 0.7250307881695476 -0.05706116052934227
+ 0.8181818181818182 0
+ 0.8161887683944017 0.0570734785179207
+ 0.8102193289703759 0.1138689007855081
+ 0.8003025824185683 0.1701095652145304
+ 0.7864868421313519 0.2255214729411812
+ 0.7688394170066524 0.2798346627210017
+ 0.7474462835257644 0.3327845261529275
+ 0.7224116668845767 0.3841130968248198
+ 0.693857533218894 0.433570307099895
+ 0.6619229953976843 0.4809152064211144
+ 0.6267636352791639 0.5259171351980776
+ 0.5885507457316237 0.5683568485573615
+ 0.5474704961117931 0.6080275844815044
+ 0.5037230252664477 0.6447360711327726
+ 0.4575214664760656 0.6783034684541251
+ 0.4090909090909092 0.7085662394599953
+ 0.3586673019183361 0.7353769469720458
+ 0.306496303703928 0.7586049719182807
+ 0.2528320863067752 0.7781371496960348
+ 0.1979360963997281 0.7938783214985426
+ 0.1420757817274885 0.8057517979190794
+ 0.0855232881280801 0.8136997325740418
+ 0.0285541336656827 0.8176834039247147
+ -0.0285541336656826 0.8176834039247147
+ -0.08552328812808019 0.8136997325740418
+ -0.1420757817274884 0.8057517979190794
+ -0.1979360963997282 0.7938783214985426
+ -0.2528320863067751 0.7781371496960349
+ -0.3064963037039281 0.7586049719182807
+ -0.3586673019183362 0.7353769469720457
+ -0.4090909090909089 0.7085662394599953
+ -0.4575214664760655 0.6783034684541251
+ -0.5037230252664477 0.6447360711327726
+ -0.5474704961117931 0.6080275844815044
+ -0.5885507457316237 0.5683568485573613
+ -0.6267636352791638 0.5259171351980778
+ -0.6619229953976842 0.4809152064211145
+ -0.693857533218894 0.433570307099895
+ -0.7224116668845767 0.3841130968248197
+ -0.7474462835257643 0.3327845261529276
+ -0.7688394170066523 0.2798346627210018
+ -0.7864868421313519 0.2255214729411812
+ -0.8003025824185683 0.1701095652145304
+ -0.8102193289703759 0.113868900785508
+ -0.8161887683944017 0.05707347851792089
+ -0.8181818181818182 1.001983744756925e-16
+ -0.8161887683944017 -0.05707347851792068
+ -0.8102193289703757 -0.1138689007855082
+ -0.8003025824185682 -0.1701095652145305
+ -0.7864868421313519 -0.225521472941181
+ -0.7688394170066524 -0.2798346627210017
+ -0.7474462835257644 -0.3327845261529275
+ -0.7224116668845766 -0.3841130968248198
+ -0.6938575332188941 -0.4335703070998949
+ -0.6619229953976844 -0.4809152064211143
+ -0.6267636352791639 -0.5259171351980776
+ -0.5885507457316237 -0.5683568485573615
+ -0.547470496111793 -0.6080275844815045
+ -0.5037230252664475 -0.6447360711327726
+ -0.4575214664760654 -0.6783034684541251
+ -0.4090909090909095 -0.7085662394599951
+ -0.3586673019183363 -0.7353769469720456
+ -0.3064963037039283 -0.7586049719182806
+ -0.2528320863067753 -0.7781371496960348
+ -0.1979360963997282 -0.7938783214985426
+ -0.1420757817274885 -0.8057517979190794
+ -0.08552328812808002 -0.8136997325740419
+ -0.02855413366568244 -0.8176834039247147
+ 0.02855413366568287 -0.8176834039247147
+ 0.08552328812807972 -0.8136997325740419
+ 0.1420757817274882 -0.8057517979190795
+ 0.1979360963997279 -0.7938783214985428
+ 0.252832086306775 -0.7781371496960349
+ 0.306496303703928 -0.7586049719182807
+ 0.3586673019183361 -0.7353769469720458
+ 0.4090909090909092 -0.7085662394599953
+ 0.4575214664760658 -0.678303468454125
+ 0.5037230252664479 -0.6447360711327724
+ 0.5474704961117928 -0.6080275844815047
+ 0.5885507457316235 -0.5683568485573617
+ 0.6267636352791637 -0.5259171351980779
+ 0.6619229953976842 -0.4809152064211146
+ 0.693857533218894 -0.433570307099895
+ 0.7224116668845766 -0.3841130968248198
+ 0.7474462835257645 -0.3327845261529274
+ 0.7688394170066524 -0.2798346627210016
+ 0.7864868421313519 -0.225521472941181
+ 0.8003025824185682 -0.1701095652145308
+ 0.8102193289703757 -0.1138689007855085
+ 0.8161887683944017 -0.05707347851792098
+ 0.9090909090909092 0
+ 0.9072970258438833 0.05708229048119398
+ 0.9019224557404345 0.1139393032402766
+ 0.8929884097533535 0.1703466496233861
+ 0.8805301464805738 0.2260817156044135
+ 0.8645968329955942 0.2809245403408613
+ 0.8452513508075012 0.3346586842587982
+ 0.8225700476963814 0.3870720832409753
+ 0.7966424364035124 0.437957885547014
+ 0.7675708413654683 0.4871152681627243
+ 0.7354699948863159 0.5343502293567938
+ 0.7004665843416266 0.5794763543169907
+ 0.6626987522012833 0.6223155508442625
+ 0.6223155508442624 0.6626987522012833
+ 0.5794763543169906 0.7004665843416267
+ 0.5343502293567937 0.7354699948863159
+ 0.4871152681627242 0.7675708413654683
+ 0.4379578855470138 0.7966424364035125
+ 0.3870720832409752 0.8225700476963815
+ 0.3346586842587981 0.8452513508075014
+ 0.2809245403408613 0.8645968329955942
+ 0.2260817156044134 0.8805301464805738
+ 0.1703466496233859 0.8929884097533535
+ 0.1139393032402766 0.9019224557404345
+ 0.05708229048119392 0.9072970258438833
+ -1.461929681524215e-16 0.9090909090909092
+ -0.05708229048119401 0.9072970258438833
+ -0.1139393032402767 0.9019224557404344
+ -0.1703466496233862 0.8929884097533534
+ -0.2260817156044135 0.8805301464805738
+ -0.2809245403408615 0.8645968329955942
+ -0.3346586842587982 0.8452513508075012
+ -0.3870720832409753 0.8225700476963814
+ -0.4379578855470141 0.7966424364035123
+ -0.4871152681627245 0.7675708413654683
+ -0.5343502293567937 0.7354699948863159
+ -0.5794763543169907 0.7004665843416267
+ -0.6223155508442625 0.6626987522012832
+ -0.6626987522012834 0.6223155508442624
+ -0.7004665843416268 0.5794763543169905
+ -0.7354699948863158 0.5343502293567939
+ -0.7675708413654683 0.4871152681627243
+ -0.7966424364035124 0.4379578855470139
+ -0.8225700476963815 0.387072083240975
+ -0.8452513508075014 0.334658684258798
+ -0.8645968329955943 0.2809245403408611
+ -0.8805301464805738 0.2260817156044135
+ -0.8929884097533535 0.170346649623386
+ -0.9019224557404345 0.1139393032402765
+ -0.9072970258438833 0.05708229048119377
+ -0.9090909090909092 -2.92385936304843e-16
+ -0.9072970258438833 -0.05708229048119395
+ -0.9019224557404345 -0.1139393032402766
+ -0.8929884097533534 -0.1703466496233862
+ -0.8805301464805738 -0.2260817156044137
+ -0.8645968329955942 -0.2809245403408616
+ -0.8452513508075012 -0.3346586842587985
+ -0.8225700476963814 -0.3870720832409752
+ -0.7966424364035123 -0.437957885547014
+ -0.7675708413654683 -0.4871152681627244
+ -0.7354699948863157 -0.534350229356794
+ -0.7004665843416265 -0.579476354316991
+ -0.6626987522012833 -0.6223155508442625
+ -0.6223155508442624 -0.6626987522012833
+ -0.5794763543169905 -0.7004665843416268
+ -0.5343502293567939 -0.7354699948863158
+ -0.487115268162724 -0.7675708413654685
+ -0.4379578855470139 -0.7966424364035124
+ -0.3870720832409748 -0.8225700476963818
+ -0.334658684258798 -0.8452513508075014
+ -0.2809245403408615 -0.8645968329955942
+ -0.2260817156044131 -0.8805301464805739
+ -0.1703466496233861 -0.8929884097533535
+ -0.1139393032402761 -0.9019224557404345
+ -0.05708229048119383 -0.9072970258438833
+ -1.669972907928209e-16 -0.9090909090909092
+ 0.05708229048119429 -0.9072970258438833
+ 0.1139393032402766 -0.9019224557404345
+ 0.1703466496233865 -0.8929884097533534
+ 0.2260817156044136 -0.8805301464805738
+ 0.2809245403408611 -0.8645968329955943
+ 0.3346586842587985 -0.8452513508075012
+ 0.3870720832409751 -0.8225700476963815
+ 0.4379578855470143 -0.7966424364035122
+ 0.4871152681627244 -0.7675708413654683
+ 0.5343502293567943 -0.7354699948863155
+ 0.579476354316991 -0.7004665843416265
+ 0.6223155508442624 -0.6626987522012833
+ 0.6626987522012836 -0.6223155508442622
+ 0.7004665843416268 -0.5794763543169906
+ 0.7354699948863163 -0.5343502293567933
+ 0.7675708413654685 -0.487115268162724
+ 0.7966424364035124 -0.437957885547014
+ 0.8225700476963816 -0.3870720832409748
+ 0.8452513508075014 -0.3346586842587981
+ 0.8645968329955944 -0.2809245403408607
+ 0.8805301464805739 -0.2260817156044132
+ 0.8929884097533535 -0.1703466496233861
+ 0.9019224557404345 -0.1139393032402762
+ 0.9072970258438833 -0.05708229048119388
--- a/data/circ_nrml.matrix
+++ b/data/circ_nrml.matrix
@@ -1,89 +1,115 @@
-# Created by Octave 3.0.1, Sun Jun 29 04:02:42 2008 CDT <jordi@Iris>
+# Created by Octave 3.0.1, Sun Jun 29 04:50:49 2008 CDT <jordi@Iris>
 # name: nrml
 # type: matrix
-# rows: 84
+# rows: 110
 # columns: 4
- 1 0 1 0
- 0.9972037971811801 0.07473009358642425 0.9972037971811801 0.07473009358642425
- 0.9888308262251285 0.1490422661761744 0.9888308262251285 0.1490422661761744
- 0.9749279121818236 0.2225209339563144 0.9749279121818236 0.2225209339563144
- 0.9555728057861407 0.2947551744109042 0.9555728057861407 0.2947551744109042
- 0.9308737486442042 0.365341024366395 0.9308737486442042 0.365341024366395
- 0.9009688679024191 0.4338837391175581 0.9009688679024191 0.4338837391175581
- 0.8660254037844386 0.5 0.8660254037844386 0.5
- 0.8262387743159949 0.5633200580636221 0.8262387743159949 0.5633200580636221
- 0.7818314824680298 0.6234898018587335 0.7818314824680298 0.6234898018587335
- 0.7330518718298263 0.6801727377709195 0.7330518718298263 0.6801727377709195
- 0.6801727377709194 0.7330518718298263 0.6801727377709194 0.7330518718298263
- 0.6234898018587336 0.7818314824680298 0.6234898018587336 0.7818314824680298
- 0.563320058063622 0.8262387743159949 0.563320058063622 0.8262387743159949
- 0.4999999999999999 0.8660254037844387 0.4999999999999999 0.8660254037844387
- 0.4338837391175582 0.9009688679024191 0.4338837391175582 0.9009688679024191
- 0.365341024366395 0.9308737486442042 0.365341024366395 0.9308737486442042
- 0.2947551744109041 0.9555728057861408 0.2947551744109041 0.9555728057861408
- 0.2225209339563144 0.9749279121818236 0.2225209339563144 0.9749279121818236
- 0.1490422661761744 0.9888308262251285 0.1490422661761744 0.9888308262251285
- 0.07473009358642417 0.9972037971811801 0.07473009358642417 0.9972037971811801
- 6.123233995736766e-17 1 6.123233995736766e-17 1
- -0.07473009358642427 0.9972037971811801 -0.07473009358642427 0.9972037971811801
- -0.1490422661761745 0.9888308262251285 -0.1490422661761745 0.9888308262251285
- -0.2225209339563143 0.9749279121818236 -0.2225209339563143 0.9749279121818236
- -0.2947551744109042 0.9555728057861407 -0.2947551744109042 0.9555728057861407
- -0.3653410243663951 0.9308737486442042 -0.3653410243663951 0.9308737486442042
- -0.4338837391175581 0.9009688679024191 -0.4338837391175581 0.9009688679024191
- -0.5000000000000002 0.8660254037844385 -0.5000000000000002 0.8660254037844385
- -0.5633200580636221 0.8262387743159948 -0.5633200580636221 0.8262387743159948
- -0.6234898018587335 0.7818314824680299 -0.6234898018587335 0.7818314824680299
- -0.6801727377709196 0.7330518718298262 -0.6801727377709196 0.7330518718298262
- -0.7330518718298263 0.6801727377709194 -0.7330518718298263 0.6801727377709194
- -0.7818314824680298 0.6234898018587336 -0.7818314824680298 0.6234898018587336
- -0.826238774315995 0.5633200580636218 -0.826238774315995 0.5633200580636218
- -0.8660254037844387 0.4999999999999999 -0.8660254037844387 0.4999999999999999
- -0.900968867902419 0.4338837391175582 -0.900968867902419 0.4338837391175582
- -0.9308737486442044 0.3653410243663948 -0.9308737486442044 0.3653410243663948
- -0.9555728057861408 0.2947551744109042 -0.9555728057861408 0.2947551744109042
- -0.9749279121818236 0.2225209339563145 -0.9749279121818236 0.2225209339563145
- -0.9888308262251285 0.1490422661761743 -0.9888308262251285 0.1490422661761743
- -0.9972037971811801 0.07473009358642423 -0.9972037971811801 0.07473009358642423
- -1 1.224646799147353e-16 -1 1.224646799147353e-16
- -0.9972037971811801 -0.07473009358642442 -0.9972037971811801 -0.07473009358642442
- -0.9888308262251285 -0.1490422661761745 -0.9888308262251285 -0.1490422661761745
- -0.9749279121818236 -0.2225209339563143 -0.9749279121818236 -0.2225209339563143
- -0.9555728057861407 -0.2947551744109044 -0.9555728057861407 -0.2947551744109044
- -0.9308737486442042 -0.365341024366395 -0.9308737486442042 -0.365341024366395
- -0.9009688679024191 -0.433883739117558 -0.9009688679024191 -0.433883739117558
- -0.8660254037844386 -0.5000000000000001 -0.8660254037844386 -0.5000000000000001
- -0.8262387743159949 -0.5633200580636221 -0.8262387743159949 -0.5633200580636221
- -0.7818314824680296 -0.6234898018587338 -0.7818314824680296 -0.6234898018587338
- -0.7330518718298262 -0.6801727377709195 -0.7330518718298262 -0.6801727377709195
- -0.6801727377709194 -0.7330518718298263 -0.6801727377709194 -0.7330518718298263
- -0.6234898018587337 -0.7818314824680297 -0.6234898018587337 -0.7818314824680297
- -0.563320058063622 -0.8262387743159949 -0.563320058063622 -0.8262387743159949
- -0.4999999999999996 -0.8660254037844388 -0.4999999999999996 -0.8660254037844388
- -0.4338837391175583 -0.900968867902419 -0.4338837391175583 -0.900968867902419
- -0.3653410243663949 -0.9308737486442044 -0.3653410243663949 -0.9308737486442044
- -0.2947551744109038 -0.9555728057861409 -0.2947551744109038 -0.9555728057861409
- -0.2225209339563146 -0.9749279121818236 -0.2225209339563146 -0.9749279121818236
- -0.1490422661761743 -0.9888308262251285 -0.1490422661761743 -0.9888308262251285
- -0.07473009358642384 -0.9972037971811801 -0.07473009358642384 -0.9972037971811801
- -1.83697019872103e-16 -1 -1.83697019872103e-16 -1
- 0.07473009358642436 -0.9972037971811801 0.07473009358642436 -0.9972037971811801
- 0.1490422661761748 -0.9888308262251285 0.1490422661761748 -0.9888308262251285
- 0.2225209339563142 -0.9749279121818236 0.2225209339563142 -0.9749279121818236
- 0.2947551744109043 -0.9555728057861407 0.2947551744109043 -0.9555728057861407
- 0.3653410243663954 -0.9308737486442041 0.3653410243663954 -0.9308737486442041
- 0.433883739117558 -0.9009688679024193 0.433883739117558 -0.9009688679024193
- 0.5000000000000001 -0.8660254037844386 0.5000000000000001 -0.8660254037844386
- 0.5633200580636224 -0.8262387743159947 0.5633200580636224 -0.8262387743159947
- 0.6234898018587334 -0.7818314824680299 0.6234898018587334 -0.7818314824680299
- 0.6801727377709195 -0.7330518718298262 0.6801727377709195 -0.7330518718298262
- 0.7330518718298266 -0.6801727377709191 0.7330518718298266 -0.6801727377709191
- 0.7818314824680297 -0.6234898018587337 0.7818314824680297 -0.6234898018587337
- 0.8262387743159949 -0.563320058063622 0.8262387743159949 -0.563320058063622
- 0.8660254037844388 -0.4999999999999997 0.8660254037844388 -0.4999999999999997
- 0.900968867902419 -0.4338837391175583 0.900968867902419 -0.4338837391175583
- 0.9308737486442042 -0.3653410243663949 0.9308737486442042 -0.3653410243663949
- 0.9555728057861408 -0.2947551744109039 0.9555728057861408 -0.2947551744109039
- 0.9749279121818235 -0.2225209339563146 0.9749279121818235 -0.2225209339563146
- 0.9888308262251285 -0.1490422661761744 0.9888308262251285 -0.1490422661761744
- 0.9972037971811801 -0.07473009358642391 0.9972037971811801 -0.07473009358642391
+ 0.9998766324816606 -0.01570731731182068 0.9998766324816606 -0.01570731731182068
+ 0.9991426496745736 0.041400067648161 0.9991426496745736 0.041400067648161
+ 0.9951496712183173 0.09837241419257248 0.9951496712183173 0.09837241419257248
+ 0.9879107213786663 0.1550238903688175 0.9879107213786663 0.1550238903688175
+ 0.9774494121053654 0.2111697108367472 0.9774494121053654 0.2111697108367472
+ 0.9637998660148573 0.2666267396000314 0.9637998660148573 0.2666267396000314
+ 0.9470066050894002 0.3212140873577138 0.9470066050894002 0.3212140873577138
+ 0.927124405455615 0.374753701527513 0.927124405455615 0.374753701527513
+ 0.9042181187161473 0.4270709470163375 0.9042181187161473 0.4270709470163375
+ 0.8783624604172172 0.477995175843661 0.8783624604172172 0.477995175843661
+ 0.8496417663420387 0.5273602837597655 0.8496417663420387 0.5273602837597655
+ 0.8181497174250234 0.5750052520432786 0.8181497174250234 0.5750052520432786
+ 0.7839890341840449 0.620774672710774 0.7839890341840449 0.620774672710774
+ 0.7472711416674593 0.6645192554253126 0.7472711416674593 0.6645192554253126
+ 0.7081158060087587 0.7060963144504906 0.7081158060087587 0.7060963144504906
+ 0.6666507437743361 0.7453702340616537 0.6666507437743361 0.7453702340616537
+ 0.623011205378593 0.7822129108962039 0.623011205378593 0.7822129108962039
+ 0.577339533925199 0.8165041718001409 0.577339533925199 0.8165041718001409
+ 0.5297847009134744 0.8481321658079125 0.5297847009134744 0.8481321658079125
+ 0.4805018203243236 0.8769937289770158 0.4805018203243236 0.8769937289770158
+ 0.4296516426706695 0.9029947208873346 0.4296516426706695 0.9029947208873346
+ 0.3774000306626937 0.9260503317076226 0.3774000306626937 0.9260503317076226
+ 0.3239174181981495 0.9460853588275453 0.3239174181981495 0.9460853588275453
+ 0.2693782544424143 0.9630344521529631 0.2693782544424143 0.9630344521529631
+ 0.2139604348115697 0.9768423272643565 0.2139604348115697 0.9768423272643565
+ 0.1578447207145324 0.9874639457431098 0.1578447207145324 0.9874639457431098
+ 0.1012141499469077 0.9948646620774731 0.1012141499469077 0.9948646620774731
+ 0.04425343965974749 0.9990203366690195 0.04425343965974749 0.9990203366690195
+ -0.01285161614940513 0.9999174145709976 -0.01285161614940513 0.9999174145709976
+ -0.06991475265791579 0.997552969701751 -0.06991475265791579 0.997552969701751
+ -0.1267498417751967 0.9919347143889877 -0.1267498417751967 0.9919347143889877
+ -0.1831714992538492 0.9830809742137711 -0.1831714992538492 0.9830809742137711
+ -0.238995689374548 0.9710206282362824 -0.238995689374548 0.9710206282362824
+ -0.2940403252323039 0.9557930147983302 -0.2940403252323039 0.9557930147983302
+ -0.3481258626661013 0.9374478032098549 -0.3481258626661013 0.9374478032098549
+ -0.4010758858946333 0.9160448317379641 -0.4010758858946333 0.9160448317379641
+ -0.452717682947911 0.891653912426943 -0.452717682947911 0.891653912426943
+ -0.502882809017811 0.8643546033858764 -0.502882809017811 0.8643546033858764
+ -0.5514076358900291 0.8342359492866327 -0.5514076358900291 0.8342359492866327
+ -0.5981338856653033 0.8013961909186528 -0.5981338856653033 0.8013961909186528
+ -0.6429091470290245 0.7659424447479145 -0.6429091470290245 0.7659424447479145
+ -0.6855873723852631 0.7279903535252857 -0.6855873723852631 0.7279903535252857
+ -0.7260293542336737 0.6876637090839059 -0.7260293542336737 0.6876637090839059
+ -0.7641031792354241 0.6450940485559584 -0.7641031792354241 0.6450940485559584
+ -0.7996846584870905 0.6004202253258841 -0.7996846584870905 0.6004202253258841
+ -0.8326577325990443 0.5537879561195048 -0.8326577325990443 0.5537879561195048
+ -0.8629148502570608 0.5053493457063482 -0.8629148502570608 0.5053493457063482
+ -0.8903573190323506 0.4552623907655068 -0.8903573190323506 0.4552623907655068
+ -0.914895627295748 0.4036904645333099 -0.914895627295748 0.4036904645333099
+ -0.9364497361860409 0.3508017839137857 -0.9364497361860409 0.3508017839137857
+ -0.9549493406800994 0.2967688607900824 -0.9549493406800994 0.2967688607900824
+ -0.9703340989132492 0.2417679393265632 -0.9703340989132492 0.2417679393265632
+ -0.9825538290018901 0.1859784210969765 -0.9825538290018901 0.1859784210969765
+ -0.9915686727263722 0.1295822799138087 -0.9915686727263722 0.1295822799138087
+ -0.9973492255402215 0.07276346826753322 -0.9973492255402215 0.07276346826753322
+ -0.9998766324816606 0.0157073173118208 -0.9998766324816606 0.0157073173118208
+ -0.9991426496745736 -0.04140006764816076 -0.9991426496745736 -0.04140006764816076
+ -0.9951496712183173 -0.09837241419257212 -0.9951496712183173 -0.09837241419257212
+ -0.9879107213786663 -0.1550238903688171 -0.9879107213786663 -0.1550238903688171
+ -0.9774494121053655 -0.211169710836747 -0.9774494121053655 -0.211169710836747
+ -0.9637998660148575 -0.2666267396000311 -0.9637998660148575 -0.2666267396000311
+ -0.9470066050894003 -0.3212140873577135 -0.9470066050894003 -0.3212140873577135
+ -0.9271244054556153 -0.3747537015275125 -0.9271244054556153 -0.3747537015275125
+ -0.9042181187161474 -0.4270709470163373 -0.9042181187161474 -0.4270709470163373
+ -0.8783624604172174 -0.4779951758436607 -0.8783624604172174 -0.4779951758436607
+ -0.8496417663420389 -0.5273602837597652 -0.8496417663420389 -0.5273602837597652
+ -0.8181497174250235 -0.5750052520432785 -0.8181497174250235 -0.5750052520432785
+ -0.783989034184045 -0.6207746727107738 -0.783989034184045 -0.6207746727107738
+ -0.7472711416674596 -0.6645192554253124 -0.7472711416674596 -0.6645192554253124
+ -0.7081158060087589 -0.7060963144504903 -0.7081158060087589 -0.7060963144504903
+ -0.6666507437743362 -0.7453702340616536 -0.6666507437743362 -0.7453702340616536
+ -0.6230112053785932 -0.7822129108962037 -0.6230112053785932 -0.7822129108962037
+ -0.5773395339251989 -0.816504171800141 -0.5773395339251989 -0.816504171800141
+ -0.5297847009134748 -0.8481321658079123 -0.5297847009134748 -0.8481321658079123
+ -0.4805018203243237 -0.8769937289770157 -0.4805018203243237 -0.8769937289770157
+ -0.4296516426706702 -0.9029947208873342 -0.4296516426706702 -0.9029947208873342
+ -0.377400030662694 -0.9260503317076225 -0.377400030662694 -0.9260503317076225
+ -0.3239174181981496 -0.9460853588275453 -0.3239174181981496 -0.9460853588275453
+ -0.2693782544424148 -0.963034452152963 -0.2693782544424148 -0.963034452152963
+ -0.21396043481157 -0.9768423272643564 -0.21396043481157 -0.9768423272643564
+ -0.1578447207145323 -0.9874639457431098 -0.1578447207145323 -0.9874639457431098
+ -0.1012141499469083 -0.9948646620774731 -0.1012141499469083 -0.9948646620774731
+ -0.04425343965974761 -0.9990203366690195 -0.04425343965974761 -0.9990203366690195
+ 0.01285161614940523 -0.9999174145709976 0.01285161614940523 -0.9999174145709976
+ 0.06991475265791544 -0.997552969701751 0.06991475265791544 -0.997552969701751
+ 0.1267498417751965 -0.9919347143889877 0.1267498417751965 -0.9919347143889877
+ 0.1831714992538486 -0.9830809742137711 0.1831714992538486 -0.9830809742137711
+ 0.2389956893745477 -0.9710206282362824 0.2389956893745477 -0.9710206282362824
+ 0.2940403252323038 -0.9557930147983302 0.2940403252323038 -0.9557930147983302
+ 0.3481258626661007 -0.9374478032098551 0.3481258626661007 -0.9374478032098551
+ 0.4010758858946331 -0.9160448317379642 0.4010758858946331 -0.9160448317379642
+ 0.4527176829479109 -0.8916539124269431 0.4527176829479109 -0.8916539124269431
+ 0.5028828090178106 -0.8643546033858768 0.5028828090178106 -0.8643546033858768
+ 0.5514076358900289 -0.8342359492866327 0.5514076358900289 -0.8342359492866327
+ 0.5981338856653029 -0.8013961909186531 0.5981338856653029 -0.8013961909186531
+ 0.642909147029024 -0.765942444747915 0.642909147029024 -0.765942444747915
+ 0.685587372385263 -0.7279903535252857 0.685587372385263 -0.7279903535252857
+ 0.7260293542336733 -0.6876637090839064 0.7260293542336733 -0.6876637090839064
+ 0.7641031792354241 -0.6450940485559585 0.7641031792354241 -0.6450940485559585
+ 0.7996846584870905 -0.6004202253258842 0.7996846584870905 -0.6004202253258842
+ 0.832657732599044 -0.5537879561195053 0.832657732599044 -0.5537879561195053
+ 0.8629148502570607 -0.5053493457063483 0.8629148502570607 -0.5053493457063483
+ 0.8903573190323507 -0.4552623907655065 0.8903573190323507 -0.4552623907655065
+ 0.9148956272957478 -0.4036904645333105 0.9148956272957478 -0.4036904645333105
+ 0.9364497361860408 -0.3508017839137859 0.9364497361860408 -0.3508017839137859
+ 0.9549493406800993 -0.296768860790083 0.9549493406800993 -0.296768860790083
+ 0.9703340989132491 -0.2417679393265637 0.9703340989132491 -0.2417679393265637
+ 0.9825538290018901 -0.1859784210969766 0.9825538290018901 -0.1859784210969766
+ 0.9915686727263721 -0.1295822799138092 0.9915686727263721 -0.1295822799138092
+ 0.9973492255402215 -0.07276346826753334 0.9973492255402215 -0.07276346826753334
--- a/data/h_init.map
+++ b/data/h_init.map
@@ -1,4 +1,4 @@
-# Created by Octave 3.0.1, Wed Jun 25 11:39:16 2008 CDT <jordi@Iris>
+# Created by Octave 3.0.1, Sun Jun 29 04:50:49 2008 CDT <jordi@Iris>
 # name: h_init
 # type: matrix
 # rows: 661
--- a/include/interpolator.hpp
+++ b/include/interpolator.hpp
@@ -94,6 +94,8 @@
     interpolator<RBF> operator/(double a) const;
     //@}
     
+    //debug
+    mutable map<std::vector<size_t>, matrix> precomp_rbfs;
   private:
     //Once the matrix is defined, this function inverts it.
     void computecoeffs(); 
@@ -137,7 +139,7 @@
      * the vector represents zeros. Thus, an empty vector represents
      * evaluation instead of derivatives.
      */
-    mutable map<std::vector<size_t>, matrix> precomp_rbfs;
+
 
     /// Precomputed values using precomp_rbfs
     mutable map<std::vector<size_t>, map<point, double> > precomp_values;
--- a/interpolator.cpp
+++ b/interpolator.cpp
@@ -260,9 +260,8 @@
       
       precomp_rbfs[alpha] = phis;
       precomp_values[alpha] = precompute_values(phis);
-      //debug
-      std::cout << "Wtf?" << std::endl;
     }
+
     
     //Are we evaluating at a precomputed point in the domain?
     if(precomp_values[alpha].find(p) != precomp_values[alpha].end())
@@ -399,8 +398,7 @@
   }
   
   template<typename RBF>
-  interpolator<RBF> interpolator<RBF>::
-  operator*(double a) const
+  interpolator<RBF> interpolator<RBF>::operator*(double a) const
   {
     interpolator<RBF> u = *this;
     u.coeffs = (this -> coeffs)*a;
@@ -408,8 +406,7 @@
   }
 
   template<typename RBF>
-  interpolator<RBF> interpolator<RBF>::
-  operator/(double a) const
+  interpolator<RBF> interpolator<RBF>::operator/(double a) const
   {
     interpolator<RBF> u = *this;
     u.coeffs = (this -> coeffs)*(1/a);
--- a/main-linear-wave-eq.cpp
+++ b/main-linear-wave-eq.cpp
@@ -51,6 +51,11 @@
 map<point, double> give_u1(const interpolator<RBF>& u,
 			   const matrix& intr);
 
+class zero_func : public realfunc{
+public:
+  double at(const point&) const{return 0;};
+};
+
 int main(){  
   gsl_set_error_handler(&error_handling::errorHandler);
 
@@ -58,49 +63,37 @@
     using namespace std;
 
     using linalg::vector;
-    matrix 
-      intr = utils::read_matrix("data/circ_intr.matrix"),
-      bdry = utils::read_matrix("data/circ_bdry.matrix"),
-      nrml = utils::read_matrix("data/circ_nrml.matrix");
     shared_ptr<domain> Omega(new domain("data/circ_intr.matrix",
 					"data/circ_bdry.matrix",
 					"data/circ_nrml.matrix")
 			     );
     //Interior conditions, init them
-    vector u_init = utils::read_vector("data/circ_init.vector");
-    map<point, double> f, u0, u1;
-    slice s(1,2);
-    for(size_t i = 1; i <= intr.rows(); i++){
-      u0[intr(i,s)] = u_init(i);
-    }
-    u1 = u0;
-    f = calc_f(u0, u1, intr);
+    map<point,double> u_init = utils::read_pd_map("data/wave_init.map");
 
     //Boundary conditions, Dirichlet, set to zero (clamped membrane)
-    map<point, double> g;
-    for(size_t i = 1; i <= bdry.rows(); i++){
-      g[bdry(i,s)] = 0;
-    }
+    zero_func g;
     
     //timestep
     double h = 0.01;
     
     shared_ptr<wave_op> W(new wave_op(h) );
     shared_ptr<dirichlet_op> D(new dirichlet_op);
-    shared_ptr<linear_BVP2> the_bvp(new linear_BVP2(Omega,W,D,f,g) );
+    shared_ptr<linear_BVP2> the_bvp(new linear_BVP2(Omega,W,D,u_init,g) );
 
     conical::set_n(5);
-    interpolator<conical> u(the_bvp);
+    interpolator<conical> u(the_bvp), u0=u, u1=u;
+    u0(*(Omega->get_interior().begin()));
+    u1(*(Omega->get_interior().begin()));
+    u(*(Omega->get_interior().begin()));
 
     //Main loop
     size_t maxiter = 1000;
     for(size_t n = 1; n <= maxiter; n++){
-      save_step(u,intr,bdry,n);
+      //save_step(u,Omega,n);
       u0 = u1;
-      u1 = give_u1(u,intr);
-      f = calc_f(u0,u1,intr);
+      u1 = u;
       cout << "Iteration: " << n << endl;
-      u.set_f(f);
+      u.set_f(2*u1 - u0);
     }
 
     return 0;
@@ -166,9 +159,9 @@
       p(1) = r*cos(th);
       p(2) = r*sin(th);
       result(i,j) = u.at(p);
-      th += 2*M_PI/(cols-1);
+      th += 2*M_PI/(double(cols)-1);
     }
-    r += 1.0/(rows-1);
+    r += 1.0/(double(rows)-1);
   }
   ofs << result;
 }
--- a/main.cpp
+++ b/main.cpp
@@ -1,8 +1,11 @@
 #include <iostream>
 #include <fstream>
 #include <map>
+#include <set>
 #include <sstream>
+
 #include <boost/shared_ptr.hpp>
+
 #include "include/linalg.hpp"
 #include "include/rbf.hpp"
 #include "include/bvp.hpp"
@@ -14,83 +17,239 @@
 
 using namespace linalg;
 using namespace bvp;
-using namespace rbf;
+
+#define RBF_TYPE rbf::conical
 
-class wave_op : public linear_diff_op2{
+//Will solve the system
+//
+//    u_t = -u*u_x - v*u_y - g*h_x         =: f1(u,v,h)
+// 
+//    v_t = -u*v_x - v*v_y - g*h_y         =: f2(u,v,h)
+//
+//    h_t = -u*h_x - h*u_x - v*h_y - h*v_y =: f3(u,v,h)
+//
+//where g is the acceleration due to gravity, u(x,y,0) = v(x,y,0) = 0,
+//and h starts out as an undisturbed surface high with a small
+//disturbance. We'll do this by RK4.
+
+
+const double g = 9.8; // m/s^2
+
+template<typename RBF>
+class Fgen : public realfunc{
 public:
-  wave_op(double h_in) : h(h_in) {} ;
-  double at(const realfunc &f, const point &p) const;
-  double at(const radial_basis_function &RBF, const point &p) const;
-private:
-  Laplacian L;
-  double h;
+  void set_interps(const interpolator<RBF>& u0, 
+		   const interpolator<RBF>& v0,
+		   const interpolator<RBF>& h0);
+  void set_u(const interpolator<RBF>& u0);
+  void set_v(const interpolator<RBF>& v0);
+  void set_h(const interpolator<RBF>& h0);
+  void set_dt(double dt_in);
+protected:
+  interpolator<RBF> u;
+  interpolator<RBF> v;
+  interpolator<RBF> h;
+  double dt;
+};
+
+template<typename RBF>
+class Fu : public Fgen<RBF>{
+  using Fgen<RBF>::u;
+  using Fgen<RBF>::v;
+  using Fgen<RBF>::h;
+  using Fgen<RBF>::dt;
+public:
+  double at(const point& p) const;
 };
 
-double wave_op::at(const realfunc &f, const point &p) const{
-  return f(p) - h*h*L(f,p);
-}
-
-double wave_op::at(const radial_basis_function &RBF, const point &p) const{
-  return RBF(p) - h*h*L(RBF,p);
-}
-
-
-using boost::shared_ptr;
-
-std::map<point,double> calc_f(const std::map<point,double>& u0,
-			      const std::map<point,double>& u1,
-			      const matrix& intr);
+template<typename RBF>
+class Fv : public Fgen<RBF>{
+  using Fgen<RBF>::u;
+  using Fgen<RBF>::v;
+  using Fgen<RBF>::h;
+  using Fgen<RBF>::dt;
+public:
+  double at(const point& p) const;
+};
 
 template<typename RBF>
-void save_step(const interpolator<RBF>& u, 
-	       const matrix& intr,
-	       const matrix& bdry,
-	       size_t n);
+class Fh : public Fgen<RBF>{
+  using Fgen<RBF>::u;
+  using Fgen<RBF>::v;
+  using Fgen<RBF>::h;
+  using Fgen<RBF>::dt;
+public:
+  double at(const point& p) const;
+};
+
+class iter_neumann : public bdry_diff_op{
+public:
+  //If this is u's, set 1, for v, set 2.
+  iter_neumann(size_t u_or_v_in);
+  double at(const realfunc &f, const point &p, const vector &n) const;
+private:
+  size_t u_or_v;
+  double at(const realfunc &f, const point &p) const {return f(p);};
+};
 
 template<typename RBF>
-map<point, double> give_u1(const interpolator<RBF>& u,
-			   const matrix& intr);
+class Gu_or_v : public realfunc{
+public:
+  //specify the OTHER, whether u or v.
+  Gu_or_v(size_t u_or_v_in, 
+	  const shared_ptr<domain> Omega_in) : u_or_v(u_or_v_in),
+					       Omega(Omega_in) {};
+  double at(const point& p) const;
+  void set_other(const interpolator<RBF>& other_in){other = other_in;};
+private:
+  size_t u_or_v;
+  const shared_ptr<domain> Omega;
+  interpolator<RBF> other;
+};
 
 class zero_func : public realfunc{
 public:
-  double at(const point&) const{return 0;};
+  double at(const point& p) const{p.size(); return 0;};
 };
 
-int main(){  
+//************ Function declarations ****************************
+
+template<typename RBF>
+void save_interp(const shared_ptr<domain> Omega, 
+		 const interpolator<RBF>& u, 
+		 size_t n, string which_interp);
+
+template<typename RBF>
+void bdry_iter(interpolator<RBF> &u, interpolator<RBF> &v, 
+	       const boost::shared_ptr<domain> Omega);
+
+
+//********************** Main ******************************************
+int main()
+{  
   gsl_set_error_handler(&error_handling::errorHandler);
 
   try{
     using namespace std;
-
-    using linalg::vector;
+    using boost::shared_ptr;
+    
+    map<point, double> h_init = utils::read_pd_map("data/h_init.map");
+      
     shared_ptr<domain> Omega(new domain("data/circ_intr.matrix",
 					"data/circ_bdry.matrix",
-					"data/circ_nrml.matrix")
-			     );
-    //Interior conditions, init them
-    map<point,double> u_init = utils::read_pd_map("data/wave_init.map");
+					"data/circ_nrml.matrix"));
+
+    shared_ptr<Id_op> I(new Id_op);
+    shared_ptr<iter_neumann> 
+      u_bdry_op(new iter_neumann(1)), 
+      v_bdry_op(new iter_neumann(2));
+    zero_func Z;
+    shared_ptr<linear_BVP2> 
+      u_bvp_init(new linear_BVP2(Omega, I, u_bdry_op, Z, Z)),
+      v_bvp_init(new linear_BVP2(Omega, I, v_bdry_op, Z, Z));
+      
+   
+    double dt = 1e-2;
+
+    //init the interps.
+    using namespace rbf;
+    conical::set_n(5); thin_plate_spline::set_n(6); 
+    c_infty_rbf::set_epsilon(0.01);
+
+    cout << "Initialising... please wait." << endl;
+
+    interpolator<RBF_TYPE> 
+      u1, u0(u_bvp_init), 
+      v1, v0(v_bvp_init), 
+      h1, h0(Omega, h_init);
+
+    //FIXME: put proper precomp function here.
+    point p = *(Omega -> get_interior().begin());
+    u0(p); v0(p); h0(p); 
+    u0.d(p,1); v0.d(p,1); h0.d(p,1); 
+    u0.d(p,2); v0.d(p,2); h0.d(p,2); 
+
+    u1 = u0; v1 = v0; h1 = h0;
+
+    //Intermediate interpolators for RK4
+    std::vector<interpolator<RBF_TYPE> >
+      k1(3,h0), k2(3,h0), k3(3,h0), k4(3,h0);
+
+    Fu<RBF_TYPE> f_u;
+    Fv<RBF_TYPE> f_v;
+    Fh<RBF_TYPE> f_h;
+
+    f_u.set_dt(dt);
+    f_v.set_dt(dt);
+    f_h.set_dt(dt);
+
+
 
-    //Boundary conditions, Dirichlet, set to zero (clamped membrane)
-    zero_func g;
-    
-    //timestep
-    double h = 0.01;
-    
-    shared_ptr<wave_op> W(new wave_op(h) );
-    shared_ptr<dirichlet_op> D(new dirichlet_op);
-    shared_ptr<linear_BVP2> the_bvp(new linear_BVP2(Omega,W,D,u_init,g) );
+    //main loop
+    size_t maxiter = 10;
+    for(size_t i = 1; i <= maxiter; i++){ 
+      cout << "Now on iteration #" << i << endl;
+      if(i % 1 == 0){
+	save_interp(Omega,u0,i,"u");
+	save_interp(Omega,v0,i,"v");
+	save_interp(Omega,h0,i,"h");
+      }
+
+      //k1 
+      f_u.set_interps(u0,v0,h0);
+      f_v.set_interps(u0,v0,h0);
+      f_h.set_interps(u0,v0,h0);
+      
+      k1[0].set_f(f_u);
+      k1[1].set_f(f_v);
+      k1[2].set_f(f_h);
+
+      bdry_iter(k1[0],k1[1],Omega);
+           
+      //k2
+      f_u.set_interps(u0+(k1[0]/2), v0+(k1[1]/2), h0+(k1[2]/2));
+      f_v.set_interps(u0+(k1[0]/2), v0+(k1[1]/2), h0+(k1[2]/2));
+      f_h.set_interps(u0+(k1[0]/2), v0+(k1[1]/2), h0+(k1[2]/2));
+ 
+      k2[0].set_f(f_u);
+      k2[1].set_f(f_v);
+      k2[2].set_f(f_h);
+
+      bdry_iter(k2[0],k2[1],Omega);
 
-    conical::set_n(5);
-    interpolator<conical> u(the_bvp), u0=u, u1=u;
+      //k3      
+      f_u.set_interps(u0+(k2[0]/2), v0+(k2[1]/2), h0+(k2[2]/2));
+      f_v.set_interps(u0+(k2[0]/2), v0+(k2[1]/2), h0+(k2[2]/2));
+      f_h.set_interps(u0+(k2[0]/2), v0+(k2[1]/2), h0+(k2[2]/2));
+      
+      k3[0].set_f(f_u);
+      k3[1].set_f(f_v);
+      k3[2].set_f(f_h);
+
+      bdry_iter(k3[0],k3[1],Omega);
 
-    //Main loop
-    size_t maxiter = 1000;
-    for(size_t n = 1; n <= maxiter; n++){
-      //save_step(u,Omega,n);
+      //k4
+      f_u.set_interps(u0+k3[0], v0+k3[1], h0+k3[2]);
+      f_v.set_interps(u0+k3[0], v0+k3[1], h0+k3[2]);
+      f_h.set_interps(u0+k3[0], v0+k3[1], h0+k3[2]);
+      
+      k4[0].set_f(f_u);
+      k4[1].set_f(f_v);
+      k4[2].set_f(f_h);
+
+      bdry_iter(k4[0],k4[1],Omega);
+     
+      //Grand finale
+      u1.set_f(u0 + (k1[0] + 2*k2[0] + 2*k3[0] + k4[0])/6);
+      v1.set_f(v0 + (k1[1] + 2*k2[1] + 2*k3[1] + k4[1])/6);
+      h1.set_f(h0 + (k1[2] + 2*k2[2] + 2*k3[2] + k4[2])/6);
+     
+      //Enforce boundary conditions iteratively
+      bdry_iter(u1,v1,Omega);
+      
       u0 = u1;
-      u1 = u;
-      cout << "Iteration: " << n << endl;
-      u.set_f(2*u1 - u0);
+      v0 = v1;
+      h0 = h1;
     }
 
     return 0;
@@ -102,27 +261,93 @@
 
 }
 
-std::map<point,double> calc_f(const std::map<point,double>& u0,
-			      const std::map<point,double>& u1,
-			      const matrix& intr)
+//******************* Function definitions ***************************
+
+template<typename RBF>
+void Fgen<RBF>::set_interps(const interpolator<RBF>& u0, 
+			    const interpolator<RBF>& v0,
+			    const interpolator<RBF>& h0){
+  set_u(u0);
+  set_v(v0);
+  set_h(h0);
+}
+
+template<typename RBF>
+void Fgen<RBF>::set_u(const interpolator<RBF>& u0)
+{
+  u = u0;
+}
+
+template<typename RBF>
+void Fgen<RBF>::set_v(const interpolator<RBF>& v0)
 {
-  std::map<point, double> f;
-  slice s(1,2);
-  for(size_t i = 1; i <= intr.rows(); i++){
-    f[intr(i,s)] = 2*u1.at(intr(i,s)) - u0.at(intr(i,s));
-  }
-  return f;
+  v = v0;
+}
+
+template<typename RBF>
+void Fgen<RBF>::set_h(const interpolator<RBF>& h0)
+{
+  h = h0;
+}
+
+template<typename RBF>
+void Fgen<RBF>::set_dt(double dt_in)
+{
+  dt = dt_in;
+}
+
+
+template<typename RBF>
+double Fu<RBF>::at(const point& p) const
+{
+  return   dt*(u(p)*u.d(p,1) +  v(p)*u.d(p,2) +  g*h.d(p,1));
 }
 
-template <typename RBF>
-void save_step(const interpolator<RBF>& u,
-	       const matrix& intr,
-	       const matrix& bdry,
-	       size_t n)
+template<typename RBF>
+double Fv<RBF>::at(const point& p) const
+{
+  return   dt*(u(p)*v.d(p,1) +  v(p)*v.d(p,2) +  g*h.d(p,2));
+}
+
+template<typename RBF>
+double Fh<RBF>::at(const point& p) const
+{
+  return   dt*(u(p)*h.d(p,1) + h(p)*u.d(p,1) +   v(p)*h.d(p,2) + h(p)*v.d(p,2));
+}
+
+iter_neumann::iter_neumann(size_t u_or_v_in)
+{
+  if(u_or_v_in < 1 or u_or_v_in > 2){
+    error_handling::badArgument exc;
+    exc.reason = "Argument to iter_neumann constructor must be 1 or 2";
+    exc.line = __LINE__;
+    exc.file = __FILE__;
+    throw exc;
+  }
+  u_or_v = u_or_v_in;
+}
+
+double iter_neumann::at(const realfunc &f, const point &p, 
+			const vector &n) const
+{
+  return n(u_or_v)*f(p);
+}
+
+template<typename RBF>
+double Gu_or_v<RBF>::at(const point& p) const
+{
+  point n = Omega -> get_normals().at(p);
+  return -n(u_or_v)*other(p);
+}
+
+
+template<typename RBF>
+void save_interp(const shared_ptr<domain> Omega, 
+		 const interpolator<RBF>& u, 
+		 size_t n, string which_interp)
 {
   using namespace std;
-
-  string filename = "results/u";
+  string filename = "results/" + which_interp;
   if(n < 10000)
     filename += "0";
   if(n < 1000)
@@ -135,41 +360,65 @@
   string n_string;
   ss << n;
   ss >> n_string;
-  //filename += n_string + ".vector";
-  filename += n_string + ".matrix";
+  filename += n_string + ".map";
   ofstream ofs(filename.c_str());
 
-//   slice s(1,2);
-//   for(size_t i = 1; i <= intr.rows(); i++)
-//     ofs << u.at(intr(i,s)) << endl;
-//   for(size_t i = 1; i <= bdry.rows(); i++)
-//     ofs << u.at(bdry(i,s)) << endl;
-  intr.rows();
-  bdry.rows();
-  size_t rows = 20, cols = 30;
-  matrix result(rows,cols);
-  double r = 0;
-  for(size_t i = 1; i <= rows; i++){
-    double th = 0;
-    for(size_t j = 1; j <= cols; j++){
-      point p(2);
-      p(1) = r*cos(th);
-      p(2) = r*sin(th);
-      result(i,j) = u.at(p);
-      th += 2*M_PI/(double(cols)-1);
-    }
-    r += 1.0/(double(rows)-1);
+  slice s(1,2);
+  matrix M(Omega -> get_interior().size() +
+	   Omega -> get_boundary().size(), 3);
+  size_t k = 1;
+  for(set<point>::const_iterator i = Omega -> get_interior().begin();
+      i != Omega -> get_interior().end(); i++){
+    M(k,s) = *i;
+    M(k,3) = u(*i);
+    k++;
   }
-  ofs << result;
+  for(set<point>::const_iterator i = Omega -> get_boundary().begin();
+      i != Omega -> get_boundary().end(); i++){
+    M(k,s) = *i;
+    M(k,3) = u(*i);
+    k++;
+  }
+  ofs << M;
 }
 
 template<typename RBF>
-map<point, double> give_u1(const interpolator<RBF>& u,
-			   const matrix& intr)
+linalg::vector at_bdry(const interpolator<RBF>& u,
+		       const boost::shared_ptr<domain> Omega)
+{
+  using namespace linalg;
+
+  vector out(Omega -> get_boundary().size());
+  std::set<point>::const_iterator I = Omega -> get_boundary().begin();
+
+  for(size_t i = 1; i <= out.size(); i++){
+    out(i) = u(*I);
+    I++;
+  }
+
+  return out;
+}
+
+template<typename RBF>
+void bdry_iter(interpolator<RBF> &u, interpolator<RBF> &v, 
+	       const boost::shared_ptr<domain> Omega)
 {
-  map<point, double> u1;
-  slice s(1,2);
-  for(size_t i = 1; i <= intr.rows(); i++)
-    u1[intr(i,s)] = u.at(intr(i,s));
-  return u1;
+  Gu_or_v<RBF_TYPE> gu(2, Omega), gv(1, Omega);
+  double err = 1;
+  do{    
+    linalg::vector u_old, u_new, v_old, v_new;
+    u_old = at_bdry(u,Omega);
+    gu.set_other(v);
+    u.set_g(gu);
+    u_new = at_bdry(u,Omega);
+
+    v_old = at_bdry(v,Omega);
+    gv.set_other(u);
+    v.set_g(gv);
+    v_new = at_bdry(v,Omega);
+    
+    double err_u = norm(u_new - u_old);
+    double err_v = norm(v_new - v_old);
+    err = (err_u > err_v? err_u : err_v);
+  }while(err > 1e-2);
 }