From f6a27c93f8124b054f8fff67e472746e6b1dbef2 Mon Sep 17 00:00:00 2001 From: WeileiZeng <240155787@qq.com> Date: Sat, 11 Apr 2020 12:51:52 -0700 Subject: [PATCH] add flexible --- ...bp3-feedback5-cycle0-10000-schedule.gnudat | 26 +++++++------- ...p3-feedback5-num-data-1000-flexible.gnudat | 16 +++++++++ ...-feedback5-num-data-1000-schedule-p.gnudat | 16 +++++++++ ...p3-feedback5-num-data-1000-schedule.gnudat | 13 +++++++ ...bp3-feedback5-num-data-200-schedule.gnudat | 13 +++++++ gnuplot/toric_rate.gnu | 34 +++++++++++------- my_bp3.c | 17 ++++----- my_bp3.out | Bin 240832 -> 240984 bytes readme.md | 3 +- 9 files changed, 103 insertions(+), 35 deletions(-) create mode 100644 gnuplot/result/my-bp3-feedback5-num-data-1000-flexible.gnudat create mode 100644 gnuplot/result/my-bp3-feedback5-num-data-1000-schedule-p.gnudat create mode 100644 gnuplot/result/my-bp3-feedback5-num-data-1000-schedule.gnudat create mode 100644 gnuplot/result/my-bp3-feedback5-num-data-200-schedule.gnudat diff --git a/gnuplot/result/my-bp3-feedback5-cycle0-10000-schedule.gnudat b/gnuplot/result/my-bp3-feedback5-cycle0-10000-schedule.gnudat index 60cd104..43a7c67 100644 --- a/gnuplot/result/my-bp3-feedback5-cycle0-10000-schedule.gnudat +++ b/gnuplot/result/my-bp3-feedback5-cycle0-10000-schedule.gnudat @@ -1,19 +1,19 @@ #header sizes: 13, 11, 9, 7, 5, p, P_c converge rate, zero error vectors, weight one error, weight 2 error -0.019953 0.995709 0.000000 0.000000 0.000000 0.019953 0.996677 0.000000 0.000000 0.000000 0.019953 0.997224 0.000000 0.000000 0.000000 0.019953 0.997392 0.000000 0.000000 0.000000 0.019953 0.998486 0.000000 0.000000 0.000000 -0.015849 0.998337 0.000000 0.000000 0.000000 0.015849 0.998320 0.000000 0.000000 0.000000 0.015849 0.998695 0.000000 0.000000 0.000000 0.015849 0.998695 0.000000 0.000000 0.000000 0.015849 0.999160 0.000000 0.000000 0.000000 -0.012589 0.999453 0.000000 0.000000 0.000000 0.012589 0.999271 0.000000 0.000000 0.000000 0.012589 0.999468 0.000000 0.000000 0.000000 0.012589 0.999438 0.000000 0.000000 0.000000 0.012589 0.999544 0.000000 0.000000 0.000000 -0.010000 0.999819 0.000000 0.000000 0.000000 0.010000 0.999703 0.000000 0.000000 0.000000 0.010000 0.999690 0.000000 0.000000 0.000000 0.010000 0.999806 0.000000 0.000000 0.000000 0.010000 0.999819 0.000000 0.000000 0.000000 -0.007943 0.999901 0.000000 0.000000 0.000000 0.007943 0.999890 0.000000 0.000000 0.000000 0.007943 0.999868 0.000000 0.000000 0.000000 0.007943 0.999912 0.000000 0.000000 0.000000 0.007943 0.999868 0.000000 0.000000 0.000000 -0.006310 0.999925 0.000000 0.000000 0.000000 0.006310 0.999972 0.000000 0.000000 0.000000 0.006310 0.999991 0.000000 0.000000 0.000000 0.006310 0.999907 0.000000 0.000000 0.000000 0.006310 0.999963 0.000000 0.000000 0.000000 -0.005012 0.999937 0.000000 0.000000 0.000000 0.005012 1.000000 0.000000 0.000000 0.000000 0.005012 0.999968 0.000000 0.000000 0.000000 0.005012 0.999976 0.000000 0.000000 0.000000 0.005012 0.999992 0.000000 0.000000 0.000000 -0.003981 0.999993 0.000000 0.000000 0.000000 0.003981 0.999987 0.000000 0.000000 0.000000 0.003981 0.999987 0.000000 0.000000 0.000000 0.003981 0.999980 0.000000 0.000000 0.000000 0.003981 0.999980 0.000000 0.000000 0.000000 -0.003162 1.000000 0.000000 0.000000 0.000000 0.003162 0.999989 0.000000 0.000000 0.000000 0.003162 1.000000 0.000000 0.000000 0.000000 0.003162 0.999989 0.000000 0.000000 0.000000 0.003162 1.000000 0.000000 0.000000 0.000000 -0.002512 0.999995 0.000000 0.000000 0.000000 0.002512 0.999985 0.000000 0.000000 0.000000 0.002512 1.000000 0.000000 0.000000 0.000000 0.002512 1.000000 0.000000 0.000000 0.000000 0.002512 0.999995 0.000000 0.000000 0.000000 -0.001995 1.000000 0.000000 0.000000 0.000000 0.001995 0.999996 0.000000 0.000000 0.000000 0.001995 1.000000 0.000000 0.000000 0.000000 0.001995 1.000000 0.000000 0.000000 0.000000 0.001995 1.000000 0.000000 0.000000 0.000000 -0.001585 1.000000 0.000000 0.000000 0.000000 0.001585 1.000000 0.000000 0.000000 0.000000 0.001585 1.000000 0.000000 0.000000 0.000000 0.001585 1.000000 0.000000 0.000000 0.000000 0.001585 0.999996 0.000000 0.000000 0.000000 -0.001259 1.000000 0.000000 0.000000 0.000000 0.001259 1.000000 0.000000 0.000000 0.000000 0.001259 0.999997 0.000000 0.000000 0.000000 0.001259 1.000000 0.000000 0.000000 0.000000 0.001259 1.000000 0.000000 0.000000 0.000000 +0.019953 0.995767 0.000000 0.000000 0.000000 0.019953 0.996800 0.000000 0.000000 0.000000 0.019953 0.997033 0.000000 0.000000 0.000000 0.019953 0.998000 0.000000 0.000000 0.000000 0.019953 0.998267 0.000000 0.000000 0.000000 +0.015849 0.998393 0.000000 0.000000 0.000000 0.015849 0.998393 0.000000 0.000000 0.000000 0.015849 0.998922 0.000000 0.000000 0.000000 0.015849 0.998785 0.000000 0.000000 0.000000 0.015849 0.999118 0.000000 0.000000 0.000000 +0.012589 0.999459 0.000000 0.000000 0.000000 0.012589 0.999459 0.000000 0.000000 0.000000 0.012589 0.999551 0.000000 0.000000 0.000000 0.012589 0.999470 0.000000 0.000000 0.000000 0.012589 0.999574 0.000000 0.000000 0.000000 +0.010000 0.999729 0.000000 0.000000 0.000000 0.010000 0.999722 0.000000 0.000000 0.000000 0.010000 0.999716 0.000000 0.000000 0.000000 0.010000 0.999831 0.000000 0.000000 0.000000 0.010000 0.999770 0.000000 0.000000 0.000000 +0.007943 0.999908 0.000000 0.000000 0.000000 0.007943 0.999897 0.000000 0.000000 0.000000 0.007943 0.999861 0.000000 0.000000 0.000000 0.007943 0.999897 0.000000 0.000000 0.000000 0.007943 0.999904 0.000000 0.000000 0.000000 +0.006310 0.999951 0.000000 0.000000 0.000000 0.006310 0.999932 0.000000 0.000000 0.000000 0.006310 0.999951 0.000000 0.000000 0.000000 0.006310 0.999956 0.000000 0.000000 0.000000 0.006310 0.999944 0.000000 0.000000 0.000000 +0.005012 0.999966 0.000000 0.000000 0.000000 0.005012 0.999979 0.000000 0.000000 0.000000 0.005012 0.999975 0.000000 0.000000 0.000000 0.005012 0.999981 0.000000 0.000000 0.000000 0.005012 0.999982 0.000000 0.000000 0.000000 +0.003981 0.999985 0.000000 0.000000 0.000000 0.003981 0.999980 0.000000 0.000000 0.000000 0.003981 0.999985 0.000000 0.000000 0.000000 0.003981 0.999989 0.000000 0.000000 0.000000 0.003981 0.999992 0.000000 0.000000 0.000000 +0.003162 0.999995 0.000000 0.000000 0.000000 0.003162 0.999995 0.000000 0.000000 0.000000 0.003162 0.999991 0.000000 0.000000 0.000000 0.003162 0.999995 0.000000 0.000000 0.000000 0.003162 0.999991 0.000000 0.000000 0.000000 +0.002512 0.999997 0.000000 0.000000 0.000000 0.002512 0.999996 0.000000 0.000000 0.000000 0.002512 0.999997 0.000000 0.000000 0.000000 0.002512 0.999996 0.000000 0.000000 0.000000 0.002512 0.999997 0.000000 0.000000 0.000000 +0.001995 0.999998 0.000000 0.000000 0.000000 0.001995 0.999998 0.000000 0.000000 0.000000 0.001995 0.999998 0.000000 0.000000 0.000000 0.001995 0.999997 0.000000 0.000000 0.000000 0.001995 0.999999 0.000000 0.000000 0.000000 +0.001585 1.000000 0.000000 0.000000 0.000000 0.001585 0.999999 0.000000 0.000000 0.000000 0.001585 0.999999 0.000000 0.000000 0.000000 0.001585 1.000000 0.000000 0.000000 0.000000 0.001585 0.999999 0.000000 0.000000 0.000000 +0.001259 1.000000 0.000000 0.000000 0.000000 0.001259 0.999999 0.000000 0.000000 0.000000 0.001259 0.999999 0.000000 0.000000 0.000000 0.001259 1.000000 0.000000 0.000000 0.000000 0.001259 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 diff --git a/gnuplot/result/my-bp3-feedback5-num-data-1000-flexible.gnudat b/gnuplot/result/my-bp3-feedback5-num-data-1000-flexible.gnudat new file mode 100644 index 0000000..7dabd10 --- /dev/null +++ b/gnuplot/result/my-bp3-feedback5-num-data-1000-flexible.gnudat @@ -0,0 +1,16 @@ +#header +sizes: 13, 11, 9, 7, 5, + p, P_c converge rate, zero error vectors, weight one error, weight 2 error +0.251189 0.012589 0.999177 61978.000000 0.000000 0.251189 0.012589 0.999515 105123.000000 0.000000 0.251189 0.012589 0.999411 86568.000000 0.000000 0.251189 0.012589 0.999633 138944.000000 0.000000 0.251189 0.012589 0.999592 125061.000000 0.000000 +0.199526 0.019231 52.000000 0.000000 0.000000 0.199526 0.072727 55.000000 0.000000 0.000000 0.199526 0.354430 79.000000 0.000000 0.000000 0.199526 0.474227 97.000000 0.000000 0.000000 0.199526 0.690909 165.000000 0.000000 0.000000 +0.158489 0.055556 54.000000 0.000000 0.000000 0.158489 0.105263 57.000000 0.000000 0.000000 0.158489 0.271429 70.000000 0.000000 0.000000 0.158489 0.514286 105.000000 0.000000 0.000000 0.158489 0.732984 191.000000 0.000000 0.000000 +0.125893 0.105263 57.000000 0.000000 0.000000 0.125893 0.190476 63.000000 0.000000 0.000000 0.125893 0.227273 66.000000 0.000000 0.000000 0.125893 0.556522 115.000000 0.000000 0.000000 0.125893 0.808271 266.000000 0.000000 0.000000 +0.100000 0.215385 65.000000 0.000000 0.000000 0.100000 0.370370 81.000000 0.000000 0.000000 0.100000 0.532110 109.000000 0.000000 0.000000 0.100000 0.737113 194.000000 0.000000 0.000000 0.100000 0.860274 365.000000 0.000000 0.000000 +0.079433 0.523364 107.000000 0.000000 0.000000 0.079433 0.509615 104.000000 0.000000 0.000000 0.079433 0.701754 171.000000 0.000000 0.000000 0.079433 0.782051 234.000000 0.000000 0.000000 0.079433 0.913851 592.000000 0.000000 0.000000 +0.063096 0.679245 159.000000 0.000000 0.000000 0.063096 0.790984 244.000000 0.000000 0.000000 0.063096 0.815884 277.000000 0.000000 0.000000 0.063096 0.908438 557.000000 0.000000 0.000000 0.063096 0.937576 817.000000 0.000000 0.000000 +0.050119 0.902857 525.000000 0.000000 0.000000 0.050119 0.924220 673.000000 0.000000 0.000000 0.050119 0.928671 715.000000 0.000000 0.000000 0.050119 0.954137 1112.000000 0.000000 0.000000 0.050119 0.970857 1750.000000 0.000000 0.000000 +0.039811 0.944444 918.000000 0.000000 0.000000 0.039811 0.962583 1363.000000 0.000000 0.000000 0.039811 0.966775 1535.000000 0.000000 0.000000 0.039811 0.980497 2615.000000 0.000000 0.000000 0.039811 0.983810 3150.000000 0.000000 0.000000 +0.031623 0.977816 2299.000000 0.000000 0.000000 0.031623 0.978252 2345.000000 0.000000 0.000000 0.031623 0.986171 3688.000000 0.000000 0.000000 0.031623 0.991071 5712.000000 0.000000 0.000000 0.031623 0.990552 5398.000000 0.000000 0.000000 +0.025119 0.991891 6289.000000 0.000000 0.000000 0.025119 0.991865 6269.000000 0.000000 0.000000 0.025119 0.994817 9840.000000 0.000000 0.000000 0.025119 0.993664 8049.000000 0.000000 0.000000 0.025119 0.995723 11923.000000 0.000000 0.000000 +0.019953 0.995950 12594.000000 0.000000 0.000000 0.019953 0.997005 17028.000000 0.000000 0.000000 0.019953 0.997041 17233.000000 0.000000 0.000000 0.019953 0.998004 25553.000000 0.000000 0.000000 0.019953 0.998110 26987.000000 0.000000 0.000000 +0.015849 0.998583 35986.000000 0.000000 0.000000 0.015849 0.998575 35788.000000 0.000000 0.000000 0.015849 0.998350 30903.000000 0.000000 0.000000 0.015849 0.999115 57612.000000 0.000000 0.000000 0.015849 0.998992 50580.000000 0.000000 0.000000 diff --git a/gnuplot/result/my-bp3-feedback5-num-data-1000-schedule-p.gnudat b/gnuplot/result/my-bp3-feedback5-num-data-1000-schedule-p.gnudat new file mode 100644 index 0000000..c0d1b4a --- /dev/null +++ b/gnuplot/result/my-bp3-feedback5-num-data-1000-schedule-p.gnudat @@ -0,0 +1,16 @@ +#header +sizes: 13, 11, 9, 7, 5, + p, P_c converge rate, zero error vectors, weight one error, weight 2 error +0.251189 0.012589 0.999431 75507.000000 0.000000 0.251189 0.012589 0.999393 148259.000000 0.000000 0.251189 0.012589 0.999456 351317.000000 0.000000 0.251189 0.012589 0.999513 1000000.000000 0.000000 0.251189 0.012589 0.999559 1000000.000000 0.000000 +0.199526 0.037500 1040.000000 0.000000 0.000000 0.199526 0.098198 1110.000000 0.000000 0.000000 0.199526 0.244528 1325.000000 0.000000 0.000000 0.199526 0.476738 1913.000000 0.000000 0.000000 0.199526 0.735395 3783.000000 0.000000 0.000000 +0.158489 0.051185 1055.000000 0.000000 0.000000 0.158489 0.124234 1143.000000 0.000000 0.000000 0.158489 0.285510 1401.000000 0.000000 0.000000 0.158489 0.521282 2091.000000 0.000000 0.000000 0.158489 0.766067 4279.000000 0.000000 0.000000 +0.125893 0.102242 1115.000000 0.000000 0.000000 0.125893 0.222826 1288.000000 0.000000 0.000000 0.125893 0.392228 1647.000000 0.000000 0.000000 0.125893 0.605595 2538.000000 0.000000 0.000000 0.125893 0.813837 5377.000000 0.000000 0.000000 +0.100000 0.263429 1359.000000 0.000000 0.000000 0.100000 0.381335 1618.000000 0.000000 0.000000 0.100000 0.523787 2102.000000 0.000000 0.000000 0.100000 0.721248 3591.000000 0.000000 0.000000 0.100000 0.874309 7964.000000 0.000000 0.000000 +0.079433 0.498497 1996.000000 0.000000 0.000000 0.079433 0.605595 2538.000000 0.000000 0.000000 0.079433 0.716591 3532.000000 0.000000 0.000000 0.079433 0.823051 5657.000000 0.000000 0.000000 0.079433 0.916465 11983.000000 0.000000 0.000000 +0.063096 0.737565 3639.000000 0.000000 0.000000 0.063096 0.798470 4967.000000 0.000000 0.000000 0.063096 0.845453 6477.000000 0.000000 0.000000 0.063096 0.897972 9811.000000 0.000000 0.000000 0.063096 0.953809 21671.000000 0.000000 0.000000 +0.050119 0.884436 5789.000000 0.000000 0.000000 0.050119 0.904676 10501.000000 0.000000 0.000000 0.050119 0.928678 14035.000000 0.000000 0.000000 0.050119 0.950917 20394.000000 0.000000 0.000000 0.050119 0.971269 34841.000000 0.000000 0.000000 +0.039811 0.945981 10052.000000 0.000000 0.000000 0.039811 0.960652 21602.000000 0.000000 0.000000 0.039811 0.968371 31648.000000 0.000000 0.000000 0.039811 0.974096 38643.000000 0.000000 0.000000 0.039811 0.985193 67602.000000 0.000000 0.000000 +0.031623 0.979309 16384.000000 0.000000 0.000000 0.031623 0.982636 34382.000000 0.000000 0.000000 0.031623 0.985674 69873.000000 0.000000 0.000000 0.031623 0.989148 92242.000000 0.000000 0.000000 0.031623 0.992717 137452.000000 0.000000 0.000000 +0.025119 0.991364 26401.000000 0.000000 0.000000 0.025119 0.992197 57027.000000 0.000000 0.000000 0.025119 0.993685 131114.000000 0.000000 0.000000 0.025119 0.994780 191757.000000 0.000000 0.000000 0.025119 0.996205 263740.000000 0.000000 0.000000 +0.019953 0.996149 38948.000000 0.000000 0.000000 0.019953 0.996888 80665.000000 0.000000 0.000000 0.019953 0.997263 196210.000000 0.000000 0.000000 0.019953 0.997594 416056.000000 0.000000 0.000000 0.019953 0.998162 544613.000000 0.000000 0.000000 +0.015849 0.998499 65978.000000 0.000000 0.000000 0.015849 0.998477 114246.000000 0.000000 0.000000 0.015849 0.998739 259365.000000 0.000000 0.000000 0.015849 0.998894 905018.000000 0.000000 0.000000 0.015849 0.999061 1000000.000000 0.000000 0.000000 diff --git a/gnuplot/result/my-bp3-feedback5-num-data-1000-schedule.gnudat b/gnuplot/result/my-bp3-feedback5-num-data-1000-schedule.gnudat new file mode 100644 index 0000000..91d4d96 --- /dev/null +++ b/gnuplot/result/my-bp3-feedback5-num-data-1000-schedule.gnudat @@ -0,0 +1,13 @@ +#header +sizes: 13, 11, 9, 7, 5, + p, P_c converge rate, zero error vectors, weight one error, weight 2 error +0.019953 0.996267 155366.000000 0.000000 0.000000 0.019953 0.996713 304520.000000 0.000000 0.000000 0.019953 0.997176 354431.000000 0.000000 0.000000 0.019953 0.997611 419053.000000 0.000000 0.000000 0.019953 0.998158 543505.000000 0.000000 0.000000 +0.015849 0.998484 222940.000000 0.000000 0.000000 0.015849 0.998713 495776.000000 0.000000 0.000000 0.015849 0.998727 786620.000000 0.000000 0.000000 0.015849 0.998930 935826.000000 0.000000 0.000000 0.015849 0.999069 1075099.000000 0.000000 0.000000 +0.012589 0.999317 279562.000000 0.000000 0.000000 0.012589 0.999390 636327.000000 0.000000 0.000000 0.012589 0.999429 1388069.000000 0.000000 0.000000 0.012589 0.999535 2152425.000000 0.000000 0.000000 0.012589 0.999567 2310564.000000 0.000000 0.000000 +0.010000 0.999744 371473.000000 0.000000 0.000000 0.010000 0.999718 807270.000000 0.000000 0.000000 0.010000 0.999749 1894971.000000 0.000000 0.000000 0.010000 0.999775 4452860.000000 0.000000 0.000000 0.010000 0.999794 4861804.000000 0.000000 0.000000 +0.007943 0.999890 428623.000000 0.000000 0.000000 0.007943 0.999875 957237.000000 0.000000 0.000000 0.007943 0.999873 2249543.000000 0.000000 0.000000 0.007943 0.999896 9535977.000000 0.000000 0.000000 0.007943 0.999898 9850873.000000 0.000000 0.000000 +0.006310 0.999925 535675.000000 0.000000 0.000000 0.006310 0.999945 1468876.000000 0.000000 0.000000 0.006310 0.999949 2743353.000000 0.000000 0.000000 0.006310 0.999947 10000000.000000 0.000000 0.000000 0.006310 0.999948 10000000.000000 0.000000 0.000000 +0.005012 0.999960 628814.000000 0.000000 0.000000 0.005012 0.999975 1411546.000000 0.000000 0.000000 0.005012 0.999977 3335611.000000 0.000000 0.000000 0.005012 0.999976 10000000.000000 0.000000 0.000000 0.005012 0.999978 10000000.000000 0.000000 0.000000 +0.003981 0.999986 730542.000000 0.000000 0.000000 0.003981 0.999991 1706501.000000 0.000000 0.000000 0.003981 0.999988 5343610.000000 0.000000 0.000000 0.003981 0.999986 10000000.000000 0.000000 0.000000 0.003981 0.999988 10000000.000000 0.000000 0.000000 +0.003162 0.999992 1164930.000000 0.000000 0.000000 0.003162 0.999996 2052958.000000 0.000000 0.000000 0.003162 0.999993 5000142.000000 0.000000 0.000000 0.003162 0.999993 10000000.000000 0.000000 0.000000 0.003162 0.999995 10000000.000000 0.000000 0.000000 +0.002512 0.999996 1501968.000000 0.000000 0.000000 0.002512 0.999997 2683057.000000 0.000000 0.000000 0.002512 0.999996 5897755.000000 0.000000 0.000000 0.002512 0.999998 10000000.000000 0.000000 0.000000 0.002512 0.999998 10000000.000000 0.000000 0.000000 diff --git a/gnuplot/result/my-bp3-feedback5-num-data-200-schedule.gnudat b/gnuplot/result/my-bp3-feedback5-num-data-200-schedule.gnudat new file mode 100644 index 0000000..efc9c29 --- /dev/null +++ b/gnuplot/result/my-bp3-feedback5-num-data-200-schedule.gnudat @@ -0,0 +1,13 @@ +#header +sizes: 13, 11, 9, 7, 5, + p, P_c converge rate, zero error vectors, weight one error, weight 2 error +0.019953 0.996276 53980.000000 0.000000 0.000000 0.019953 0.997211 72061.000000 0.000000 0.000000 0.019953 0.997052 68189.000000 0.000000 0.000000 0.019953 0.997903 95864.000000 0.000000 0.000000 0.019953 0.998037 102370.000000 0.000000 0.000000 +0.015849 0.998422 127346.000000 0.000000 0.000000 0.015849 0.998610 144652.000000 0.000000 0.000000 0.015849 0.998728 157984.000000 0.000000 0.000000 0.015849 0.998996 200236.000000 0.000000 0.000000 0.015849 0.999007 202328.000000 0.000000 0.000000 +0.012589 0.999379 261056.000000 0.000000 0.000000 0.012589 0.999470 379271.000000 0.000000 0.000000 0.012589 0.999395 332183.000000 0.000000 0.000000 0.012589 0.999520 418436.000000 0.000000 0.000000 0.012589 0.999571 468690.000000 0.000000 0.000000 +0.010000 0.999707 293838.000000 0.000000 0.000000 0.010000 0.999746 712208.000000 0.000000 0.000000 0.010000 0.999758 831736.000000 0.000000 0.000000 0.010000 0.999770 874728.000000 0.000000 0.000000 0.010000 0.999779 911212.000000 0.000000 0.000000 +0.007943 0.999863 357256.000000 0.000000 0.000000 0.007943 0.999871 804203.000000 0.000000 0.000000 0.007943 0.999884 1737895.000000 0.000000 0.000000 0.007943 0.999897 1959189.000000 0.000000 0.000000 0.007943 0.999897 1944568.000000 0.000000 0.000000 +0.006310 0.999940 465965.000000 0.000000 0.000000 0.006310 0.999950 1028936.000000 0.000000 0.000000 0.006310 0.999945 2000000.000000 0.000000 0.000000 0.006310 0.999947 2000000.000000 0.000000 0.000000 0.006310 0.999942 2000000.000000 0.000000 0.000000 +0.005012 0.999968 562299.000000 0.000000 0.000000 0.005012 0.999967 1269060.000000 0.000000 0.000000 0.005012 0.999974 2000000.000000 0.000000 0.000000 0.005012 0.999977 2000000.000000 0.000000 0.000000 0.005012 0.999971 2000000.000000 0.000000 0.000000 +0.003981 0.999986 625880.000000 0.000000 0.000000 0.003981 0.999987 1495550.000000 0.000000 0.000000 0.003981 0.999988 2000000.000000 0.000000 0.000000 0.003981 0.999990 2000000.000000 0.000000 0.000000 0.003981 0.999989 2000000.000000 0.000000 0.000000 +0.003162 0.999998 1042658.000000 0.000000 0.000000 0.003162 0.999993 1976599.000000 0.000000 0.000000 0.003162 0.999993 2000000.000000 0.000000 0.000000 0.003162 0.999996 2000000.000000 0.000000 0.000000 0.003162 0.999995 2000000.000000 0.000000 0.000000 +0.002512 0.999997 1290345.000000 0.000000 0.000000 0.002512 0.999996 2000000.000000 0.000000 0.000000 0.002512 0.999998 2000000.000000 0.000000 0.000000 0.002512 0.999998 2000000.000000 0.000000 0.000000 0.002512 1.000000 2000000.000000 0.000000 0.000000 diff --git a/gnuplot/toric_rate.gnu b/gnuplot/toric_rate.gnu index 72f8d48..564e431 100755 --- a/gnuplot/toric_rate.gnu +++ b/gnuplot/toric_rate.gnu @@ -9,13 +9,20 @@ data_title='iteration0-cycle1000-Dint2-300' data_title='iteration0-cycle1000-Dint2-50' #data_title='my-bp2-iteration0-cycle200' -data_title='my-bp2-iteration0-cycle1000-prod-check' -data_title='my-bp2-iteration10-cycle1000-min-sum' -data_title='my-bp3-iteration0-cycle1000-min-sum' -data_title='my-bp3-feedback10-cycle5000-schedule' -data_title='my-bp3-feedback5-cycle20000-schedule' -data_title='my-bp3-feedback5-cycle0-10000-schedule' -data_title='my-bp3-feedback5-num-data-100-schedule' +#data_title='my-bp2-iteration0-cycle1000-prod-check' +#data_title='my-bp2-iteration0-cycle1000' +#data_title='my-bp2-iteration10-cycle1000-min-sum' +#data_title='my-bp3-iteration0-cycle1000-min-sum' +#data_title='my-bp3-feedback10-cycle5000-schedule' +#data_title='my-bp3-feedback5-cycle20000-schedule' + +#data_title='my-bp3-feedback5-cycle0-10000-schedule' + +# show threshold around 0.008 +#data_title='my-bp3-feedback5-num-data-1000-schedule' +data_title='my-bp3-feedback5-num-data-1000-schedule-p' + +data_title='my-bp3-feedback5-num-data-1000-flexible' @@ -35,14 +42,15 @@ print "output: "."bp_plot/".data_title.plot_title.".pdf" set key left box set xlabel "Error probability: p" -set ylabel "Converge rate: P_c" +set ylabel "Non Converge rate: P_c" set logscale y set format y "10^{%L}" set logscale x -#set format x "10^{%L}" -set xrange [0.001:0.021] +set format x "10^{%L}" +#set xrange [0.01:0.021] +set xrange [0.01:0.41] #set yrange [0.01:1] -set title "converge rate of BP for toric code ".data_title.plot_title +set title "BP for toric code ".data_title.plot_title set linetype cycle 5 @@ -50,14 +58,14 @@ set linetype cycle 5 #size_set ="5 7 9 11 13" #plot rate -f(x)=x*x*x*100 +#f(x)=x*x*x*100 size_set="13 11 9 7 5" color_set="violet blue red yellow black green" # plot rate plot for [i=1:5] data_file using (column((i-1)*5+1)):(1-column((i-1)*5+2)) title 'size '.word(size_set,i) with linespoints ps 0.5 lc i,\ -[0.005:0.03] f(x) title '100x^3' dt '.' +[0.02:0.09] x*x*x*1000 title 'x^3' dt '.' # plot weight of input error diff --git a/my_bp3.c b/my_bp3.c index e21a88a..c58e41d 100644 --- a/my_bp3.c +++ b/my_bp3.c @@ -32,14 +32,16 @@ int main(int argc, char **argv){ vector> pool; vector>::size_type pool_size=15; //max number of threads, 15 with decreasing size for best performace std::chrono::milliseconds span (100); - std::chrono::milliseconds final_thread_time (10000);//10 secs + std::chrono::milliseconds final_thread_time (10000);//10 secs before prelimilary result print string filename_data="gnuplot/result/my-bp3-iteration0-cycle100-min-sum.gnudat"; // filename_data="gnuplot/result/my-bp3-feedback5-cycle0-10000-schedule.gnudat"; - filename_data="gnuplot/result/my-bp3-feedback5-num-data-200-schedule.gnudat"; + filename_data="gnuplot/result/my-bp3-feedback5-num-data-1000-schedule-p.gnudat"; + filename_data="gnuplot/result/my-bp3-feedback5-num-data-1000-flexible.gnudat"; int feedback=5; // int cycle0=10000; //number of cycles for the first data points - double time_out=2000;//time out in seconds for each data points (p and size) - int num_data_points = 200;//data entry for each data points + int cycles = 1000000;//70 sec for 2,000,000 + double time_out=500;//time out in seconds for each data points (p and size) + int num_data_points = 50;//data entry for each data points //change parameter p, code size //char * filename_result=argv[3];//prefix for the file @@ -48,8 +50,8 @@ int main(int argc, char **argv){ int sizes[]= {13,11,9,7,5}; string stabilizer_folder="data/toric/stabilizer"; //string error_folder="data/toric/bp_decoding4"; - double ip_begin=-1.7; - double ip_end=-2.7; + double ip_begin=-0.7; + double ip_end=-2.0; int data_rows = (ip_begin-ip_end)/0.1; mat data(data_rows,5*5); //return result in a mat, 5 columns for each size. format defines in header data.zeros(); @@ -67,7 +69,6 @@ int main(int argc, char **argv){ row_index ++; //atof(argv[4]); p=pow(10,ip); - int cycles = 2000000; // int cycles = std::pow(p,-3)/100/2*num_data_points;//around 10 data points for each point // int cycles = cycle0*std::pow(10,3*(ip-ip_begin)/(ip_end-ip_begin)); //p=ip/100000.0;//previous use 1000 division. Now use 100,000 division cause the thershold for toric codes seems to be around 0.1%. @@ -150,7 +151,7 @@ int decode( GF2mat G, GF2mat H, double p, mat * data, int col_index, int row_in bp_decoder.set_decode_mode_str("min sum"); bp_decoder.set_exit_iteration(exit_at_iteration); bp_decoder.set_debug_mode(false); - bp_decoder.set_schedule_mode(1); + bp_decoder.set_schedule_mode(2); bp_decoder.print_info(); Real_Timer timer; diff --git a/my_bp3.out b/my_bp3.out index f239266fe6b80fa35153232e7963ba85936901b9..da75297eaf529134be2f2a0bce86d4f50b2a632f 100755 GIT binary patch delta 48003 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