├── .gitignore ├── .ipynb_checkpoints └── demo_CSSR-checkpoint.ipynb ├── README.md ├── data ├── Xt_delay-channel.dat ├── Xt_odd-random-channel.dat ├── Xt_z-channel.dat ├── Yt_delay-channel.dat ├── Yt_odd-random-channel.dat ├── Yt_z-channel.dat ├── barnettX.dat ├── barnettY.dat ├── coinflip-archived.dat ├── coinflip-excite_w_refrac.dat ├── coinflip.dat ├── coinflip_through_even.dat ├── coinflip_through_evenflip.dat ├── coinflip_through_floatreset.dat ├── coinflip_through_periodicevenkick.dat ├── coinflip_through_periodickick.dat ├── complex-csm-rev.dat ├── complex-csm.dat ├── even-excite_w_refrac-rev.dat ├── even-excite_w_refrac.dat ├── even-rev.dat ├── even.dat ├── even_through_even.dat ├── golden-mean-rev.dat ├── golden-mean.dat ├── period4.dat ├── rip-rev.dat ├── rip.dat ├── tricoin.dat └── tricoin_through_singh-machine.dat ├── demo-and-experimental-scripts ├── compute_mixed_matrix.py ├── demo_predict_Lstep_bc.py ├── demo_predict_presynch_eT.py ├── demo_predict_presynch_eT_bc.py ├── integrate_dit_transCSSR.py ├── simulate_eM.py ├── simulate_eT.py └── walkthrough_transCSSR_bc.py ├── demo_CSSR.ipynb ├── demo_CSSR.py ├── demo_computational_mechanics_bootstrap.ipynb ├── demo_computational_mechanics_bootstrap.py ├── demo_transCSSR.py ├── filter_data_methods.py ├── legacy_code ├── demo_transCSSR__SHALIZI.py └── transCSSR__SHALIZI.py ├── setup.py ├── simulation-codes-paper ├── simulate_delay-channel.py ├── simulate_odd-random-channel.py └── simulate_z-channel.py ├── simulation-codes ├── excite_w_refrac.trans ├── simulate_even_transducer.py ├── simulate_evenflip_transducer.py ├── simulate_floatreset.py ├── simulate_periodic.py ├── simulate_periodicevenkick.py ├── simulate_periodickick.py ├── simulate_singh-machine.py └── simulate_transducer.py ├── transCSSR.py └── transCSSR_results ├── +.dot ├── +1mm.dot ├── +RIP-exact.dot ├── +RIP.dot ├── +RnC.dot ├── +Xt_delay-channel.dat_results ├── +Xt_delay-channel.dot ├── +Xt_odd-random-channel.dat_results ├── +Xt_odd-random-channel.dot ├── +Xt_z-channel.dat_results ├── +Xt_z-channel.dot ├── +Yt_delay-channel.dat_results ├── +Yt_delay-channel.dot ├── +barnettX.dat_results ├── +barnettX.dot ├── +coinflip.dat_results ├── +coinflip.dot ├── +coinflip_inf.dat_results ├── +coinflip_inf.dot ├── +complex-csm.dat_results ├── +complex-csm.dot ├── +even-exact.dot ├── +even-large_perturbation.dot ├── +even-small_perturbation.dot ├── +even.dat_results ├── +even.dot ├── +even_inf.dat_results ├── +golden-mean-exact.dot ├── +golden-mean-exact_inf.dat_results ├── +golden-mean-exact_inf.dot ├── +golden-mean-perturbed.dot ├── +golden-mean-rev.dat_results ├── +golden-mean-rev.dot ├── +golden-mean.dat_results ├── +golden-mean.dot ├── +null.dot ├── +period4.dat_results ├── +period4.dot ├── +renewal-process.dot ├── +rip.dat_results ├── Xt_delay-channel+Yt_delay-channel.dat_results ├── Xt_delay-channel+Yt_delay-channel.dot ├── Xt_odd-random-channel+Yt_odd-random-channel.dat_results ├── Xt_odd-random-channel+Yt_odd-random-channel.dot ├── Xt_z-channel+Yt_z-channel.dat_results ├── Xt_z-channel+Yt_z-channel.dot ├── barnettX+barnettY.dat_results ├── barnettX+barnettY.dot ├── coinflip+coinflip-excite_w_refrac.dat_results └── coinflip+coinflip-excite_w_refrac.dot /.gitignore: -------------------------------------------------------------------------------- 1 | *.dat 2 | *.pyc 3 | *checkpoint.ipynb 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # `transCSSR` 2 | 3 | A Python implementation of the [Causal State Splitting Reconstruction](http://bactra.org/CSSR/) (CSSR) algorithm for inferring [epsilon-transducers](http://arxiv.org/abs/1412.2690) from data generated by discrete-valued, discrete-time input/output systems. This page provides the full source code, released under the [GNU Public License](http://www.gnu.org/copyleft/gpl.html). 4 | 5 | This implementation has been tested on macOS 10.15.6, but should work on any Unix-based OS. 6 | 7 | ## Installation 8 | 9 | ``` 10 | pip install git+https://github.com/ddarmon/transCSSR 11 | ``` 12 | 13 | ## Graphviz 14 | 15 | Visualization of the epsilon-machines requires [Graphviz](http://graphviz.org) or similar software for reading [dot](http://en.wikipedia.org/wiki/DOT_(graph_description_language)) files. To use Graphviz within a Juptyer notebook using the Anaconda distribution of Python, install the `python-graphviz` package using: 16 | 17 | ``` 18 | pip install graphviz 19 | ``` 20 | 21 | 22 | ## Legacy Python 2 Version of `transCSSR` 23 | 24 | This version of `transCSSR` is for use with Python 3.7+. A legacy version for use with Python 2.7 is hosted [here](https://github.com/ddarmon/transCSSR2). -------------------------------------------------------------------------------- /data/Xt_delay-channel.dat: -------------------------------------------------------------------------------- 1 | 0011011111101100110100100101000101011011010001110000000000000010011100101100110101110010001000010011110100001001001110111111001000010111001001011110101100110010101110000010011100110011111101101110011110000011101100101100011111010101100001001011000011100110110100001100100010100001100001101010110100100101001010000100100000100101000101110010000011111000110111011100101111010110101000000110111101101100000100001000111100100001111111010000101011011101101111010100110010110001000010101111101000101000100110100111101000010001101100000101101111111011000111110101000011101010100010010000101011000010011110101101000001110111100110110010100010000001010101100100100100011111001000000001011000010011000000110001110100110010001101101101111001001101000010011101010001100010000101110010001101001010110000010011111010010101010001110111100111000001100101010001010100110111101111000010010111110100111010100111010010010011100011110111111001001101000100100100001011100100010111111101001100001100110010001011111101100110010011111111010001010101110100010011010110100000110110011101111010110101111010001011010110010110010001100000000110110101111101010011101010011001111101000000011100000010011111001110110010011010101011100110100011111110111011100110000001011010101011110100000111001010111001001101000000101010111001010000010111100011001011011011110100101111110001101010110000100000000110001100000110011011101110110111110100001100000100111110100100111000110111010011110011011001111100100000000010110001001000111110111001101110100101011001010001100010011010111010000001010111001110001111101110111110111100111110100110001110111001010110111111011100100001011001000101011000110111111011001010100010010111100101111011110011110000010111100111000100001011111111110101011000111111010001100011110010101011100010011010001010011000000000101000010011110011111100001000001101001110010110111111011001001000100110110010011001110001011101011000110101110011110011101011111001011001001010100001001110101001001111100000001110110111000011110010001101101011110000110010100000010001001101100100110001101100111001010000101101000111001001101110100101001011110001110101100000011011010111110000010001110000101011110000100000010101110000110011101110100010001001000111010010100000111011101010110011010000100111001100000111010000011011001101110001001011110101010100011000110000101000000001110101100110000011110101011001110010011111011001010011000101101101010011101001000000100010110111110000010110101011010001110111100111011101110011001011010111110101100111001101001110001001000100100100011111100111010111111111010100000101101010010111111101010000101001101001101101111100011011100110101011101000100111111101100011000010101011001100110101010110011001011101010010011101000101001000000010110001100011110000001000111010110010111000101101110101100010110000011100111010010110001011100001010101011010111010110011111100101110110100111110100010110110100111100111101010110110101010000111011111110111100101110111001010011011001110110000111001010110111101000011000100001001001011000000000011000110010000011101001100011010000101101000100001010001111111000101110010000010100101100000110100001001110111011110010101110010101000111101010000100001001101010000101001001001000101001111110100000100001011101010100011011001001010000010111011110100000111110000100011010100111010010101011110100001111010001011011110101100010010101000001111010010101011011100000010101001111101111010000000111101000100111110011110010111001011111100101011001101010100010010001010110000000100010010010110110101101100100101110001101000010110111011001000100100000000010100000001101110101010010000011110011011111110110111100011011001100111000101001011101000110011010110011000111110101011011010001101001110111000010010110010011111011010111111001011011111100110111001110111011011010101110010111101011001111011001000011010001000111001100001111010111111000100101010000010011100100001001110110010001000101010001110100110011001000111010011010011001110100111100100011100000100100100001111101111011101001111101010000010110000100000111111101001001100010000001101100111001101001100000010000101101001001110100011110110001010000000111100101101100000000100100101010011011010000011100110000110000011101111100101101100111010010101011110100000010010010010011011101010110101000011001110011111111100100011100011011101011101111101111101011111011000011001100010000010001001101110000111011100001111011001000011111001011110010110011100111101000011011110111110000010100001000110000100000001111101001101000001011100001000001101101001000110110110111010000010010101111100111010111000011100000011110001000011000001000010000011001110001111010100011111100010110110101100001000111001100111011001000101100100100000010010101001100100110000000110001110011100100101010101101011001000011001000101001011000110011110010001001011110001011111001101011000001010001101011110010001011010001011010101010100000011110010000111110111110111111110110010101111011011000100101111111100100001010001010100110000110111001111010100111111000111000010001100110000010010000110001011101111100110011010110110111111001100110000101111100100011001101000001101110000110100011101000010010001000011000101001111001110100001011000100000000000011000111001000100001110011111011001111000000101001000100001010000011001001010001101001001011001110100010000111101111011001001000110011011001000011100000000001010110000011000011001011010100011010010011001100110001100011111100111101011101100001000001111000101000011000101001110111110100111011010011001010110101110111001100000100110010001011100111011000110010110001101000001000101010000010000000010001101000000101000110010000101100100000100011011111111011001011100000000111111101000000101110110000111111100010101010000111010100100000100001011010010000010110001100111010000110110100101001010110111000001110010011010001101001011110100010010011001100100011111111001111111101101111111100001111001000100001101111110001011000000101110110001011101100000010111000001000001000110101010011100111110100110010010011000011000101101001100100111001111100000001111001001010110110111000110001110000101111001100111110011011101110100111010001001010000111101010011110101101000010110101011010100110101000101100111001011011110000111000011000111000101111101010000000101001000010101010011101101111110000100011000101000011100000011000010001110101010100001110000110010001110100001001101111101001111111101000011100101100111000100001010001100011111101001100100011101100000011100010110101000001111001111101010000110011110010001110110100011110010111111110011000100011000100100011100001001111001101100001001011101101111011001001100000101001100100110101100100101010000111101010000001100110111111111011010110101010011110001110011010101100011001101110100010011101110000110011100001100001001000110001011110100010100111010010001010101110011101110001001011001111101010101101101101000001001001001000110010111110111000001010110010011011111110101001000111000100100001101111100001110100010110000001001011100000111101001111100010110110110000100000110101010010111100011111010111011010101011011101001100110110010100000111001000101011101111010000100111010000001110101011011101101001011100010110111000110101110111001111000010110110011101101010000101010010110000001010010000110010010111011110010101001111001001111000111000000000000100101011011010101010000011010101110000001110010000001110101110000110001001011110001010001010000101001101000010100010110010101001011000010111001100000000011000011111101011010111001011111001010001101111111101001101111011001100000101101011110101010000111011100000000010000011001101111111101111010101110101110001001010010001111010011011110001110001100111011100011011010000000110011110010001000101100111010110000110001101000111001001101011011111000100111100010011100011011111111000001110001111010111000101001011111101111101110010111110011100011001001111000001101110110100111010111001010100111110001111110101101011111111101010011100010111101010111000110110101100110111010011000011110101101000000111100001010001000110000100101100001110011101010111110110000010000001110010110100010010010011010111111010111101000001000010100011001010110101111000111110000101001101111100011011100010111010010011001101110001000011011111011101100101110000010110001100100101000101101011000110111000101101111100011001000010011100010011101111011100000000101111010110011101110111110111111011011110101100111011000000000111110111100010110010001001000010011000111111001010100101111011001001011000100101100011010011101011100110110011001001000010011000000111011100111000011010100100110110110100111010110100000001101001100110010000011100110110011101001111001101010110000011110110110001001110111011000001000100110000110011001101000000101101111001100010111010011111111100111011110011110101100001010100000010101100001100010110111101111110110010010101000011101001011000100111101101110000001100010000101001100011101000001101001000100110010101010101100101100001011101100100100111010100100010100010101001001101111110100100011101110100010110111000011001100100101111100110001101011110101110100010001000111101101001100111011011100111010110000100011011101001000100100001000111010010110111011110101001101010011110011111010000000010111010001000011010010111100111010001111110101000001100001010000101111000011110111111111100110110010110111110101010111100111110010100110000111100001011101000001100111011111010000111101100000001101000111100010010110100000001001011110010001101111111010100101011111110111010111111101110011001101100101001011011011001111010111010101110011000101001011101110001000101000110110110111110110100010111010001000010110111010000111111100101110000000110111010110001110001001010101101101010100101111000011110010011110110110010111010010101111111110100001001101111110100011100000100001010010001101001010100011111101010010111101100010101110011100001100010101110110001010010110001000001010010111001111001111010110101010111111100011111000111110111000110110100010011110011000010111100010001010011011110111101010010111011100111001011110101010001101110011100111111101000111000011101110 -------------------------------------------------------------------------------- /data/Xt_z-channel.dat: -------------------------------------------------------------------------------- 1 | 1011111111101000010000000101111100010111000011011110101101011110001000001010001110001100010001110101011111010100100100000010000111000100101001100001010010110100100010100001001100100111000111110110010011110110101110000110010111111000010101110011000010010111010101111111000011111111011010000010001001100100101110001000111010111001111110110110011110101100010110011010110101111110101011000000011111011101101011111100011010001101111000010101100011101001100010001000010110101111010010101011101100100000100001110011111010111011000011111001011000011110111100011001001101100001110110001101100000000101010001000011101110001101110011001110100111100010100101111010010000110110101111101100010111000011000000100011001001100100010110100100010010101110111000111111000101001101101001110000101010001011011011011011111110101100011111111011001100110000100010100111011100101010101100010110110011011100111001101111111100111111011111110110110111111100110110010110000111111100001010010100001101000001001011000001100101101111110001111111011100101101011100110100101010101101001011100010101000010011001001001001001100010110111000111100101111110000100000111001101100100010111001110011011101110101100100111000011000011101101110010111011011000100110110101010011110110101010000010101111111010101000110111001000101101101101111110000000101111101101010110010010010011011110001001101111000110011001001001111010010111101111110111011011010000000000010100000010010011110111011000001010101000011010010111011011100111110010110111011111011010100000101101110001000010101111010101001111010001010110010110011000010001100001111000001111000001000010001001101110010110100101101110111110000000001110000111010101000000011110110110101010111100100111110111101101011001011101010100011100011101001111100101010000010110001101010000111100101101001101001111000111001100011011111111110011001000110001000010011100101111001111001100010000101101100111001010011110010110100011100001110000100010001111010110110111000111010110011111011111110111101011110110010000011110100000110011001011100101010011000010100000110100000011011110011101110100110101011011001100101111101110001010010100110000100111111000001110011101010001101011010100111101010110011001101010000001110010001011100001110011110000001010001000010111111110110110110001001011000011110111101000100010101100011111111001111000000011001010001101111110010110010001100101110110100110110111000000101010100110110101101100101001000111011110010001100101010011110011011100110100100110000010001011100101111011000011101111101100011101011011010110011100001000101011111111001000001100101110110001010011010110010011011110001111110100011100101010011011000010000101010110111110101100101011100100011110010110010011001111010011000110101101010011110101000011110010010101100111111110100010111000010010001001011110100101010110101110010111000101001010000010000000001110011100000010011010100001101100011110001000101010110100110100001100001111011110010010111100100100101110010001000001001100100111100111111011010111010101111001101001011000000111010111100100011110100111101011010111000010000011101111011110101011001010111111101110000000100000111010101011110100110100111010101110000010101000011110101101110110010010101000001111010111100001101011000101001010111100001000101001010101100100000111101101100000110010110100000110000111011001100101111011100101101100100100110101010100111101001001000011000001101111000011100000000011110010111011111000100010001011101100111100010111010010110001111011110000100111111101000011010010100111111101011000010111010000110011101111001100001011010011110010000011110000000101101010001101001111111000011000001001001010011010001111110001101011110010100110000010110101111010011011011110101101110100110011100110000100111101001011000011001111000010001000110110000010101011100011011101110111111010111110000110100111101100101001101000000100111100101001000000011101110100011110010100111110011110110010000000110111111011101101111000000101110001011011001110111001111111000000110110000110100011001111000101001011110100010110011010010001100010100000101011100111001010100110111100010000101101110000100101000001000000011001000110001010001101000010101000000010101011010001000001001000110110111110001011110000111001000110101101010010001111100111101101111111101001111001001010110011001111001001101000011001101101011010000100011100010001110101010101000011000011001110111010111001111001010101001011101110010011101110011110001100011000101011101100100100101111011101110101001101001000001010111101100010011000010011001110110110001010101001101101111111101000001011011110101111101011111001011001111110101110001010010001111110001100010010101101110010011010111011100010100010010010001011110111111001000111110000010111000110000101110110100100111101011010111000111010010000000011010110111001110011110011110000000101000011110100010111010000111001100111101001111101111000001000101101110011010000101000110011101111101010110000110000111100100110011010101010111011010110001110001011111101100000011101101101001111010110110000011011111110000100110101100011010111101100011110011101110011001111011001001010010101110011101001001001010101011001100111001000001000000011100101010011111010010111010011010111110011001111001000111111110010001010001001000000100111100000000101000000111110010001111100111110010110001100110101001001111001010000101100000101001111111101000001100000010010111100010111111100101100101111100011111001001110001011111110000011010000101011001101100011011101011101011011011001001100001010011111111111001010000000000111000110010111100000011111000101110011111110001011001100001001010000000001111000000100111011101011001111000100100011000101001101001010000100101111011111001010111001000011000000110101001110100110101110010011010000000001011111001000101000101110000001101001011111000000001110000001001011010101011010000111001011011100011100010111111010000000111110100011011100110001111010110111100111110001111111011010001001110011100101011011011011010111110111001111011001010100101001100000010111110100011110111001111000111101110001111110001101010110000000101111111000010100010011111000001101111011010100001100011010101111100110111111000000001010100001110101111110011111011000111011111001111100000001011111010000000100100001000000110010010001011011001111000010001001101010001010101110100101111011100010111010100000110001111100001000011000111100000011111110101000110011110011101000111110011001011110001001111011110001111001110110111100110010001100010001101101111001100011001100010100000100000101000010011010100111101101101010111001100101001111001100101011010101101100111010000100100111001101011000100110001111111011000110001101011001000100000101001101010011100111101010100111100110100011110010100101111110101110111011111000001110111001111001111001110010001001001100110100111110011100010001100001100011111111001000011010110000001001100000101110010011011111001010100001100111111001111000001010100010100010110001100110100001000000010001010010101111111110110101111011110000111110001110101110000111111100100110110011110011001011110010101101111101001101001000000001111101000000000000111111101110000100110101001011111110101110011111000111001011100100111100101101010100011001111000110110110110110011001011000111010011111001101001101100110111101101101001110000011001100111100101001000101110100100000000101110110101001011000000110000110101100010011101011111010110110011110111101110000011000010111111000010100111110010010001111110110110110111111110011101001011001110110110001110010110110011010010010100101101111101010000011000110111111010001101111101010101011011001100001011000111111010001010111011010000111111010110111101100110001010001101101100000101011010010101110110111011101000110010100001101111010100110110001011000001111010001110011111000101101000110111110000010000110111111000001110111110101001100010100110000101110011101111010000000101101110111000111000010001100010101110111000010000010001111000110000011010001111110100110000100011111000100110001011110100011010011011100000001011110011001001101101001011110011001111001010011010101110110101100000000111111011110001000101000011111000101011000010001001110000011101001001000010111010100001101000110111110001000111010010001101001111110001101001000001111100101101001001010001100101001001000000100101110010101110100000000101100101011001011000100111110101100010010000000010100011000000101000111010101001100001001101011001100110000000001011001010101111110010111111110100110000111011111100110011001001011111101010011001001110110000111000010001011111100000001011101100101000001010011101001111001111000011101110001110000000101100000110111110100001000110001110011000110000111010001001110101001100111101001011100110111010101011110010110101001111011110010001011101001001100101010110001101110111001110010010100000001110111110100111001111000010001100011110100001011000010101101001001100100011001110010110011101001000011011000001101110000110011110001101101001000001010101010011110011000001000010100011011000000100011110111001000100011000111110011011000110110100011001101110101100001000010100111000100111001110100001010011000101110100111110111100111001101111010100001110001001011110110100101010011001000000000100001111110101010000010000101100101000010000100001001001100011110110011010010111001000111010101011010011101111111100100010100011110011111010011010001010111101011100111100010101010110011110000111001001001010101000000001010000111001110010001111010100101111000000001011001110000001111000110000101100000101110000110111101011101111101101001010111001110000111010110011001010010110001001001111111001001100010001101100100001010000000000011111111010001001000010101011100101001100100000100001110111001011000111000100100000110010101001010011100011001001000010111101001000101100100000110001111011001010010100010000010001101010011011111010000101111010111000011100100111000010101011011001110111001111001011011100110110000100100110000111100010011100001001101001001000100100010101011000110000001001101111111001000101110000000110110001010011100010011011110101010001000011010001110111100111101111000101111110011 -------------------------------------------------------------------------------- /data/Yt_delay-channel.dat: -------------------------------------------------------------------------------- 1 | 0001101111110110011010010010100010101101101000111000000000000001001110010110011010111001000100001001111010000100100111011111100100001011100100101111010110011001010111000001001110011001111110110111001111000001110110010110001111101010110000100101100001110011011010000110010001010000110000110101011010010010100101000010010000010010100010111001000001111100011011101110010111101011010100000011011110110110000010000100011110010000111111101000010101101110110111101010011001011000100001010111110100010100010011010011110100001000110110000010110111111101100011111010100001110101010001001000010101100001001111010110100000111011110011011001010001000000101010110010010010001111100100000000101100001001100000011000111010011001000110110110111100100110100001001110101000110001000010111001000110100101011000001001111101001010101000111011110011100000110010101000101010011011110111100001001011111010011101010011101001001001110001111011111100100110100010010010000101110010001011111110100110000110011001000101111110110011001001111111101000101010111010001001101011010000011011001110111101011010111101000101101011001011001000110000000011011010111110101001110101001100111110100000001110000001001111100111011001001101010101110011010001111111011101110011000000101101010101111010000011100101011100100110100000010101011100101000001011110001100101101101111010010111111000110101011000010000000011000110000011001101110111011011111010000110000010011111010010011100011011101001111001101100111110010000000001011000100100011111011100110111010010101100101000110001001101011101000000101011100111000111110111011111011110011111010011000111011100101011011111101110010000101100100010101100011011111101100101010001001011110010111101111001111000001011110011100010000101111111111010101100011111101000110001111001010101110001001101000101001100000000010100001001111001111110000100000110100111001011011111101100100100010011011001001100111000101110101100011010111001111001110101111100101100100101010000100111010100100111110000000111011011100001111001000110110101111000011001010000001000100110110010011000110110011100101000010110100011100100110111010010100101111000111010110000001101101011111000001000111000010101111000010000001010111000011001110111010001000100100011101001010000011101110101011001101000010011100110000011101000001101100110111000100101111010101010001100011000010100000000111010110011000001111010101100111001001111101100101001100010110110101001110100100000010001011011111000001011010101101000111011110011101110111001100101101011111010110011100110100111000100100010010010001111110011101011111111101010000010110101001011111110101000010100110100110110111110001101110011010101110100010011111110110001100001010101100110011010101011001100101110101001001110100010100100000001011000110001111000000100011101011001011100010110111010110001011000001110011101001011000101110000101010101101011101011001111110010111011010011111010001011011010011110011110101011011010101000011101111111011110010111011100101001101100111011000011100101011011110100001100010000100100101100000000001100011001000001110100110001101000010110100010000101000111111100010111001000001010010110000011010000100111011101111001010111001010100011110101000010000100110101000010100100100100010100111111010000010000101110101010001101100100101000001011101111010000011111000010001101010011101001010101111010000111101000101101111010110001001010100000111101001010101101110000001010100111110111101000000011110100010011111001111001011100101111110010101100110101010001001000101011000000010001001001011011010110110010010111000110100001011011101100100010010000000001010000000110111010101001000001111001101111111011011110001101100110011100010100101110100011001101011001100011111010101101101000110100111011100001001011001001111101101011111100101101111110011011100111011101101101010111001011110101100111101100100001101000100011100110000111101011111100010010101000001001110010000100111011001000100010101000111010011001100100011101001101001100111010011110010001110000010010010000111110111101110100111110101000001011000010000011111110100100110001000000110110011100110100110000001000010110100100111010001111011000101000000011110010110110000000010010010101001101101000001110011000011000001110111110010110110011101001010101111010000001001001001001101110101011010100001100111001111111110010001110001101110101110111110111110101111101100001100110001000001000100110111000011101110000111101100100001111100101111001011001110011110100001101111011111000001010000100011000010000000111110100110100000101110000100000110110100100011011011011101000001001010111110011101011100001110000001111000100001100000100001000001100111000111101010001111110001011011010110000100011100110011101100100010110010010000001001010100110010011000000011000111001110010010101010110101100100001100100010100101100011001111001000100101111000101111100110101100000101000110101111001000101101000101101010101010000001111001000011111011111011111111011001010111101101100010010111111110010000101000101010011000011011100111101010011111100011100001000110011000001001000011000101110111110011001101011011011111100110011000010111110010001100110100000110111000011010001110100001001000100001100010100111100111010000101100010000000000001100011100100010000111001111101100111100000010100100010000101000001100100101000110100100101100111010001000011110111101100100100011001101100100001110000000000101011000001100001100101101010001101001001100110011000110001111110011110101110110000100000111100010100001100010100111011111010011101101001100101011010111011100110000010011001000101110011101100011001011000110100000100010101000001000000001000110100000010100011001000010110010000010001101111111101100101110000000011111110100000010111011000011111110001010101000011101010010000010000101101001000001011000110011101000011011010010100101011011100000111001001101000110100101111010001001001100110010001111111100111111110110111111110000111100100010000110111111000101100000010111011000101110110000001011100000100000100011010101001110011111010011001001001100001100010110100110010011100111110000000111100100101011011011100011000111000010111100110011111001101110111010011101000100101000011110101001111010110100001011010101101010011010100010110011100101101111000011100001100011100010111110101000000010100100001010101001110110111111000010001100010100001110000001100001000111010101010000111000011001000111010000100110111110100111111110100001110010110011100010000101000110001111110100110010001110110000001110001011010100000111100111110101000011001111001000111011010001111001011111111001100010001100010010001110000100111100110110000100101110110111101100100110000010100110010011010110010010101000011110101000000110011011111111101101011010101001111000111001101010110001100110111010001001110111000011001110000110000100100011000101111010001010011101001000101010111001110111000100101100111110101010110110110100000100100100100011001011111011100000101011001001101111111010100100011100010010000110111110000111010001011000000100101110000011110100111110001011011011000010000011010101001011110001111101011101101010101101110100110011011001010000011100100010101110111101000010011101000000111010101101110110100101110001011011100011010111011100111100001011011001110110101000010101001011000000101001000011001001011101111001010100111100100111100011100000000000010010101101101010101000001101010111000000111001000000111010111000011000100101111000101000101000010100110100001010001011001010100101100001011100110000000001100001111110101101011100101111100101000110111111110100110111101100110000010110101111010101000011101110000000001000001100110111111110111101010111010111000100101001000111101001101111000111000110011101110001101101000000011001111001000100010110011101011000011000110100011100100110101101111100010011110001001110001101111111100000111000111101011100010100101111110111110111001011111001110001100100111100000110111011010011101011100101010011111000111111010110101111111110101001110001011110101011100011011010110011011101001100001111010110100000011110000101000100011000010010110000111001110101011111011000001000000111001011010001001001001101011111101011110100000100001010001100101011010111100011111000010100110111110001101110001011101001001100110111000100001101111101110110010111000001011000110010010100010110101100011011100010110111110001100100001001110001001110111101110000000010111101011001110111011111011111101101111010110011101100000000011111011110001011001000100100001001100011111100101010010111101100100101100010010110001101001110101110011011001100100100001001100000011101110011100001101010010011011011010011101011010000000110100110011001000001110011011001110100111100110101011000001111011011000100111011101100000100010011000011001100110100000010110111100110001011101001111111110011101111001111010110000101010000001010110000110001011011110111111011001001010100001110100101100010011110110111000000110001000010100110001110100000110100100010011001010101010110010110000101110110010010011101010010001010001010100100110111111010010001110111010001011011100001100110010010111110011000110101111010111010001000100011110110100110011101101110011101011000010001101110100100010010000100011101001011011101111010100110101001111001111101000000001011101000100001101001011110011101000111111010100000110000101000010111100001111011111111110011011001011011111010101011110011111001010011000011110000101110100000110011101111101000011110110000000110100011110001001011010000000100101111001000110111111101010010101111111011101011111110111001100110110010100101101101100111101011101010111001100010100101110111000100010100011011011011111011010001011101000100001011011101000011111110010111000000011011101011000111000100101010110110101010010111100001111001001111011011001011101001010111111111010000100110111111010001110000010000101001000110100101010001111110101001011110110001010111001110000110001010111011000101001011000100000101001011100111100111101011010101011111110001111100011111011100011011010001001111001100001011110001000101001101111011110101001011101110011100101111010101000110111001110011111110100011100001110111 -------------------------------------------------------------------------------- /data/Yt_z-channel.dat: -------------------------------------------------------------------------------- 1 | 0001110101000000010000000100111100010011000000010010100101000000001000000000001000001100000000000001010001010000100100000010000010000000001000100001000000000100000010000000000000000010000101010010010000000110000100000110000001101000010100100000000000010101010000101011000000010001011000000010001000000100100110001000000000001001110010110000000000000100000100011000000100001010100000000000011111000001001000001000010010000000011000000100000001000001100010000000010010001101010010001001100100100000100001110010011010101000000010010001011000000010111100001001000001000001110110000001000000000001000001000001001110001100110000001000000110100010100100010010010000010100100110101100010011000001000000000000000000000000010000000000000000000110000000001010000101000100101000110000100000001010011010010011110000101000010000001010000100110000000000000001011000001010000000000110010011001100111001000010110000001010000001110010110000010000110100010000000000101000000000010000001100000001001011000000100000100001110000101010010000001001011000010100000010001101001010100010101000000000001000000000001100000000011000111000100000000000100000111000000100000000101001000001010000100001100100000000010000010100001000010100001011000100000100101000001010100100010000010101010010000100000010011000000100100001000100000000000001001000101000010010000000010001000001000100011000000000000000001110010010111101001110010001010000000000000000100000010000001100011000000000010101000001010010110010011000100000010010011011110010010100000001001110000000000001101000100001010010001000010010000011000010001100000011000000010000001000000001001100100000000000000001000000100000000000000000001000001000000010100100000001010001100100011110001101001011001011100010100000000001101000100000000010000000010001000000000010000100001000101000011000100001000011000010011010011000000100000000010010000000000000101001100010000100100100100000010001000010010000001000001000000000010001001010100000010000111010100010101001101110100101010010110000000001100100000000001000001000001010001000010100000010000000010010000011000100100110001000010000100000011000000001000010000000000000101111000000010011001010000001010000100110000010000000000001000000000000010001010100001000000010000000000000000000011001010010100010001001000000001110101000000100000001100001100011000000000000000000000001001111010010010000000100001010100100100010111000000100000000010100001101100001000000110010110000000000001000000010011000100100100000110000000000000000000101010000000000011001100001101001011000100000100001000100000110010001000001100101010110001010000000100010010010110000010110100010100100000011011000000000100010010011000101000000011000100001000010100000000001100010010000100101101000001000100000010100010010001000001111110000000100000000010001000011110000100010000101100010111000001000010000000000000001000001000000010010000100000101100011000001000001000110000000000000000001011000100010000000100000100001110000000000001001000100110000011110011010000000001101001101000010000000011000111100000010010000101001000000111000000000001000011001110101001000010011011101100000000000000100010100000000000100000100010001100000010101000001000101000100110000000101000001101000011000000001000000101000010100100001000101000010000000000000111100000000000010010110100000100000101001000000101010011000101000000100100110100010100000001001000000010000000100000000011100000000010000000011000110000000010001011100100000000000001000010100000000011000000000110001101000011010000100110101101010000000110010000100001101100000000001000000010110000000011000000000100001000000000000010111000010000000001001010000010001010110000000001000010100110000010110001000010001010000100001001000000110000100110000100110001001010000001000111000010000000000100000010101001100000001101110101001010011110000000100101101000101000000000000000001000100000000000000100000100001100000000010000011110100000000000010110101011000100010000000001100000001000000110001000110101000000100100000010100010000010000100001011000000010000011000010000100010000000101011000111001010000000101100010000000001100000000100000000000000011001000000001010001100000000000000000010101001000000000001001000100100011110001010110000011001000010100000000000000100000001001101011100101000011000001010010011001100000001000000000000101101001000000000011100000001100101010101000011000010001100000010100001000001010001000010001100000011100110011100000100010000101000100100100000100011011000000000000100000000000000101000000000000000010000000110100000000000101000001100010111100000001010000100000110101001001001010001111110100000001010010000000010001100010000001000110010001000110001000010000010010000001000010100110000000110010000010110000110000100110110000100101100001000011000000000010000000010000110001000000011110010010000000100000000010000000001000000011000100011000001010000001000000000101101100001000000001000000011000110100010000000100000110100000010010010101000100000010000001100001010001101000000010001101000001101000010010000000011111100000100000000100000000011000100000110000100110011000011000000000000000101110010100000001001000000000000000111001000001000000011000100010011111010000110010011010101000001000011000000001111010000000010000000000000000100000000000101000000011010000001101100001110000000000100010101001000010000010000100100000001001101110001000000000000000000101100010011001100001000101100000011001001001110000001011110000010000000100010001101100000010001000101010010010000000100001000000011101000001000000000000001000110000011100000001001000101010001101110001000001100000001010000000000010000000000000001000000000010000000100010000000001000001010000100100010011101001010001001000000000000110000001000000000000100000001000000000000001100000000101000001000000000001001011100000000001000000000000011000000001010000111001001011000000100000111000000000000100010100011001000110001010000000110000101000000101001000000000000000011000101000010000011010111100010001011001001010100100000000000000000110100011010001000101000010001100000000000001001010000000000001111001000000100000001111000000000100000010000001000000000101010100000111111000000000010000001110100101000000111010000100001011000010000000001011011000000000100000001000000110000010000011010001101000000000001000010000000001110100001110001100000010000100000000001000000001000000000100100000001100110000000100011010001100000010000011000010000001001110000010000111000110100000000010000001000010001001001111001100010000000010000000100000100000010011000100110001000100010001001100100000000000100101010010100000000011000000000100011001000011000100010001000101001000100001001011001000100000001000100010011100000100010000001100000100011000010000000001100101010100000100000000010100000011001111000000010001000000000000100111010001000000000100001100011100100001000000010100000000001100000000010010011000011001010000000000111011000101000001010000010000010110001000000100001000000000000010010000100011100010001000011110000001110001010100110000111101000100010100010110010000000100000000000001100001000000000000000101000000000000000101110001110000000100101000010001010000010000110000101001010100100111100000001010000000000100000100000000000010011001001000011010001011001100000101100110010001001001000000000000000000101100101001000000000100100000000101110110101000011000000100000100100100010000101001010000100000010100010100110000001000000011001000010100110100010000000111000100010110101000010010101000000001000110100000110000010110011000010010100000000110001000000011000100000100000001001001000010001010001001100000011000010111010001000100000000000011110000000101101000100001010000101100100000100001010010100110100101010000000010010100000101000000100100000001010000000011000001100000111000101000000010101100000010000010011101000001010101100001001100000100010000001010011100100010000000000101100101000110000000001000010100110101000000000010000000000110000011010001011000100110000000011010000000100001011110000010000011011000000000001110001000001001000001011110001001101000010011000101010000001100000000110101010010001000001000001011000100010000010001001110000001100001001000000110010000000001000100011000000000110000000000101000110000001101000000000101000000000000001010000100100000001000000100100010000000110100000000000100101001000010000000000000100100000010000000000100001000000101000111010101001100001001100010000000100000000000011000010000101000010101100110000010000010000011100100010001000010110000010010001000010100000000000000001010101000000000011001000100000000010010000000000001001000000000010000110000000101100000010111000100001000110000010000000110000001010000001100100001000001001001000100100010000101010000000010001001001000100000001010000000001100101000110000000010101001100000010000000001000011100100011000000000000001100010000100000001000010001100001001000000010000000010110000001001000010011000001101100000000010000000101101000000001000101010010000001000000000000100001000000000100000110110000000000010000000000010000000110110100001001101010101000001000000000001000000111000000000001010010000001000000111000011000010001100010010000001100000001010010100100100010011001000000000100001000110100010000000000101100001000010000000000000001100011000010001010000010001000010000100011000010100001000100100000100011000001100010000000001010111100011000000100010000010110011100000000001000001010100000000001000000000000000000000010010100000101000000001011000000000000111000100000100100000001010000100010000001100001101000000010110001100000110010100001001010000010000001001000010001000100000000101100100000000000000000010001000010001000000010101000000101000100000000000000010101000001000000000100100000100000100000010000000010001000000000110001001000001000100000000000010011000000010100000000010000100010000001101000000100100010111000000100100011000000001000010000100101000101001011010100110100000100000010000110000010011100000001000001000000100100000101001000010000000000100011000000000100010000000000000001000010100000010011110101010000000010000000110110000110101100000001001010011 -------------------------------------------------------------------------------- /data/complex-csm.dat: -------------------------------------------------------------------------------- 1 | 11110110101101010101011111001011010111111011101011011111101011111011111010111101011001110111011110111010101101101111101111110111111110111100100000000000000000000000000000011010110101111011101111011110110110111010111010001111111111111011101011111101010110101111010111010101010111110110110011111101011000000000000000000000000000000000000000001011111110101111110100000000000001110111010100011011010100101111110100110111011010110110110101101010111101110110101111011110111111011101110111111010101011111101011100111110110110011111010101111011011111110111011101011110110100011110110101101010011010101011101110011110101110110110110110111110110110111111011111101011010111101000000000001011010101011011011101010111010010000000000011011110111101101110101010110101101101000000100110101011101010111101101111110111011101111011111111100101100101101010101001111110111101010110111011110111111111101011110011011101011011011010011001111101011110111011110101011010101001110100111101101101101010010101110100111101011101101111101110101011110001001111011101111011011011011111101110111100101110101001010000000000000000000000000010101111010111101101001101110110111010100110110111111110101111001111101101110110111111110110101011010110110110111101011011010101011111011101110110111101111110111011011011101011111111111001101011110110010111101010111101111111100111101011001111010111011011101001010111101101101011011100111111011010101110111010110110111011101010101011010100111110111101101111100011111000111010110010111011011011110111110101101110101100110111111111100111011101111011101011011111011011111011101111111010011010110011101101011111101111011011101111011111111111101110110101011010011111011101000000110101101011110110011111011111111001100011011111101110011010111111110111010111001011011001110101110111101011011011101111011010111000110101010111010111011011101010001111010000110101110111101010110110111101011100000101101011010111101111101111110110101111101001010101010111101101010101111111011010101111100010100100101111101011101010101011111010101011011011010101101010101101011010101011111111011010001101010111010111110110111001010110111101101010101011101110111110110101011111011111010111011111101111101100000000000111100000000010101011111101011011101101101010011011111010100011100000001111110110110101111011010111111010001111111100000000000000000000000000000000000001110000000111011011011110111111111101011010001111111010110101011010111110110101110111000001111111010111111110101111110111011010111110111111101110011110010101011101010101111111101010101011110101111101010110110011011011111101010111111011001010111101010111101011101111010101011111000111011010111011101111100111111101001011011101110110110111101011101111101110110111111101111001110111010110011101111010110111110101111111101011101010011110110101010101111110110000000001101110101101110111110101101001010011101101110110111010101111111110111010101011101110101011010101011011110111101001101011011111101010010111111111000111111010101111011010111010011010111100011101101110111111111101110101010110101010110110111101011111111100011010111101111010110101100000000010101111111111111110101101001001101110111010001110110100010111011111110111101101011000000000000001011110100101010111101110111011110101111010101010111011111111010111111011101101111111111110011101101111011111101001101111001010111111110110111000111111101011011101110111101010111010101111101110101011111111011011111001100111101110101001010111101101100101110111101111111101010111111011110111011101110101111101110111011001110111111111101001101100011101101011101010111011111011111110110110111111110111010011111101111111111011111100111011111011010110111111111010011001100101010010111011111000110100101111111101101010111111110111111110110011011011101001110101101110111011101010111101111111011011110011111011010100011010110101011111101111110111111001110111101101011101111011010111011011100111010110111011110111110110111011110110110111101111011111110101101111111111011100101111111011111001101011101011011110100100100111110101110101111011111011011110000000000000000000000000000111110100011101001001111110001111011111101011010110110111001111110110110101011111110111010111111101100000000000000000000000000000000000101111101011101011101010101111010111011011010000000000111110101010011010110111010101111011110101101110001110110110010101111001010100011101101011011101011110110111111111110111010111010101010110110110111101111011011011101010110111011111110101001111111101011011111101011110111110111111111010011111011011001010101111111111111101011111111101010110110111111110111111111110111011011011011101101111111101101110101011110101111110111101110111100101110111011111100111011100000010101110111110111101101101000110110101101011101101111011111101100110111110101010111011111111101011101110001111110011111100011010110110011110101001101101000000000000001111011101111111111101110111111011010011110110101011011010111101101001101011011111100010010101011100100101111101101010101111111110011101111101011111110111111110110011111001111111000101101001110100101101011011010101101110101111110110111110111010111011010101101110110100111110111111110110110101110110110110101110101010101011101111001101110101101011101010110101111110111111111011101011010111101111101001111001011010111011010110101111101100101011110110111001101011101101010101010010000000000011101101110111101010011111101100111110110110111011010110101101101101111111111100010101111111010110011111101110001101010110111001110011111110111110111011110111001011011111110110011101111011101111011011011111110111000000000000000000001100101110101111001011101001101011111111011101111110111011011011111110101111111011111111011101111110011110111111110001010100101111001011101111010011110001011011111110101010100101011110101101010110101101110101111111011011101111101110111101011100111100101010011111010101011111101010101110110100011011110111010101111001011111101110100110110101101111010101110111101111110101110111101010100111111111111111101111101001101010111001010011111110010101011111101011011011111101111011111111101110101101011011111011100111010011101110100110110101010101110011111111011111101010101001101110110111101101110011110100000010010101111111101011001101010110010101011110101110110101011011111110011101010101001111011011011101101110111101110101110101110101010111100111111101111011111111111110101111111010111111111001011111110111011010101101110111101101011101111011010000001110110111001010111111111011111011101101011101111101111000111101111011011101011011101111111111011111011010111011010101110110111111111011111010110011111110110111010110101100100011111101111111011010111010010110001101010110011101100111001111010101011010111101001010111010011101011101110110101101111101010011111101110011010011111011010110111011010101110111000110111011010110110011010101101100111110011101111101011111110110101010110101011011111011010111111110111101111110111011011111011011010011011111101101101101010010111010101011011111010110110101111010111101011110001110010111110111110101110100101110100110111101011001100010111110111100101101101001011110110110101101111101111000000001101011011110011011000101011011111101100010010010100110111011110110101101110011101010011110111111111100111011111110000000001101111000110111000000000000000101101110010100110111110101110011011011101110011011111011101110101101101011110111111101010100011011011111011011111011010111110110110111110011101101011101111110000001010111010000000111111111011101011101110110111010110111010011000000000000101101110010111011010111011101011110101110101010011100110110101100011111011011111111111011101011101111101011111011010110111111110111111110100110111101010111011111101010110110110111010110110001110111011101111110011011110111010101110111101110111010101000111110101101001011111101110111101011111011111110101011101011110100000000000000000000011010111101010011111101101110010011011010110110101010110101011101011101101111100110111010101101101101111011010111111111000111011111110111011111101011100101110011011110111101101111101111101111110101110101001011010101111101011101111111100110110111110111100011001110111111111111010101101001011111001010101010100110111101010110011011011101111111010011001111101010010111111011111101010001010001111011011101011101111101100110111110110101101011111101110111101100100110111011101111011111010010111111110110111010111110111001111011001010111111011011011011101101011001111100100111011011101011011110110010100011001110100100111101011011110111111111110111101111101011011011101110111011001110101100101101011110101010110111111111010101111101001110111111101111110111110111011100101101111101111101011010111011111111001111101111101111111111010111101010111000000000000000000000000000000001011011011101100101101101101101001011011111101110111001001001010110110011111111010111110110101101011111111100111011111111111111011111111101111011101011011101110111110110110101110111111101100001011111111011111000000000000000000000000000000001101110110110011111111110011101010011110111111110111010111100110101100011001010111011100101011111101111011011100100111011111010101101111110001111111000110111101011011111111010111010101010111101001101011101101001011100101111010101111011110110111001010101101101011111111111011110110100011110110111010110101011011011101111010111100100110101011010100101100101110110110110111111111101101111011101111111111010111111010101010101011111010101011110101111101011010001101010101111101110101101101110111010111011110110110100101011001010111110101011111111101011111001101111101110101011111000110111101101110101111010111110111110110101011111110111111111011011110101111000101110110010101100010110101110111111101111110111011011001010111101111010111110110101100011101011011101111111001111111010111110100111111000101011101111110101110111010111111101110111010010110101101111011101010011101110110111011101101011011101010101111010111110100111101011011111101011010111010010110101010011111101111010111111111110101001110111011011011110110011101110111111011010110110111100111011100111010111111011110101111111110110111111111101101110101111101001011010011111110010111010111011001100110101101111011010111110111011111100101110110010000000000000000000000000000000000000000000000000000000000000011101110111110101111010001010111101011101101111010101110111011011111001101011111111011111111101011011111001100001011110111101111011111101011101101111111110100010011110111101111110111010111111011111111111011111001101110110110101011101011101110111010111100011010111101011101101011101110101110100111100000000011111111011110101011110101111100101110110111101110111010100000000000000000000000001011101111001111011111111100111101111111101111111110101101110111010101101011110101111111101010110101010110111010111011101100111111011010011010111011111111101101010101111101011100111010101010111011110111011110101000110111011101011011111111011111110111010001101111010001011011111110111010101111111111011000000000000000000000000000010110011101011101111011101101101111101100111111111101101111010111101111111110010111011011001111010101101011111111110110111011100111101100111111011101101101100111101011110101101100111101111011011110101011111011111111101001010111111110101101010111110111011110010011011011111111011101101111101000101110111111110110101001011101010101111101110110011100000000000000000000000000000110111101011100101010110110110101111101010101101101101011101101110111101110110011101011011010101110101010100011111110011101111001010110111100100011110101101011110111110111010101011110110111011011011011011110110110101000101101110111011101011011010010101110110101010101110111011011111111101010101001010111110111111010111010111110101111010101010111011110101111111101111111011101111111011011011110111010110001111111010111111011010110111011111111101010101100111011110011111101111101010111001101101111111101110110011011011011110111101100011011111001101111011101111110101101101101101110011110101110011111110011010110101101110111101011011011111101011111011010111101101111100101011111110110101010101111011011010110110101011111011100110110011111001111011010110111101010111100100100010111011111101111101011101111111011100101111010110101011110110100000100111101010111110101111100110101101010110111011010011011011011010110111111011110011100011110110011111101011010001101101101011111111011101000000000000010111111011011000011101100111111111110000011111101010101110100000000000000000001011111101011010111001111011011110101010101101010101110111010100011110111010101111111010110111101111101010101011110111101101011011011101111011111111110011011101010111110011011111111011011111010111101000110101010101101010110011111110111111010111010111101110001010011011101010111001010111101101010001011010010111110111111111101000111010101001101010101111011111011101011110111011101011011010101101111110101101110101110111101111011111111010100111010100101110111110111100101011111111011101011010101111110101111011010010111111001111101101111101101110111011011101101010111011111000101011011011111011100101011110010111111011111110110011101011100010110010010111000110110101011101001111011111111011111011101111101011101100001011110111111110101110101101110111100000000111101111010011111110101110111101001011111010111101011011101101110100111111100111101010101011011110111001011010110110101101110111100111001010110110111011111111000000000000001101011010111011010110100011101111111110101100000000010110101010111010110111011011010110011101101101101101111111011011111101110111101101110011010010110101101011001101011011010011011101011100011110100000000000111111110111101101111111011110011111110111010011111111101111000000010111010110101111011110011001111101111110111101110011111110110111101101101110011101011110100110111111101111010101111011101111010111011010111111001110111010111010111111111100100101001111011011010111111101011011101111111111111010011110101101101111111111110111110111010111011111011001110111101010111100001011110101101101010111111011010101110111001011100111001101011010101111110010010110101111101011101101111110101001010111011101011101010111011110100101101100101011101011010100110101111101011111111111011101101011010100101101011011110011011111110111111011101101110111111111110101111101010111111101010000000000000000000000111111011100111110111101110101110010111110101100011101001010111110101010111011111111101000111010011111111101101101111011111010111101010110101101010101111110010101111111010000011111010111101101110110010110110001110011010111011110010110111110111010101000111101010101111111101011000000000000000000000000000000000000000001111101001110101010111110111010111110101101111110101101010111111101010110111101110000000000000000000100111111010101110111011111110110111111110111111011101010010111010000000000000000000000000110101011010111101011011111101101101110001011011101100010111110111010011011011110101001001011111101111011011011111110100111111111001101100010101011010000111111011110110101011101000000101110101101010100101011001111010000000000110110110100110010001010110101011101010110111011011011010110111010111111111110001111111101010101011101101101111011010111111011010010110111111111010101110011101010111111111011100111101101111110111101111001010111001101101111101011111101010101111010101101101010101010111011111101100111101111010101010111101001011011110110101111011010011001101000000000111010011101111011011110110101011110111101110111110111101101011110111101011111101001011111000110111101011001110101001001111111111011010101111101101001110110111111101010011011110000000000011111111110110111101100111011110111110110101000111001111110111111010010111111101111001011010111110101101110111111101101001101101110110110101111101011101011101110111010001011101011011011011111111010101101011111011111011111111001101011111011011111011011011111011000110001101010111101011010110111001011101100000000000000011111111101111100111111001011011101111011011001010101111111011011111101111111110110110110111011110111011011111101101010101010011111111001101111101010010111011011101011001110110101010101111010110111111101011110101110100000010111111010101010010101111111101001101111010100101110101111111011111101010101011011010011101011011011010111010110111111011100011100111011111111010110101110101111111000111110100111111101111111111111011011101101111111110101110100111011010101101100111111001101011010111101011111101010111110101111111110111111111011101110101111111010100000000000001111111101000101010111110101101111010111111011000000000000000000001111101001101011011101110101101111111110111101111101011011010110111011011101010101011011011111111111101110111001111110110111010111101110101110011111010111010001011110110110101010100111111110110111010000010101010101011110111110111101011001111101010101111010101010101111011011111101011101101111011111010101011110001011110101010101111110111100110001011111101011010111010110101011100111001111010101011011101010110110110110101111111011111001010101010111101011101110110111111000101000000000011010101101010111110101011110111100011011011011011100111111101101101001110111110010111101101011000000000000000000111011100111011101011101110111111011110011011011110000000000011011100110100000001111011011110100111001100111001111110100110111101110111111101010111011111110101111111101111101110111111110100000000000000001111101111110101010100101111101111111101111101101111010110101111111010111101111111111111101011110111111111101101101110100101011001101111011101011011110101101001101101011011110001111110110010111011010111110100101110101110111011100110111101000101011111111011011101111101110011110101110111010010111110100101101011010101101101101000101110111010011010101011011111101111010100110101101111110101101111111010110010101011111011101010111101111101101111011101101101011110111111110111010100111101011110011011011101101011001111101010111101010110011100101010110110001101010111111110101011111011101110110111011101111111011111011110110000000110101001100000000000000000000000000000000000000000000000000101100011111110101010111101101011011101110110110101110111011111001110110111010101111011110110111100111010001001111010101011001101101011101101101110110111111011111101111101110101110101101111011111111000111011111111011100111110101111010100110101111011101010011111101010011111110100101111010110111011001111111101111010111101000000000000000000000000000000000000000001010100111011110101111111111101011011111011011010101111111011010110011111111010011111010111010100010011011011110101111011111111110101110101111000000000000000000000000000001100111101101011101111111101010111111111101011110101111011011100110111111100111011000110110110110001011101111001011101001010000000000000000101011110101010101000101101011110111010101101110110111101010101110111100000010101010011111111110111111101111101010111111011101110111111100011111101011110111110101100111010111101011011111110111011011011101011011101101010101110111011010110110101101010111110111110101010111111111010011101100101110101011110110101010000000000111111111110101101010101111101110101111101011111110101101011011101110111101001111001111101010111000111001011011011101101110110111010101010101010101111111111010101101011010100100110101111100111101110011011011101110000000000001111111101111101010101011010100110111101011111111010101010101001111111100010111011111010101010111111010110111110101111101100110101011011011001111111001101011110011001110101110011101010110001011101110001111101111101101011011010101010010101011111111101111001101011111100101010011110101110101111100111111110110111101111101101010110101101101100011111110111011101110100111110110101111101001110111110101010111101101111101000101100110100110011010110011101111111010101110110101101101101101001011101110110010101111101111111110110111010111110001010111101101011011110101111101110111001111101011110110111010010111010111101111001110110110110101101000110100110011111101111111011010000000000011011011001001111101010110101011101011111111011101010111001101011010000000001101101111110011000101111011111011001010101111110011011111011101111111011100101101110010101011001011110111111011010110111101111111101101010110100100010010101111011011111010110110 -------------------------------------------------------------------------------- /data/even-rev.dat: -------------------------------------------------------------------------------- 1 | 1111000110001101100001101111110011111111011110110110011011000111111011111101111011011110111101101101100110111111110011111101111111101111011001111110110111111011000000111111011111100001111111101111111101111111100110111111111101100110110001111111111000110001111111111011000011110111100111100111111111111110001101111111111110111100001101111001111011111111001111000111111000110001111111111110111101101111111100110111111111100111111000110111100001111111111110110111100110110111111111111111101111110110111111110110110111100111100001111110000110111101101101111011011011011111100011110111111011111100001111111111001111111111111100001101101111000111111111100001101111001111111101101111111111011001111001100111111110000001111000000110111101101111001100110111111011001101111000110001101111111111011111111000111101111110011110111100011111101111110000110110111101111111111000011011110000110000110011111111111100000011110001111111101111000111111111101111110001111110111101111111100111111000110111101100011111100001111001111000011001111000001111001101111111111110011001111110111100001111110000000111111011001101100000110111111110001101101111110110110011000011110111100011110001101100001101100000111111111100011111111110110111100111101111111111011011110110110111100110110011011001100011011110000110110111100001101111110110110001100011111101100111101111110110111101111110011110111111111111001100011111111011111111110011111101100000110011110000111101100011000011001101101101111110000110111100000001100011111111011111101101100110011110111100111100111111111111011001111110110110000111100111111011110111100000111100000110000011000011001111110011110111101100011011110110110110110011111111001101111001101101100011111100110110000011111111011111100111100011111111110000110011111111011000011110001111000110011110011011001101111001111011000110111111111111011011011000110011001111001101111111111011111101100011011110110110011111100011110001111110111100000111111011011110111101111110001111011000011110111100011011011011111111111111110011111111011111111001111001111011111100001111001111111111001111111111001111011011000111101100000110110011111101111011011110111101111011111111011111100011011011000000000110011110011011000110111111000110000000111100110111101100001111110110110110110001111110110001101101111111111000110011111111110110011111100111111110110111100111100001111110011011110111100111111111101111110110001100111111011111100000011000011011011001101100110111100000110110111100000111111011011110011111101101100000000110011110011000011111101111011011110110111111111101100110001111110000011110111111011000111111011000110111111011001111011011011111101100011011111100111111110110110110111100011110001100001101111111100111101111111111111111011110110011001111110111100110000000110111100011111101100111111011001101100011011111111011011110011110011110110001101111000011000001111110110000110111111011011111111000110000011011111100110110111101101111011011110110111111111100110011011110011011011011111111011110011011110111101101101100110011111100000011111101111110011110000111100110001101100110000001111011110011011011001111011110111101101101111011000110000011011111100111101111111111000110110000011011110110000111111111111000001101101101100011011001111011111100011110001111011110111100111111001111011111111001100011000011011011111111110000110011011011110000001101100011011111100111101111011111111000110011011011111111001111001101100000111111110110111101111111111110110011000011011001111110011000001100001111000000111101101100111100000000110001101111111111001111011111100111100001100001101100110111101100111101111011011011011001101111000011110011110111100111111110110011011110111111011110011110011001101100001100011001111111101101100111111111111001101101100011110011011111100000111111111101100110011111111001101111111100110001111111100111111110001100000011111111001100011111111110001100000011111111001111110001100111111110110111111111111000110111111110011011111111110110111101111011001101111111111111100001111011111111011001111110011000011110110110000000111111011011000111100001100111101100001100000111101111011110110111111000011001100001111001111001100011000111111001101111000110110110011111100111111011111101111110110111101100011111100011111111001101111011110110111100001101101111011011000110111101111111100011011000011011011110001100110011111101111110110111100110110110111111111111011001111110110111101100011110011110110110110110110011111111000110001111111101111110011111101111000110110110111101100001101111011111111111100011110011011000011110000001111000001101111110011000111111111101101111111111110001101100111100011000111111111111110011110111101111110001101111110011011011011011110111111110110110111100011011111111000111101101101111011011001101101101101101101111000000011011011001101100001111111111111111011111111000111101100011001100110000011111100111111001111110110011001111110000111111110111100011110000001100011011111111110000111111111111011011111111011111111000011011011011011110111111110000011000011110001101100000001100001100110001111110011001100011111100000110111111110011110001100111100111100110001100110011110110011110001111011011110111101100110110001101101100111111111111110011000011001100110011110011011111100001100110011110000001101111111111111101111000011011111101111000000110011011111111111111111111111111110110110001111110011011011011111101100001111110011111101111011111101111110000011011110111111111111110011111111110111101111111100000011011011111100110000011011011000011001111011110001101111111100000011001111011111111001111111100001111000011011110001101100111100111100011111111011011011111111110001101100011001111111100000011011110111100110111111001100110011111111110111111011110110011000011110000011001111011001111011011011111111110011110000001111111100110001100110110011000000011000110001100110111111011111111111111000011111101100111101100111111011001100000110111100011110111100011011111111001100001111011110011111111011110001101101111110001100111111000111111001101111111100001100110111101101100001111000111101100011111111110110110111100011001111011110001101111001101111110011000110111101101111111101111111101111111111011011001101101111001111111101101100001111011111101111111111001111111111000111101100011111101111000011111111001111011001101101111111101101111011011110011001111011110011110011011000000000001100111100000111100001111111111001111011000111111111111110011011000110110110110001101101101101100111111110001111111100110111100000110011001100111111011111101101100011000111111001101101111110001111110111100111100111111011110001101111110111111110001111111111001101101111011111101101100111101100110011011110110110111111110110111101100011111100011110011000111111111101111111101100000110011111111001101100110111111011111101100011011001111111111111111111100011110111101100001111111100000111111111111110111111110000111111000011110011011001111110011011110001111011011001111011110111111110011011011001111011001111011111101100110110111101101111011011111100011011111111011011110011011110111111001111110111111110011001111110110000001111001111011001101101111011111111111100011001111011011001111011011001100110111101111011111111110110110110011111111011001111001111111100000111111011011011111111011000110011110111101111111111011110110000011110011110000011111101111001101111011001111011000111100110110011001100000110000110110110111100111111011000001111011000011000011011111111000001111110110001100011001101100000001101111011110111101111111100000011111111011001111111101100110011111111111101100111100000110011011011011111111011111100111101111011111100111100111111001100111111110111101101100001101111110011111111110011011110111111111111111111011110000110111101111000110110000011001111011011011000000110111111110110111100110001101111111111111111110000011111100110011111101111011110011011111101111011111111011000011111101100011110111111011011111100000000110011011001101111011111111111111111111111101111000111100110011110001111001111001111000111101111001100111100110111111110110001101101111011000011110111101100111111110111111011110011110111101100000011011011111101100000110000000111111001111001100111111011001111111111111111111111011110110001111110011000111101111001111110110000110110000001100111111011111111011111111110110110110001101111111100011110111111110111101111011001101101101111110011001100001101101101101101100111111011011001101111011110111101111011000110001101101100011001101111111111011011001101101101111110011000111101100110011110111100110111111111111000111101100110111111110111111110111111111111000111111111101111000000110110011110011110000001100000011110000111100000110110110110110011111101100110111100011110111111111100000111111111100011011001100001101100110111111110110011001100011110111100000000111100110111111110110110111101111111111110110110011000011110011000011011110111101101111111111011111100001101100011011110001101100110110111111011110110111111111111110110000000110000111111110111111011011011001111110111101101100111111110110001101100111111110111111111111110000111111001100111100011000011111111000110111111001111111111011000110110111101100110110110111100110111100001100011000000111111011000111101101111011000111111110000011011011011011011011111100011001111110011110011000110111111011011110111111110111101111111101111110111100110110000110000111100011001100110011110000111111011011011111101111110110110111101101100001111011111111111111001100111100001111110110111111111111011000111111000011110001111011001111111111011110111101101111000011011111101111110001101111111100000111100111111111101111011000110000111101111111101100001100111111110111111111111111100110001111110000011011011011000011000110001111000111100000011111101111000011111111110111101111001111110110110000111111000001100111111110110000011000000110110001111110110111101111000001111111100011000110110011000011111111111111111100110011110011011011000011111100011111101100001111111111111111001111000110011011111101101111111111110110011011110011000111101100011001111011110000011110001111011011110011111101100111100110111111110111101100111100110110 -------------------------------------------------------------------------------- /data/golden-mean.dat: -------------------------------------------------------------------------------- 1 | 10101011011011101101101101010101011110101010101011010101110110101111010101110101101101011111101101110110110101110101111011110110110110111010110111101101111101101011010110101111111011011101111101110101011011010101101111101011011101010111010111101011011101110110111010101011010101111110101110101101110111111111010101101101011011101101101011010111101101010111011101010101101101010101011010110111011111110110101011011110101011110110101101011011011011010101011110101101011011101010101010110101011101111010111010101111010101101110110110101011111101010101110101010110101011101101110110110110111101010111101110110110111011011111011011101010101010110110110110110111011010101110101101111111110110111011011011111011101101010111010101101110101011101010111111011101101011010110111110111101110111010110111011101011101010101110110101110110111011110111111011101101110101011101101010110101011010111101101111101011101011111010110110110101101010101111101101110110111101101011101110110101111110111111110101110111011110101010101111011011101010111101111101010101011011010110101010110111011010110110110110101111011110110110101010110101010110101110101101101101011010110110110111110101010101010111011101101010111101111101011110101011101110101011010101110111011111110111010101101101010110101110101111101101010101101011110101010101110101011101101101010101011011011011101011010101010110101010111101010110101101010111101010110111010101011110111010101110101101011101010111110110101110101110101011101101011010110101010101101110101011110111011110101111010101101110101101110111010110101101011011110111010101111010101111010101011110111110110101101111110111010101110101011010111111010101111110110101010110101101110101110110110110110101101101011101101110111110111101010110111011111011101111011011010111101010111011111111111011101101010101111101101011011110101110111011101111101101111110101110101110110110101101011111101010111011010101101101011101010111111010111101010101101101010110101110101010101110101101011011010111101010111010101110101101110111111011110110101101111111101111110111010101010110101010110110111110110101011011101111010101110101011101101111011010110101010101010101101011010101011010111011110111010101101011101101101010111011010101111010101101010110110110101010110101101111101101010110101101111111010110101101101010101110101101010110110101101011101011011010101011011011010110111101010101011110110110110101101110111011111010110111111010101010101110101101010101111111101010101101011011010101011101010101011111101101010111101010110111010101010101011101101010101010111101011011010101011010110110110101011110101101101011011011010110101010101101110110101111010111011111101011110101101101010101101010101111111011101010101111010110101011101010101010101101011101111010101011011101101010101011010111010111011010110101101101011111101110110111010111101011010101011011010111110111101010101110101101110101010101101011011111011101011110101101110110110101101011010111101110101011011101111111011010101011111011010101010111010101011111101011010101101011011011010101010101011101011010110110101010101010101011110110101101101101010110111110101111101111010101010101101010101101010111010101010111110101011111010110110101110110101011010101110101010110101010101010110111101010101110110101111110101101010110110101101110101011101101101111010111101011101010101101010111010111110110101010101101011010101010101011011101101011010111101010111111011110101011011011101011010101010101111011101101110111010110111101101011101101101011111101101111101010101011010110111101011111011110111101110101111110101110101011111010101011010111011011011011110101011110101111010101011011011110101101011010111111010101010110111010101011011101111101101101010110111010111111101111010111111010101110101110111010101101010111101010101110101101010110101011110111011011010101111010110101101110101110101101101101111101010101011110101101010101010101110101101110101011011011101010110110110101010110101010111101011010101010110101101010110101011101110101110101111101011101101111011111110101111111111111010101010111011101011011101111110101111011010101101101101010101101101101101010101010111011011010101111011111011110110101110101010101010101011011110111010110111101011101011011011101101011111011010111011111010101010110110101010101101110101010101011110101010101101011011011101110101011011111010111010101101111010110101101101010101011011101011101011101011110110111111011101110111101101010101010110101111110101101110101111101101010101101011101110110101110110110111010101011011011111010101101010111101101101011011010101010111110101011110101010111011110101010111011011101011011101010111111111010111111110101110101101101010101011011101111011101101010101010111110110101011101110101101101110101111110111101101010110111110101101101010101010110101110101101101111101011011111010101010101010101011011111010110101101010111111010110101011110101011101011110110101010110111010101101011110101111011011010111101010101011101011101101110111011101011101110101010101011101010111010101011101010101011010101010111101010110111110101101010111011110110110110101101010101111011010101111110111111010101111010111101010101101010101110101111101101111101010110111101101101010101110110110101111010101111110101010110101011101110101011011011111101010110101110101010101110110101111101010110110101010111101101011110110111011011111010101101101111110111011110101010101010101111011011111101011101101010111101110111010110110101011101011111010111011010110110101010101011111011101010101010101011110111101111101011010101010111101110111010111010110111011011110101011101110101011010110101010111010101011011101010111011111110111101010101101110101101101011010111011011101011110110110101111011011101011011101010111010111011111010101010101101010101101011011101010101010110101101010111011101011011101101011110101101101011010101111110101110111010101011010110111010101101101111111010111010101011101101010111111010101111011110101010101111010101011011101010111110111010101110101011101101010110101101011010110110111111101111011110110101010110101011101010101101010110101010110101010101010101011101010101011011011010111011010101101101011011111110110101010101010110101011111011010111110101011111010101111101010101101110101110101101011010110110110101110111101110101011011011010110110110111010110101101101011110101011101010101010110110111011101010111110101011010101101111011010110111110101101101010101010111101011011011010111011101011011010101011101011010101101101010101101011101011011101010111010101101101010111101010110101101011111011101010110110111010101011010101101011101101101010110111111011011010110101111101111101011101011111101010110101010101111010110101110110110101101111010101101010110110101010101101010110101101111110101010101010101101010110111011010101111101101011101010101111010111111010110101101010110101011110101011010110110101101011101011101011011101101010111010101101011010111101110101101110101101011011101110101011011101110101011010101011110111110111011110101010111101011110110111011110101011011101110110101010111011011111101111111010111101111110101101010101101111010101110111010110101010111111110101011010110110101110101010101011101111011110110101101101010101111010111101011011101110101101010101010110111101010110110110111110111111010111110110101101011011010101011101110111010101101101010101011011101011010110101011101011011110101101110101011101101010101101101111011111011011110101011010110101010101011111110111011011010101101011010111111101101101011101101011111101010101111010101110101011011010101010110101110101011110111101111111010110101101111110101111110101101010110111101101011011101101101101011101110110101110101101010110101010110101101110111101011010101101111101010101011010110111110101101010101101011010101110111101011010101101010101010101011101101101111010111101010101111101110111111011111011010101011111011010111101110110101010101110110110101101101110101101110111110110101101010101011010101110110111110110101101101010110101111110101010101011101010101011101101011011110111011101111010111101111111011011110101010110110101101011011010111010101101010110110101110111101101011010110110101111101110110101011111111011011110101011010111110110110110101111111101101101101110101010101101010101010101010101101011011110101010101111011010111010101111101101111111011101110111110110101110110101011010110110110110101101010101101010101101011101111010111010110111101010101101011011010101110110101101010110110111011110110101010101111101111110110101101011010101010101111101101010111011111111111011011011101011111110110111111111101011011011110101101111101010110110111111101010101010111101010101011011101110111010101010101011110101111110101010111101101010111111011101110101111101110111010111011111111101010101011010110110101010111010110101110111010101011010110101010110101110101111011010101010101110111101111011011010111101010111111011010110101110111011110111010101101011010110110110111101101011011011010101110111101010101011010110111101111101010101011101011011110111011101011101010101011011011010101011011010110110101101010101010110110101010101010110110111111101101010110110101010111011101110111110110101011010101110110101011110101010101011011010110111101111110111101101010110101011111010101101011011110101010110101010101101111101111101010101101011010110101010101110101101101010110110101010111010111101011010101011101111011010111011101011011110101101111111111101010101011010111011011011010101010111010101011101010111101101110101101110101101010101101111010101110110110101101101101011011111101011011011010111101101110101111101111101011101111101101010110101011101010101111011010110101110101110110101011010111111011101010101011010101101110111110111011011110101010111011010110110110110101010110101010111010101101110110110111011011011010110101111011110110101010101010111010101101011010111110101010110101011011101101111111010101101110101110101011011101101111011011101011101011011101110110111010110101010110101010111110101010101111111010101010110111110111111101110110110101010111010110110111111110101011101101011010101101011110111101011010101011111110101011101111110101111010111101101011101011110101101101011010111011011111101010111011101101101010101110101101101111110101111011101111111010101111111010101010101011101111011010111111101011101101101111011010101111011010101010101110111110110111010110111110111011101101011010111110111011010101011101010101011011101101010110101011011101111111101101101110111011011110101111101011111011111110111011101101111101011010110111101011011011101111010101011101011010111010111010101010101011111010111101010110101010110110111111101101010111110110101011110101111011011011010110111011010111110111101011101011101011101010111010101010101101101011101010111110111111010111011111011010101011110101010101010111011110110111101010110111011010101010111011111010110111111011010111011110111011110101010110101011110101110111010101101011010101011011011011101111011111010101010110101010111111010110101011101101101111010101101011010101101011010110101011011101101010111101101010110101010110110101010101110101101010101110110101101101011011010101011101101101010101011010101011101111011101010101111110101101011010101010101111110101010101011011101111111010111110101111110101111101111101101101011011011110110111101101101011010110101111011101010101010101011011111011101010111101111101010101011010110101101011101101101101110111111010101101010101110101010101011010110101011011111010101011011101110101111010110101010101010111101110110101011101010101111110101110110111011010111111101111010101010110111111111101011010101010101010101010101101101101101101011101010111101010101010110101110110101111111101111010101011111110111010101010111010101010111011011110110111101010101011101110111010110101011011111011010101101010110111111101010101101011011011011010111010101010101110110110101101101011101111101010101010111101101101101111110110110111011010101111111111111011010110110101111010111010110111101110101011011110101111111010101011011011111101110110101101011101011101110101011101010101101010110110101101101101111011011111010110111011110101010111011110111010101010101010110101011010110101011101101010101011101101011101111111101010101101010111011101010101010101010101110110101101101111101011011010101111010101111110101011010101111101011101101011101011011110101010101111011110101101011110111010101101011101111101101011011011010101011111111101011010101110101010101010110101101010110111101010101010101011011111110110101011101010110101010111010111101011101011010101110101010101110101101010111101111010101010110110101101110101010110111011010110111101101111111111011101110101101011101101010101010111101111111101110101011101101010111101011110101010101101010101011101101101110101110101110101110101011110101101010101111101010110110101011101101110101010111011010101011111010101101101010101010110101011101010101011111011101010110110101101111010111101011101101111011110111010111111011101010111010101011101101101011111101010111011011010110111101101101011110110101010101011011101010111101010101101011110110110101010111011011010101110110101110111101101011011110110110111101011010111110101111011111111010111101110111110111010101011110111110101101011011010101101010101111111101010111011010111101010101011011101010101010101110111011101010110101010101011011011011010111101111101010101010110101011101111110101011110111010110101101101011111011011101110111111010110110101010101111010110101011111010101101011111101011110111011011110111010101011101110111010111101111101011011101111101101010101011011011011101011101101011011011101010110110110101011110101011011010101101111010101011010111111010111101110101010110101010111011011101110111101101111011101101011101010101010101101010111011101011010111010110101011110101110101011010101101011011011101110101101110101011011011011101111011111111010110110110110101101110110101010110110101111101101010111010101101010111110111111101011101011011010111011111110101110101010101101111011101011010101110101010110111011101110111010111101110111010111101101101011111101011110110101010101011101101011111010101011110110110110101111111010101111110110101101011010101010111110110101101101110110101010101110101011010101101101110101111111010101101111010110101110110101010101011011011111101101010101011010101111010101010101010110110110101110111010101110110101110101011111111101011110110110110110101101110111110111110101110101011101101010111010101010111011010101010110110111111011101010111011010111010110101010111011010101011101111101101101111011011110101010101101011011011010101101111111010101010110111110101011010111010101011010110101111101011110101101101101101101111111010111111011101010110111010101010111010101110101010101010111011010101111111101010110101110111111011010111111011101011101010111011011101110101110111010110101011101111011111101101010111010111011101010101010110110111101010110111111011101101110101011111110101111011101010101010101101111111111010111110101110101101110110101111010110110110101110111010110101101011010110101110101111101111101010110101111010110101010110101011110111110101010101010101010111010111101110110110101010110101011110111110101010111011110111101111010110111101011110111010110101010101010110101101010111101111101010101111110101101010110101110110111110111011011011101011010101010101101011101011101111010101110110101111101011101101111011110110111010111010110111011110111011010110110101101101010101110110110111110101010111110110101010101111010101110111010101011101011011011011110101010111111010110110101011101010101110101101010101101011101010101010101011101010111011101011010101010110111011010111010101010111110101011011010101110111011011010110101101010101011101010110110101110110110101101110101011111010110110101010101111101110101010101011101101111110101010111010101111011010110111010111101010110111110111010111011011011101010101011101011011011010101101110101111011101010111110110101010110110110110101010101011111111011011110111110110101011011111010101111010101111010111011011101011101111110101110101110110101101010101101110110110111011110101011101010110111110111011011101110110110101011010111110110110111101011010101101101101111010111101010101110101010110111101101011011010101101010101101101011101010101101101011010101010110110111010101010110101101010111010110101011011011101111010101101011110110101110111011010101110101010111010111101010110101101010111011111110101111101101110101110101011110110101010110101010101111101011110110101101010110111101111010101111011110101010101101101011010101110110111110111010111111110111011010101111111011010101101101110101010101011011010101011011101011010101011010111101010111011011111101101011011101010101101010111011010111011110101101011010110101010110110111101101110101101011101110101010110110111111011010101010101101010111011010101110111011011011010111110110111101011101011101011010110101110111010101010101011010110110111010110110110110101010110101101010101101011110111110111110101010101110101111101010101110101101011011101111010110101011011010101111101011011110110101010101011010101111111010110110101101010111101111011010101010101010101011101110110110111111111011011110101011110101011010110101010101011010101101010101011101010111011110111101010101110101010101111110110110101101101010101011101111010110101011011011011101101111111101010101101101111101110101011010101010110111110111010111110101010101101011011010101110110101111101101010110110111010101110110101011111011111010101101010111011110101010110101101110111010111111011010101111110101101011011110101101010111011110101011101101110101101011011111101011010101011010110101011010101011010101011010110101111011101111010110101110110110101111101110101101111111011110101101110111110110111101010101010101010101101010101111010111111101101111011101011010101011010110111010101011010110101011101011111111101011011110101101111111010101010110110111010110101101010101010101110101101010101110101110111010111010101110101010101011010110101101101110101011011010101110111101101101111010101011110101011011010101011011111011010101010111011010110101101011101101111010101110111101101010110101101011111101010101010101011010111011011101011110101111101101101011101101011011101101111110111010101010101010110111011011101011101101101110101011101010111010101101101101111011101010111010111011011010101010101011011011010110101111101111011011010111011010101111101110111111010111010110101110110111011110110111101011010101011011101101011010101010101110101101010101010101101111110111110110101110110101010101111011011010101110101010111110101101101101010101010111011011011111010111011101101011110110101101010101101110101101101101101101111101111110110111010111101010111011010110101010101101010101011111011011011101011110111011110111101010110111010111110110111101010111101101010110101111110111111011101101101010101011101010111011010101010101101010110110101010101101101101110111010111010111111110101101111110101101101010101010111011101011010101111010101010110111111110111010101101011010101101011010111010110101010110111011101111010111110101101011111101011010101011101101101010101101010101111011101011101110110111110111010101101010111101101101101011101011011011101101101110110110110111011010101010111010111101101010110111101011011011010110101101101010110110101101101011011110110101010101111011110101011110111110111101011101101101101010111101011111011010101010111111011010111111010101101010101101110110111110111010101101110101110110111110110110101110101110110101011010111010110111011111010101101111010101101111101111011011110101101011010101010101111010110111010101010111101101010110101101010111110111111011101011011111011010111011010110110111101110101101101101010101101011110111010101110101011011110101011111011111101101101101101011111010111110101010111010111111011010101011101111011111101010101010110111011011101011011101011110101101101110111111101101011110111111110101110101010110111011110101101011110101101010111010101011011010111010101101011011011101101011010110101101101011110101110101101101101101011010101111010110101010101011101101011010110101110101101010111011110111011101011010111110101010101010110111010101011010101010111011101111110101101111110101011111110110101111111 -------------------------------------------------------------------------------- /data/period4.dat: -------------------------------------------------------------------------------- 1 | 1001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001 -------------------------------------------------------------------------------- /data/tricoin.dat: -------------------------------------------------------------------------------- 1 | 2010021001111110021110220202202121212000202000002000012002022022022012212220111000122110121221200021121221200201110212021221021112002122211112222002212201112010000221011012222112011210002021112201000212022111121011112100120210012222121121112102201000102111200101011112021112211202110221221011210110020000200210202220001100020202100021102100202120020001101021112021101221210202220110101212020222112212020110020111022022021102020100110111102002012020022020022202201012110210101121101112022002201200202110111110112120020122200000210011112200200121211120101220212101120010022010010221200122112020002022110002010012002010101122200000212120221121012201012201020221121200012010220201120020102201111120002101201220021201210112022100022222222111012120112201022220000221222011202210122110100211000210111111121112002102211000221001120200011202021022220002212100210121100021100200101021011022222000020100120202212222200021122101022111121011021221012221210221102122211210010212010100100212202100110020112111110001211100100100020110200122002012220001111210212002210211002002201121110201102120110000021000102002012201221111210221202211010022000201211111110002212022002011201102210221020101012001011122202221222110001012102212022211000120211122122100001210212101002211120220011210212201021212021212222110112021201112211020211101221001012011210020011112220220100122102100012101121020201100002102211002001121220010200022101200122110120222210222221211010221201022220120220110112202112102212200221112000000121212121021221022222100012212210122012221220022000212222121100112210021000000210220020121121121200202100122021022010201000010122021002021012000112220012221020101220112011100201101112222102002011101012210212022211200110111201000011102202021100011000102110110011002201102111020211221120021220121112210020002102020021222001200021012211002011010121022221022121002201210001000200002101110120000220220200202201110101202002220021221120122012201210221012100210101101102200202110221212122200212221010100121121010022200111011211120000021102220210010101102211201120221101220100111111210101021201001121011110220020202200000001110201202001122122010200121222101212012012221001100211002211200102122222202021202010122112101212020001000022202112102121012222011121000122011222220220221112001210201011020100002120200000001020202000121012121222221121100120121101201102222020021210101101022021021022212211101212122112011020002201111110211212011002022000202122220012021021210111102220221201221021222201002112001011010201210211212001121212101020110202212222211120211102102211011222102221200100000100200110211000121222001002101112020221210102022221100000210012002212110122020020101112110010201010210122012202212010101121111000100200222021112201210020211101120210121111220210001110122212112101211122012111110121010022001020112012110100120202111200011010210000220202100100011000110211202121111221112010111201211211110220001212120111100201102012012200011101011102212221012220220220010220111000122021211222011121221112101122211020112200010002011210112001122212102101112110122021211210002000111200101212202101011110122110122021102000002012201020021200200110201110000001102022112120000021101200012022202021022022121022220221202211122201011101002210212111010122222212100200021020011002022020201010001010220101222212021001100120111201001012120112110211120011220020210102202210020210101002000212010100112120021112202121210012020010102010202201211220002021102210211201011010110110210011102120010220201111001202220000112222001100101202101112010000222000220201221211120100011102201110102021002012210122221100212110102201111021211011021212212001010221021122021122020101011120001021001101111201020120200201210100001210111012022200200112210112202101010000011012212101100002221022111111122112101201210100002011012102221201201211020220012120011002012210200100000122020101202212211101201210122202011222101222100010122201010122102210022222120101112001100102210111020121001012000201001021001022212121121012221122221100220100012120121201121110102022201201121222021101022112011012011210020222202011111210200021001201221020220222022110120002101211011212202100002111200012100111102212212122111020220221112202012222001222000010020222111110111101222222010012201012012120211222010102011102211210021220020221002020102201201222020020111110201222120210212022222201111121222110210220212121210210111122220001010211121022021122100021021201000212202221210022100201100110002102211200211110222121202001011112002122212221002110001110102112222111000220012221020021120201120111100002201101002110000211221001222101011020021011122212110100222222011221000121201122211002011221200211112201000000012112012021211222100211121022211222221022212211212200000211000100010001112112210000001222100012001010102222200012200221222111201211022200202212010101102100122001102110021110111012211020200011100002022111120212001102021101222020210010202120210102121212221021212100010122021121122020211020212012121200212002010000222222221120220100011011112020101021202100000020121120121001222011000111011112101202112022011001121211100112001100001011021222110101012111211110010001011101011121000011000211222201200210212012201001220201122002211200010022121001201112211210001001012220202001210010110010000012200111012011102221211120012102211210120111011111012200222210002202001222012212121212110200210110222100021100001211111001211221020102220222020002102111122121011122110100201112200220002121112001022020100102002100221112200102022100011002221210202220002112211010100210001010100111201212010000101011122102211222020201011112021222222100101122222102201020110002011112011111000211121100122001200101220201101222211021012111222202120122012120211112002021012122202021002221212110222102101000020001201110022122120010020100101211020100202021122022122201212200102202211201211120001222212221012112001011222122201110022101011002002121000210110012112122101022102012210001222210210211101120012120202022221010001110012211202111200120101010121020012021201110220021001120220100101100010210011220102011222001110110122220201122122220101120122001022221211110002022012211200110121001111211100102201002000110101220122100221111111122121212000121212010102200212021210220201010221002101021121110100100212222120111000021112220020021110101122202102022001120221020012222101012021200210002100112200202000111001110100201010022111122220000121010212002210122102110100200212022012101122020200100121120200022112211212010221210021121111010222212220102200211202102212020211021102020121010001121111110222111221222122111000012111021000120020120102021022212112011221101101101110101210100100222012110002001110002100212211100212210201011011010010020001222020220020101012020002100222221110121021202002120102210112010022010020221121211020121102002220210021000010122001110112102020212100200201102111012212121012112220211022002022212212211020202210100220121011100012002022021122002102200100220000022100102210201120210200001121111010221210002220022001222102100012020101102020020010210100012100010021112122012221112020122020201122101012102221210022010110002102120210211200110110112111000210001200110111020010221221001222021101121010120121020010110000011220222000211000002202202010001111201200220201102212012021121211010202121211121000120102211210101021120011121100101210210110122100221120021120220111101021100000010101222001202102212212212120200022221202021121202020010112120221012110020211212001012200220202011002121011211002022001102101111000222022111001010101210201100201022220220120001201202010211220022212101220012122021112102220121211121102121022010121122120012002212020121001022100000222011012010220000100221112212202100211100122020220122021122101212002111200120102102210100022221122012110121000002210012112121012021000101020202011120211002210200211010020200221201201100102000201000201222111121112121210111121210202120001002011110201002222121001101221120112212211022222211120000102200101002012100021110101200211000202220110211122211121101000002001012000002002001120200022210100201202020120202221101211220111121221100021021010002022101100110020000011212100010120012102011011112220022211002220222002001101010101121101220010212210002201110022001001112111121120121121001011120221110001202102211112112121011010101210220202111212012200001220001101222012110200122221020010120210021222121222000120010221202020001102222002110011100210220120211100200111012000202110111202121112112200221102220121011021101001221200121101102210221220110010121211122002212212101001120112002210210000211000222000202101022121202100120221220112001022222021110022111001021211122120000021212020221210102120202101122012211012021000212110100121200110012201021021020111122002222211002021111001220012011000121102220002220012202221000111211101121111002211012000012122100112211211102211021011021011200101122100112102001000001010111002202100221110200211121002012200021010101101110102102222022212002121220101210121020110101022022110001222122102212211102222200110211220120212022222210211002120221202010110111010011220022021001202011212121000221222212102212202201100012022102110011121111221011002220001212020222021111000201000000020202020000021202220220012222102202002201200112121202220001201200110211002220002201001012021021212020211211001101220122211100222110202120022210120002222202222112202111011120110010002212100112120210110010101020210012210210212012111100011201211102002122221100000111000000112012021022012002111122001011011200001111022202101011011102111010120022010220222021202220102111101001022012122212000220201111110211100112210121211221100001122120021222222012121222110111001011022001200101122110202020200010011211110011222120112110110110002120012012022120221111220110100101012021120100011211010222001120010010000121221100000220110221002112212202010101021120221121010202112210011202010220220112122022100222212112011111102112100012210122121120222121201011212200000200222002001000010212021120210201012212222200011212010221100010002201102022222002100021021111110001102112001001201212221222220222202101120102021201012101021111212120212121200120201011101010020011220000102021001 -------------------------------------------------------------------------------- /data/tricoin_through_singh-machine.dat: -------------------------------------------------------------------------------- 1 | 0101001100000000001100010000000011111100000000000000001100000000000001101100010000001010001110110000101110110000100011100110101100100011001000100000001100100101000010100000100010101011000100100100100011100010001100000110001001000100011101100110100100000110010010000000100100101010010010110100011000001000000001010000000100001000010001100110010011000000100001100100100010111010000010000011100000010101100010001010001000000100100010000000000100001100000000000000000100110011000001100000100000000110000010000000000111000011000000001000000100000011111001010010001110001001001001000010110011010100000000010000101000100001000001000000001111000101100100100100101000101110001101010000101000010100100001000010010110000110111000100010001000000010000111010100101000000000110001010001001010000011000011000000001100100010101000010100001000001010000101000000001110011001100001100010010001100001000000000010001000001100000000101010001010001100001110100100111010100111001011000011101000000011100010000001010110000000011000000000001010010011000001100000100011011100001011000100000101100010100111010000001100000100001100110100011010110001000001000000111000000000101100000001010100101010101010000100100001000000110010000000110101100001000001001001011010000011011110000101001000001011011100101111100111100010000100110100101001001000010100000101011001001000100000010001010110000110001101000100000110101000100101110001010000010010011010001000001010000111000010110101000011000010000100010110101100000100100000011111111101110101000010000101101001001100110000000001100011100000101001100000011010000011101101110000010001000101001010100000001000100100100100010100001100101010010010101000010100000100010100001000000101011100001010010000010100000000100000100000000000110000000000100100110001001010101000110011100101001000010100000110000110000100101000101000001101000101011100100111000000010000010000001000000000000000000100000010000000000110101011001100111010100110011000000000100000010010111111000001100100000001101100001000010000011001000000100100001000000000101010101000100010010000000011000001110100001100000010000000000000000100010110000101011001010011110010011101101100100000011000101010010111000000000110001001010110011100000100001000010110111100100001001100001001010000000000100100111010100001010000111000000000101000000011100111110000101100001011100010100100000000111000000001000101101001101000011111010101001000000100000011011101000100000000011000001100101111000000100000110110101110000100110100100000010111011011100101111110001010010001100001001001000110101000010010100110010000000010010011000001110000100110000100000111000100000100000011000100001110001000000010000110000010100011001001100001101000001100000000010000000100100111001001000001001001100010001000000001001110110011001001110000001100001000101010101110000001000010010001000011000010000010000000000000011010011100010100101000010111011000010000111111010000010100101101100001000000000101100100100000000001010010000001000111010001001110100110001001001010100001000101011000100101001110110000110001000111011000100010010010011100010000000001010001000100100000001100101000110000010010100000000000100010111000000100010001100000000101000011101000000110001001000100000000101011110000001000001110010000101001000100000000100000000010010010001100100000001010010100000111010110011001001010000001000100001001001000000100001101000000111000100100011111000100001000101010000111010000000100101011010100000000000011000000111001010000100000010000000010100000100000010010000101000010000000000110111001010000000100100000100100101101001000100011110000100100001111000001111101100100010101101000101000010000001000101100000000010101011000000111000000011000000100000000010101000100010000000000000101110000000100101010000001010110010111000000101000110100110110111001000001111001000101101010010000001000010010001101000010111001000001010010010010000001000100001010101001000011010000100100000101000001011100000100000100001100001001111101100100101000100010010000111011110101100000100000110101110000100001010101000101011001000000001000011010000100010110101000000000010001000010011000011100010000110010001110000000101101111010001000000100100001100000110000001001000010000000000010000001000100100101111001010001000101000101011001110000000100100010100110110000000010000010110011001011100000000100001110010011010001111111011000001000000100011001101000101010001101110100011100000111001010010100000000110101010001000010011110000100000100011001100100110000000000110100010000010001100101000101000101010000000100100000110000011010100010010000001000100001001110000010000001010100001110101001000101010110001000100100000000110101100111010010011001101001010000101001101011100000001000000000000000110101000000010010000100100000100000001100000110010010111001000000001101000000110001000100110001100000000101001000001000000100010001001100100100100010000001000010011001000111111100101111110000001000101101000001001001101111110001100001000010000000101000010000000000100010001110010000001011101011100010001000000000000110010010100001000001111000000100100000000001110010000000110011000000000000000000001100000000011010000110001011101100100010000101000001010001001011100010100101011000000000100000000111000000000000000100010000101000100111001001110101011001010000000000100000001000100000110001101111111110010001000010010001100000011000000011010101010100000000000010110001011100001010000010100100000000011100100101000010000100010010100100010100010000000100111010000000010101000000011000000000000010111101000000000001010101010000000100000100110000010000001000010100101010000101000101000000011001100001000110010010000100010001001100110010000011011001111001000100000100111000000100100111110010010110000001000110100001011011001001010000011001010010000101000011000111100010100001010111001000110001100100110100100010011000100001010000000100011100011000000110111010001010101101000010001011011000001001111000000000100000000000101010010010011010000001101001100110100010000100001000010000000000011000010010101010000100000001000000101011000010001011000101000111000000100001101010010001100000011000000100100100010000010011010010100000001011111100011111101000100001100111010000100010100110001101100000000011100011010000001100100000000100000001000010100000101000101001100010000100110001000110000100000000010000000000010100001010001000000011100011100001001010110000010001100001110001000000010001101000000010101011101010111001101100000010001100010100001010010101100001001100100011100000001100000010010010110011010000000110001100001000011010100101001110101010100000000000000011000000010001110000100100000110011101000011101010100000000000001000110000000000010000100000010010000100001101110000011010101000101001001001000101111001011100100000001001100000001000100000110100001110010000100110000101111100110100001001000000001101101001000001000010011100000000100000000101000010100010010000000010000101010101001010000101100000010111000100000000110010110000100010000100000001011000000110000001100111001100100100011000000101010000110100111001001000000110111001011010010000000110000011000010010000001001010110100010000100001100001011101001000000000010000000001000000100000001000000010110000000100101101100101111000010011111001100001010101011000001101001001100000011011000001010010101000101000010000001100000000000010000110010101101101111000000000110000101110000001000111000100110001001011100100100000000001000111100011000100000100110000000010000010000000000011010100010101000000011000110110001011010000001110010001111000100110100011111001100111101001001101011001100001100011100001010000010001000101010000010010100101100010011000001000000011000101010011100010010011010110101000001000101001110001100000101000110111100100100000001000001001001000101010001000001000000110110100000100000100010110010001100111111000001111010011000100101000010100100011100000010101010101101001000001001000010100010000101110001100000010001000010000010011001001001100000000100100100000000000101000000001000010110000011000000100011010010001110100001101100000100010000000001000001011110000001001110101000000100000001000100000000000100000000001100010001011101000100100001000100000110001101011101100000001000100000010010101000110111100000000011010000010011101100000110000100010001110010011000101001001001001110011110000011001010110000000100100000010000000011010011001000010010000100000010000010011100110100000100100011100001100000010110011100000101010110010000001111001000001101110000001010100001011000011000010000000010001011110010001000110010100101000000100001010000001111001011000000111100000111000111000010001001101000100100011110000001110010000100101101101010001000000001000100100000010001101000001100100000000001100000100000011000001100000101000100001111010000101011000101001100001100010010001010000110100100000000000000100010010100010001001100101100000100000000000000110100000001100011110010011001101010000001000010000010011010101101000100000010011010011001100000001011000111000110001000000000000010000000100010001011111100010110001110101100000100000100010110000001100010100000100000111100000000100000010100000001000000000000110000000001100010100000000110010111110000000110110010011000100000000100000100101111100001011000000010011001000010010010011000001001000000000000010100010000001010000000101110000111001000000000001001000101011011101110000000010111000100011000100000000000000000101100101001100010001000100000010000100001000010000000000110000001000001010000000110000010110000000001001111001100000000100000011000000101001111010100000001011000110000001111110010000000000001000110010001010010000000001000011000000010011010110000000000111001101100011000100010010000000000100101010000011000010000101001000000001110100000010010010100110101100001000001101000101100010010101000010001010000010111000010010001110101000000110110000101001011101000011110100011100000000000000000100000011100101001010100101100000001011101010100000000100100100000000010001101100000000000110100100010111100110000000000010001010100110100110001100011111001111110011000100000000001001010000010100100 -------------------------------------------------------------------------------- /demo-and-experimental-scripts/compute_mixed_matrix.py: -------------------------------------------------------------------------------- 1 | from transCSSR_bc import * 2 | 3 | import numpy 4 | import scipy 5 | 6 | import matplotlib.pyplot as plt 7 | 8 | # machine_fname = 'transCSSR_results/+even-exact.dot' 9 | # machine_fname = 'transCSSR_results/+golden-mean.dot' 10 | # machine_fname = 'transCSSR_results/+barnettX.dot' 11 | # machine_fname = 'transCSSR_results/+RnC.dot' 12 | machine_fname = 'transCSSR_results/+RIP-exact.dot' 13 | # machine_fname = 'transCSSR_results/+RIP.dot' 14 | # machine_fname = 'transCSSR_results/+complex-csm.dot' 15 | # machine_fname = 'transCSSR_results/+renewal-process.dot' 16 | 17 | axs = ['0', '1'] 18 | 19 | inf_alg = 'transCSSR' 20 | 21 | HLs, hLs, hmu, ELs, E, Cmu, etas_matrix = compute_ict_measures(machine_fname, axs, inf_alg, L_max = 50, to_plot = True) 22 | 23 | print(('Cmu = {}\nH[X_{{0}}] = {}\nhmu = {}\nE = {}'.format(Cmu, HLs[0], hmu, E))) 24 | 25 | def Hp(p): 26 | x = numpy.array([p, 1 - p]) 27 | 28 | return -numpy.sum(x*numpy.log2(x)) 29 | 30 | p = 0.5 31 | q = 0.5 32 | 33 | Hp(1/(2 - p)) - Hp(p)/(2 - p) # E for Golden Mean process 34 | 35 | numpy.log2(p + 2) - p*numpy.log2(p)/(p + 2) - (1 - p*q)/(p+2)*Hp((1 - p)/(1 - p*q)) # E for RIP 36 | 37 | plt.show() -------------------------------------------------------------------------------- /demo-and-experimental-scripts/demo_predict_Lstep_bc.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR_bc import * 13 | 14 | import matplotlib.pyplot as plt 15 | 16 | data_prefix = '' 17 | 18 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | # 20 | # The various test transducers. Xt is the input 21 | # and Yt is the output. 22 | # 23 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 24 | 25 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26 | # 27 | # Examples from: 28 | # Computational Mechanics of Input-Output Processes- Structured transformations and the epsilon-transducer - Barnett, Crutchfield 29 | # 30 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 31 | 32 | # The z-channel. 33 | 34 | # Xt_name = 'Xt_z-channel' 35 | # Yt_name = 'Yt_z-channel' 36 | 37 | # The delay-channel. 38 | 39 | # Xt_name = 'Xt_delay-channel' 40 | # Yt_name = 'Yt_delay-channel' 41 | 42 | # The odd random channel. 43 | 44 | # Xt_name = 'Xt_odd-random-channel' 45 | # Yt_name = 'Yt_odd-random-channel' 46 | 47 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 48 | # 49 | # Additional examples: 50 | # 51 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 52 | 53 | Xt_name = 'barnettX' 54 | Yt_name = 'barnettY' 55 | 56 | # Xt_name = '' 57 | # Yt_name = 'even' 58 | 59 | # Xt_name = 'coinflip' 60 | # Yt_name = 'coinflip-excite_w_refrac' 61 | 62 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 63 | # 64 | # Set the parameters and associated quantities: 65 | # axs, ays -- the input / output alphabets 66 | # alpha -- the significance level associated with 67 | # CSSR's hypothesis tests. 68 | # L -- The maximum history length to look 69 | # back when inferring predictive 70 | # distributions. 71 | # 72 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 73 | 74 | if Xt_name == '': 75 | axs = ['0'] 76 | ays = ['0', '1'] 77 | else: 78 | axs = ['0', '1'] 79 | ays = ['0', '1'] 80 | 81 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 82 | # symbols for (x, y) 83 | 84 | machine_fname = 'transCSSR_results/+{}.dot'.format(Xt_name) 85 | transducer_fname = 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name) 86 | inf_alg = 'transCSSR' 87 | 88 | P, T_states_to_index, M_states_to_index, T_trans, M_trans = compute_mixed_transition_matrix(machine_fname, transducer_fname, axs, ays, inf_alg = inf_alg) 89 | 90 | T_states = list(T_states_to_index.keys()) 91 | M_states = list(M_states_to_index.keys()) 92 | 93 | stationary_dist_mixed, stationary_dist_eT = compute_channel_states_distribution(P, M_states, T_states) 94 | 95 | L_max = 5 96 | 97 | N = L_max-1 98 | 99 | num_sims = 4000 100 | 101 | # for T_start_state in [T_start_state]: 102 | for M_start_state, T_start_state in itertools.product(M_states, T_states): 103 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 | # 105 | # Estimate the L-step probabilities directly from 106 | # counting across an ensemble of realizations from 107 | # the system initialized at the desired start states. 108 | # 109 | # These give a quick check that the probabilities 110 | # computed directly from the eM+eT representation 111 | # are correct. 112 | # 113 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 114 | 115 | count_ones = numpy.zeros(L_max-1) 116 | 117 | for sim_ind in range(num_sims): 118 | X = simulate_eM(N, 'transCSSR_results/+{}.dot'.format(Xt_name), ays, 'transCSSR', initial_state = M_start_state) 119 | 120 | Y = simulate_eT(N, 'transCSSR_results/+{}.dot'.format(Xt_name), 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), X, axs, ays, 'transCSSR', initial_state = T_start_state) 121 | 122 | for y_ind, y in enumerate(Y): 123 | if y == '1': 124 | count_ones[y_ind] += 1 125 | 126 | prop_ones = count_ones / num_sims 127 | 128 | print(prop_ones) 129 | 130 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 131 | # 132 | # Estimate the L-step probabilities directly from 133 | # the eM+eT representation of the input-output 134 | # process. 135 | # 136 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 137 | 138 | print(('\nStarting from input eM state {} and transducer state {}...'.format(M_start_state, T_start_state))) 139 | M_state_from = M_start_state 140 | T_state_from = T_start_state 141 | 142 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 143 | # 144 | # Compute the joint input-output word probabilities: 145 | # 146 | # P(Y_{1}^{L}, X_{1}^{L} | S_{0} = s) 147 | # 148 | # for L = 1 to L_max. 149 | # 150 | # Do so recursively, by first computing 151 | # P(Y_{1}, X_{1} | S_{0} = s), then 152 | # P(Y_{1}^{2}, X_{1}^{2} | S_{0} = s), etc., 153 | # using the recursive updating 154 | # 155 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 156 | 157 | p_joint_string_Lp1 = numpy.zeros((len(axs), len(ays))) 158 | 159 | joint_string_prods = [{('', '') : 1.0}] 160 | joint_string_states = [{('', '') : (M_state_from, T_state_from)}] 161 | 162 | for L in range(L_max): 163 | joint_string_prods.append({}) 164 | joint_string_states.append({}) 165 | 166 | for xword, yword in list(joint_string_prods[-2].keys()): 167 | for ax_ind, ax in enumerate(axs): 168 | x = ax 169 | for ay_ind, ay in enumerate(ays): 170 | y = ay 171 | 172 | p_prod = joint_string_prods[-2][(xword, yword)] 173 | 174 | if p_prod == 0.: 175 | pass 176 | else: 177 | M_state_from, T_state_from = joint_string_states[-2][(xword, yword)] 178 | 179 | T_state_to, pT_to = T_trans.get((T_state_from, x, y), (None, 0)) 180 | 181 | if pT_to == 0: 182 | # break 183 | pass 184 | 185 | M_state_to, pM_to = M_trans.get((M_state_from, x), (None, 0)) 186 | 187 | if pM_to == 0: 188 | # break 189 | pass 190 | 191 | joint_string_prods[-1][(xword + x, yword + y)] = p_prod*pT_to*pM_to 192 | joint_string_states[-1][(xword + x, yword + y)] = (M_state_to, T_state_to) 193 | 194 | # The total probability across all input-output words of length L should sum to 1: 195 | 196 | # for ind in range(len(joint_string_prods)): 197 | # tot_prob = 0. 198 | 199 | # for xword, yword in joint_string_prods[ind].keys(): 200 | # tot_prob += joint_string_prods[ind][(xword, yword)] 201 | 202 | # print(ind, tot_prob) 203 | 204 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 205 | # 206 | # Compute P(Y_{L} | S_{0} = s) by appropriately 207 | # marginalizing from 208 | # 209 | # P(Y_{1}^{L}, X_{1}^{L} | S_{0} = s) 210 | # 211 | # 212 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 213 | 214 | pred_probs_by_L = numpy.zeros((L_max-1, len(ays))) 215 | 216 | for L in range(1,L_max): 217 | for xword, yword in list(joint_string_prods[L-1].keys()): 218 | for x in axs: 219 | for ay_ind, y in enumerate(ays): 220 | p_prod = joint_string_prods[L].get((xword + x, yword + y), 0.0) 221 | 222 | pred_probs_by_L[L-1, ay_ind] += p_prod 223 | 224 | pred_probs_by_L[L-1, :] = pred_probs_by_L[L-1, :]/numpy.sum(pred_probs_by_L[L-1, :]) 225 | 226 | print((pred_probs_by_L[L-1, :])) 227 | 228 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 229 | # 230 | # Compare the direct estimate of L-step probabilities 231 | # across realizations to the eM+eT L-step probabilities. 232 | # 233 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 234 | 235 | plt.figure() 236 | # plt.plot(pred_probs_by_L[:, 0]) 237 | plt.plot(pred_probs_by_L[:, 1], '.', label = 'Using eM+eT') 238 | plt.plot(prop_ones, '.', label = 'From direct estimate across {} realizations'.format(num_sims)) 239 | plt.xlabel('$L$') 240 | plt.ylabel('$P(Y_{{L}} = 1 \mid S_{{0}} = ({}, {}))$'.format(M_start_state, T_start_state)) 241 | plt.ylim([0, 1]) 242 | plt.legend() 243 | 244 | plt.show(block = False) -------------------------------------------------------------------------------- /demo-and-experimental-scripts/demo_predict_presynch_eT.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR import * 13 | 14 | data_prefix = '' 15 | 16 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | # 18 | # The various test transducers. Xt is the input 19 | # and Yt is the output. 20 | # 21 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 22 | 23 | # Xt_name = 'coinflip' 24 | # Yt_name = 'coinflip-excite_w_refrac' 25 | 26 | Xt_name = 'barnettX' 27 | Yt_name = 'barnettY' 28 | 29 | # Xt_name = '' 30 | # Yt_name = 'even' 31 | 32 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33 | # 34 | # Load in the data for each process. 35 | # 36 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 37 | 38 | stringY = open('data/{}{}.dat'.format(data_prefix, Yt_name)).readline().strip() 39 | 40 | if Xt_name == '': 41 | stringX = '0'*len(stringY) 42 | else: 43 | stringX = open('data/{}{}.dat'.format(data_prefix, Xt_name)).readline().strip() 44 | 45 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 46 | # 47 | # Set the parameters and associated quantities: 48 | # axs, ays -- the input / output alphabets 49 | # alpha -- the significance level associated with 50 | # CSSR's hypothesis tests. 51 | # L -- The maximum history length to look 52 | # back when inferring predictive 53 | # distributions. 54 | # 55 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 56 | 57 | if Xt_name == '': 58 | axs = ['0'] 59 | ays = ['0', '1'] 60 | else: 61 | axs = ['0', '1'] 62 | ays = ['0', '1'] 63 | 64 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 65 | # symbols for (x, y) 66 | 67 | alpha = 0.001 68 | 69 | verbose = False 70 | 71 | # L is the maximum amount we want to ever look back. 72 | 73 | L_max = 3 74 | 75 | Tx = len(stringX); Ty = len(stringY) 76 | 77 | assert Tx == Ty, 'The two time series must have the same length.' 78 | 79 | T = Tx 80 | 81 | word_lookup_marg, word_lookup_fut = estimate_predictive_distributions(stringX, stringY, L_max) 82 | 83 | epsilon, invepsilon, morph_by_state = run_transCSSR(word_lookup_marg, word_lookup_fut, L_max, axs, ays, e_symbols, Xt_name, Yt_name, alpha = alpha) 84 | 85 | ind_go_to = 20 86 | 87 | possible_states_from_predict_presynch_eT = numpy.zeros((ind_go_to-1, len(invepsilon)), dtype = numpy.int32) 88 | 89 | for cur_ind in range(1, ind_go_to): 90 | curX = stringX[:cur_ind] 91 | curY = stringY[:cur_ind-1] 92 | 93 | preds, possible_states = predict_presynch_eT(curX, curY, machine_fname = 'transCSSR_results/+{}.dot'.format(Xt_name), transducer_fname = 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), axs = axs, ays = ays, inf_alg = 'transCSSR') 94 | 95 | possible_states_from_predict_presynch_eT[cur_ind - 1] = possible_states 96 | 97 | print((cur_ind, curX, curY + '*', preds.tolist(), possible_states)) 98 | 99 | print('') 100 | 101 | preds_all, possible_states_all = filter_and_pred_probs(stringX, stringY, machine_fname = 'transCSSR_results/+{}.dot'.format(Xt_name), transducer_fname = 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), axs = axs, ays = ays, inf_alg = 'transCSSR') 102 | 103 | for cur_ind in range(1, ind_go_to): 104 | curX = stringX[:cur_ind] 105 | curY = stringY[:cur_ind-1] 106 | 107 | print((cur_ind, curX, curY + '*', preds_all[cur_ind-1, :].tolist(), possible_states_all[cur_ind-1, :].tolist())) 108 | 109 | filtered_states, filtered_probs, stringY_pred = filter_and_predict(stringX, stringY, epsilon, invepsilon, morph_by_state, axs, ays, e_symbols, L_max, memoryless = False) 110 | 111 | print_go_to = 40 112 | 113 | print(("\n\nFirst {} predictions.".format(print_go_to))) 114 | for ind in range(print_go_to): 115 | print((filtered_probs[ind], preds_all[ind, 1])) 116 | 117 | print(("\n\nLast {} predictions.".format(print_go_to))) 118 | for ind in range(preds_all.shape[0] - print_go_to, preds_all.shape[0]): 119 | print((filtered_probs[ind], preds_all[ind, 1])) 120 | 121 | import matplotlib.pyplot as plt 122 | 123 | plt.figure() 124 | plt.plot(filtered_probs[:, 1], label = 'Using filter_and_predict') 125 | plt.plot(preds_all[:, 1], label = 'Using filter_and_pred_probs') 126 | plt.xlim([0, 1000]) 127 | plt.legend() 128 | plt.show() -------------------------------------------------------------------------------- /demo-and-experimental-scripts/demo_predict_presynch_eT_bc.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR_bc import * 13 | 14 | import ipdb 15 | 16 | data_prefix = '' 17 | 18 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | # 20 | # The various test transducers. Xt is the input 21 | # and Yt is the output. 22 | # 23 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 24 | 25 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26 | # 27 | # Examples from: 28 | # Computational Mechanics of Input-Output Processes- Structured transformations and the epsilon-transducer - Barnett, Crutchfield 29 | # 30 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 31 | 32 | # The z-channel. 33 | 34 | # Xt_name = 'Xt_z-channel' 35 | # Yt_name = 'Yt_z-channel' 36 | 37 | # The delay-channel. 38 | 39 | # Xt_name = 'Xt_delay-channel' 40 | # Yt_name = 'Yt_delay-channel' 41 | 42 | # The odd random channel. 43 | 44 | # Xt_name = 'Xt_odd-random-channel' 45 | # Yt_name = 'Yt_odd-random-channel' 46 | 47 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 48 | # 49 | # Additional examples: 50 | # 51 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 52 | 53 | Xt_name = 'barnettX' 54 | Yt_name = 'barnettY' 55 | 56 | # Xt_name = '' 57 | # Yt_name = 'even' 58 | 59 | # Xt_name = 'coinflip' 60 | # Yt_name = 'coinflip-excite_w_refrac' 61 | 62 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 63 | # 64 | # Load in the data for each process. 65 | # 66 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 67 | 68 | stringY = open('data/{}{}.dat'.format(data_prefix, Yt_name)).readline().strip() 69 | 70 | if Xt_name == '': 71 | stringX = '0'*len(stringY) 72 | else: 73 | stringX = open('data/{}{}.dat'.format(data_prefix, Xt_name)).readline().strip() 74 | 75 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 76 | # 77 | # Set the parameters and associated quantities: 78 | # axs, ays -- the input / output alphabets 79 | # alpha -- the significance level associated with 80 | # CSSR's hypothesis tests. 81 | # L -- The maximum history length to look 82 | # back when inferring predictive 83 | # distributions. 84 | # 85 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 86 | 87 | if Xt_name == '': 88 | axs = ['0'] 89 | ays = ['0', '1'] 90 | else: 91 | axs = ['0', '1'] 92 | ays = ['0', '1'] 93 | 94 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 95 | # symbols for (x, y) 96 | 97 | alpha = 0.001 98 | 99 | verbose = False 100 | 101 | # L is the maximum amount we want to ever look back. 102 | 103 | L_max = 3 104 | 105 | Tx = len(stringX); Ty = len(stringY) 106 | 107 | assert Tx == Ty, 'The two time series must have the same length.' 108 | 109 | T = Tx 110 | 111 | word_lookup_marg, word_lookup_fut = estimate_predictive_distributions(stringX, stringY, L_max) 112 | 113 | epsilon, invepsilon, morph_by_state = run_transCSSR(word_lookup_marg, word_lookup_fut, L_max, axs, ays, e_symbols, Xt_name, Yt_name, alpha = alpha, verbose = False) 114 | 115 | ind_go_to = 20 116 | 117 | possible_states_from_predict_presynch_eT = numpy.zeros((ind_go_to-1, len(invepsilon)), dtype = numpy.int32) 118 | 119 | for cur_ind in range(1, ind_go_to): 120 | curX = stringX[:cur_ind] 121 | curY = stringY[:cur_ind-1] 122 | 123 | preds, possible_states = predict_presynch_eT(curX, curY, machine_fname = 'transCSSR_results/+{}.dot'.format(Xt_name), transducer_fname = 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), axs = axs, ays = ays, inf_alg = 'transCSSR') 124 | 125 | possible_states_from_predict_presynch_eT[cur_ind - 1] = possible_states 126 | 127 | print((cur_ind, curX, curY + '*', preds.tolist(), possible_states)) 128 | 129 | print('') 130 | 131 | preds_all, possible_states_all = filter_and_pred_probs(stringX, stringY, machine_fname = 'transCSSR_results/+{}.dot'.format(Xt_name), transducer_fname = 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), axs = axs, ays = ays, inf_alg = 'transCSSR') 132 | 133 | for cur_ind in range(1, ind_go_to): 134 | curX = stringX[:cur_ind] 135 | curY = stringY[:cur_ind-1] 136 | 137 | print((cur_ind, curX, curY + '*', preds_all[cur_ind-1, :].tolist(), possible_states_all[cur_ind-1, :].tolist())) 138 | 139 | filtered_states, filtered_probs, stringY_pred = filter_and_predict(stringX, stringY, epsilon, invepsilon, morph_by_state, axs, ays, e_symbols, L_max, memoryless = False) 140 | 141 | print_go_to = 40 142 | 143 | print(("\n\nFirst {} predictions.".format(print_go_to))) 144 | for ind in range(print_go_to): 145 | print((filtered_probs[ind], preds_all[ind, 1])) 146 | 147 | print(("\n\nLast {} predictions.".format(print_go_to))) 148 | for ind in range(preds_all.shape[0] - print_go_to, preds_all.shape[0]): 149 | print((filtered_probs[ind], preds_all[ind, 1])) 150 | 151 | import matplotlib.pyplot as plt 152 | 153 | plt.figure() 154 | plt.plot(filtered_probs, label = 'Using filter_and_predict') 155 | plt.plot(preds_all[:, 1], label = 'Using filter_and_pred_probs') 156 | plt.xlim([0, 1000]) 157 | plt.legend() 158 | plt.show() -------------------------------------------------------------------------------- /demo-and-experimental-scripts/integrate_dit_transCSSR.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR_bc import * 13 | 14 | import dit 15 | 16 | import time 17 | 18 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | # 20 | # The various test transducers. Xt is the input 21 | # and Yt is the output. 22 | # 23 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 24 | 25 | # data_prefix = 'NEURO-Set5/' 26 | data_prefix = '' 27 | 28 | # Yt_name = 'coinflip_through_even' 29 | # Yt_name = 'coinflip_through_evenflip' 30 | # Yt_name = 'coinflip_through_periodickick' 31 | # Yt_name = 'coinflip_through_periodicevenkick' 32 | # Yt_name = 'even_through_even' 33 | # Yt_name = 'even' 34 | # Yt_name = 'rip' 35 | # Yt_name = 'rip-rev' 36 | # Yt_name = 'barnettY' 37 | # Yt_name = 'even-excite_w_refrac' 38 | # Yt_name = 'coinflip-excite_w_refrac' 39 | # Yt_name = 'coinflip' 40 | # Yt_name = 'period4' 41 | # Yt_name = 'golden-mean' 42 | # Yt_name = 'golden-mean-rev' 43 | # Yt_name = 'complex-csm' 44 | # Yt_name = 'tricoin_through_singh-machine' 45 | # Yt_name = 'coinflip_through_floatreset' 46 | 47 | # Yt_name = 'sample1' 48 | # Yt_name = 'sample0' 49 | 50 | # Xt_name = 'coinflip' 51 | # Xt_name = 'even' 52 | # Xt_name = '' 53 | # Xt_name = 'barnettX' 54 | # Xt_name = 'even-excite_w_refrac' 55 | # Xt_name = 'tricoin' 56 | 57 | # Xt_name = 'sample0' 58 | # Xt_name = 'sample1' 59 | 60 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61 | # 62 | # Examples from: 63 | # Computational Mechanics of Input-Output Processes- Structured transformations and the epsilon-transducer - Barnett, Crutchfield 64 | # 65 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 66 | 67 | # The z-channel. 68 | 69 | # Xt_name = 'Xt_z-channel' 70 | # Yt_name = 'Yt_z-channel' 71 | 72 | # The delay-channel. 73 | 74 | Xt_name = 'Xt_delay-channel' 75 | Yt_name = 'Yt_delay-channel' 76 | 77 | # The odd random channel. 78 | 79 | # Xt_name = 'Xt_odd-random-channel' 80 | # Yt_name = 'Yt_odd-random-channel' 81 | 82 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 83 | # 84 | # Load in the data for each process. 85 | # 86 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 87 | 88 | stringY = open('data/{}{}.dat'.format(data_prefix, Yt_name)).readline().strip() 89 | 90 | if Xt_name == '': 91 | stringX = '0'*len(stringY) 92 | else: 93 | stringX = open('data/{}{}.dat'.format(data_prefix, Xt_name)).readline().strip() 94 | 95 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 96 | # 97 | # Set the parameters and associated quantities: 98 | # axs, ays -- the input / output alphabets 99 | # alpha -- the significance level associated with 100 | # CSSR's hypothesis tests. 101 | # L -- The maximum history length to look 102 | # back when inferring predictive 103 | # distributions. 104 | # 105 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106 | 107 | axs = ['0', '1'] 108 | ays = ['0', '1'] 109 | 110 | # axs = ['0'] 111 | # ays = ['0', '1'] 112 | 113 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 114 | # symbols for (x, y) 115 | 116 | alpha = 0.001 117 | 118 | verbose = False 119 | 120 | # L is the maximum amount we want to ever look back. 121 | 122 | L_max = 11 123 | 124 | Tx = len(stringX); Ty = len(stringY) 125 | 126 | assert Tx == Ty, 'The two time series must have the same length.' 127 | 128 | T = Tx 129 | 130 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 131 | # 132 | # Convert the joint X x Y alphabet to a joint 133 | # alphabet J suitable for use with dit. 134 | # 135 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 136 | 137 | word_count = 0 138 | 139 | marg_alphas_to_joint_alpha = {} 140 | joint_alpha_to_marg_alphas = {} 141 | 142 | curr_alpha = 0 143 | for ax in axs: 144 | for ay in ays: 145 | marg_alphas_to_joint_alpha[ax, ay] = curr_alpha 146 | joint_alpha_to_marg_alphas[curr_alpha] = (ax, ay) 147 | 148 | curr_alpha += 1 149 | 150 | arrayJ = numpy.zeros(len(stringX), dtype = 'int16') 151 | 152 | for t in range(len(stringX)): 153 | arrayJ[t] = marg_alphas_to_joint_alpha[stringX[t], stringY[t]] 154 | 155 | startTime = time.time() 156 | histories, cCounts, hCounts, alphabet = dit.inference.counts.counts_from_data(data = arrayJ, hLength = L_max+1, fLength = 1, marginals = True, standardize = True) 157 | print(('The dit counting took {0} seconds...'.format(time.time() - startTime))) 158 | 159 | startTime = time.time() 160 | word_lookup_fut = defaultdict(int) 161 | word_lookup_marg = defaultdict(int) 162 | 163 | for word_ind, word_dit in enumerate(histories): 164 | word_x = '' 165 | word_y = '' 166 | for w in word_dit: 167 | ax, ay = joint_alpha_to_marg_alphas[w] 168 | 169 | word_x += ax 170 | word_y += ay 171 | 172 | word_lookup_fut[word_x, word_y] = hCounts[word_ind] 173 | 174 | for joint_words in list(word_lookup_fut.keys()): 175 | if len(joint_words[0]) <= L_max: 176 | for ax in axs: 177 | c = 0 178 | 179 | for ay in ays: 180 | c += word_lookup_fut[joint_words[0] + ax, joint_words[1] + ay] 181 | 182 | word_lookup_marg[joint_words[0] + ax, joint_words[1]] = c 183 | print(('Unpacking dit to transCSSR took {0} seconds...'.format(time.time() - startTime))) 184 | 185 | startTime = time.time() 186 | word_lookup_marg_transCSSR, word_lookup_fut_transCSSR = estimate_predictive_distributions(stringX, stringY, L_max) 187 | print(('The transCSSR counting took {0} seconds...'.format(time.time() - startTime))) 188 | 189 | # for word in word_lookup_fut_transCSSR.keys()[:50]: 190 | # print(word, word_lookup_fut_transCSSR[word], word_lookup_fut[word]) 191 | 192 | # for word in word_lookup_marg_transCSSR.keys()[:50]: 193 | # print(word, word_lookup_marg_transCSSR[word], word_lookup_marg[word]) 194 | 195 | # print("Running transCSSR...") 196 | # epsilon, invepsilon, morph_by_state = run_transCSSR(word_lookup_marg, word_lookup_fut, L_max, axs, ays, e_symbols, Xt_name, Yt_name, alpha = alpha, verbose = False) 197 | 198 | # print 'The epsilon-transducer has {} states.'.format(len(invepsilon)) 199 | 200 | # print_morph_by_states(morph_by_state, axs, ays, e_symbols) 201 | 202 | # filtered_states, filtered_probs, stringY_pred = filter_and_predict(stringX, stringY, epsilon, invepsilon, morph_by_state, axs, ays, e_symbols, L_max) 203 | 204 | # print 'Xt Yt \hat\{Y\}t St P(Yt = 1 | Xt, St)' 205 | 206 | # for t_ind in range(int(numpy.min([100, len(stringX)]))): 207 | # print stringX[t_ind], stringY[t_ind], stringY_pred[t_ind], filtered_states[t_ind], filtered_probs[t_ind] -------------------------------------------------------------------------------- /demo-and-experimental-scripts/simulate_eM.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR import * 13 | 14 | data_prefix = '' 15 | 16 | Yt_name = '1mm' 17 | # Yt_name = 'even' 18 | 19 | ays = ['0', '1'] 20 | 21 | 22 | N = 400 23 | 24 | Y = simulate_eM(N, 'transCSSR_results/+{}.dot'.format(Yt_name), ays, 'transCSSR') 25 | 26 | # Uncomment to save to the specified folder: 27 | open('simulation_outputs/{}_sim.dat'.format(Yt_name), 'w').write(Y) -------------------------------------------------------------------------------- /demo-and-experimental-scripts/simulate_eT.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR_bc import * 13 | 14 | data_prefix = '' 15 | 16 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | # 18 | # The various test transducers. Xt is the input 19 | # and Yt is the output. 20 | # 21 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 22 | 23 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 24 | # 25 | # Examples from: 26 | # Computational Mechanics of Input-Output Processes- Structured transformations and the epsilon-transducer - Barnett, Crutchfield 27 | # 28 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 29 | 30 | # The z-channel. 31 | 32 | # Xt_name = 'Xt_z-channel' 33 | # Yt_name = 'Yt_z-channel' 34 | 35 | # The delay-channel. 36 | 37 | # Xt_name = 'Xt_delay-channel' 38 | # Yt_name = 'Yt_delay-channel' 39 | 40 | # The odd random channel. 41 | 42 | Xt_name = 'Xt_odd-random-channel' 43 | Yt_name = 'Yt_odd-random-channel' 44 | 45 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 46 | # 47 | # Additional examples: 48 | # 49 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 50 | 51 | # Xt_name = 'barnettX' 52 | # Yt_name = 'barnettY' 53 | 54 | # Xt_name = '' 55 | # Yt_name = 'even' 56 | 57 | # Xt_name = 'coinflip' 58 | # Yt_name = 'coinflip-excite_w_refrac' 59 | 60 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 61 | # 62 | # Set the parameters and associated quantities: 63 | # axs, ays -- the input / output alphabets 64 | # alpha -- the significance level associated with 65 | # CSSR's hypothesis tests. 66 | # L -- The maximum history length to look 67 | # back when inferring predictive 68 | # distributions. 69 | # 70 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 71 | 72 | if Xt_name == '': 73 | axs = ['0'] 74 | ays = ['0', '1'] 75 | else: 76 | axs = ['0', '1'] 77 | ays = ['0', '1'] 78 | 79 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 80 | # symbols for (x, y) 81 | 82 | 83 | N = 400 84 | 85 | X = simulate_eM(N, 'transCSSR_results/+{}.dot'.format(Xt_name), ays, 'transCSSR') 86 | 87 | Y = simulate_eT(N, 'transCSSR_results/+{}.dot'.format(Xt_name), 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), X, axs, ays, 'transCSSR') -------------------------------------------------------------------------------- /demo-and-experimental-scripts/walkthrough_transCSSR_bc.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR_bc import * 13 | 14 | def print_stochastic_matrix(past, axs, ays): 15 | xpast = past[0]; ypast = past[1] 16 | 17 | for ax in axs: 18 | cur_row = '' 19 | for ay in ays: 20 | if word_lookup_marg[(xpast + ax, ypast)] == 0: 21 | cur_row += '\t' + 'na' 22 | else: 23 | cur_row += '\t' + str(word_lookup_fut[(xpast + ax, ypast + ay)]/float(word_lookup_marg[(xpast + ax, ypast)])) 24 | 25 | print(cur_row + '\n') 26 | 27 | 28 | print('\n\n') 29 | 30 | for ax in axs: 31 | cur_row = '' 32 | for ay in ays: 33 | cur_row += '\t' + str(word_lookup_fut[(xpast + ax, ypast + ay)]) 34 | 35 | print(cur_row + '\n') 36 | 37 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 38 | # 39 | # The various test transducers. Xt is the input 40 | # and Yt is the output. 41 | # 42 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 43 | 44 | # data_prefix = 'NEURO-Set5/' 45 | data_prefix = '' 46 | 47 | # Yt_name = 'coinflip_through_even' 48 | # Yt_name = 'coinflip_through_evenflip' 49 | # Yt_name = 'coinflip_through_periodickick' 50 | # Yt_name = 'coinflip_through_periodicevenkick' 51 | # Yt_name = 'even_through_even' 52 | # Yt_name = 'even' 53 | # Yt_name = 'rip' 54 | # Yt_name = 'rip-rev' 55 | # Yt_name = 'barnettY' 56 | # Yt_name = 'even-excite_w_refrac' 57 | # Yt_name = 'coinflip-excite_w_refrac' 58 | # Yt_name = 'coinflip' 59 | # Yt_name = 'period4' 60 | # Yt_name = 'golden-mean' 61 | # Yt_name = 'golden-mean-rev' 62 | # Yt_name = 'complex-csm' 63 | # Yt_name = 'tricoin_through_singh-machine' 64 | # Yt_name = 'coinflip_through_floatreset' 65 | 66 | # Yt_name = 'sample1' 67 | # Yt_name = 'sample0' 68 | 69 | # Xt_name = 'coinflip' 70 | # Xt_name = 'even' 71 | # Xt_name = '' 72 | # Xt_name = 'barnettX' 73 | # Xt_name = 'even-excite_w_refrac' 74 | # Xt_name = 'tricoin' 75 | 76 | # Xt_name = 'sample0' 77 | # Xt_name = 'sample1' 78 | 79 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 80 | # 81 | # Examples from: 82 | # Computational Mechanics of Input-Output Processes- Structured transformations and the epsilon-transducer - Barnett, Crutchfield 83 | # 84 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 85 | 86 | # The z-channel. 87 | 88 | # Xt_name = 'Xt_z-channel' 89 | # Yt_name = 'Yt_z-channel' 90 | 91 | # The delay-channel. 92 | 93 | # Xt_name = 'Xt_delay-channel' 94 | # Yt_name = 'Yt_delay-channel' 95 | 96 | # The odd random channel. 97 | 98 | Xt_name = 'Xt_odd-random-channel' 99 | Yt_name = 'Yt_odd-random-channel' 100 | 101 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 102 | # 103 | # Load in the data for each process. 104 | # 105 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106 | 107 | stringY = open('data/{}{}.dat'.format(data_prefix, Yt_name)).readline().strip() 108 | 109 | if Xt_name == '': 110 | stringX = '0'*len(stringY) 111 | else: 112 | stringX = open('data/{}{}.dat'.format(data_prefix, Xt_name)).readline().strip() 113 | 114 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 115 | # 116 | # Set the parameters and associated quantities: 117 | # axs, ays -- the input / output alphabets 118 | # alpha -- the significance level associated with 119 | # CSSR's hypothesis tests. 120 | # L -- The maximum history length to look 121 | # back when inferring predictive 122 | # distributions. 123 | # 124 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 125 | 126 | axs = ['0', '1'] 127 | ays = ['0', '1'] 128 | 129 | # axs = ['0', '1', '2'] 130 | # ays = ['0', '1'] 131 | 132 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 133 | # symbols for (x, y) 134 | 135 | # The number of degrees of freedom associated with 136 | 137 | alpha = 0.001 138 | 139 | verbose = False 140 | 141 | # L is the maximum amount we want to ever look back. 142 | 143 | L_max = 3 144 | 145 | Tx = len(stringX); Ty = len(stringY) 146 | 147 | assert Tx == Ty, 'The two time series must have the same length.' 148 | 149 | T = Tx 150 | 151 | word_lookup_marg, word_lookup_fut = estimate_predictive_distributions(stringX, stringY, L_max) 152 | 153 | epsilon, invepsilon, morph_by_state = run_transCSSR(word_lookup_marg, word_lookup_fut, L_max, axs, ays, e_symbols, Xt_name, Yt_name, alpha = alpha, verbose = True) 154 | 155 | print('The epsilon-transducer has {} states.'.format(len(invepsilon))) 156 | 157 | # os.system('open transCSSR_results/mydot-det_transients.dot'.format(Xt_name, Yt_name)) 158 | # os.system('open transCSSR_results/mydot-det_recurrent.dot'.format(Xt_name, Yt_name)) 159 | 160 | if len(invepsilon) < 30: 161 | os.system('open transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name)) 162 | else: 163 | print('Warning: The epsilon-transducer has {} states, so we will not open the dot file.') 164 | 165 | os.system('open transCSSR_results/{}+{}.dat_results'.format(Xt_name, Yt_name)) 166 | 167 | print_morph_by_states(morph_by_state, axs, ays, e_symbols) -------------------------------------------------------------------------------- /demo_CSSR.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR import * 13 | 14 | # Yt is the output. Xt should be set to the null string. 15 | 16 | data_prefix = '' 17 | 18 | # Yt_name = 'coinflip_through_even' 19 | # Yt_name = 'coinflip_through_evenflip' 20 | # Yt_name = 'coinflip_through_periodickick' 21 | # Yt_name = 'coinflip_through_periodicevenkick' 22 | # Yt_name = 'even_through_even' 23 | Yt_name = 'even' 24 | # Yt_name = 'rip' 25 | # Yt_name = 'rip-rev' 26 | # Yt_name = 'barnettY' 27 | # Yt_name = 'even-excite_w_refrac' 28 | # Yt_name = 'coinflip-excite_w_refrac' 29 | # Yt_name = 'coinflip' 30 | # Yt_name = 'period4' 31 | # Yt_name = 'golden-mean' 32 | # Yt_name = 'golden-mean-rev' 33 | # Yt_name = 'complex-csm' 34 | # Yt_name = 'tricoin_through_singh-machine' 35 | # Yt_name = 'coinflip_through_floatreset' 36 | # Yt_name = '1mm_sim' 37 | 38 | Xt_name = '' 39 | 40 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 41 | # 42 | # Load in the data for each process. 43 | # 44 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 45 | 46 | stringY = open('data/{}{}.dat'.format(data_prefix, Yt_name)).readline().strip() 47 | 48 | stringY = stringY[:10000] 49 | 50 | if Xt_name == '': 51 | stringX = '0'*len(stringY) 52 | else: 53 | stringX = open('data/{}{}.dat'.format(data_prefix, Xt_name)).readline().strip() 54 | 55 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 56 | # 57 | # Set the parameters and associated quantities: 58 | # axs, ays -- the input / output alphabets 59 | # alpha -- the significance level associated with 60 | # CSSR's hypothesis tests. 61 | # L -- The maximum history length to look 62 | # back when inferring predictive 63 | # distributions. 64 | # 65 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 66 | 67 | axs = ['0'] 68 | ays = ['0', '1'] 69 | 70 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 71 | # symbols for (x, y) 72 | 73 | alpha = 0.001 74 | 75 | verbose = False 76 | 77 | # L is the maximum amount we want to ever look back. 78 | 79 | L_max = 9 80 | 81 | inf_alg = 'transCSSR' 82 | 83 | Tx = len(stringX); Ty = len(stringY) 84 | 85 | assert Tx == Ty, 'The two time series must have the same length.' 86 | 87 | T = Tx 88 | 89 | word_lookup_marg, word_lookup_fut = estimate_predictive_distributions(stringX, stringY, L_max) 90 | 91 | epsilon, invepsilon, morph_by_state = run_transCSSR(word_lookup_marg, word_lookup_fut, L_max, axs, ays, e_symbols, Xt_name, Yt_name, alpha = alpha) 92 | 93 | print('The epsilon-transducer has {} states.'.format(len(invepsilon))) 94 | 95 | print_morph_by_states(morph_by_state, axs, ays, e_symbols) 96 | 97 | filtered_states, filtered_probs, stringY_pred = filter_and_predict(stringX, stringY, epsilon, invepsilon, morph_by_state, axs, ays, e_symbols, L_max) 98 | 99 | machine_fname = 'transCSSR_results/+.dot' 100 | transducer_fname = 'transCSSR_results/+{}.dot'.format(Yt_name) 101 | 102 | pred_probs_by_time, cur_states_by_time = filter_and_pred_probs(stringX, stringY, machine_fname, transducer_fname, axs, ays, inf_alg, verbose_filtering_errors = True) 103 | 104 | pred_probs_by_time_break, cur_states_by_time_break = filter_and_pred_probs_breakforbidden(stringX, stringY, machine_fname, transducer_fname, axs, ays, inf_alg) 105 | 106 | for t in range(30): 107 | print((t, stringY[t], filtered_probs[t], pred_probs_by_time_break[t, 1], pred_probs_by_time[t, 1])) 108 | 109 | import matplotlib.pyplot as plt 110 | plt.ion() 111 | 112 | plt.figure() 113 | plt.plot(filtered_probs, label = 'filtered_probs') 114 | plt.plot(pred_probs_by_time_break[:, 1], label = 'pred_probs_by_time_break') 115 | plt.plot(pred_probs_by_time[:, 1], label = 'pred_probs_by_time') 116 | plt.xlim([0, 20]) 117 | plt.legend() -------------------------------------------------------------------------------- /demo_computational_mechanics_bootstrap.py: -------------------------------------------------------------------------------- 1 | from transCSSR import * 2 | 3 | # Simulate a new time series: 4 | 5 | # Length of simulated time series 6 | N = 1000 7 | 8 | Yt_name = 'even' 9 | 10 | ays = ['0', '1'] 11 | 12 | transducer_fname_true = 'transCSSR_results/+{}.dot'.format(Yt_name) 13 | 14 | stringY = simulate_eM_fast(N, transducer_fname_true, ays, 'transCSSR') 15 | 16 | # Perform computational mechanics bootstrap: 17 | 18 | B = 2000 # Number of bootstrap time series to generate. 19 | 20 | boot_out = computational_mechanics_bootstrap(stringY, ays, Yt_name_inf = '{}_inf'.format(Yt_name), B = B) 21 | 22 | # Compute true measures for original eM: 23 | 24 | HLs, hLs, hmu, ELs, E, Cmu, etas_matrix = compute_ict_measures(transducer_fname_true, ays, inf_alg = 'transCSSR', L_max = 10, to_plot = False) 25 | 26 | measures_true = {'Cmu' : Cmu, 'hmu' : hmu, 'E' : E} 27 | 28 | # Check coverage of confidence intervals: 29 | 30 | conf_level = 0.95 31 | alpha = 1 - conf_level 32 | 33 | for measure_name in measures_true.keys(): 34 | ci = boot_out['Q'][measure_name]([alpha/2, 1-alpha/2]) 35 | print('{} : {}% CI [{}, {}], true = {}'.format(measure_name, conf_level*100, ci[0], ci[1], measures_true[measure_name])) -------------------------------------------------------------------------------- /demo_transCSSR.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR import * 13 | 14 | import time 15 | 16 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | # 18 | # The various test transducers. Xt is the input 19 | # and Yt is the output. 20 | # 21 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 22 | 23 | # data_prefix = 'NEURO-Set5/' 24 | data_prefix = '' 25 | 26 | # Yt_name = 'coinflip_through_even' 27 | # Yt_name = 'coinflip_through_evenflip' 28 | # Yt_name = 'coinflip_through_periodickick' 29 | # Yt_name = 'coinflip_through_periodicevenkick' 30 | # Yt_name = 'even_through_even' 31 | # Yt_name = 'even' 32 | # Yt_name = 'rip' 33 | # Yt_name = 'rip-rev' 34 | # Yt_name = 'barnettY' 35 | # Yt_name = 'even-excite_w_refrac' 36 | # Yt_name = 'coinflip-excite_w_refrac' 37 | # Yt_name = 'coinflip' 38 | # Yt_name = 'period4' 39 | # Yt_name = 'golden-mean' 40 | # Yt_name = 'golden-mean-rev' 41 | # Yt_name = 'complex-csm' 42 | # Yt_name = 'tricoin_through_singh-machine' 43 | # Yt_name = 'coinflip_through_floatreset' 44 | 45 | # Yt_name = 'sample1' 46 | # Yt_name = 'sample0' 47 | 48 | # Xt_name = 'coinflip' 49 | # Xt_name = 'even' 50 | # Xt_name = '' 51 | # Xt_name = 'barnettX' 52 | # Xt_name = 'even-excite_w_refrac' 53 | # Xt_name = 'tricoin' 54 | 55 | # Xt_name = 'sample0' 56 | # Xt_name = 'sample1' 57 | 58 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 59 | # 60 | # Examples from: 61 | # Computational Mechanics of Input-Output Processes- Structured transformations and the epsilon-transducer - Barnett, Crutchfield 62 | # 63 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 64 | 65 | # The z-channel. 66 | 67 | # Xt_name = 'Xt_z-channel' 68 | # Yt_name = 'Yt_z-channel' 69 | 70 | # The delay-channel. 71 | 72 | # Xt_name = 'Xt_delay-channel' 73 | # Yt_name = 'Yt_delay-channel' 74 | 75 | # The odd random channel. 76 | 77 | Xt_name = 'Xt_odd-random-channel' 78 | Yt_name = 'Yt_odd-random-channel' 79 | 80 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 81 | # 82 | # Load in the data for each process. 83 | # 84 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 85 | 86 | stringY = open('data/{}{}.dat'.format(data_prefix, Yt_name)).readline().strip() 87 | 88 | if Xt_name == '': 89 | stringX = '0'*len(stringY) 90 | else: 91 | stringX = open('data/{}{}.dat'.format(data_prefix, Xt_name)).readline().strip() 92 | 93 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 94 | # 95 | # Set the parameters and associated quantities: 96 | # axs, ays -- the input / output alphabets 97 | # alpha -- the significance level associated with 98 | # CSSR's hypothesis tests. 99 | # L -- The maximum history length to look 100 | # back when inferring predictive 101 | # distributions. 102 | # 103 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 | 105 | axs = ['0', '1'] 106 | ays = ['0', '1'] 107 | 108 | # axs = ['0'] 109 | # ays = ['0', '1'] 110 | 111 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 112 | # symbols for (x, y) 113 | 114 | alpha = 0.001 115 | 116 | counting_method = 1 117 | 118 | verbose = False 119 | 120 | # L is the maximum amount we want to ever look back. 121 | 122 | L_max = 3 123 | 124 | Tx = len(stringX); Ty = len(stringY) 125 | 126 | assert Tx == Ty, 'The two time series must have the same length.' 127 | 128 | T = Tx 129 | 130 | startTime = time.time() 131 | word_lookup_marg, word_lookup_fut = estimate_predictive_distributions(stringX, stringY, L_max, counting_method = counting_method, axs = axs, ays = ays) 132 | print(('The transCSSR counting took {0} seconds...'.format(time.time() - startTime))) 133 | 134 | epsilon, invepsilon, morph_by_state = run_transCSSR(word_lookup_marg, word_lookup_fut, L_max, axs, ays, e_symbols, Xt_name, Yt_name, alpha = alpha, verbose = False) 135 | 136 | print('The epsilon-transducer has {} states.'.format(len(invepsilon))) 137 | 138 | print_morph_by_states(morph_by_state, axs, ays, e_symbols) 139 | 140 | filtered_states, filtered_probs, stringY_pred = filter_and_predict(stringX, stringY, epsilon, invepsilon, morph_by_state, axs, ays, e_symbols, L_max) 141 | 142 | # print 'Xt Yt \hat\{Y\}t St P(Yt = 1 | Xt, St)' 143 | 144 | # for t_ind in range(int(numpy.min([100, len(stringX)]))): 145 | # print stringX[t_ind], stringY[t_ind], stringY_pred[t_ind], filtered_states[t_ind], filtered_probs[t_ind] 146 | 147 | preds_all, possible_states_all = filter_and_pred_probs(stringX, stringY, machine_fname = 'transCSSR_results/+{}.dot'.format(Xt_name), transducer_fname = 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), axs = axs, ays = ays, inf_alg = 'transCSSR') -------------------------------------------------------------------------------- /filter_data_methods.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import collections 3 | import sys 4 | 5 | def compute_precision(ts_true, ts_prediction, verbose = False): 6 | numerator = 0 # In precision, the numerator is the number of true 7 | # positives which are predicted correctly. 8 | denominator = 0 # In precision, the denominator is the total number 9 | # of predicted positives. 10 | 11 | for char_ind in range(len(ts_true)): 12 | if ts_prediction[char_ind] == 'N': 13 | pass 14 | else: 15 | if int(ts_prediction[char_ind]) == 1: # We predicted a 1 16 | denominator += 1 17 | 18 | if int(ts_true[char_ind]) == 1: # We predicted a 1, and it is also the right 19 | # answer. 20 | numerator += 1 21 | 22 | if denominator == 0: 23 | if verbose: 24 | print('Warning: you didn\'t predict any tweets! By convention, set precision to 1.') 25 | 26 | precision = 1 27 | else: 28 | precision = numerator/float(denominator) 29 | 30 | return precision 31 | 32 | def compute_recall(ts_true, ts_prediction, verbose = False): 33 | numerator = 0 # In precision, the numerator is the number of true 34 | # positives which are predicted correctly. 35 | denominator = 0 # In precision, the denominator is the total number 36 | # of true positives. 37 | 38 | for char_ind in range(len(ts_true)): 39 | if int(ts_true[char_ind]) == 1: # The true value is a 1 40 | denominator += 1 41 | 42 | if ts_prediction[char_ind] == 'N': 43 | pass 44 | else: 45 | if int(ts_prediction[char_ind]) == 1: # We predicted a 1, and it is also the right 46 | # answer. 47 | numerator += 1 48 | 49 | if denominator == 0: 50 | if verbose: 51 | print('Warning: no tweets were in this day! By convention, set recall to 1.') 52 | 53 | recall = 1 54 | else: 55 | recall = numerator/float(denominator) 56 | 57 | return recall 58 | 59 | def compute_tv(ts_true, ts_prediction): 60 | running_sum = 0 61 | count = 0 62 | 63 | for char_ind in range(len(ts_true)): 64 | if ts_prediction[char_ind] == None: 65 | pass 66 | else: 67 | running_sum += numpy.abs(int(ts_true[char_ind]) - ts_prediction[char_ind]) + numpy.abs((1 - int(ts_true[char_ind])) - (1 - ts_prediction[char_ind])) 68 | count += 1 69 | 70 | tv = 0.5*running_sum / float(count) 71 | 72 | return tv 73 | 74 | def compute_metrics(ts_true, ts_prediction, metric = None): 75 | # choices: 'accuracy', 'precision', 'recall', 'F' 76 | 77 | if metric == None or metric == 'accuracy': # By default, compute accuracy rate. 78 | correct = 0 79 | 80 | for char_ind in range(len(ts_true)): 81 | if ts_prediction[char_ind] == 'N': # We didn't predict, so don't count towards correct. 82 | pass 83 | else: 84 | if int(ts_true[char_ind]) == int(ts_prediction[char_ind]): 85 | correct += 1 86 | 87 | accuracy_rate = correct / float(len(ts_true)) 88 | 89 | return accuracy_rate 90 | elif metric == 'precision': 91 | precision = compute_precision(ts_true, ts_prediction) 92 | 93 | return precision 94 | 95 | elif metric == 'recall': 96 | 97 | recall = compute_recall(ts_true, ts_prediction) 98 | 99 | return recall 100 | 101 | elif metric == 'F': 102 | precision = compute_precision(ts_true, ts_prediction) 103 | recall = compute_recall(ts_true, ts_prediction) 104 | 105 | if (precision + recall) == 0: 106 | F = 0 107 | else: 108 | F = 2*precision*recall/float(precision + recall) 109 | 110 | return F 111 | elif metric == 'tv': 112 | tv = compute_tv(ts_true, ts_prediction) 113 | 114 | return tv 115 | else: 116 | print("Please choose one of \'accuracy\', \'precision\', \'recall\', or \'F\'.") 117 | 118 | return None -------------------------------------------------------------------------------- /legacy_code/demo_transCSSR__SHALIZI.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import scipy.stats 3 | import itertools 4 | import copy 5 | import string 6 | import os 7 | 8 | from collections import Counter, defaultdict 9 | from filter_data_methods import * 10 | from igraph import * 11 | 12 | from transCSSR__SHALIZI import * 13 | 14 | 15 | 16 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | # 18 | # The various test transducers. Xt is the input 19 | # and Yt is the output. 20 | # 21 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 22 | 23 | data_prefix = '' 24 | 25 | # Yt_name = 'coinflip_through_even' 26 | # Yt_name = 'coinflip_through_evenflip' 27 | # Yt_name = 'coinflip_through_periodickick' 28 | # Yt_name = 'coinflip_through_periodicevenkick' 29 | # Yt_name = 'even_through_even' 30 | # Yt_name = 'even' 31 | # Yt_name = 'rip' 32 | # Yt_name = 'rip-rev' 33 | # Yt_name = 'barnettY' 34 | # Yt_name = 'even-excite_w_refrac' 35 | Yt_name = 'coinflip-excite_w_refrac' 36 | # Yt_name = 'coinflip' 37 | # Yt_name = 'period4' 38 | # Yt_name = 'golden-mean' 39 | # Yt_name = 'golden-mean-rev' 40 | # Yt_name = 'complex-csm' 41 | # Yt_name = 'tricoin_through_singh-machine' 42 | # Yt_name = 'coinflip_through_floatreset' 43 | 44 | Xt_name = 'coinflip' 45 | # Xt_name = 'even' 46 | # Xt_name = '' 47 | # Xt_name = 'barnettX' 48 | # Xt_name = 'even-excite_w_refrac' 49 | # Xt_name = 'tricoin' 50 | 51 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 52 | # 53 | # Load in the data for each process. 54 | # 55 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 56 | 57 | stringY = open('data/{}{}.dat'.format(data_prefix, Yt_name)).readline().strip() 58 | 59 | if Xt_name == '': 60 | stringX = '0'*len(stringY) 61 | else: 62 | stringX = open('data/{}{}.dat'.format(data_prefix, Xt_name)).readline().strip() 63 | 64 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 65 | # 66 | # Set the parameters and associated quantities: 67 | # axs, ays -- the input / output alphabets 68 | # alpha -- the significance level associated with 69 | # CSSR's hypothesis tests. 70 | # L -- The maximum history length to look 71 | # back when inferring predictive 72 | # distributions. 73 | # 74 | #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 75 | 76 | # axs = ['0'] 77 | # ays = ['0', '1'] 78 | 79 | axs = ['0', '1'] 80 | ays = ['0', '1'] 81 | 82 | e_symbols = list(itertools.product(axs, ays)) # All of the possible pairs of emission 83 | # symbols for (x, y) 84 | 85 | alpha = 0.001 86 | 87 | verbose = False 88 | 89 | # L is the maximum amount we want to ever look back. 90 | 91 | L_max = 1 92 | 93 | Tx = len(stringX); Ty = len(stringY) 94 | 95 | assert Tx == Ty, 'The two time series must have the same length.' 96 | 97 | T = Tx 98 | 99 | word_lookup_marg, word_lookup_fut = estimate_predictive_distributions(stringX, stringY, L_max) 100 | 101 | epsilon, invepsilon, morph_by_state = run_transCSSR(word_lookup_marg, word_lookup_fut, L_max, axs, ays, e_symbols, Xt_name, Yt_name, alpha = alpha) 102 | 103 | print('The epsilon-transducer has {} states.'.format(len(invepsilon))) 104 | 105 | print_morph_by_states(morph_by_state) 106 | 107 | prior_pred = [word_lookup_fut[('', ay)] for ay in ays] 108 | 109 | prior_pred = numpy.array(prior_pred)/float(numpy.sum(prior_pred)) 110 | 111 | print('\nDemonstration of filtering...\n') 112 | 113 | filtered_states, filtered_probs, stringY_pred = filter_and_predict(stringX, stringY, epsilon, invepsilon, morph_by_state, axs, ays, e_symbols, L_max, prior_pred) 114 | 115 | print('t\tS_\{t\}\tP(Y_\{t\} | S_\{t-1\})\that(Y)_\{t\}\tY_\{t\}') 116 | print('-----------------------------------------------------------') 117 | 118 | for t_ind in range(int(numpy.min([100, len(stringX)]))): 119 | print(t_ind, filtered_states[t_ind], filtered_probs[t_ind, :], stringY_pred[t_ind], stringY[t_ind]) 120 | 121 | test_out = run_tests_transCSSR('data/{}{}'.format(data_prefix, Xt_name), 'data/{}{}'.format(data_prefix, Yt_name), epsilon, invepsilon, morph_by_state, axs, ays, e_symbols, L = L_max, L_max = L_max, metric = None, memoryless = False, verbose = True, prior_pred = prior_pred) 122 | 123 | preds_all, possible_states_all = filter_and_pred_probs(stringX, stringY, machine_fname = 'transCSSR_results/+{}.dot'.format(Xt_name), transducer_fname = 'transCSSR_results/{}+{}.dot'.format(Xt_name, Yt_name), axs = axs, ays = ays, inf_alg = 'transCSSR') -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | """A setuptools based setup module. 2 | 3 | See: 4 | https://packaging.python.org/guides/distributing-packages-using-setuptools/ 5 | https://github.com/pypa/sampleproject 6 | """ 7 | 8 | # Always prefer setuptools over distutils 9 | from setuptools import setup, find_packages 10 | import pathlib 11 | 12 | here = pathlib.Path(__file__).parent.resolve() 13 | 14 | # Get the long description from the README file 15 | long_description = (here / 'README.md').read_text(encoding='utf-8') 16 | 17 | # Arguments marked as "Required" below must be included for upload to PyPI. 18 | # Fields marked as "Optional" may be commented out. 19 | 20 | setup( 21 | # This is the name of your project. The first time you publish this 22 | # package, this name will be registered for you. It will determine how 23 | # users can install this project, e.g.: 24 | # 25 | # $ pip install sampleproject 26 | # 27 | # And where it will live on PyPI: https://pypi.org/project/sampleproject/ 28 | # 29 | # There are some restrictions on what makes a valid project name 30 | # specification here: 31 | # https://packaging.python.org/specifications/core-metadata/#name 32 | name='transCSSR', # Required 33 | 34 | # Versions should comply with PEP 440: 35 | # https://www.python.org/dev/peps/pep-0440/ 36 | # 37 | # For a discussion on single-sourcing the version across setup.py and the 38 | # project code, see 39 | # https://packaging.python.org/en/latest/single_source_version.html 40 | version='1.0.0', # Required 41 | 42 | # This is a one-line description or tagline of what your project does. This 43 | # corresponds to the "Summary" metadata field: 44 | # https://packaging.python.org/specifications/core-metadata/#summary 45 | description='A Python implementation of the Causal State Splitting Reconstruction (CSSR) algorithm', # Optional 46 | 47 | # This is an optional longer description of your project that represents 48 | # the body of text which users will see when they visit PyPI. 49 | # 50 | # Often, this is the same as your README, so you can just read it in from 51 | # that file directly (as we have already done above) 52 | # 53 | # This field corresponds to the "Description" metadata field: 54 | # https://packaging.python.org/specifications/core-metadata/#description-optional 55 | long_description='A Python implementation of the Causal State Splitting Reconstruction (CSSR) algorithm for inferring epsilon-transducers from data generated by discrete-valued, discrete-time input/output systems.', # Optional 56 | 57 | # Denotes that our long_description is in Markdown; valid values are 58 | # text/plain, text/x-rst, and text/markdown 59 | # 60 | # Optional if long_description is written in reStructuredText (rst) but 61 | # required for plain-text or Markdown; if unspecified, "applications should 62 | # attempt to render [the long_description] as text/x-rst; charset=UTF-8 and 63 | # fall back to text/plain if it is not valid rst" (see link below) 64 | # 65 | # This field corresponds to the "Description-Content-Type" metadata field: 66 | # https://packaging.python.org/specifications/core-metadata/#description-content-type-optional 67 | long_description_content_type='text/markdown', # Optional (see note above) 68 | 69 | # This should be a valid link to your project's main homepage. 70 | # 71 | # This field corresponds to the "Home-Page" metadata field: 72 | # https://packaging.python.org/specifications/core-metadata/#home-page-optional 73 | url='https://github.com/ddarmon/transCSSR', # Optional 74 | 75 | # This should be your name or the name of the organization which owns the 76 | # project. 77 | author='David Darmon', # Optional 78 | 79 | # This should be a valid email address corresponding to the author listed 80 | # above. 81 | author_email='ddarmon@monmouth.edu', # Optional 82 | 83 | # Classifiers help users find your project by categorizing it. 84 | # 85 | # For a list of valid classifiers, see https://pypi.org/classifiers/ 86 | classifiers=[ # Optional 87 | # How mature is this project? Common values are 88 | # 3 - Alpha 89 | # 4 - Beta 90 | # 5 - Production/Stable 91 | 'Development Status :: 4 - Beta', 92 | 93 | # Indicate who your project is intended for 94 | 'Intended Audience :: Scientists', 95 | 'Topic :: Stochastic Processes :: Optimal Inference', 96 | 97 | # Pick your license as you wish 98 | 'License :: GNU Public License', 99 | 100 | # Specify the Python versions you support here. In particular, ensure 101 | # that you indicate you support Python 3. These classifiers are *not* 102 | # checked by 'pip install'. See instead 'python_requires' below. 103 | 'Programming Language :: Python :: 3', 104 | 'Programming Language :: Python :: 3.5', 105 | 'Programming Language :: Python :: 3.6', 106 | 'Programming Language :: Python :: 3.7', 107 | 'Programming Language :: Python :: 3.8', 108 | 'Programming Language :: Python :: 3 :: Only', 109 | ], 110 | 111 | # This field adds keywords for your project which will appear on the 112 | # project page. What does your project relate to? 113 | # 114 | # Note that this is a list of additional keywords, separated 115 | # by commas, to be used to assist searching for the distribution in a 116 | # larger catalog. 117 | keywords='CSSR, causal states, epsilon-machine, epsilon-transducer', # Optional 118 | 119 | # When your source code is in a subdirectory under the project root, e.g. 120 | # `src/`, it is necessary to specify the `package_dir` argument. 121 | # package_dir={'': 'src'}, # Optional 122 | 123 | # You can just specify package directories manually here if your project is 124 | # simple. Or you can use find_packages(). 125 | # 126 | # Alternatively, if you just want to distribute a single Python file, use 127 | # the `py_modules` argument instead as follows, which will expect a file 128 | # called `my_module.py` to exist: 129 | # 130 | py_modules=["transCSSR", "filter_data_methods"], 131 | # 132 | # packages=find_packages(where='src'), # Required 133 | 134 | # Specify which Python versions you support. In contrast to the 135 | # 'Programming Language' classifiers above, 'pip install' will check this 136 | # and refuse to install the project if the version does not match. See 137 | # https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires 138 | python_requires='>=3.5, <4', 139 | 140 | # This field lists other packages that your project depends on to run. 141 | # Any package you put here will be installed by pip when your project is 142 | # installed, so they must be valid existing projects. 143 | # 144 | # For an analysis of "install_requires" vs pip's requirements files see: 145 | # https://packaging.python.org/en/latest/requirements.html 146 | install_requires=['numpy', 'scipy', 'pandas', 'python-igraph', 'matplotlib', 'joblib', 'tqdm'], # Optional 147 | 148 | # List additional groups of dependencies here (e.g. development 149 | # dependencies). Users will be able to install these using the "extras" 150 | # syntax, for example: 151 | # 152 | # $ pip install sampleproject[dev] 153 | # 154 | # Similar to `install_requires` above, these must be valid existing 155 | # projects. 156 | extras_require={}, 157 | 158 | # If there are data files included in your packages that need to be 159 | # installed, specify them here. 160 | package_data={}, 161 | 162 | # Although 'package_data' is the preferred approach, in some case you may 163 | # need to place data files outside of your packages. See: 164 | # http://docs.python.org/distutils/setupscript.html#installing-additional-files 165 | # 166 | # In this case, 'data_file' will be installed into '/my_data' 167 | # data_files=[('my_data', ['data/data_file'])], # Optional 168 | 169 | # To provide executable scripts, use entry points in preference to the 170 | # "scripts" keyword. Entry points provide cross-platform support and allow 171 | # `pip` to create the appropriate form of executable for the target 172 | # platform. 173 | # 174 | # For example, the following would provide a command called `sample` which 175 | # executes the function `main` from this package when invoked: 176 | entry_points={}, 177 | 178 | # List additional URLs that are relevant to your project as a dict. 179 | # 180 | # This field corresponds to the "Project-URL" metadata fields: 181 | # https://packaging.python.org/specifications/core-metadata/#project-url-multiple-use 182 | # 183 | # Examples listed include a pattern for specifying where the package tracks 184 | # issues, where the source is hosted, where to say thanks to the package 185 | # maintainers, and where to support the project financially. The key is 186 | # what's used to render the link text on PyPI. 187 | project_urls={ # Optional 188 | #'Bug Reports': 'https://github.com/pypa/sampleproject/issues', 189 | #'Funding': 'https://donate.pypi.org', 190 | #'Say Thanks!': 'http://saythanks.io/to/example', 191 | #'Source': 'https://github.com/pypa/sampleproject/', 192 | }, 193 | ) 194 | -------------------------------------------------------------------------------- /simulation-codes-paper/simulate_delay-channel.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | 3 | T = 10000 4 | 5 | Xs = numpy.random.randint(2, size = T) 6 | 7 | Ys = numpy.zeros(Xs.shape[0], dtype = 'int16') 8 | 9 | for t in range(1, Xs.shape[0]): 10 | # if Xs[t-1] == 0: 11 | # Ys[t] = 0 12 | # else: 13 | # Ys[t] = numpy.random.randint(2) 14 | 15 | if Xs[t-1] == 0: 16 | Ys[t] = 0 17 | else: 18 | Ys[t] = 1 19 | 20 | with open('../data/Xt_delay-channel.dat', 'w') as wfile: 21 | for sym in Xs: 22 | wfile.write(str(sym)) 23 | 24 | with open('../data/Yt_delay-channel.dat', 'w') as wfile: 25 | for sym in Ys: 26 | wfile.write(str(sym)) 27 | -------------------------------------------------------------------------------- /simulation-codes-paper/simulate_odd-random-channel.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | 3 | # The story: the odd random channel stores the parity of its 4 | # input sequence. If the parity is even (an even number of 1s 5 | # have been observed since the last 0), it acts as the identity 6 | # channel, and P(Yt = x | Xt = x, Even Parity) = 1. If the parity 7 | # is odd (an odd number of 1s have been observed since 8 | # the last 0), it emits 0 and 1 with equal probability, e.g. 9 | # P(Yt = x | Xt = x, Odd Parity) = 1/2. 10 | 11 | T = 100000 12 | 13 | parity = 0 # 0 when we've observed an even number of 1s 14 | # since the last 0, 1 otherwise. 15 | 16 | Xs = numpy.random.randint(2, size = T) 17 | 18 | Xs[0] = 0 19 | 20 | Ys = numpy.zeros(Xs.shape[0], dtype = 'int16') 21 | 22 | for t in range(1, Xs.shape[0]): 23 | if Xs[t-1] == 0: 24 | parity = 0 # Reset the parity, since we've seen 0 1s. 25 | else: 26 | parity += 1 27 | 28 | parity = parity % 2 29 | 30 | if parity == 0: 31 | Ys[t] = Xs[t] 32 | else: 33 | Ys[t] = numpy.random.randint(2) 34 | 35 | print Xs[:20] 36 | 37 | print Ys[:20] 38 | 39 | with open('../data/Xt_odd-random-channel.dat', 'w') as wfile: 40 | for sym in Xs: 41 | wfile.write(str(sym)) 42 | 43 | with open('../data/Yt_odd-random-channel.dat', 'w') as wfile: 44 | for sym in Ys: 45 | wfile.write(str(sym)) -------------------------------------------------------------------------------- /simulation-codes-paper/simulate_z-channel.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | 3 | T = 10000 4 | 5 | Xs = numpy.random.randint(2, size = T) 6 | 7 | Ys = numpy.zeros(Xs.shape[0], dtype = 'int16') 8 | 9 | for t in range(0, Xs.shape[0]): 10 | # if Xs[t-1] == 0: 11 | # Ys[t] = 0 12 | # else: 13 | # Ys[t] = numpy.random.randint(2) 14 | 15 | if Xs[t] == 0: 16 | Ys[t] = 0 17 | else: 18 | Ys[t] = numpy.random.randint(2) 19 | 20 | with open('../data/Xt_z-channel.dat', 'w') as wfile: 21 | for sym in Xs: 22 | wfile.write(str(sym)) 23 | 24 | with open('../data/Yt_z-channel.dat', 'w') as wfile: 25 | for sym in Ys: 26 | wfile.write(str(sym)) 27 | -------------------------------------------------------------------------------- /simulation-codes/excite_w_refrac.trans: -------------------------------------------------------------------------------- 1 | State A 2 | 1, 0 3 | P(X = 1 | S = s) = 0.95 4 | State R 5 | 0, 1 6 | 1, 1 7 | P(X = 1 | S = s) = 0.0 8 | State N 9 | 0, 0 10 | P(X = 1 | S = s) = 0.1 -------------------------------------------------------------------------------- /simulation-codes/simulate_even_transducer.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | 3 | Xt = [int(char) for char in open('data/even.dat').readline().strip()] 4 | Yt = numpy.zeros(len(Xt)) 5 | 6 | num_trailing_ones = Xt[0] 7 | 8 | # Old 9 | # for t in range(1, len(Xt)): 10 | # if (num_trailing_ones % 2) == 1 and Xt[t-1] == 0: 11 | # Yt[t] = 1 12 | # num_trailing_ones += 1 13 | # elif (num_trailing_ones % 2) == 0 and Xt[t-1] == 0: 14 | # Yt[t] = 0 15 | # num_trailing_ones = 0 16 | # else: 17 | # Yt[t] = 1 18 | # num_trailing_ones += 1 19 | 20 | for t in range(1, len(Xt)): 21 | if (num_trailing_ones % 2) == 1 and Xt[t-1] == 0: 22 | Yt[t] = 1 23 | num_trailing_ones += 1 24 | elif (num_trailing_ones % 2) == 0 and Xt[t-1] == 0: 25 | Yt[t] = 0 26 | num_trailing_ones = 0 27 | else: 28 | Yt[t] = 1 29 | num_trailing_ones += 1 30 | 31 | with open('data/even_through_even.dat', 'w') as wfile: 32 | for emission in Yt: 33 | wfile.write('{}'.format(int(emission))) -------------------------------------------------------------------------------- /simulation-codes/simulate_evenflip_transducer.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | 3 | Xt_name = 'coinflip' 4 | 5 | Xt = [int(char) for char in open('data/{}.dat'.format(Xt_name)).readline().strip()] 6 | Yt = numpy.zeros(len(Xt)) 7 | 8 | num_trailing_ones = 0 9 | 10 | p0 = 0.35 11 | p1 = 0.75 12 | 13 | Us = numpy.random.rand(len(Xt)) 14 | 15 | for t in range(1, len(Xt)): 16 | if (num_trailing_ones % 2) == 1: # In odd 'state' 17 | Yt[t] = 1 18 | 19 | num_trailing_ones += 1 20 | elif (num_trailing_ones % 2) == 0 and Xt[t-1] == 0: # In even 'state', and saw a 0 21 | if Us[t] <= p0: 22 | Yt[t] = 1 # flip 23 | num_trailing_ones += 1 24 | else: 25 | Yt[t] = 0 # don't flip 26 | num_trailing_ones = 0 27 | 28 | elif (num_trailing_ones % 2) == 0 and Xt[t-1] == 1: # In even 'state', and saw a 1 29 | if Us[t] <= p1: 30 | Yt[t] = 1 # don't flip 31 | num_trailing_ones += 1 32 | else: 33 | Yt[t] = 0 # flip 34 | num_trailing_ones = 0 35 | 36 | with open('data/{}_through_evenflip.dat'.format(Xt_name), 'w') as wfile: 37 | for emission in Yt: 38 | wfile.write('{}'.format(int(emission))) -------------------------------------------------------------------------------- /simulation-codes/simulate_floatreset.py: -------------------------------------------------------------------------------- 1 | # Simulate from the float-reset transducer 2 | # from Figure 5 of 3 | # 4 | # *Predictive State Representations* 5 | # 6 | # DMD, 290814-10-33 7 | 8 | import numpy 9 | 10 | N = 500000 11 | 12 | Xt = numpy.random.randint(low = 0, high = 2, size = N) 13 | 14 | Yt = numpy.zeros(N, dtype = 'int32') 15 | 16 | state = numpy.zeros(N, dtype = 'int32') 17 | 18 | # 0 = f(loat), move left or right with equal pro 19 | # 1 = r(eset) 20 | 21 | state_max = 2 # We have states 0, 1, ..., state_max, thus state_max + 1 states. 22 | 23 | cur_state = state_max # Start in the right-most state 24 | 25 | state[0] = cur_state 26 | 27 | Us = numpy.random.rand(N) 28 | 29 | for t in range(1, N): 30 | if cur_state == state_max: 31 | if Xt[t-1] == 0: # float 32 | if Us[t] < 0.5: 33 | lr = -1 34 | else: 35 | lr = 1 36 | 37 | Yt[t] = 0 38 | 39 | 40 | new_state = cur_state + lr 41 | 42 | if new_state > state_max: 43 | new_state = state_max 44 | elif Xt[t-1] == 1: # reset 45 | Yt[t] = 1 46 | 47 | new_state = state_max 48 | else: 49 | if Xt[t-1] == 0: # float 50 | if Us[t] < 0.5: 51 | lr = -1 52 | else: 53 | lr = 1 54 | 55 | Yt[t] = 0 56 | 57 | 58 | new_state = cur_state + lr 59 | 60 | if new_state < 0: 61 | new_state = 0 62 | elif Xt[t-1] == 1: # reset 63 | Yt[t] = 0 64 | 65 | new_state = state_max 66 | 67 | cur_state = new_state 68 | 69 | state[t] = cur_state 70 | 71 | for t in range(100): 72 | print '{}\t{}\t{}'.format(Xt[t], Yt[t], state[t]) 73 | 74 | Xt_name = 'coinflip' 75 | Yt_name = '{}_through_floatreset'.format(Xt_name) 76 | 77 | with open('data/{}.dat'.format(Xt_name), 'w') as wfile: 78 | for sym in Xt: 79 | wfile.write(str(sym)) 80 | 81 | with open('data/{}.dat'.format(Yt_name), 'w') as wfile: 82 | for sym in Yt: 83 | wfile.write(str(sym)) -------------------------------------------------------------------------------- /simulation-codes/simulate_periodic.py: -------------------------------------------------------------------------------- 1 | Yt = '1001'*1000 2 | 3 | with open('data/period4.dat', 'w') as wfile: 4 | for emission in Yt: 5 | wfile.write('{}'.format(int(emission))) -------------------------------------------------------------------------------- /simulation-codes/simulate_periodicevenkick.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import ipdb 3 | 4 | Xt_name = 'coinflip' 5 | 6 | Xt = [int(char) for char in open('data/{}.dat'.format(Xt_name)).readline().strip()] 7 | Yt = numpy.zeros(len(Xt)) 8 | 9 | Us = numpy.random.rand(len(Xt)) 10 | 11 | num_trailing_ones = Xt[0] 12 | 13 | period = 3 14 | 15 | place_in_period = 1 16 | 17 | for t in range(1, len(Xt)): 18 | # ipdb.set_trace() 19 | 20 | if (num_trailing_ones % 2 == 0) and (num_trailing_ones != 0): # Kick the system every time we see an even number of 1s in the input. 21 | Yt[t] = 1 22 | 23 | place_in_period = 0 24 | else: 25 | if (place_in_period % period) == 0: 26 | Yt[t] = 0 27 | else: 28 | Yt[t] = 1 29 | 30 | place_in_period += 1 31 | 32 | if Xt[t] == 0: 33 | num_trailing_ones = 0 34 | else: 35 | num_trailing_ones += 1 36 | 37 | with open('data/{}_through_periodicevenkick.dat'.format(Xt_name), 'w') as wfile: 38 | for emission in Yt: 39 | wfile.write('{}'.format(int(emission))) -------------------------------------------------------------------------------- /simulation-codes/simulate_periodickick.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | import ipdb 3 | 4 | Xt_name = 'coinflip' 5 | 6 | Xt = [int(char) for char in open('data/{}.dat'.format(Xt_name)).readline().strip()] 7 | Yt = numpy.zeros(len(Xt)) 8 | 9 | Us = numpy.random.rand(len(Xt)) 10 | 11 | period = 3 12 | 13 | place_in_period = 1 14 | 15 | for t in range(1, len(Xt)): 16 | # print 'Place in period: {}'.format(place_in_period) 17 | 18 | if Xt[t-1] == 1: # Kick the system every time the previous symbol in the input was 1. 19 | Yt[t] = 1 20 | 21 | # print 'Kicked!' 22 | 23 | place_in_period = 0 24 | else: 25 | if (place_in_period % period) == 0: 26 | Yt[t] = 0 27 | else: 28 | Yt[t] = 1 29 | 30 | place_in_period += 1 31 | 32 | with open('data/{}_through_periodickick.dat'.format(Xt_name), 'w') as wfile: 33 | for emission in Yt: 34 | wfile.write('{}'.format(int(emission))) -------------------------------------------------------------------------------- /simulation-codes/simulate_singh-machine.py: -------------------------------------------------------------------------------- 1 | # Simulate from the two-state transducer from 2 | # Figure 3 of 3 | # 4 | # *Learning Predictive State Representations* 5 | # 6 | # DMD, 190814-12-51 7 | 8 | import numpy 9 | 10 | N = 10000 11 | 12 | Xt = numpy.random.randint(low = 0, high = 3, size = N) 13 | 14 | Yt = numpy.zeros(N, dtype = 'int32') 15 | 16 | # 0 = u 17 | # 1 = l 18 | # 2 = r 19 | 20 | cur_state = 1 # Start in the left state 21 | 22 | for t in range(1, N): 23 | if Xt[t-1] == 0: # Saw a 'u' 24 | Yt[t] = 0 25 | elif Xt[t-1] == 1: # Saw a 'l' 26 | if cur_state == 1: 27 | Yt[t] = 0 28 | elif cur_state == 2: 29 | cur_state = 1 30 | Yt[t] = 1 31 | elif Xt[t-1] == 2: # Saw a 'r' 32 | if cur_state == 1: 33 | cur_state = 2 34 | Yt[t] = 1 35 | elif cur_state == 2: 36 | Yt[t] = 0 37 | 38 | for t in range(10): 39 | print '{}\t{}'.format(Xt[t], Yt[t]) 40 | 41 | Xt_name = 'tricoin' 42 | Yt_name = '{}_through_singh-machine'.format(Xt_name) 43 | 44 | with open('data/{}.dat'.format(Xt_name), 'w') as wfile: 45 | for sym in Xt: 46 | wfile.write(str(sym)) 47 | 48 | with open('data/{}.dat'.format(Yt_name), 'w') as wfile: 49 | for sym in Yt: 50 | wfile.write(str(sym)) -------------------------------------------------------------------------------- /simulation-codes/simulate_transducer.py: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # DMD, 24 June 2014 4 | 5 | import numpy 6 | 7 | def load_transducer(fname): 8 | # epsilon maps from histories 9 | # to causal states 10 | 11 | epsilon = {} 12 | 13 | # prob_state takes in s_{t} 14 | # and outputs P(X_{t+1} = 1 | S_{t} = s_{t}) 15 | 16 | prob_state = {} 17 | 18 | with open(fname) as ofile: 19 | line = ofile.readline() 20 | 21 | while line != '': 22 | state_name = line.strip().split(' ')[1] 23 | 24 | line = ofile.readline() 25 | 26 | while 'P(X = 1 | S = s)' not in line: 27 | xt, yt = line.strip().split(', ') 28 | 29 | epsilon[(xt, yt)] = state_name 30 | 31 | line = ofile.readline() 32 | 33 | p = float(line.split(' = ')[-1]) 34 | 35 | prob_state[state_name] = p 36 | 37 | line = ofile.readline() 38 | 39 | return epsilon, prob_state 40 | 41 | trans_name = 'excite_w_refrac' 42 | 43 | epsilon, prob_state = load_transducer('{}.trans'.format(trans_name)) 44 | 45 | Xt_name = 'coinflip' 46 | 47 | Yt_name = '{}-{}'.format(Xt_name, trans_name) 48 | 49 | Xt = open('../data/{}.dat'.format(Xt_name)).readline().strip() 50 | 51 | Yt = '1' 52 | 53 | L = len(epsilon.keys()[0][0]) 54 | 55 | for t in range(L, len(Xt)): 56 | xt = Xt[t-L:t]; yt = Yt[t-L:t] 57 | 58 | cur_state = epsilon[(xt, yt)] 59 | 60 | p = prob_state[cur_state] 61 | 62 | if numpy.random.rand() < p: 63 | Yt += '1' 64 | else: 65 | Yt += '0' 66 | 67 | open('../data/{}.dat'.format(Yt_name), 'w').write(Yt) -------------------------------------------------------------------------------- /transCSSR_results/+.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:1.0\l"]; 13 | } -------------------------------------------------------------------------------- /transCSSR_results/+1mm.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.75\l"]; 13 | A -> B [label = "1|0:0.25\l"]; 14 | B -> A [label = "0|0:0.25\l"]; 15 | B -> B [label = "1|0:0.75\l"]; 16 | } -------------------------------------------------------------------------------- /transCSSR_results/+RIP-exact.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "0|0:0.5\l"]; 13 | A -> C [label = "1|0:0.5\l"]; 14 | B -> C [label = "0|0:0.5\l"]; 15 | B -> C [label = "1|0:0.5\l"]; 16 | C -> A [label = "1|0:1.0\l"]; 17 | } -------------------------------------------------------------------------------- /transCSSR_results/+RIP.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> E [label = "1|0:1.0\l"]; 13 | B -> D [label = "1|0:0.8\l"]; 14 | B -> G [label = "0|0:0.2\l"]; 15 | C -> B [label = "0|0:0.292\l"]; 16 | C -> D [label = "1|0:0.708\l"]; 17 | D -> B [label = "0|0:0.0\l"]; 18 | D -> C [label = "1|0:1.0\l"]; 19 | E -> B [label = "0|0:0.23\l"]; 20 | E -> C [label = "1|0:0.77\l"]; 21 | F -> A [label = "1|0:0.669\l"]; 22 | F -> B [label = "0|0:0.331\l"]; 23 | G -> F [label = "1|0:1.0\l"]; 24 | } -------------------------------------------------------------------------------- /transCSSR_results/+RnC.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "0|0:0.25\l"]; 13 | A -> C [label = "1|0:0.75\l"]; 14 | B -> A [label = "0|0:1.00\l"]; 15 | C -> A [label = "0|0:0.25\l"]; 16 | C -> A [label = "1|0:0.75\l"]; 17 | } -------------------------------------------------------------------------------- /transCSSR_results/+Xt_delay-channel.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 0000, 0000 3 | 0000, 0001 4 | 0000, 0010 5 | 0000, 0011 6 | 0000, 0100 7 | 0000, 0101 8 | 0000, 0110 9 | 0000, 0111 10 | 0000, 1000 11 | 0000, 1001 12 | 0000, 1010 13 | 0000, 1011 14 | 0000, 1100 15 | 0000, 1101 16 | 0000, 1110 17 | 0000, 1111 18 | 00000, 00000 19 | 00000, 00001 20 | 00000, 00010 21 | 00000, 00011 22 | 00000, 00100 23 | 00000, 00101 24 | 00000, 00110 25 | 00000, 00111 26 | 00000, 01000 27 | 00000, 01001 28 | 00000, 01010 29 | 00000, 01011 30 | 00000, 01100 31 | 00000, 01101 32 | 00000, 01110 33 | 00000, 01111 34 | 00000, 10000 35 | 00000, 10001 36 | 00000, 10010 37 | 00000, 10011 38 | 00000, 10100 39 | 00000, 10101 40 | 00000, 10110 41 | 00000, 10111 42 | 00000, 11000 43 | 00000, 11001 44 | 00000, 11010 45 | 00000, 11011 46 | 00000, 11100 47 | 00000, 11101 48 | 00000, 11110 49 | 00000, 11111 50 | distribution: 51 | P(0|0,state) = 0.503184925796 52 | P(1|0,state) = 0.496815074204 53 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 54 | P(State) = ... 55 | 56 | -------------------------------------------------------------------------------- /transCSSR_results/+Xt_delay-channel.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.503\l1|0:0.497\l"]; 13 | } -------------------------------------------------------------------------------- /transCSSR_results/+Xt_odd-random-channel.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 0000, 0000 3 | 0000, 0001 4 | 0000, 0010 5 | 0000, 0011 6 | 0000, 0100 7 | 0000, 0101 8 | 0000, 0110 9 | 0000, 0111 10 | 0000, 1000 11 | 0000, 1001 12 | 0000, 1010 13 | 0000, 1011 14 | 0000, 1100 15 | 0000, 1101 16 | 0000, 1110 17 | 0000, 1111 18 | 00000, 00000 19 | 00000, 00001 20 | 00000, 00010 21 | 00000, 00011 22 | 00000, 00100 23 | 00000, 00101 24 | 00000, 00110 25 | 00000, 00111 26 | 00000, 01000 27 | 00000, 01001 28 | 00000, 01010 29 | 00000, 01011 30 | 00000, 01100 31 | 00000, 01101 32 | 00000, 01110 33 | 00000, 01111 34 | 00000, 10000 35 | 00000, 10001 36 | 00000, 10010 37 | 00000, 10011 38 | 00000, 10100 39 | 00000, 10101 40 | 00000, 10110 41 | 00000, 10111 42 | 00000, 11000 43 | 00000, 11001 44 | 00000, 11010 45 | 00000, 11011 46 | 00000, 11100 47 | 00000, 11101 48 | 00000, 11110 49 | 00000, 11111 50 | distribution: 51 | P(0|0,state) = 0.500325016251 52 | P(1|0,state) = 0.499674983749 53 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 54 | P(State) = ... 55 | 56 | -------------------------------------------------------------------------------- /transCSSR_results/+Xt_odd-random-channel.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.5\l1|0:0.5\l"]; 13 | } -------------------------------------------------------------------------------- /transCSSR_results/+Xt_z-channel.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 0000, 0000 3 | 0000, 0001 4 | 0000, 0010 5 | 0000, 0011 6 | 0000, 0100 7 | 0000, 0101 8 | 0000, 0110 9 | 0000, 0111 10 | 0000, 1000 11 | 0000, 1001 12 | 0000, 1010 13 | 0000, 1011 14 | 0000, 1100 15 | 0000, 1101 16 | 0000, 1110 17 | 0000, 1111 18 | 00000, 00000 19 | 00000, 00001 20 | 00000, 00010 21 | 00000, 00011 22 | 00000, 00100 23 | 00000, 00101 24 | 00000, 00110 25 | 00000, 00111 26 | 00000, 01000 27 | 00000, 01001 28 | 00000, 01010 29 | 00000, 01011 30 | 00000, 01100 31 | 00000, 01101 32 | 00000, 01110 33 | 00000, 01111 34 | 00000, 10000 35 | 00000, 10001 36 | 00000, 10010 37 | 00000, 10011 38 | 00000, 10100 39 | 00000, 10101 40 | 00000, 10110 41 | 00000, 10111 42 | 00000, 11000 43 | 00000, 11001 44 | 00000, 11010 45 | 00000, 11011 46 | 00000, 11100 47 | 00000, 11101 48 | 00000, 11110 49 | 00000, 11111 50 | distribution: 51 | P(0|0,state) = 0.495297648824 52 | P(1|0,state) = 0.504702351176 53 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 54 | P(State) = ... 55 | 56 | -------------------------------------------------------------------------------- /transCSSR_results/+Xt_z-channel.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.495\l1|0:0.505\l"]; 13 | } -------------------------------------------------------------------------------- /transCSSR_results/+Yt_delay-channel.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 0000, 0000 3 | 0000, 0001 4 | 0000, 0010 5 | 0000, 0011 6 | 0000, 0100 7 | 0000, 0101 8 | 0000, 0110 9 | 0000, 0111 10 | 0000, 1000 11 | 0000, 1001 12 | 0000, 1010 13 | 0000, 1011 14 | 0000, 1100 15 | 0000, 1101 16 | 0000, 1110 17 | 0000, 1111 18 | 00000, 00000 19 | 00000, 00001 20 | 00000, 00010 21 | 00000, 00011 22 | 00000, 00100 23 | 00000, 00101 24 | 00000, 00110 25 | 00000, 00111 26 | 00000, 01000 27 | 00000, 01001 28 | 00000, 01010 29 | 00000, 01011 30 | 00000, 01100 31 | 00000, 01101 32 | 00000, 01110 33 | 00000, 01111 34 | 00000, 10000 35 | 00000, 10001 36 | 00000, 10010 37 | 00000, 10011 38 | 00000, 10100 39 | 00000, 10101 40 | 00000, 10110 41 | 00000, 10111 42 | 00000, 11000 43 | 00000, 11001 44 | 00000, 11010 45 | 00000, 11011 46 | 00000, 11100 47 | 00000, 11101 48 | 00000, 11110 49 | 00000, 11111 50 | distribution: 51 | P(0|0,state) = 0.503218275805 52 | P(1|0,state) = 0.496781724195 53 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 54 | P(State) = ... 55 | 56 | -------------------------------------------------------------------------------- /transCSSR_results/+Yt_delay-channel.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.503\l1|0:0.497\l"]; 13 | } -------------------------------------------------------------------------------- /transCSSR_results/+barnettX.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00, 01 3 | 000, 001 4 | 000, 101 5 | distribution: P(0) = 0.621908663329 P(1) = 0.378091336671 6 | transitions: T((0, 0)) = 1 T((0, 1)) = 3 7 | P(State) = ... 8 | 9 | State number: 1 10 | 00, 10 11 | 000, 010 12 | 000, 110 13 | distribution: P(0) = 0.379522233357 P(1) = 0.620477766643 14 | transitions: T((0, 0)) = 2 T((0, 1)) = 0 15 | P(State) = ... 16 | 17 | State number: 2 18 | 00, 00 19 | 000, 000 20 | 000, 100 21 | distribution: P(0) = 0.618869286287 P(1) = 0.381130713713 22 | transitions: T((0, 0)) = 2 T((0, 1)) = 0 23 | P(State) = ... 24 | 25 | State number: 3 26 | 00, 11 27 | 000, 011 28 | 000, 111 29 | distribution: P(0) = 0.379266978801 P(1) = 0.620733021199 30 | transitions: T((0, 0)) = 1 T((0, 1)) = 3 31 | P(State) = ... 32 | 33 | -------------------------------------------------------------------------------- /transCSSR_results/+barnettX.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "0|0:0.622\l"]; 13 | A -> D [label = "1|0:0.378\l"]; 14 | B -> A [label = "1|0:0.62\l"]; 15 | B -> C [label = "0|0:0.38\l"]; 16 | C -> A [label = "1|0:0.381\l"]; 17 | C -> C [label = "0|0:0.619\l"]; 18 | D -> B [label = "0|0:0.379\l"]; 19 | D -> D [label = "1|0:0.621\l"]; 20 | } -------------------------------------------------------------------------------- /transCSSR_results/+coinflip.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.49894905414873386\l"]; 13 | A -> A [label = "1|0:0.5010509458512662\l"]; 14 | } -------------------------------------------------------------------------------- /transCSSR_results/+coinflip_inf.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | , 3 | 0, 0 4 | 0, 1 5 | distribution: 6 | P(0|0,state) = 0.456 7 | P(1|0,state) = 0.544 8 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 9 | P(State) = ... 10 | 11 | -------------------------------------------------------------------------------- /transCSSR_results/+coinflip_inf.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.456\l"]; 13 | A -> A [label = "1|0:0.544\l"]; 14 | } -------------------------------------------------------------------------------- /transCSSR_results/+complex-csm.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "0|0:0.374\l"]; 13 | A -> T [label = "1|0:0.626\l"]; 14 | B -> C [label = "0|0:0.118\l"]; 15 | B -> O [label = "1|0:0.882\l"]; 16 | C -> E [label = "0|0:0.205\l"]; 17 | C -> Q [label = "1|0:0.795\l"]; 18 | D -> A [label = "1|0:0.0844\l"]; 19 | D -> D [label = "0|0:0.916\l"]; 20 | E -> D [label = "0|0:0.444\l"]; 21 | E -> Q [label = "1|0:0.556\l"]; 22 | F -> J [label = "0|0:0.25\l"]; 23 | F -> O [label = "1|0:0.75\l"]; 24 | G -> F [label = "0|0:0.123\l"]; 25 | G -> AA [label = "1|0:0.877\l"]; 26 | H -> G [label = "0|0:0.407\l"]; 27 | H -> CC [label = "1|0:0.593\l"]; 28 | I -> H [label = "1|0:0.662\l"]; 29 | I -> P [label = "0|0:0.338\l"]; 30 | J -> I [label = "1|0:1.0\l"]; 31 | K -> I [label = "1|0:0.676\l"]; 32 | K -> W [label = "0|0:0.324\l"]; 33 | L -> K [label = "0|0:0.274\l"]; 34 | L -> O [label = "1|0:0.726\l"]; 35 | M -> L [label = "0|0:0.166\l"]; 36 | M -> N [label = "1|0:0.834\l"]; 37 | N -> M [label = "0|0:0.393\l"]; 38 | N -> JJ [label = "1|0:0.607\l"]; 39 | O -> P [label = "0|0:0.347\l"]; 40 | O -> JJ [label = "1|0:0.653\l"]; 41 | P -> C [label = "0|0:0.16\l"]; 42 | P -> N [label = "1|0:0.84\l"]; 43 | Q -> P [label = "0|0:0.461\l"]; 44 | Q -> DD [label = "1|0:0.539\l"]; 45 | R -> O [label = "1|0:1.0\l"]; 46 | S -> R [label = "0|0:0.105\l"]; 47 | S -> AA [label = "1|0:0.895\l"]; 48 | T -> S [label = "0|0:0.413\l"]; 49 | T -> CC [label = "1|0:0.587\l"]; 50 | U -> B [label = "0|0:0.562\l"]; 51 | U -> DD [label = "1|0:0.438\l"]; 52 | V -> D [label = "0|0:0.877\l"]; 53 | V -> U [label = "1|0:0.123\l"]; 54 | W -> A [label = "1|0:0.0286\l"]; 55 | W -> V [label = "0|0:0.971\l"]; 56 | X -> I [label = "1|0:0.517\l"]; 57 | X -> FF [label = "0|0:0.483\l"]; 58 | Y -> O [label = "1|0:0.674\l"]; 59 | Y -> X [label = "0|0:0.326\l"]; 60 | Z -> N [label = "1|0:0.825\l"]; 61 | Z -> Y [label = "0|0:0.175\l"]; 62 | AA -> Z [label = "0|0:0.39\l"]; 63 | AA -> JJ [label = "1|0:0.61\l"]; 64 | BB -> L [label = "0|0:0.152\l"]; 65 | BB -> AA [label = "1|0:0.848\l"]; 66 | CC -> BB [label = "0|0:0.387\l"]; 67 | CC -> CC [label = "1|0:0.613\l"]; 68 | DD -> CC [label = "1|0:0.667\l"]; 69 | DD -> EE [label = "0|0:0.333\l"]; 70 | EE -> AA [label = "1|0:1.0\l"]; 71 | FF -> U [label = "1|0:0.0714\l"]; 72 | FF -> V [label = "0|0:0.929\l"]; 73 | GG -> I [label = "1|0:0.578\l"]; 74 | GG -> V [label = "0|0:0.422\l"]; 75 | HH -> O [label = "1|0:0.715\l"]; 76 | HH -> GG [label = "0|0:0.285\l"]; 77 | II -> AA [label = "1|0:0.854\l"]; 78 | II -> HH [label = "0|0:0.146\l"]; 79 | JJ -> CC [label = "1|0:0.625\l"]; 80 | JJ -> II [label = "0|0:0.375\l"]; 81 | } -------------------------------------------------------------------------------- /transCSSR_results/+even-exact.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.5\l"]; 13 | A -> B [label = "1|0:0.5\l"]; 14 | B -> A [label = "1|0:1.0\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+even-large_perturbation.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.99\l"]; 13 | A -> B [label = "1|0:0.01\l"]; 14 | B -> A [label = "1|0:1.0\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+even-small_perturbation.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.51\l"]; 13 | A -> B [label = "1|0:0.49\l"]; 14 | B -> A [label = "1|0:1.0\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+even.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00, 00 3 | 00, 10 4 | 000, 000 5 | 000, 011 6 | 000, 100 7 | 000, 110 8 | distribution: 9 | P(0|0,state) = 0.503497338203347 10 | P(1|0,state) = 0.49650266179665303 11 | transitions: T((0, 0)) = 0 T((0, 1)) = 1 12 | P(State) = ... 13 | 14 | State number: 1 15 | 00, 01 16 | 000, 001 17 | 000, 101 18 | distribution: 19 | P(0|0,state) = 0.0 20 | P(1|0,state) = 1.0 21 | transitions: T((0, 0)) = NULL T((0, 1)) = 0 22 | P(State) = ... 23 | 24 | -------------------------------------------------------------------------------- /transCSSR_results/+even.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.503497338203347\l"]; 13 | A -> B [label = "1|0:0.49650266179665303\l"]; 14 | B -> A [label = "1|0:1.0\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+even_inf.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00, 00 3 | 00, 10 4 | 000, 000 5 | 000, 011 6 | 000, 100 7 | 000, 110 8 | distribution: 9 | P(0|0,state) = 0.5022488755622189 10 | P(1|0,state) = 0.49775112443778113 11 | transitions: T((0, 0)) = 0 T((0, 1)) = 1 12 | P(State) = ... 13 | 14 | State number: 1 15 | 00, 01 16 | 000, 001 17 | 000, 101 18 | distribution: 19 | P(0|0,state) = 0.0 20 | P(1|0,state) = 1.0 21 | transitions: T((0, 0)) = NULL T((0, 1)) = 0 22 | P(State) = ... 23 | 24 | -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean-exact.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "1|0:1.0\l"]; 13 | B -> A [label = "0|0:0.5\l"]; 14 | B -> B [label = "1|0:0.5\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean-exact_inf.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 0, 0 3 | 00, 10 4 | distribution: 5 | P(0|0,state) = 0.0 6 | P(1|0,state) = 1.0 7 | transitions: T((0, 0)) = NULL T((0, 1)) = 1 8 | P(State) = ... 9 | 10 | State number: 1 11 | 0, 1 12 | 00, 01 13 | 00, 11 14 | distribution: 15 | P(0|0,state) = 0.48660714285714285 16 | P(1|0,state) = 0.5133928571428571 17 | transitions: T((0, 0)) = 0 T((0, 1)) = 1 18 | P(State) = ... 19 | 20 | -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean-exact_inf.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "1|0:1.0\l"]; 13 | B -> A [label = "0|0:0.48660714285714285\l"]; 14 | B -> B [label = "1|0:0.5133928571428571\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean-perturbed.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "1|0:1.0\l"]; 13 | B -> A [label = "0|0:0.6\l"]; 14 | B -> B [label = "1|0:0.4\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean-rev.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 000000000, 010101010 3 | 000000000, 010101110 4 | 000000000, 010110110 5 | 000000000, 010111010 6 | 000000000, 010111110 7 | 000000000, 011010110 8 | 000000000, 011011010 9 | 000000000, 011011110 10 | 000000000, 011101010 11 | 000000000, 011101110 12 | 000000000, 011110110 13 | 000000000, 011111010 14 | 000000000, 011111110 15 | 000000000, 101010110 16 | 000000000, 101011010 17 | 000000000, 101011110 18 | 000000000, 101101010 19 | 000000000, 101101110 20 | 000000000, 101110110 21 | 000000000, 101111010 22 | 000000000, 101111110 23 | 000000000, 110101010 24 | 000000000, 110101110 25 | 000000000, 110110110 26 | 000000000, 110111010 27 | 000000000, 110111110 28 | 000000000, 111010110 29 | 000000000, 111011010 30 | 000000000, 111011110 31 | 000000000, 111101010 32 | 000000000, 111101110 33 | 000000000, 111110110 34 | 000000000, 111111010 35 | 000000000, 111111110 36 | 0000000000, 0101010110 37 | 0000000000, 0101011010 38 | 0000000000, 0101011110 39 | 0000000000, 0101101010 40 | 0000000000, 0101101110 41 | 0000000000, 0101110110 42 | 0000000000, 0101111010 43 | 0000000000, 0101111110 44 | 0000000000, 0110101010 45 | 0000000000, 0110101110 46 | 0000000000, 0110110110 47 | 0000000000, 0110111010 48 | 0000000000, 0110111110 49 | 0000000000, 0111010110 50 | 0000000000, 0111011010 51 | 0000000000, 0111011110 52 | 0000000000, 0111101010 53 | 0000000000, 0111101110 54 | 0000000000, 0111110110 55 | 0000000000, 0111111010 56 | 0000000000, 0111111110 57 | 0000000000, 1010101010 58 | 0000000000, 1010101110 59 | 0000000000, 1010110110 60 | 0000000000, 1010111010 61 | 0000000000, 1010111110 62 | 0000000000, 1011010110 63 | 0000000000, 1011011010 64 | 0000000000, 1011011110 65 | 0000000000, 1011101010 66 | 0000000000, 1011101110 67 | 0000000000, 1011110110 68 | 0000000000, 1011111010 69 | 0000000000, 1011111110 70 | 0000000000, 1101010110 71 | 0000000000, 1101011010 72 | 0000000000, 1101011110 73 | 0000000000, 1101101010 74 | 0000000000, 1101101110 75 | 0000000000, 1101110110 76 | 0000000000, 1101111010 77 | 0000000000, 1101111110 78 | 0000000000, 1110101010 79 | 0000000000, 1110101110 80 | 0000000000, 1110110110 81 | 0000000000, 1110111010 82 | 0000000000, 1110111110 83 | 0000000000, 1111010110 84 | 0000000000, 1111011010 85 | 0000000000, 1111011110 86 | 0000000000, 1111101010 87 | 0000000000, 1111101110 88 | 0000000000, 1111110110 89 | 0000000000, 1111111010 90 | 0000000000, 1111111110 91 | distribution: 92 | P(0|0,state) = 0.0 93 | P(1|0,state) = 1.0 94 | transitions: T((0, 0)) = NULL T((0, 1)) = 1 95 | P(State) = ... 96 | 97 | State number: 1 98 | 000000000, 010101011 99 | 000000000, 010101101 100 | 000000000, 010101111 101 | 000000000, 010110101 102 | 000000000, 010110111 103 | 000000000, 010111011 104 | 000000000, 010111101 105 | 000000000, 010111111 106 | 000000000, 011010101 107 | 000000000, 011010111 108 | 000000000, 011011011 109 | 000000000, 011011101 110 | 000000000, 011011111 111 | 000000000, 011101011 112 | 000000000, 011101101 113 | 000000000, 011101111 114 | 000000000, 011110101 115 | 000000000, 011110111 116 | 000000000, 011111011 117 | 000000000, 011111101 118 | 000000000, 011111111 119 | 000000000, 101010101 120 | 000000000, 101010111 121 | 000000000, 101011011 122 | 000000000, 101011101 123 | 000000000, 101011111 124 | 000000000, 101101011 125 | 000000000, 101101101 126 | 000000000, 101101111 127 | 000000000, 101110101 128 | 000000000, 101110111 129 | 000000000, 101111011 130 | 000000000, 101111101 131 | 000000000, 101111111 132 | 000000000, 110101011 133 | 000000000, 110101101 134 | 000000000, 110101111 135 | 000000000, 110110101 136 | 000000000, 110110111 137 | 000000000, 110111011 138 | 000000000, 110111101 139 | 000000000, 110111111 140 | 000000000, 111010101 141 | 000000000, 111010111 142 | 000000000, 111011011 143 | 000000000, 111011101 144 | 000000000, 111011111 145 | 000000000, 111101011 146 | 000000000, 111101101 147 | 000000000, 111101111 148 | 000000000, 111110101 149 | 000000000, 111110111 150 | 000000000, 111111011 151 | 000000000, 111111101 152 | 000000000, 111111111 153 | 0000000000, 0101010101 154 | 0000000000, 0101010111 155 | 0000000000, 0101011011 156 | 0000000000, 0101011101 157 | 0000000000, 0101011111 158 | 0000000000, 0101101011 159 | 0000000000, 0101101101 160 | 0000000000, 0101101111 161 | 0000000000, 0101110101 162 | 0000000000, 0101110111 163 | 0000000000, 0101111011 164 | 0000000000, 0101111101 165 | 0000000000, 0101111111 166 | 0000000000, 0110101011 167 | 0000000000, 0110101101 168 | 0000000000, 0110101111 169 | 0000000000, 0110110101 170 | 0000000000, 0110110111 171 | 0000000000, 0110111011 172 | 0000000000, 0110111101 173 | 0000000000, 0110111111 174 | 0000000000, 0111010101 175 | 0000000000, 0111010111 176 | 0000000000, 0111011011 177 | 0000000000, 0111011101 178 | 0000000000, 0111011111 179 | 0000000000, 0111101011 180 | 0000000000, 0111101101 181 | 0000000000, 0111101111 182 | 0000000000, 0111110101 183 | 0000000000, 0111110111 184 | 0000000000, 0111111011 185 | 0000000000, 0111111101 186 | 0000000000, 0111111111 187 | 0000000000, 1010101011 188 | 0000000000, 1010101101 189 | 0000000000, 1010101111 190 | 0000000000, 1010110101 191 | 0000000000, 1010110111 192 | 0000000000, 1010111011 193 | 0000000000, 1010111101 194 | 0000000000, 1010111111 195 | 0000000000, 1011010101 196 | 0000000000, 1011010111 197 | 0000000000, 1011011011 198 | 0000000000, 1011011101 199 | 0000000000, 1011011111 200 | 0000000000, 1011101011 201 | 0000000000, 1011101101 202 | 0000000000, 1011101111 203 | 0000000000, 1011110101 204 | 0000000000, 1011110111 205 | 0000000000, 1011111011 206 | 0000000000, 1011111101 207 | 0000000000, 1011111111 208 | 0000000000, 1101010101 209 | 0000000000, 1101010111 210 | 0000000000, 1101011011 211 | 0000000000, 1101011101 212 | 0000000000, 1101011111 213 | 0000000000, 1101101011 214 | 0000000000, 1101101101 215 | 0000000000, 1101101111 216 | 0000000000, 1101110101 217 | 0000000000, 1101110111 218 | 0000000000, 1101111011 219 | 0000000000, 1101111101 220 | 0000000000, 1101111111 221 | 0000000000, 1110101011 222 | 0000000000, 1110101101 223 | 0000000000, 1110101111 224 | 0000000000, 1110110101 225 | 0000000000, 1110110111 226 | 0000000000, 1110111011 227 | 0000000000, 1110111101 228 | 0000000000, 1110111111 229 | 0000000000, 1111010101 230 | 0000000000, 1111010111 231 | 0000000000, 1111011011 232 | 0000000000, 1111011101 233 | 0000000000, 1111011111 234 | 0000000000, 1111101011 235 | 0000000000, 1111101101 236 | 0000000000, 1111101111 237 | 0000000000, 1111110101 238 | 0000000000, 1111110111 239 | 0000000000, 1111111011 240 | 0000000000, 1111111101 241 | 0000000000, 1111111111 242 | distribution: 243 | P(0|0,state) = 0.505441126633 244 | P(1|0,state) = 0.494558873367 245 | transitions: T((0, 0)) = 0 T((0, 1)) = 1 246 | P(State) = ... 247 | 248 | -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean-rev.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "1|0:1.0\l"]; 13 | B -> A [label = "0|0:0.505\l"]; 14 | B -> B [label = "1|0:0.495\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00000000, 01010110 3 | 00000000, 01011010 4 | 00000000, 01011110 5 | 00000000, 01101010 6 | 00000000, 01101110 7 | 00000000, 01110110 8 | 00000000, 01111010 9 | 00000000, 01111110 10 | 00000000, 10101010 11 | 00000000, 10101110 12 | 00000000, 10110110 13 | 00000000, 10111010 14 | 00000000, 10111110 15 | 00000000, 11010110 16 | 00000000, 11011010 17 | 00000000, 11011110 18 | 00000000, 11101010 19 | 00000000, 11101110 20 | 00000000, 11110110 21 | 00000000, 11111010 22 | 00000000, 11111110 23 | 000000000, 010101010 24 | 000000000, 010101110 25 | 000000000, 010110110 26 | 000000000, 010111010 27 | 000000000, 010111110 28 | 000000000, 011010110 29 | 000000000, 011011010 30 | 000000000, 011011110 31 | 000000000, 011101010 32 | 000000000, 011101110 33 | 000000000, 011110110 34 | 000000000, 011111010 35 | 000000000, 011111110 36 | 000000000, 101010110 37 | 000000000, 101011010 38 | 000000000, 101011110 39 | 000000000, 101101010 40 | 000000000, 101101110 41 | 000000000, 101110110 42 | 000000000, 101111010 43 | 000000000, 101111110 44 | 000000000, 110101010 45 | 000000000, 110101110 46 | 000000000, 110110110 47 | 000000000, 110111010 48 | 000000000, 110111110 49 | 000000000, 111010110 50 | 000000000, 111011010 51 | 000000000, 111011110 52 | 000000000, 111101010 53 | 000000000, 111101110 54 | 000000000, 111110110 55 | 000000000, 111111010 56 | 000000000, 111111110 57 | distribution: 58 | P(0|0,state) = 0.0 59 | P(1|0,state) = 1.0 60 | transitions: T((0, 0)) = NULL T((0, 1)) = 1 61 | P(State) = ... 62 | 63 | State number: 1 64 | 00000000, 01010101 65 | 00000000, 01010111 66 | 00000000, 01011011 67 | 00000000, 01011101 68 | 00000000, 01011111 69 | 00000000, 01101011 70 | 00000000, 01101101 71 | 00000000, 01101111 72 | 00000000, 01110101 73 | 00000000, 01110111 74 | 00000000, 01111011 75 | 00000000, 01111101 76 | 00000000, 01111111 77 | 00000000, 10101011 78 | 00000000, 10101101 79 | 00000000, 10101111 80 | 00000000, 10110101 81 | 00000000, 10110111 82 | 00000000, 10111011 83 | 00000000, 10111101 84 | 00000000, 10111111 85 | 00000000, 11010101 86 | 00000000, 11010111 87 | 00000000, 11011011 88 | 00000000, 11011101 89 | 00000000, 11011111 90 | 00000000, 11101011 91 | 00000000, 11101101 92 | 00000000, 11101111 93 | 00000000, 11110101 94 | 00000000, 11110111 95 | 00000000, 11111011 96 | 00000000, 11111101 97 | 00000000, 11111111 98 | 000000000, 010101011 99 | 000000000, 010101101 100 | 000000000, 010101111 101 | 000000000, 010110101 102 | 000000000, 010110111 103 | 000000000, 010111011 104 | 000000000, 010111101 105 | 000000000, 010111111 106 | 000000000, 011010101 107 | 000000000, 011010111 108 | 000000000, 011011011 109 | 000000000, 011011101 110 | 000000000, 011011111 111 | 000000000, 011101011 112 | 000000000, 011101101 113 | 000000000, 011101111 114 | 000000000, 011110101 115 | 000000000, 011110111 116 | 000000000, 011111011 117 | 000000000, 011111101 118 | 000000000, 011111111 119 | 000000000, 101010101 120 | 000000000, 101010111 121 | 000000000, 101011011 122 | 000000000, 101011101 123 | 000000000, 101011111 124 | 000000000, 101101011 125 | 000000000, 101101101 126 | 000000000, 101101111 127 | 000000000, 101110101 128 | 000000000, 101110111 129 | 000000000, 101111011 130 | 000000000, 101111101 131 | 000000000, 101111111 132 | 000000000, 110101011 133 | 000000000, 110101101 134 | 000000000, 110101111 135 | 000000000, 110110101 136 | 000000000, 110110111 137 | 000000000, 110111011 138 | 000000000, 110111101 139 | 000000000, 110111111 140 | 000000000, 111010101 141 | 000000000, 111010111 142 | 000000000, 111011011 143 | 000000000, 111011101 144 | 000000000, 111011111 145 | 000000000, 111101011 146 | 000000000, 111101101 147 | 000000000, 111101111 148 | 000000000, 111110101 149 | 000000000, 111110111 150 | 000000000, 111111011 151 | 000000000, 111111101 152 | 000000000, 111111111 153 | distribution: 154 | P(0|0,state) = 0.5060945217273098 155 | P(1|0,state) = 0.4939054782726902 156 | transitions: T((0, 0)) = 0 T((0, 1)) = 1 157 | P(State) = ... 158 | 159 | -------------------------------------------------------------------------------- /transCSSR_results/+golden-mean.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "1|0:1.0\l"]; 13 | B -> A [label = "0|0:0.506\l"]; 14 | B -> B [label = "1|0:0.494\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/+null.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:1.0\l"]; 13 | } -------------------------------------------------------------------------------- /transCSSR_results/+period4.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00000000, 11001100 3 | 000000000, 011001100 4 | distribution: 5 | P(0|0,state) = 0.0 6 | P(1|0,state) = 1.0 7 | transitions: T((0, 0)) = NULL T((0, 1)) = 2 8 | P(State) = ... 9 | 10 | State number: 1 11 | 00000000, 01100110 12 | 000000000, 001100110 13 | distribution: 14 | P(0|0,state) = 1.0 15 | P(1|0,state) = 0.0 16 | transitions: T((0, 0)) = 0 T((0, 1)) = NULL 17 | P(State) = ... 18 | 19 | State number: 2 20 | 00000000, 10011001 21 | 000000000, 110011001 22 | distribution: 23 | P(0|0,state) = 0.0 24 | P(1|0,state) = 1.0 25 | transitions: T((0, 0)) = NULL T((0, 1)) = 3 26 | P(State) = ... 27 | 28 | State number: 3 29 | 00000000, 00110011 30 | 000000000, 100110011 31 | distribution: 32 | P(0|0,state) = 1.0 33 | P(1|0,state) = 0.0 34 | transitions: T((0, 0)) = 1 T((0, 1)) = NULL 35 | P(State) = ... 36 | 37 | -------------------------------------------------------------------------------- /transCSSR_results/+period4.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> C [label = "1|0:1.0\l"]; 13 | B -> A [label = "0|0:1.0\l"]; 14 | C -> D [label = "1|0:1.0\l"]; 15 | D -> B [label = "0|0:1.0\l"]; 16 | } -------------------------------------------------------------------------------- /transCSSR_results/+renewal-process.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> B [label = "0|0:0.1566\l"]; 13 | A -> A [label = "1|0:0.8434\l"]; 14 | B -> D [label = "0|0:0.5688\l"]; 15 | B -> C [label = "1|0:0.4312\l"]; 16 | C -> B [label = "0|0:0.2934\l"]; 17 | C -> G [label = "1|0:0.7066\l"]; 18 | D -> H [label = "0|0:0.7378\l"]; 19 | D -> C [label = "1|0:0.2622\l"]; 20 | E -> E [label = "0|0:0.8959\l"]; 21 | E -> C [label = "1|0:0.1041\l"]; 22 | F -> B [label = "0|0:0.2219\l"]; 23 | F -> A [label = "1|0:0.7781\l"]; 24 | G -> B [label = "0|0:0.2516\l"]; 25 | G -> F [label = "1|0:0.7484\l"]; 26 | H -> E [label = "0|0:0.8006\l"]; 27 | H -> C [label = "1|0:0.1994\l"]; 28 | } -------------------------------------------------------------------------------- /transCSSR_results/+rip.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 0000, 0011 3 | 00000, 10011 4 | distribution: 5 | P(0|0,state) = 0.0 6 | P(1|0,state) = 1.0 7 | transitions: T((0, 0)) = NULL T((0, 1)) = 4 8 | P(State) = ... 9 | 10 | State number: 1 11 | 0000, 0010 12 | 0000, 0110 13 | 0000, 1110 14 | 00000, 01110 15 | 00000, 10010 16 | 00000, 10110 17 | 00000, 11110 18 | distribution: 19 | P(0|0,state) = 0.199693955624 20 | P(1|0,state) = 0.800306044376 21 | transitions: T((0, 0)) = 6 T((0, 1)) = 3 22 | P(State) = ... 23 | 24 | State number: 2 25 | 0000, 1011 26 | 00000, 01011 27 | 00000, 01111 28 | 00000, 11011 29 | distribution: 30 | P(0|0,state) = 0.291765503219 31 | P(1|0,state) = 0.708234496781 32 | transitions: T((0, 0)) = 1 T((0, 1)) = 3 33 | P(State) = ... 34 | 35 | State number: 3 36 | 0000, 0101 37 | 0000, 1101 38 | 00000, 00101 39 | 00000, 01101 40 | 00000, 10111 41 | 00000, 11101 42 | distribution: 43 | P(0|0,state) = 0.0 44 | P(1|0,state) = 1.0 45 | transitions: T((0, 0)) = 1 T((0, 1)) = 2 46 | P(State) = ... 47 | 48 | State number: 4 49 | 00000, 00111 50 | distribution: 51 | P(0|0,state) = 0.229885057471 52 | P(1|0,state) = 0.770114942529 53 | transitions: T((0, 0)) = 1 T((0, 1)) = 2 54 | P(State) = ... 55 | 56 | State number: 5 57 | 0000, 1001 58 | 00000, 01001 59 | 00000, 11001 60 | distribution: 61 | P(0|0,state) = 0.330769230769 62 | P(1|0,state) = 0.669230769231 63 | transitions: T((0, 0)) = 1 T((0, 1)) = 0 64 | P(State) = ... 65 | 66 | State number: 6 67 | 0000, 0100 68 | 0000, 1100 69 | 00000, 00100 70 | 00000, 01100 71 | 00000, 11100 72 | distribution: 73 | P(0|0,state) = 0.0 74 | P(1|0,state) = 1.0 75 | transitions: T((0, 0)) = NULL T((0, 1)) = 5 76 | P(State) = ... 77 | 78 | -------------------------------------------------------------------------------- /transCSSR_results/Xt_delay-channel+Yt_delay-channel.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00, 00 3 | 00, 10 4 | 10, 01 5 | 10, 11 6 | 000, 000 7 | 000, 100 8 | 010, 001 9 | 010, 101 10 | 100, 010 11 | 100, 110 12 | 110, 011 13 | 110, 111 14 | distribution: 15 | P(0|0,state) = 1.0 16 | P(1|0,state) = 0.0 17 | P(0|1,state) = 1.0 18 | P(1|1,state) = 0.0 19 | transitions: T((0, 0)) = 0 T((0, 1)) = NULL T((1, 0)) = 1 T((1, 1)) = NULL 20 | P(State) = ... 21 | 22 | State number: 1 23 | 01, 00 24 | 01, 10 25 | 11, 01 26 | 11, 11 27 | 001, 000 28 | 001, 100 29 | 011, 001 30 | 011, 101 31 | 101, 010 32 | 101, 110 33 | 111, 011 34 | 111, 111 35 | distribution: 36 | P(0|0,state) = 0.0 37 | P(1|0,state) = 1.0 38 | P(0|1,state) = 0.0 39 | P(1|1,state) = 1.0 40 | transitions: T((0, 0)) = NULL T((0, 1)) = 0 T((1, 0)) = NULL T((1, 1)) = 1 41 | P(State) = ... 42 | 43 | -------------------------------------------------------------------------------- /transCSSR_results/Xt_delay-channel+Yt_delay-channel.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:1.0\l"]; 13 | A -> B [label = "0|1:1.0\l"]; 14 | B -> A [label = "1|0:1.0\l"]; 15 | B -> B [label = "1|1:1.0\l"]; 16 | } -------------------------------------------------------------------------------- /transCSSR_results/Xt_odd-random-channel+Yt_odd-random-channel.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00, 00 3 | 00, 10 4 | 10, 00 5 | 10, 10 6 | 10, 11 7 | 11, 10 8 | 000, 000 9 | 000, 100 10 | 010, 010 11 | 010, 011 12 | 010, 110 13 | 010, 111 14 | 011, 010 15 | 011, 011 16 | 011, 110 17 | 011, 111 18 | 100, 000 19 | 100, 100 20 | 100, 110 21 | 110, 010 22 | 110, 011 23 | 110, 100 24 | 110, 110 25 | 110, 111 26 | 111, 010 27 | 111, 011 28 | 111, 110 29 | distribution: 30 | P(0|0,state) = 0.9749791697299417 31 | P(1|0,state) = 0.025020830270058324 32 | P(0|1,state) = 0.025973182161508037 33 | P(1|1,state) = 0.974026817838492 34 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 T((1, 0)) = 0 T((1, 1)) = 1 35 | P(State) = ... 36 | 37 | State number: 1 38 | 01, 01 39 | 01, 11 40 | 11, 01 41 | 001, 001 42 | 001, 101 43 | 101, 001 44 | 101, 101 45 | 101, 111 46 | 111, 101 47 | distribution: 48 | P(0|0,state) = 0.49955363947133496 49 | P(1|0,state) = 0.5004463605286651 50 | P(0|1,state) = 0.4990400977355033 51 | P(1|1,state) = 0.5009599022644967 52 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 T((1, 0)) = 0 T((1, 1)) = 0 53 | P(State) = ... 54 | 55 | -------------------------------------------------------------------------------- /transCSSR_results/Xt_odd-random-channel+Yt_odd-random-channel.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.975\l0|1:0.026\l1|0:0.025\l"]; 13 | A -> B [label = "1|1:0.974\l"]; 14 | B -> A [label = "0|0:0.5\l0|1:0.499\l1|0:0.5\l1|1:0.501\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/Xt_z-channel+Yt_z-channel.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00, 00 3 | 01, 00 4 | 01, 01 5 | 10, 00 6 | 10, 10 7 | 11, 00 8 | 11, 01 9 | 11, 10 10 | 11, 11 11 | 000, 000 12 | 001, 000 13 | 001, 001 14 | 010, 000 15 | 010, 010 16 | 011, 000 17 | 011, 001 18 | 011, 010 19 | 011, 011 20 | 100, 000 21 | 100, 100 22 | 101, 000 23 | 101, 001 24 | 101, 100 25 | 101, 101 26 | 110, 000 27 | 110, 010 28 | 110, 100 29 | 110, 110 30 | 111, 000 31 | 111, 001 32 | 111, 010 33 | 111, 011 34 | 111, 100 35 | 111, 101 36 | 111, 110 37 | 111, 111 38 | distribution: 39 | P(0|0,state) = 1.0 40 | P(1|0,state) = 0.0 41 | P(0|1,state) = 0.4948474038842648 42 | P(1|1,state) = 0.5051525961157353 43 | transitions: T((0, 0)) = 0 T((0, 1)) = NULL T((1, 0)) = 0 T((1, 1)) = 0 44 | P(State) = ... 45 | 46 | -------------------------------------------------------------------------------- /transCSSR_results/Xt_z-channel+Yt_z-channel.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:1.0\l"]; 13 | A -> A [label = "0|1:0.4948474038842648\l"]; 14 | A -> A [label = "1|1:0.5051525961157353\l"]; 15 | } -------------------------------------------------------------------------------- /transCSSR_results/barnettX+barnettY.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 00, 00 3 | 00, 01 4 | 00, 10 5 | 00, 11 6 | 10, 00 7 | 10, 01 8 | 10, 10 9 | 10, 11 10 | 000, 000 11 | 000, 001 12 | 000, 010 13 | 000, 011 14 | 000, 100 15 | 000, 101 16 | 000, 110 17 | 000, 111 18 | 010, 000 19 | 010, 001 20 | 010, 010 21 | 010, 011 22 | 010, 100 23 | 010, 101 24 | 010, 110 25 | 010, 111 26 | 100, 000 27 | 100, 001 28 | 100, 010 29 | 100, 011 30 | 100, 100 31 | 100, 101 32 | 100, 110 33 | 100, 111 34 | 110, 000 35 | 110, 001 36 | 110, 010 37 | 110, 011 38 | 110, 100 39 | 110, 101 40 | 110, 110 41 | 110, 111 42 | distribution: P(0) = 0.800907192186 P(1) = 0.199092807814 43 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 T((1, 0)) = 1 T((1, 1)) = 1 44 | P(State) = ... 45 | 46 | State number: 1 47 | 01, 00 48 | 01, 01 49 | 01, 10 50 | 01, 11 51 | 11, 00 52 | 11, 01 53 | 11, 10 54 | 11, 11 55 | 001, 000 56 | 001, 001 57 | 001, 010 58 | 001, 011 59 | 001, 100 60 | 001, 101 61 | 001, 110 62 | 001, 111 63 | 011, 000 64 | 011, 001 65 | 011, 010 66 | 011, 011 67 | 011, 100 68 | 011, 101 69 | 011, 110 70 | 011, 111 71 | 101, 000 72 | 101, 001 73 | 101, 010 74 | 101, 011 75 | 101, 100 76 | 101, 101 77 | 101, 110 78 | 101, 111 79 | 111, 000 80 | 111, 001 81 | 111, 010 82 | 111, 011 83 | 111, 100 84 | 111, 101 85 | 111, 110 86 | 111, 111 87 | distribution: P(0) = 0.198725681647 P(1) = 0.801274318353 88 | transitions: T((0, 0)) = 0 T((0, 1)) = 0 T((1, 0)) = 1 T((1, 1)) = 1 89 | P(State) = ... 90 | 91 | -------------------------------------------------------------------------------- /transCSSR_results/barnettX+barnettY.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.801\l1|0:0.199\l"]; 13 | A -> B [label = "0|1:0.801\l1|1:0.199\l"]; 14 | B -> A [label = "0|0:0.199\l1|0:0.801\l"]; 15 | B -> B [label = "0|1:0.199\l1|1:0.801\l"]; 16 | } -------------------------------------------------------------------------------- /transCSSR_results/coinflip+coinflip-excite_w_refrac.dat_results: -------------------------------------------------------------------------------- 1 | State number: 0 2 | 0, 0 3 | distribution: P(0) = 0.89849752641544 P(1) = 0.10150247358455995 4 | transitions: T((0, 0)) = 0 T((0, 1)) = 2 T((1, 0)) = 1 T((1, 1)) = 2 5 | P(State) = ... 6 | 7 | State number: 1 8 | 1, 0 9 | distribution: P(0) = 0.049475527675907224 P(1) = 0.9505244723240928 10 | transitions: T((0, 0)) = 0 T((0, 1)) = 2 T((1, 0)) = 1 T((1, 1)) = 2 11 | P(State) = ... 12 | 13 | State number: 2 14 | 0, 1 15 | 1, 1 16 | distribution: P(0) = 1.0 P(1) = 0.0 17 | transitions: T((0, 0)) = 0 T((0, 1)) = 2 T((1, 0)) = 1 T((1, 1)) = 2 18 | P(State) = ... 19 | 20 | -------------------------------------------------------------------------------- /transCSSR_results/coinflip+coinflip-excite_w_refrac.dot: -------------------------------------------------------------------------------- 1 | digraph { 2 | size = "6,8.5"; 3 | ratio = "fill"; 4 | node 5 | [shape = circle]; 6 | node [fontsize = 24]; 7 | node [penwidth = 5]; 8 | edge [fontsize = 24]; 9 | node [fontname = "CMU Serif Roman"]; 10 | graph [fontname = "CMU Serif Roman"]; 11 | edge [fontname = "CMU Serif Roman"]; 12 | A -> A [label = "0|0:0.898\l"]; 13 | A -> B [label = "0|1:0.898\l"]; 14 | A -> C [label = "1|0:0.102\l1|1:0.102\l"]; 15 | B -> A [label = "0|0:0.0495\l"]; 16 | B -> B [label = "0|1:0.0495\l"]; 17 | B -> C [label = "1|0:0.951\l1|1:0.951\l"]; 18 | C -> A [label = "0|0:1.0\l"]; 19 | C -> B [label = "0|1:1.0\l"]; 20 | C -> C [label = "1|0:0.0\l1|1:0.0\l"]; 21 | } --------------------------------------------------------------------------------