$if(pixel_{offset} * \frac{dpi_{img}}{dpi_{ph}} = integer)$
Possible in FPGA if $integer = multiple_of(2)$
Other Restrictions are (not considerated in the calculation)
In [1]:
import math
def calc_possible_dpi(interline_gaps, dpi_ph, fire_decimation, ph_type, verbose):
possible_dpi = [] # dpi
for dpi_img in range(1,3000): # dpi
dpi_possible = True
for interlinegap in interlinegaps:
mult_int = int(interlinegap*(dpi_img/dpi_ph))
mult_double = interlinegap*(dpi_img/dpi_ph)
if (mult_double - mult_int) > 0:
dpi_possible = False
if dpi_possible:
possible_dpi.append(dpi_img)
mod_2 = []
divide_possible = []
decimation_value = []
decimation_possible = []
for dpi_img in possible_dpi:
# check if value is mod 2
if math.fmod((dpi_img/dpi_ph),(9.765625e-4)) == 0:
mod_2.append(True)
else:
mod_2.append(False)
# check if interlinegaps can be divided by the value
divide_possible_temp = True
for interlinegap in interlinegaps:
if not math.fmod(interlinegap*(dpi_img/dpi_ph),1) == 0:
divide_possible_temp = False
divide_possible.append(divide_possible_temp)
# Calc Decimation value
decimation_value.append((float(fire_decimation) * float(dpi_ph)/float(dpi_img)) - 1)
decimation_possible_temp = False
if decimation_value[-1] == int(decimation_value[-1]):
decimation_possible_temp = True
decimation_possible.append(decimation_possible_temp)
# Calc number of possible Resolutions
nbr_of_resolutions = 0
for i in range(len(possible_dpi)):
if mod_2[i] and decimation_possible[i] and divide_possible[i]:
nbr_of_resolutions = nbr_of_resolutions + 1
# Print results
print("{} Possible Resolutions of {} with {} Subpixels".format(nbr_of_resolutions, ph_type, fire_decimation))
if verbose:
print(" | | For Jetmapping | For Interpolator ")
print("dpi_img | dpi_img/dpi_ph | Possible Division | Possible Calculation | Decimation Register Value | Possible")
print(" | | for FPGA | for PH | | ")
print("---------+----------------+-------------------+----------------------+---------------------------+---------")
for i in range(len(possible_dpi)):
dpi_img = possible_dpi[i]
if mod_2[i] and divide_possible[i] and decimation_possible[i]:
print("--> {:4} | {:14} | {} | {} | {:7.4} | {} <--".format(dpi_img,dpi_img/dpi_ph,mod_2[i], divide_possible[i], decimation_value[i], decimation_possible[i]))
elif mod_2[i]:
print(" {:4} | {:14} | {} | {} | {:7.4} | {}".format(dpi_img,dpi_img/dpi_ph,mod_2[i], divide_possible[i], decimation_value[i], decimation_possible[i]))
else:
print(" {:4} | {:14} | {} | {} | {:7.4} | {}".format(dpi_img,dpi_img/dpi_ph,mod_2[i], divide_possible[i], decimation_value[i], decimation_possible[i]))
In [2]:
interlinegaps = [12,28,40] # px
fire_decimation = 36 # nbr of subpixels
dpi_ph = 360.0 # dpi
calc_possible_dpi(interlinegaps, dpi_ph, fire_decimation, "Konica Minolta KM1024i", verbose=True)
#for fire_decimation in range(50):
# calc_possible_dpi(interlinegaps, dpi_ph, fire_decimation, "Konica Minolta KM1024i", verbose=False)
11 Possible Resolutions of Konica Minolta KM1024i with 36 Subpixels
| | For Jetmapping | For Interpolator
dpi_img | dpi_img/dpi_ph | Possible Division | Possible Calculation | Decimation Register Value | Possible
| | for FPGA | for PH | |
---------+----------------+-------------------+----------------------+---------------------------+---------
--> 90 | 0.25 | True | True | 143.0 | True <--
--> 180 | 0.5 | True | True | 71.0 | True <--
--> 270 | 0.75 | True | True | 47.0 | True <--
--> 360 | 1.0 | True | True | 35.0 | True <--
450 | 1.25 | True | True | 27.8 | False
--> 540 | 1.5 | True | True | 23.0 | True <--
630 | 1.75 | True | True | 19.57 | False
--> 720 | 2.0 | True | True | 17.0 | True <--
--> 810 | 2.25 | True | True | 15.0 | True <--
900 | 2.5 | True | True | 13.4 | False
990 | 2.75 | True | True | 12.09 | False
--> 1080 | 3.0 | True | True | 11.0 | True <--
1170 | 3.25 | True | True | 10.08 | False
1260 | 3.5 | True | True | 9.286 | False
1350 | 3.75 | True | True | 8.6 | False
--> 1440 | 4.0 | True | True | 8.0 | True <--
1530 | 4.25 | True | True | 7.471 | False
--> 1620 | 4.5 | True | True | 7.0 | True <--
1710 | 4.75 | True | True | 6.579 | False
1800 | 5.0 | True | True | 6.2 | False
1890 | 5.25 | True | True | 5.857 | False
1980 | 5.5 | True | True | 5.545 | False
2070 | 5.75 | True | True | 5.261 | False
--> 2160 | 6.0 | True | True | 5.0 | True <--
2250 | 6.25 | True | True | 4.76 | False
2340 | 6.5 | True | True | 4.538 | False
2430 | 6.75 | True | True | 4.333 | False
2520 | 7.0 | True | True | 4.143 | False
2610 | 7.25 | True | True | 3.966 | False
2700 | 7.5 | True | True | 3.8 | False
2790 | 7.75 | True | True | 3.645 | False
2880 | 8.0 | True | True | 3.5 | False
2970 | 8.25 | True | True | 3.364 | False
In [3]:
interlinegaps = [20] # px
fire_decimation = 32 # nbr of subpixels
dpi_ph = 360.0 # dpi
calc_possible_dpi(interlinegaps, dpi_ph, fire_decimation, "Konica Minolta KM1024", verbose=True)
6 Possible Resolutions of Konica Minolta KM1024 with 32 Subpixels
| | For Jetmapping | For Interpolator
dpi_img | dpi_img/dpi_ph | Possible Division | Possible Calculation | Decimation Register Value | Possible
| | for FPGA | for PH | |
---------+----------------+-------------------+----------------------+---------------------------+---------
18 | 0.05 | False | True | 639.0 | True
36 | 0.1 | False | True | 319.0 | True
54 | 0.15 | False | True | 212.3 | False
72 | 0.2 | False | True | 159.0 | True
--> 90 | 0.25 | True | True | 127.0 | True <--
108 | 0.3 | False | True | 105.7 | False
126 | 0.35 | False | True | 90.43 | False
144 | 0.4 | False | True | 79.0 | True
162 | 0.45 | False | True | 70.11 | False
--> 180 | 0.5 | True | True | 63.0 | True <--
198 | 0.55 | False | True | 57.18 | False
216 | 0.6 | False | True | 52.33 | False
234 | 0.65 | False | True | 48.23 | False
252 | 0.7 | False | True | 44.71 | False
270 | 0.75 | True | True | 41.67 | False
288 | 0.8 | False | True | 39.0 | True
306 | 0.85 | False | True | 36.65 | False
324 | 0.9 | False | True | 34.56 | False
342 | 0.95 | False | True | 32.68 | False
--> 360 | 1.0 | True | True | 31.0 | True <--
378 | 1.05 | False | True | 29.48 | False
396 | 1.1 | False | True | 28.09 | False
414 | 1.15 | False | True | 26.83 | False
432 | 1.2 | False | True | 25.67 | False
450 | 1.25 | True | True | 24.6 | False
468 | 1.3 | False | True | 23.62 | False
486 | 1.35 | False | True | 22.7 | False
504 | 1.4 | False | True | 21.86 | False
522 | 1.45 | False | True | 21.07 | False
540 | 1.5 | True | True | 20.33 | False
558 | 1.55 | False | True | 19.65 | False
576 | 1.6 | False | True | 19.0 | True
594 | 1.65 | False | True | 18.39 | False
612 | 1.7 | False | True | 17.82 | False
630 | 1.75 | True | True | 17.29 | False
648 | 1.8 | False | True | 16.78 | False
666 | 1.85 | False | True | 16.3 | False
684 | 1.9 | False | True | 15.84 | False
702 | 1.95 | False | True | 15.41 | False
--> 720 | 2.0 | True | True | 15.0 | True <--
738 | 2.05 | False | True | 14.61 | False
756 | 2.1 | False | True | 14.24 | False
774 | 2.15 | False | True | 13.88 | False
792 | 2.2 | False | True | 13.55 | False
810 | 2.25 | True | True | 13.22 | False
828 | 2.3 | False | True | 12.91 | False
846 | 2.35 | False | True | 12.62 | False
864 | 2.4 | False | True | 12.33 | False
882 | 2.45 | False | True | 12.06 | False
900 | 2.5 | True | True | 11.8 | False
918 | 2.55 | False | True | 11.55 | False
936 | 2.6 | False | True | 11.31 | False
954 | 2.65 | False | True | 11.08 | False
972 | 2.7 | False | True | 10.85 | False
990 | 2.75 | True | True | 10.64 | False
1008 | 2.8 | False | True | 10.43 | False
1026 | 2.85 | False | True | 10.23 | False
1044 | 2.9 | False | True | 10.03 | False
1062 | 2.95 | False | True | 9.847 | False
1080 | 3.0 | True | True | 9.667 | False
1098 | 3.05 | False | True | 9.492 | False
1116 | 3.1 | False | True | 9.323 | False
1134 | 3.15 | False | True | 9.159 | False
1152 | 3.2 | False | True | 9.0 | True
1170 | 3.25 | True | True | 8.846 | False
1188 | 3.3 | False | True | 8.697 | False
1206 | 3.35 | False | True | 8.552 | False
1224 | 3.4 | False | True | 8.412 | False
1242 | 3.45 | False | True | 8.275 | False
1260 | 3.5 | True | True | 8.143 | False
1278 | 3.55 | False | True | 8.014 | False
1296 | 3.6 | False | True | 7.889 | False
1314 | 3.65 | False | True | 7.767 | False
1332 | 3.7 | False | True | 7.649 | False
1350 | 3.75 | True | True | 7.533 | False
1368 | 3.8 | False | True | 7.421 | False
1386 | 3.85 | False | True | 7.312 | False
1404 | 3.9 | False | True | 7.205 | False
1422 | 3.95 | False | True | 7.101 | False
--> 1440 | 4.0 | True | True | 7.0 | True <--
1458 | 4.05 | False | True | 6.901 | False
1476 | 4.1 | False | True | 6.805 | False
1494 | 4.15 | False | True | 6.711 | False
1512 | 4.2 | False | True | 6.619 | False
1530 | 4.25 | True | True | 6.529 | False
1548 | 4.3 | False | True | 6.442 | False
1566 | 4.35 | False | True | 6.356 | False
1584 | 4.4 | False | True | 6.273 | False
1602 | 4.45 | False | True | 6.191 | False
1620 | 4.5 | True | True | 6.111 | False
1638 | 4.55 | False | True | 6.033 | False
1656 | 4.6 | False | True | 5.957 | False
1674 | 4.65 | False | True | 5.882 | False
1692 | 4.7 | False | True | 5.809 | False
1710 | 4.75 | True | True | 5.737 | False
1728 | 4.8 | False | True | 5.667 | False
1746 | 4.85 | False | True | 5.598 | False
1764 | 4.9 | False | True | 5.531 | False
1782 | 4.95 | False | True | 5.465 | False
1800 | 5.0 | True | True | 5.4 | False
1818 | 5.05 | False | True | 5.337 | False
1836 | 5.1 | False | True | 5.275 | False
1854 | 5.15 | False | True | 5.214 | False
1872 | 5.2 | False | True | 5.154 | False
1890 | 5.25 | True | True | 5.095 | False
1908 | 5.3 | False | True | 5.038 | False
1926 | 5.35 | False | True | 4.981 | False
1944 | 5.4 | False | True | 4.926 | False
1962 | 5.45 | False | True | 4.872 | False
1980 | 5.5 | True | True | 4.818 | False
1998 | 5.55 | False | True | 4.766 | False
2016 | 5.6 | False | True | 4.714 | False
2034 | 5.65 | False | True | 4.664 | False
2052 | 5.7 | False | True | 4.614 | False
2070 | 5.75 | True | True | 4.565 | False
2088 | 5.8 | False | True | 4.517 | False
2106 | 5.85 | False | True | 4.47 | False
2124 | 5.9 | False | True | 4.424 | False
2142 | 5.95 | False | True | 4.378 | False
2160 | 6.0 | True | True | 4.333 | False
2178 | 6.05 | False | True | 4.289 | False
2196 | 6.1 | False | True | 4.246 | False
2214 | 6.15 | False | True | 4.203 | False
2232 | 6.2 | False | True | 4.161 | False
2250 | 6.25 | True | True | 4.12 | False
2268 | 6.3 | False | True | 4.079 | False
2286 | 6.35 | False | True | 4.039 | False
2304 | 6.4 | False | True | 4.0 | True
2322 | 6.45 | False | True | 3.961 | False
2340 | 6.5 | True | True | 3.923 | False
2358 | 6.55 | False | True | 3.885 | False
2376 | 6.6 | False | True | 3.848 | False
2394 | 6.65 | False | True | 3.812 | False
2412 | 6.7 | False | True | 3.776 | False
2430 | 6.75 | True | True | 3.741 | False
2448 | 6.8 | False | True | 3.706 | False
2466 | 6.85 | False | True | 3.672 | False
2484 | 6.9 | False | True | 3.638 | False
2502 | 6.95 | False | True | 3.604 | False
2520 | 7.0 | True | True | 3.571 | False
2538 | 7.05 | False | True | 3.539 | False
2556 | 7.1 | False | True | 3.507 | False
2574 | 7.15 | False | True | 3.476 | False
2592 | 7.2 | False | True | 3.444 | False
2610 | 7.25 | True | True | 3.414 | False
2628 | 7.3 | False | True | 3.384 | False
2646 | 7.35 | False | True | 3.354 | False
2664 | 7.4 | False | True | 3.324 | False
2682 | 7.45 | False | True | 3.295 | False
2700 | 7.5 | True | True | 3.267 | False
2718 | 7.55 | False | True | 3.238 | False
2736 | 7.6 | False | True | 3.211 | False
2754 | 7.65 | False | True | 3.183 | False
2772 | 7.7 | False | True | 3.156 | False
2790 | 7.75 | True | True | 3.129 | False
2808 | 7.8 | False | True | 3.103 | False
2826 | 7.85 | False | True | 3.076 | False
2844 | 7.9 | False | True | 3.051 | False
2862 | 7.95 | False | True | 3.025 | False
--> 2880 | 8.0 | True | True | 3.0 | True <--
2898 | 8.05 | False | True | 2.975 | False
2916 | 8.1 | False | True | 2.951 | False
2934 | 8.15 | False | True | 2.926 | False
2952 | 8.2 | False | True | 2.902 | False
2970 | 8.25 | True | True | 2.879 | False
2988 | 8.3 | False | True | 2.855 | False
In [4]:
interlinegaps = [13,279,292] # px
fire_decimation = 32 # nbr of subpixels
dpi_ph = 600.0 # dpi
calc_possible_dpi(interlinegaps, dpi_ph, fire_decimation, "Ricoh GEN5", verbose=True)
3 Possible Resolutions of Ricoh GEN5 with 32 Subpixels
| | For Jetmapping | For Interpolator
dpi_img | dpi_img/dpi_ph | Possible Division | Possible Calculation | Decimation Register Value | Possible
| | for FPGA | for PH | |
---------+----------------+-------------------+----------------------+---------------------------+---------
--> 600 | 1.0 | True | True | 31.0 | True <--
--> 1200 | 2.0 | True | True | 15.0 | True <--
1800 | 3.0 | True | True | 9.667 | False
--> 2400 | 4.0 | True | True | 7.0 | True <--
In [5]:
interlinegaps = [0,18,60,72,78,90,106,124,130,142,148,160,164,176,182,194,202,214,220,232,236,248,254,266,272,290,306,318,324,336,378,396] # px
fire_decimation = 32 # nbr of subpixels
dpi_ph = 600.0 # dpi
calc_possible_dpi(interlinegaps, dpi_ph, fire_decimation, "Kyocera KJ4B 30kHz", verbose=True)
4 Possible Resolutions of Kyocera KJ4B 30kHz with 32 Subpixels
| | For Jetmapping | For Interpolator
dpi_img | dpi_img/dpi_ph | Possible Division | Possible Calculation | Decimation Register Value | Possible
| | for FPGA | for PH | |
---------+----------------+-------------------+----------------------+---------------------------+---------
--> 300 | 0.5 | True | True | 63.0 | True <--
--> 600 | 1.0 | True | True | 31.0 | True <--
900 | 1.5 | True | True | 20.33 | False
--> 1200 | 2.0 | True | True | 15.0 | True <--
1500 | 2.5 | True | True | 11.8 | False
1800 | 3.0 | True | True | 9.667 | False
2100 | 3.5 | True | True | 8.143 | False
--> 2400 | 4.0 | True | True | 7.0 | True <--
2700 | 4.5 | True | True | 6.111 | False
In [6]:
interlinegaps = [0,20,70,80,90,100,150,160,170,180,220,230,240,250,260,300,310,320,330,380,390,400,410,460,480] # px
fire_decimation = 32 # nbr of subpixels
dpi_ph = 600.0 # dpi
calc_possible_dpi(interlinegaps, dpi_ph, fire_decimation, "Kyocera KJ4B 40kHz", verbose=True)
4 Possible Resolutions of Kyocera KJ4B 40kHz with 32 Subpixels
| | For Jetmapping | For Interpolator
dpi_img | dpi_img/dpi_ph | Possible Division | Possible Calculation | Decimation Register Value | Possible
| | for FPGA | for PH | |
---------+----------------+-------------------+----------------------+---------------------------+---------
60 | 0.1 | False | True | 319.0 | True
120 | 0.2 | False | True | 159.0 | True
180 | 0.3 | False | True | 105.7 | False
240 | 0.4 | False | True | 79.0 | True
--> 300 | 0.5 | True | True | 63.0 | True <--
360 | 0.6 | False | True | 52.33 | False
480 | 0.8 | False | True | 39.0 | True
540 | 0.9 | False | True | 34.56 | False
--> 600 | 1.0 | True | True | 31.0 | True <--
720 | 1.2 | False | True | 25.67 | False
780 | 1.3 | False | True | 23.62 | False
900 | 1.5 | True | True | 20.33 | False
960 | 1.6 | False | True | 19.0 | True
1020 | 1.7 | False | True | 17.82 | False
1080 | 1.8 | False | True | 16.78 | False
1140 | 1.9 | False | True | 15.84 | False
--> 1200 | 2.0 | True | True | 15.0 | True <--
1260 | 2.1 | False | True | 14.24 | False
1440 | 2.4 | False | True | 12.33 | False
1500 | 2.5 | True | True | 11.8 | False
1560 | 2.6 | False | True | 11.31 | False
1740 | 2.9 | False | True | 10.03 | False
1800 | 3.0 | True | True | 9.667 | False
1860 | 3.1 | False | True | 9.323 | False
1920 | 3.2 | False | True | 9.0 | True
1980 | 3.3 | False | True | 8.697 | False
2040 | 3.4 | False | True | 8.412 | False
2100 | 3.5 | True | True | 8.143 | False
2160 | 3.6 | False | True | 7.889 | False
2220 | 3.7 | False | True | 7.649 | False
2280 | 3.8 | False | True | 7.421 | False
2340 | 3.9 | False | True | 7.205 | False
--> 2400 | 4.0 | True | True | 7.0 | True <--
2520 | 4.2 | False | True | 6.619 | False
2580 | 4.3 | False | True | 6.442 | False
2700 | 4.5 | True | True | 6.111 | False
2820 | 4.7 | False | True | 5.809 | False
2880 | 4.8 | False | True | 5.667 | False
In [7]:
interlinegaps = [0,80,90,170,180,260,270,350,360,440,450,530,540,620,630,710,810,890,900,980,990,1070,1080,1160,1170,1250,1260,1340,1350,1430,1440,1520] # px
fire_decimation = 36 # nbr of subpixels
dpi_ph = 1200.0 # dpi
calc_possible_dpi(interlinegaps, dpi_ph, fire_decimation, "Kyocera KJ412S", verbose=True)
4 Possible Resolutions of Kyocera KJ412S with 36 Subpixels
| | For Jetmapping | For Interpolator
dpi_img | dpi_img/dpi_ph | Possible Division | Possible Calculation | Decimation Register Value | Possible
| | for FPGA | for PH | |
---------+----------------+-------------------+----------------------+---------------------------+---------
120 | 0.1 | False | True | 359.0 | True
240 | 0.2 | False | True | 179.0 | True
360 | 0.3 | False | True | 119.0 | True
480 | 0.4 | False | True | 89.0 | True
--> 600 | 0.5 | True | True | 71.0 | True <--
720 | 0.6 | False | True | 59.0 | True
960 | 0.8 | False | True | 44.0 | True
1080 | 0.9 | False | True | 39.0 | True
--> 1200 | 1.0 | True | True | 35.0 | True <--
1440 | 1.2 | False | True | 29.0 | True
1560 | 1.3 | False | True | 26.69 | False
--> 1800 | 1.5 | True | True | 23.0 | True <--
1920 | 1.6 | False | True | 21.5 | False
2040 | 1.7 | False | True | 20.18 | False
2160 | 1.8 | False | True | 19.0 | True
2280 | 1.9 | False | True | 17.95 | False
--> 2400 | 2.0 | True | True | 17.0 | True <--
2520 | 2.1 | False | True | 16.14 | False
2880 | 2.4 | False | True | 14.0 | True
image_to_printhead_resolution content
[31:4] = integer part
[3] = 1/2 part
[2] = 1/4 part
[1] = 1/8 part
[0] = 1/16 part
In [8]:
import math
def calc_floatparts(val):
# get integer part
int_val = int(val)
# get 1/16 val
temp_val = val-int_val
if( (temp_val%0.125) == 0.0625 ):
sixteenth_val = 1
temp_val = temp_val - (temp_val%0.125)
else:
sixteenth_val = 0
# get 1/8 val
if( (temp_val%0.25) == 0.125 ):
eigth_val = 1
temp_val = temp_val - (temp_val%0.25)
else:
eigth_val = 0
# get 1/4 val
if( (temp_val%0.5) == 0.25 ):
quater_val = 1
temp_val = temp_val - (temp_val%0.5)
else:
quater_val = 0
# get 1/2 val
if( (temp_val%1) == 0.5 ):
half_val = 1
temp_val = temp_val - (temp_val%1)
else:
half_val = 0
# Check if we got all
if temp_val == 0:
print("Calulation correct")
else:
print("Calulation wrong")
# Concat for getting hex value
hex_val = int_val*16 + half_val*8+ quater_val*4 + eigth_val*2 + sixteenth_val
print("value = {}".format(val))
print("hex value = 0x{:08X}".format(hex_val))
print("integerpart = {}".format(int_val))
print("1/2 part = {}".format(half_val))
print("1/4 part = {}".format(quater_val))
print("1/8 part = {}".format(eigth_val))
print("1/16 part = {}".format(sixteenth_val))
print("")
calc_floatparts(1.0)
calc_floatparts(3.0 + 0.5 + 0.25 + 0.125 + 0.0625 + 0.03125)
calc_floatparts(8.0 + 0.5 + 0.25 + 0.125 + 0.0625)
calc_floatparts(63.0 + 0.5 + 0.25 + 0.125 + 0.0625) # max value
Calulation correct
value = 1.0
hex value = 0x00000010
integerpart = 1
1/2 part = 0
1/4 part = 0
1/8 part = 0
1/16 part = 0
Calulation wrong
value = 3.96875
hex value = 0x00000030
integerpart = 3
1/2 part = 0
1/4 part = 0
1/8 part = 0
1/16 part = 0
Calulation correct
value = 8.9375
hex value = 0x0000008F
integerpart = 8
1/2 part = 1
1/4 part = 1
1/8 part = 1
1/16 part = 1
Calulation correct
value = 63.9375
hex value = 0x000003FF
integerpart = 63
1/2 part = 1
1/4 part = 1
1/8 part = 1
1/16 part = 1
In [9]:
# vhdl function ported to python
def unsigned_num_bits(num):
_nbits = 1
_n = num
while(_n > 1):
_nbits = _nbits + 1
_n = _n / 2
return _nbits
def calcPosXVal(maxVal_x, maxMult, xpos_BitNb):
for i in range(int(round(maxMult))):
val = maxVal_x * i
print("MaxVal: {:4} Multiplication: {:2} Result: {:5} NumberofBits(needed/available): ({:2}/{:2})".format(maxVal_x, i, val, unsigned_num_bits(val), xpos_BitNb))
In [10]:
calcPosXVal(12, 63.9375, 8)
MaxVal: 12 Multiplication: 0 Result: 0 NumberofBits(needed/available): ( 1/ 8)
MaxVal: 12 Multiplication: 1 Result: 12 NumberofBits(needed/available): ( 5/ 8)
MaxVal: 12 Multiplication: 2 Result: 24 NumberofBits(needed/available): ( 6/ 8)
MaxVal: 12 Multiplication: 3 Result: 36 NumberofBits(needed/available): ( 7/ 8)
MaxVal: 12 Multiplication: 4 Result: 48 NumberofBits(needed/available): ( 7/ 8)
MaxVal: 12 Multiplication: 5 Result: 60 NumberofBits(needed/available): ( 7/ 8)
MaxVal: 12 Multiplication: 6 Result: 72 NumberofBits(needed/available): ( 8/ 8)
MaxVal: 12 Multiplication: 7 Result: 84 NumberofBits(needed/available): ( 8/ 8)
MaxVal: 12 Multiplication: 8 Result: 96 NumberofBits(needed/available): ( 8/ 8)
MaxVal: 12 Multiplication: 9 Result: 108 NumberofBits(needed/available): ( 8/ 8)
MaxVal: 12 Multiplication: 10 Result: 120 NumberofBits(needed/available): ( 8/ 8)
MaxVal: 12 Multiplication: 11 Result: 132 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 12 Result: 144 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 13 Result: 156 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 14 Result: 168 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 15 Result: 180 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 16 Result: 192 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 17 Result: 204 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 18 Result: 216 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 19 Result: 228 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 20 Result: 240 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 21 Result: 252 NumberofBits(needed/available): ( 9/ 8)
MaxVal: 12 Multiplication: 22 Result: 264 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 23 Result: 276 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 24 Result: 288 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 25 Result: 300 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 26 Result: 312 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 27 Result: 324 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 28 Result: 336 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 29 Result: 348 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 30 Result: 360 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 31 Result: 372 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 32 Result: 384 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 33 Result: 396 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 34 Result: 408 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 35 Result: 420 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 36 Result: 432 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 37 Result: 444 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 38 Result: 456 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 39 Result: 468 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 40 Result: 480 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 41 Result: 492 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 42 Result: 504 NumberofBits(needed/available): (10/ 8)
MaxVal: 12 Multiplication: 43 Result: 516 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 44 Result: 528 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 45 Result: 540 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 46 Result: 552 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 47 Result: 564 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 48 Result: 576 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 49 Result: 588 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 50 Result: 600 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 51 Result: 612 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 52 Result: 624 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 53 Result: 636 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 54 Result: 648 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 55 Result: 660 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 56 Result: 672 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 57 Result: 684 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 58 Result: 696 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 59 Result: 708 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 60 Result: 720 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 61 Result: 732 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 62 Result: 744 NumberofBits(needed/available): (11/ 8)
MaxVal: 12 Multiplication: 63 Result: 756 NumberofBits(needed/available): (11/ 8)
In [11]:
calcPosXVal(480, 63.9375, 12)
MaxVal: 480 Multiplication: 0 Result: 0 NumberofBits(needed/available): ( 1/12)
MaxVal: 480 Multiplication: 1 Result: 480 NumberofBits(needed/available): (10/12)
MaxVal: 480 Multiplication: 2 Result: 960 NumberofBits(needed/available): (11/12)
MaxVal: 480 Multiplication: 3 Result: 1440 NumberofBits(needed/available): (12/12)
MaxVal: 480 Multiplication: 4 Result: 1920 NumberofBits(needed/available): (12/12)
MaxVal: 480 Multiplication: 5 Result: 2400 NumberofBits(needed/available): (13/12)
MaxVal: 480 Multiplication: 6 Result: 2880 NumberofBits(needed/available): (13/12)
MaxVal: 480 Multiplication: 7 Result: 3360 NumberofBits(needed/available): (13/12)
MaxVal: 480 Multiplication: 8 Result: 3840 NumberofBits(needed/available): (13/12)
MaxVal: 480 Multiplication: 9 Result: 4320 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 10 Result: 4800 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 11 Result: 5280 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 12 Result: 5760 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 13 Result: 6240 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 14 Result: 6720 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 15 Result: 7200 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 16 Result: 7680 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 17 Result: 8160 NumberofBits(needed/available): (14/12)
MaxVal: 480 Multiplication: 18 Result: 8640 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 19 Result: 9120 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 20 Result: 9600 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 21 Result: 10080 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 22 Result: 10560 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 23 Result: 11040 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 24 Result: 11520 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 25 Result: 12000 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 26 Result: 12480 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 27 Result: 12960 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 28 Result: 13440 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 29 Result: 13920 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 30 Result: 14400 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 31 Result: 14880 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 32 Result: 15360 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 33 Result: 15840 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 34 Result: 16320 NumberofBits(needed/available): (15/12)
MaxVal: 480 Multiplication: 35 Result: 16800 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 36 Result: 17280 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 37 Result: 17760 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 38 Result: 18240 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 39 Result: 18720 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 40 Result: 19200 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 41 Result: 19680 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 42 Result: 20160 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 43 Result: 20640 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 44 Result: 21120 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 45 Result: 21600 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 46 Result: 22080 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 47 Result: 22560 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 48 Result: 23040 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 49 Result: 23520 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 50 Result: 24000 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 51 Result: 24480 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 52 Result: 24960 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 53 Result: 25440 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 54 Result: 25920 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 55 Result: 26400 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 56 Result: 26880 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 57 Result: 27360 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 58 Result: 27840 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 59 Result: 28320 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 60 Result: 28800 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 61 Result: 29280 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 62 Result: 29760 NumberofBits(needed/available): (16/12)
MaxVal: 480 Multiplication: 63 Result: 30240 NumberofBits(needed/available): (16/12)
In [12]:
calcPosXVal(292, 63.9375, 10)
MaxVal: 292 Multiplication: 0 Result: 0 NumberofBits(needed/available): ( 1/10)
MaxVal: 292 Multiplication: 1 Result: 292 NumberofBits(needed/available): (10/10)
MaxVal: 292 Multiplication: 2 Result: 584 NumberofBits(needed/available): (11/10)
MaxVal: 292 Multiplication: 3 Result: 876 NumberofBits(needed/available): (11/10)
MaxVal: 292 Multiplication: 4 Result: 1168 NumberofBits(needed/available): (12/10)
MaxVal: 292 Multiplication: 5 Result: 1460 NumberofBits(needed/available): (12/10)
MaxVal: 292 Multiplication: 6 Result: 1752 NumberofBits(needed/available): (12/10)
MaxVal: 292 Multiplication: 7 Result: 2044 NumberofBits(needed/available): (12/10)
MaxVal: 292 Multiplication: 8 Result: 2336 NumberofBits(needed/available): (13/10)
MaxVal: 292 Multiplication: 9 Result: 2628 NumberofBits(needed/available): (13/10)
MaxVal: 292 Multiplication: 10 Result: 2920 NumberofBits(needed/available): (13/10)
MaxVal: 292 Multiplication: 11 Result: 3212 NumberofBits(needed/available): (13/10)
MaxVal: 292 Multiplication: 12 Result: 3504 NumberofBits(needed/available): (13/10)
MaxVal: 292 Multiplication: 13 Result: 3796 NumberofBits(needed/available): (13/10)
MaxVal: 292 Multiplication: 14 Result: 4088 NumberofBits(needed/available): (13/10)
MaxVal: 292 Multiplication: 15 Result: 4380 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 16 Result: 4672 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 17 Result: 4964 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 18 Result: 5256 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 19 Result: 5548 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 20 Result: 5840 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 21 Result: 6132 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 22 Result: 6424 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 23 Result: 6716 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 24 Result: 7008 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 25 Result: 7300 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 26 Result: 7592 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 27 Result: 7884 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 28 Result: 8176 NumberofBits(needed/available): (14/10)
MaxVal: 292 Multiplication: 29 Result: 8468 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 30 Result: 8760 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 31 Result: 9052 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 32 Result: 9344 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 33 Result: 9636 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 34 Result: 9928 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 35 Result: 10220 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 36 Result: 10512 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 37 Result: 10804 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 38 Result: 11096 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 39 Result: 11388 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 40 Result: 11680 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 41 Result: 11972 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 42 Result: 12264 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 43 Result: 12556 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 44 Result: 12848 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 45 Result: 13140 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 46 Result: 13432 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 47 Result: 13724 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 48 Result: 14016 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 49 Result: 14308 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 50 Result: 14600 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 51 Result: 14892 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 52 Result: 15184 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 53 Result: 15476 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 54 Result: 15768 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 55 Result: 16060 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 56 Result: 16352 NumberofBits(needed/available): (15/10)
MaxVal: 292 Multiplication: 57 Result: 16644 NumberofBits(needed/available): (16/10)
MaxVal: 292 Multiplication: 58 Result: 16936 NumberofBits(needed/available): (16/10)
MaxVal: 292 Multiplication: 59 Result: 17228 NumberofBits(needed/available): (16/10)
MaxVal: 292 Multiplication: 60 Result: 17520 NumberofBits(needed/available): (16/10)
MaxVal: 292 Multiplication: 61 Result: 17812 NumberofBits(needed/available): (16/10)
MaxVal: 292 Multiplication: 62 Result: 18104 NumberofBits(needed/available): (16/10)
MaxVal: 292 Multiplication: 63 Result: 18396 NumberofBits(needed/available): (16/10)
Content source: tschinz/iPython_Workspace
Similar notebooks: