title: Constraining the solutions for linear equations
body: <p>I'm searching for a way to solve a system of linear equations. Specifically 8 equations with a total of 16 unknown values.</p>
  <p><img src="https://latex.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20i10*w%5B0%5D%20%26%20+%20%26%20i11*w%5B1%5D%20%26%20+%20%26%20i12*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i113*w%5B13%5D%20%26%20+%20%26%20i114*w%5B14%5D%20%26%20+%20%26%20i115*w%5B15%5D%20%26%20%3D%20r1%20%5C%5C%20i20*w%5B0%5D%20%26%20+%20%26%20i21*w%5B1%5D%20%26%20+%20%26%20i22*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i213*w%5B13%5D%20%26%20+%20%26%20i214*w%5B14%5D%20%26%20+%20%26%20i215*w%5B15%5D%20%26%20%3D%20r2%20%5C%5C%20i30*w%5B0%5D%20%26%20+%20%26%20i31*w%5B1%5D%20%26%20+%20%26%20i32*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i313*w%5B13%5D%20%26%20+%20%26%20i314*w%5B14%5D%20%26%20+%20%26%20i315*w%5B15%5D%20%26%20%3D%20r3%20%5C%5C%20i40*w%5B0%5D%20%26%20+%20%26%20i41*w%5B1%5D%20%26%20+%20%26%20i42*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i413*w%5B13%5D%20%26%20+%20%26%20i414*w%5B14%5D%20%26%20+%20%26%20i415*w%5B15%5D%20%26%20%3D%20r4%20%5C%5C%20i50*w%5B0%5D%20%26%20+%20%26%20i51*w%5B1%5D%20%26%20+%20%26%20i52*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i513*w%5B13%5D%20%26%20+%20%26%20i514*w%5B14%5D%20%26%20+%20%26%20i515*w%5B15%5D%20%26%20%3D%20r5%20%5C%5C%20i60*w%5B0%5D%20%26%20+%20%26%20i61*w%5B1%5D%20%26%20+%20%26%20i62*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i613*w%5B13%5D%20%26%20+%20%26%20i614*w%5B14%5D%20%26%20+%20%26%20i615*w%5B15%5D%20%26%20%3D%20r6%20%5C%5C%20i70*w%5B0%5D%20%26%20+%20%26%20i71*w%5B1%5D%20%26%20+%20%26%20i72*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i713*w%5B13%5D%20%26%20+%20%26%20i714*w%5B14%5D%20%26%20+%20%26%20i715*w%5B15%5D%20%26%20%3D%20r7%20%5C%5C%20i80*w%5B0%5D%20%26%20+%20%26%20i81*w%5B1%5D%20%26%20+%20%26%20i82*w%5B2%5D%20%26%20+%20%26%20...%20%26%20+%20%26%20i813*w%5B13%5D%20%26%20+%20%26%20i814*w%5B14%5D%20%26%20+%20%26%20i815*w%5B15%5D%20%26%20%3D%20r8%20%5C%5C%20%5Cend%7Bmatrix%7D%5Cright." alt="Diag1" /></p>
  <p>Each unknown value (w[0...15]) is a 32-bit binary value which corresponds to 4 ascii characters written over 8 bits. For example:</p>
  <p>For <img src="https://latex.codecogs.com/gif.latex?w%5B0%5D%3D%2000110100011001100011011100110000" alt="Diag2" /> :</p>
  <p><img src="https://latex.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20w%5B0%5D%5B0%5D%20%26%20%3D%20%26%2000110100%20%26%20%3D%20%26%2052%20%26%20%3D%20%26%20ascii%20%26%204%20%5C%5C%20w%5B0%5D%5B1%5D%20%26%20%3D%20%26%2001100110%20%26%20%3D%20%26%20102%20%26%20%3D%20%26%20ascii%20%26%20f%20%5C%5C%20w%5B0%5D%5B2%5D%20%26%20%3D%20%26%2000110111%20%26%20%3D%20%26%2055%20%26%20%3D%20%26%20ascii%20%26%207%20%5C%5C%20w%5B0%5D%5B3%5D%20%26%20%3D%20%26%2000110000%20%26%20%3D%20%26%2048%20%26%20%3D%20%26%20ascii%20%26%200%20%5Cend%7Bmatrix%7D%5Cright." alt="Diag3" /></p>
  <p>I've tried writing this system of linear equations as a single matrix equation. Which gives:</p>
  <p><img src="https://latex.codecogs.com/gif.latex?%5Cbegin%7Bbmatrix%7D%20i10%20%26%20i11%20%26%20i12%20%26%20...%20%26%20i113%20%26%20i114%20%26%20i115%20%5C%5C%20i20%20%26%20i21%20%26%20i22%20%26%20...%20%26%20i213%20%26%20i214%20%26%20i215%20%5C%5C%20i30%20%26%20i31%20%26%20i32%20%26%20...%20%26%20i313%20%26%20i314%20%26%20i315%20%5C%5C%20i40%20%26%20i41%20%26%20i42%20%26%20...%20%26%20i413%20%26%20i414%20%26%20i415%20%5C%5C%20i50%20%26%20i51%20%26%20i52%20%26%20...%20%26%20i513%20%26%20i514%20%26%20i515%20%5C%5C%20i60%20%26%20i61%20%26%20i62%20%26%20...%20%26%20i613%20%26%20i614%20%26%20i615%20%5C%5C%20i70%20%26%20i71%20%26%20i72%20%26%20...%20%26%20i713%20%26%20i714%20%26%20i715%20%5C%5C%20i80%20%26%20i81%20%26%20i82%20%26%20...%20%26%20i813%20%26%20i814%20%26%20i815%20%5C%5C%20%5Cend%7Bbmatrix%7D%20*%20%5Cbegin%7Bbmatrix%7D%20w%5B0%5D%20%5C%5C%20w%5B1%5D%20%5C%5C%20w%5B2%5D%20%5C%5C%20w%5B3%5D%20%5C%5C%20...%20%5C%5C%20w%5B12%5D%20%5C%5C%20w%5B13%5D%20%5C%5C%20w%5B14%5D%20%5C%5C%20w%5B15%5D%20%5C%5C%20%5Cend%7Bbmatrix%7D%20%3D%20%5Cbegin%7Bbmatrix%7D%20r1%20%5C%5C%20r2%20%5C%5C%20r3%20%5C%5C%20r4%20%5C%5C%20r5%20%5C%5C%20r6%20%5C%5C%20r7%20%5C%5C%20r8%20%5C%5C%20%5Cend%7Bbmatrix%7D" alt="Diag4" /></p>
  <p>Right now, using the <a href="https://eigen.tuxfamily.org/index.php?title=Main_Page" rel="nofollow noreferrer">Eigen linear algebra library</a>, I get my 16 solutions (w[0...15]) but all of them are either decimal or null values, which is not what I need. All 16 solutions need to be the equivalent of 4 hexadecimal characters under their binary representation. Meaning integers between 48 and 56 (ascii for '0' to '9'), 65 and 90 (ascii for 'A' to 'Z'), or 97 and 122 (ascii for 'a' to 'z').</p>
  <p>Current 16 solutions:</p>
  <p><img src="https://latex.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20w%5B0%5D%20%26%20%3D%20%26%204.3449e+09%20%5C%5C%20w%5B1%5D%20%26%20%3D%20%26%20-3.03514e+09%20%5C%5C%20w%5B2%5D%20%26%20%3D%20%26%20-1.5206e+09%20%5C%5C%20w%5B3%5D%20%26%20%3D%20%26%20-3.73703e+09%20%5C%5C%20w%5B4%5D%20%26%20%3D%20%26%203.42735e+09%20%5C%5C%20w%5B5%5D%20%26%20%3D%20%26%20-5.23617e+09%20%5C%5C%20w%5B6%5D%20%26%20%3D%20%26%204.61028e+09%20%5C%5C%20w%5B7%5D%20%26%20%3D%20%26%20-7.15739e+09%20%5C%5C%20w%5B8%5D%20%26%20%3D%20%26%200%20%5C%5C%20w%5B9%5D%20%26%20%3D%20%26%200%20%5C%5C%20w%5B10%5D%20%26%20%3D%20%26%200%20%5C%5C%20w%5B11%5D%20%26%20%3D%20%26%200%20%5C%5C%20w%5B12%5D%20%26%20%3D%20%26%200%20%5C%5C%20w%5B13%5D%20%26%20%3D%20%26%200%20%5C%5C%20w%5B14%5D%20%26%20%3D%20%26%200%20%5C%5C%20w%5B15%5D%20%26%20%3D%20%26%200%20%5C%5C%20%5Cend%7Bmatrix%7D%5Cright." alt="Diag5" /></p>
  <p>I've found a solution to this problem using something called <strong>box-constraints</strong>. An example is shown <a href="https://stackoverflow.com/a/45694060/13480077">here</a> using python's <strong>lsq_linear</strong> function which allows the user to specify bounds. It seems Eigen does not let the user specify bounds in its <a href="https://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html" rel="nofollow noreferrer">decomposition methods</a>.</p>
  <p>Therefore, my question is, how do you get a similar result in C++ using a linear algebra library? Or is there a better way to solve such systems of equations without writing it under a single matrix equation?</p>
  <p>Thanks in advance.</p>