# DARC ### translate data ``` alpha_phase1 = ( ((alphabet < sdo1) << (sdi1 < mdo3)) ^ (((spda ^ seda) < mdo1) << (mdi1 < mdo2)) ) ``` ### receive alphabet ``` alphabet_phase2 = (((( alphabet_phase1 ^ (((ceda ^ cpda ^ mpda) < mdo1) << (mdi1 < mdo2)) ) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) ``` #### Replace Alphabet Phase 1 ``` alphabet_phase2 = (((( ((alphabet < sdo1) << (sdi1 < mdo3)) ^ (((spda ^ seda) < mdo1) << (mdi1 < mdo2)) ^ (((ceda ^ cpda ^ mpda) < mdo1) << (mdi1 < mdo2)) ) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) ``` #### Simplified Expression ``` alphabet_phase2 = (((( ((alphabet < sdo1) << (sdi1 < mdo3)) ^ (((ceda ^ cpda ^ mpda ^ spda ^ seda) < mdo1) << (mdi1 < mdo2)) ) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) ``` recall: - `spda = s_a ^ m_a` - `mpda = m_a ^ c_a` - `cpda = c_a` #### Final Alphabet Phase 2 ``` alphabet_phase2 = (((( ((alphabet < sdo1) << (sdi1 < mdo3)) ^ (((ceda ^ s_a ^ seda) < mdo1) << (mdi1 < mdo2)) ) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) ``` ### transmit alphabet ``` alphabet_phase3 = ( (alphabet_phase2 << ((~cdi1 << mdpi2) < (mdo3 << cdo1 << cdo2))) ^ ((((ceda ^ cpda ^ meda) < mdo1) << ((mdi1 < mdo2) << (mdpi2 < mdo3))) < (cdo1 << cdo2)) ) ``` #### Distribute cdo1 << cdo2 term and replace alphabet_phase2 ``` alphabet_phase3 = ( (( (alphabet_phase2 << ((~cdi1 << mdpi2) < (mdo3 << cdo1 << cdo2))) ^ ((((ceda ^ cpda ^ meda) < mdo1) << ((mdi1 < mdo2) << (mdpi2 < mdo3))) < (cdo1 << cdo2)) ) << ((~cdi1 << mdpi2) < (mdo3 << cdo1_cdo2))) ^ ( ( ((ceda ^ cpda ^ meda) < (mdo1 << cdo1 << cdo2)) << ((mdi1 < (mdo2 << cdo1 << cdo2)) << (mdpi2 < (mdo3 << cdo1 << cdo2))) ) ) ) ```