From 899582b0c12fdaf1abd20224bc358af2ce6eb2b4 Mon Sep 17 00:00:00 2001 From: Mario Fink Date: Mon, 10 Feb 2020 16:37:20 +0000 Subject: [PATCH] implemented conversion for 16bit floats --- csv/VehicleSpeed_HS.csv | 599 ++++++ csv/myfile.csv | 2402 ------------------------- csv/pressure_Vacuum.csv | 2402 +++++++++++++++++++++++++ eatit | Bin 57752 -> 53528 bytes makefile | 2 +- src/endian.hpp | 60 + src/half_precision_floating_point.hpp | 100 + src/main.cpp | 36 +- src/raweat.hpp | 109 +- 9 files changed, 3282 insertions(+), 2428 deletions(-) create mode 100644 csv/VehicleSpeed_HS.csv delete mode 100644 csv/myfile.csv create mode 100644 csv/pressure_Vacuum.csv create mode 100644 src/endian.hpp create mode 100644 src/half_precision_floating_point.hpp diff --git a/csv/VehicleSpeed_HS.csv b/csv/VehicleSpeed_HS.csv new file mode 100644 index 0000000..275479f --- /dev/null +++ b/csv/VehicleSpeed_HS.csv @@ -0,0 +1,599 @@ +5.93 +5.92 +5.9 +5.9 +5.89 +5.89 +5.87 +5.84 +5.83 +5.81 +5.79 +5.78 +5.76 +5.75 +5.74 +5.74 +5.73 +5.73 +5.72 +5.71 +5.71 +5.69 +5.69 +5.68 +5.66 +5.63 +5.62 +5.6 +5.58 +5.57 +5.55 +5.53 +5.51 +5.5 +5.47 +5.45 +5.42 +5.4 +5.38 +5.35 +5.31 +5.28 +5.27 +5.24 +5.19 +5.16 +5.14 +7.67 +5.06 +5.02 +5 +4.97 +4.92 +4.88 +4.86 +4.82 +4.77 +4.74 +4.7 +4.66 +4.62 +4.58 +4.54 +4.48 +4.43 +4.37 +4.31 +4.24 +4.18 +4.13 +4.06 +3.98 +3.91 +3.83 +3.77 +3.72 +3.64 +3.57 +3.51 +3.44 +3.39 +3.33 +3.28 +3.24 +3.17 +3.11 +3.06 +3.01 +2.96 +2.92 +2.88 +2.83 +2.79 +2.75 +2.71 +2.68 +2.64 +2.61 +2.59 +2.56 +5.11 +2.52 +2.51 +2.49 +2.48 +2.46 +2.46 +2.45 +2.44 +2.43 +2.42 +2.41 +2.4 +2.41 +2.39 +2.38 +2.35 +2.31 +2.26 +2.21 +2.16 +2.1 +2.05 +2.01 +1.94 +1.91 +1.84 +1.77 +1.73 +1.65 +1.59 +1.58 +1.55 +1.52 +1.53 +1.52 +1.5 +1.49 +1.47 +1.47 +1.47 +1.47 +1.48 +1.48 +1.48 +1.48 +1.48 +1.46 +1.44 +1.44 +1.43 +1.41 +1.41 +1.4 +1.38 +1.37 +1.36 +1.35 +1.33 +1.32 +1.31 +1.28 +1.27 +1.26 +1.24 +1.22 +1.21 +1.21 +1.19 +1.17 +1.16 +1.16 +1.13 +1.12 +1.12 +1.11 +1.09 +1.08 +1.07 +1.07 +1.05 +1.04 +1.03 +1.02 +1.01 +0.99 +0.98 +0.96 +0.95 +0.94 +0.9 +0.87 +0.84 +0.8 +0.79 +0.78 +0.75 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/csv/myfile.csv b/csv/myfile.csv deleted file mode 100644 index 3324c59..0000000 --- a/csv/myfile.csv +++ /dev/null @@ -1,2402 +0,0 @@ -956.014 -955.485 -955.488 -955.846 -955.711 -955.464 -955.554 -955.549 -955.518 -955.715 -955.659 -955.656 -955.782 -955.627 -955.771 -955.79 -955.498 -955.611 -955.702 -955.543 -955.702 -955.557 -955.506 -955.778 -955.722 -955.616 -955.654 -955.7 -955.707 -955.839 -955.723 -955.643 -955.62 -955.555 -955.761 -955.758 -955.779 -955.63 -955.535 -955.633 -955.67 -955.753 -955.545 -955.69 -955.917 -955.704 -955.888 -955.99 -955.708 -955.744 -955.937 -955.888 -955.641 -955.694 -955.863 -955.92 -955.993 -956.156 -955.725 -955.605 -955.979 -955.776 -955.97 -956.348 -956.166 -955.718 -956.262 -956.249 -955.96 -956.205 -955.989 -956.045 -956.021 -956.065 -956.227 -956.14 -956.044 -955.752 -955.851 -956.122 -956.111 -955.989 -955.895 -956.172 -956.082 -955.899 -956.312 -956.347 -956.145 -956.31 -956.34 -956.304 -956.527 -956.288 -956.231 -956.607 -956.534 -956.317 -956.184 -956.19 -956.405 -956.403 -956.641 -956.827 -956.43 -956.417 -956.384 -956.387 -956.514 -956.443 -956.404 -956.436 -956.642 -956.516 -956.724 -956.581 -956.118 -956.15 -956.422 -956.133 -955.931 -956.431 -956.219 -955.946 -956.089 -956.1 -956.297 -956.096 -956.01 -956.153 -955.848 -956.14 -956.306 -955.969 -955.981 -956.084 -956.209 -956.063 -955.896 -955.933 -956.084 -956.076 -956.094 -956.126 -955.762 -955.846 -956.159 -955.894 -955.859 -955.787 -955.76 -956.38 -956.072 -955.744 -956.095 -956.139 -955.755 -955.676 -955.724 -955.603 -955.78 -955.625 -955.762 -955.725 -955.632 -955.962 -955.637 -955.797 -955.686 -955.538 -956.043 -955.841 -955.785 -955.827 -955.777 -955.893 -955.615 -955.599 -955.967 -955.951 -955.867 -955.69 -955.567 -955.97 -955.791 -955.69 -955.798 -955.856 -956.157 -955.822 -955.615 -955.966 -955.954 -955.612 -955.711 -955.986 -955.783 -955.745 -955.909 -955.895 -955.734 -955.839 -955.824 -955.778 -956.08 -955.938 -955.804 -955.872 -956.044 -956.24 -956.201 -955.972 -955.704 -955.925 -956.169 -956.13 -956.092 -955.898 -956.02 -956.183 -955.948 -956.144 -956.291 -956.086 -955.956 -956.25 -956.584 -956.06 -956.116 -956.246 -955.793 -956.045 -956.125 -956.208 -955.921 -955.565 -955.817 -955.957 -955.823 -955.578 -955.668 -955.766 -955.881 -955.794 -955.52 -955.754 -955.657 -955.462 -955.64 -955.67 -955.565 -955.554 -955.542 -955.448 -955.379 -955.437 -955.418 -955.478 -955.542 -955.402 -955.448 -955.441 -955.379 -955.43 -955.388 -955.513 -955.493 -955.358 -955.461 -955.408 -955.417 -955.489 -955.421 -955.47 -955.454 -955.407 -955.482 -955.46 -955.386 -955.463 -955.453 -955.416 -955.429 -955.393 -955.493 -955.561 -955.442 -955.484 -955.588 -955.362 -955.405 -955.483 -955.437 -955.567 -955.445 -955.422 -955.451 -955.392 -955.45 -955.397 -955.432 -955.44 -955.388 -955.426 -955.452 -955.449 -955.436 -955.393 -955.275 -954.785 -954.07 -954.001 -953.58 -952.697 -952.714 -952.268 -951.339 -951.402 -951.089 -950.088 -950.041 -950.216 -949.999 -949.866 -949.455 -949.106 -948.873 -948.779 -948.812 -948.697 -948.708 -948.678 -948.677 -948.7 -948.682 -948.622 -948.435 -948.13 -947.906 -947.889 -947.691 -947.573 -947.406 -947.367 -947.411 -947.352 -947.431 -947.375 -947.383 -947.376 -947.352 -947.429 -947.411 -947.494 -947.446 -947.395 -947.584 -947.643 -947.557 -947.489 -947.576 -947.645 -947.59 -947.491 -947.579 -947.674 -947.568 -947.609 -947.542 -947.474 -947.618 -947.716 -947.662 -947.58 -947.654 -947.675 -947.766 -947.723 -947.394 -947.486 -947.413 -947.308 -947.388 -947.324 -947.342 -947.217 -946.71 -946.08 -946.007 -946.076 -945.929 -945.6 -944.958 -944.642 -944.695 -944.696 -944.681 -944.675 -944.614 -944.367 -943.932 -943.591 -943.39 -942.521 -942.245 -942.389 -941.919 -942.141 -942.055 -941.958 -941.907 -941.49 -941.223 -941.035 -940.938 -940.823 -940.928 -940.822 -940.733 -940.845 -940.792 -940.82 -940.863 -940.902 -940.938 -940.981 -941.116 -941.124 -941.136 -941.201 -941.125 -941.308 -941.387 -941.343 -941.521 -941.567 -941.606 -941.704 -941.828 -941.883 -941.763 -941.901 -942.026 -942.035 -941.916 -941.931 -941.967 -942.044 -942.076 -941.982 -942.032 -942.053 -942.11 -942.07 -942.009 -942.039 -942.052 -942.035 -941.987 -941.909 -941.659 -941.418 -941.55 -941.626 -941.355 -941.125 -941.185 -941.091 -940.889 -940.883 -940.823 -940.775 -940.755 -940.772 -940.751 -940.749 -940.767 -940.744 -940.746 -940.753 -940.759 -940.75 -940.765 -940.755 -940.745 -940.769 -940.75 -940.739 -940.756 -940.768 -940.761 -940.755 -940.76 -940.75 -940.739 -940.748 -940.758 -940.765 -940.768 -940.752 -940.764 -940.755 -940.732 -940.754 -940.755 -940.758 -940.792 -940.811 -940.77 -940.694 -940.347 -939.342 -938.381 -937.076 -935.086 -932.824 -930.434 -929.11 -927.68 -926.163 -925.091 -923.81 -922.977 -922.251 -921.27 -920.356 -919.43 -918.308 -918.134 -918.129 -917.303 -917.047 -917.011 -917.064 -917.065 -917.007 -917.077 -917.024 -917.077 -917.212 -917.722 -918.316 -918.305 -918.257 -918.313 -918.267 -918.328 -918.433 -918.538 -918.551 -918.675 -918.643 -918.69 -918.807 -918.995 -919.412 -919.277 -919.372 -919.557 -919.542 -919.513 -919.583 -919.716 -919.934 -920.067 -919.677 -920.154 -919.973 -919.228 -919.618 -919.121 -918.822 -918.801 -918.403 -918.402 -918.341 -918.296 -918.296 -918.328 -918.323 -918.326 -918.333 -918.309 -918.331 -918.318 -918.332 -918.357 -918.312 -918.306 -918.346 -918.321 -918.348 -918.313 -918.321 -918.424 -918.36 -918.403 -918.544 -918.835 -919.051 -918.891 -918.913 -919.132 -919.364 -919.542 -919.567 -919.851 -919.957 -920.079 -920.098 -920.134 -920.396 -920.351 -920.142 -920.3 -920.888 -920.587 -920.551 -920.907 -920.388 -920.656 -920.931 -920.345 -920.497 -920.827 -920.765 -920.834 -920.684 -920.602 -920.857 -920.704 -920.677 -920.875 -920.757 -920.345 -920.79 -920.981 -920.497 -920.687 -920.767 -920.947 -920.921 -920.591 -920.575 -920.44 -920.888 -920.954 -920.769 -920.964 -920.741 -920.667 -920.897 -921.038 -920.814 -921.046 -921.212 -920.922 -921.111 -921.095 -921.135 -921.289 -921.486 -921.642 -921.597 -921.582 -921.548 -921.831 -921.876 -922.09 -921.887 -922.03 -922.13 -921.93 -922.376 -922.178 -922.063 -922.255 -922.251 -922.257 -922.159 -922.316 -922.284 -922.214 -922.249 -922.181 -922.274 -922.311 -922.208 -922.306 -922.353 -922.273 -922.334 -922.313 -922.304 -922.351 -922.317 -922.315 -922.342 -922.323 -922.316 -922.342 -922.332 -922.319 -922.325 -922.305 -922.312 -922.321 -922.326 -922.341 -922.306 -922.304 -922.329 -922.331 -922.328 -922.332 -922.336 -922.324 -922.325 -922.317 -922.34 -922.359 -922.347 -922.334 -922.341 -922.38 -922.337 -922.323 -922.358 -922.344 -922.329 -922.334 -922.348 -922.326 -922.334 -922.367 -922.335 -922.312 -922.32 -922.327 -922.337 -922.315 -922.316 -922.359 -922.368 -922.323 -922.328 -922.33 -922.33 -922.358 -922.342 -922.317 -922.337 -922.326 -922.303 -922.289 -922.263 -922.167 -921.984 -921.864 -921.663 -921.358 -920.887 -920.973 -921.112 -920.746 -920.909 -920.806 -920.766 -920.797 -920.467 -920.199 -919.819 -919.484 -919.102 -918.31 -918.245 -918.363 -918.244 -918.345 -918.249 -918.251 -918.202 -917.95 -917.573 -917.4 -917.335 -917.038 -917.19 -917.387 -917.127 -917.093 -917.293 -917.447 -917.375 -917.536 -917.724 -917.565 -917.579 -917.562 -917.794 -917.864 -917.889 -917.807 -917.397 -917.343 -917.092 -916.998 -917.031 -916.757 -916.229 -915.612 -915.654 -915.374 -914.549 -914.272 -914.402 -914.329 -914.096 -913.897 -913.878 -913.664 -913.327 -913.214 -913.338 -913.578 -913.273 -913.147 -913.367 -913.476 -913.55 -913.659 -913.9 -913.99 -914.028 -914.298 -914.259 -914.288 -914.44 -914.313 -914.387 -914.369 -914.319 -914.4 -914.343 -914.367 -914.367 -914.34 -914.357 -914.31 -914.329 -914.298 -914.295 -914.366 -914.348 -914.348 -914.392 -914.344 -914.299 -914.349 -914.379 -914.32 -914.345 -914.364 -914.32 -914.338 -914.367 -914.364 -914.365 -914.367 -914.351 -914.379 -914.4 -914.387 -914.372 -914.366 -914.387 -914.416 -914.393 -914.342 -914.388 -914.394 -914.405 -914.442 -914.491 -914.513 -914.405 -914.384 -914.377 -914.36 -914.454 -914.54 -914.49 -914.46 -914.515 -914.429 -914.517 -914.554 -914.532 -914.62 -914.542 -914.507 -914.483 -914.493 -914.466 -914.447 -914.556 -914.471 -914.385 -914.404 -914.437 -914.386 -914.369 -914.472 -914.467 -914.474 -914.531 -914.458 -914.45 -914.6 -914.56 -914.483 -914.579 -914.514 -914.502 -914.651 -914.771 -914.899 -914.95 -914.9 -915.008 -915.177 -915.096 -915.058 -915.119 -915.166 -915.385 -915.282 -915.375 -915.441 -915.482 -915.589 -915.493 -915.654 -915.531 -915.588 -915.715 -915.584 -915.654 -915.66 -915.733 -915.704 -915.665 -915.729 -915.697 -915.699 -915.716 -915.702 -915.702 -915.711 -915.708 -915.712 -915.692 -915.671 -915.681 -915.683 -915.677 -915.673 -915.702 -915.707 -915.706 -915.695 -915.682 -915.703 -915.684 -915.708 -915.722 -915.701 -915.752 -915.795 -915.796 -915.856 -915.923 -915.981 -916.127 -916.178 -916.139 -916.152 -916.28 -916.311 -916.196 -916.343 -916.35 -916.349 -916.607 -916.612 -916.561 -916.676 -916.799 -916.844 -916.7 -916.743 -916.86 -916.817 -916.856 -916.881 -916.788 -916.919 -916.984 -916.838 -917.016 -917.026 -916.932 -917.02 -917.026 -917.012 -916.989 -917 -917.052 -917.071 -917.04 -917.028 -917.047 -917.06 -917.039 -917.052 -917.046 -917.028 -917.056 -917.028 -917.024 -917.053 -917.051 -917.049 -917.03 -917.049 -917.071 -917.051 -917.088 -917.067 -917.038 -917.08 -917.048 -917.051 -917.146 -917.161 -917.056 -917.057 -917.102 -917.074 -917.173 -917.104 -917.052 -917.146 -917.129 -917.126 -917.094 -917.091 -917.203 -917.288 -917.293 -917.221 -917.247 -917.28 -917.303 -917.141 -917.074 -917.37 -917.421 -917.383 -917.462 -917.622 -917.673 -917.693 -918.036 -918.027 -917.948 -917.991 -918.052 -917.99 -917.889 -918.168 -918.085 -917.864 -918.042 -918.046 -917.87 -917.978 -917.994 -918.023 -917.974 -917.912 -918.095 -918.067 -918.013 -918.088 -918.127 -918.218 -918.273 -918.279 -918.326 -918.324 -918.323 -918.321 -918.313 -918.324 -918.305 -918.35 -918.326 -918.295 -918.323 -918.288 -918.317 -918.304 -918.293 -918.331 -918.299 -918.297 -918.302 -918.282 -918.293 -918.306 -918.297 -918.311 -918.324 -918.315 -918.329 -918.301 -918.284 -918.3 -918.312 -918.358 -918.395 -918.514 -918.515 -918.385 -918.499 -918.448 -918.557 -918.576 -918.485 -918.605 -918.648 -918.61 -918.4 -918.845 -919.084 -919.197 -919.162 -918.768 -919.514 -919.649 -919.021 -919.219 -919.464 -919.357 -919.252 -919.46 -919.576 -919.425 -919.439 -919.563 -920.101 -920.24 -919.981 -920.164 -920.434 -920.336 -919.85 -920.048 -920.085 -919.823 -920.062 -920.178 -920.315 -920.041 -920.241 -920.518 -920.138 -920.17 -920.437 -920.524 -920.312 -920.282 -920.706 -920.588 -920.613 -920.684 -920.616 -920.808 -920.922 -920.918 -920.838 -921.003 -920.923 -920.834 -921.008 -920.944 -920.912 -920.921 -920.993 -920.979 -920.969 -920.99 -920.936 -920.913 -920.892 -920.946 -920.956 -920.982 -921.016 -920.953 -920.944 -920.957 -920.961 -920.959 -920.979 -920.981 -920.966 -921.002 -921.011 -920.987 -920.969 -920.986 -920.995 -920.988 -920.989 -921.014 -920.998 -920.955 -920.996 -921.047 -921.026 -921.001 -920.997 -920.998 -920.969 -920.978 -920.978 -921.022 -921.058 -920.994 -921.034 -921.003 -920.937 -920.958 -921 -921.008 -921.016 -921.084 -921.036 -921.008 -921.11 -921.128 -921.055 -921.129 -921.293 -921.239 -921.28 -921.274 -921.155 -921.353 -921.256 -921.392 -921.502 -921.22 -921.458 -921.51 -921.357 -921.631 -921.758 -921.65 -921.565 -921.432 -921.478 -921.58 -921.601 -921.635 -921.803 -921.804 -922.041 -922.289 -922.134 -922.298 -922.225 -922.134 -922.281 -922.202 -922.254 -922.281 -922.193 -922.101 -922.184 -922.268 -922.223 -922.252 -922.199 -922.299 -922.261 -922.173 -922.271 -922.269 -922.321 -922.261 -922.264 -922.314 -922.295 -922.299 -922.337 -922.34 -922.305 -922.336 -922.339 -922.306 -922.329 -922.338 -922.324 -922.333 -922.352 -922.346 -922.332 -922.334 -922.317 -922.351 -922.356 -922.318 -922.345 -922.325 -922.309 -922.323 -922.339 -922.324 -922.312 -922.343 -922.334 -922.327 -922.34 -922.354 -922.34 -922.341 -922.356 -922.308 -922.322 -922.347 -922.324 -922.327 -922.338 -922.355 -922.332 -922.338 -922.354 -922.359 -922.434 -922.423 -922.358 -922.374 -922.398 -922.396 -922.424 -922.455 -922.342 -922.377 -922.417 -922.361 -922.436 -922.429 -922.379 -922.489 -922.394 -922.457 -922.56 -922.493 -922.518 -922.522 -922.715 -922.634 -922.727 -922.788 -922.416 -922.738 -922.695 -922.44 -922.634 -922.69 -922.906 -922.754 -922.719 -922.956 -922.798 -923.101 -923.062 -922.908 -923.039 -922.89 -923.098 -923.133 -923.168 -923.256 -923.281 -923.496 -923.452 -923.408 -923.5 -923.497 -923.492 -923.528 -923.543 -923.511 -923.493 -923.549 -923.58 -923.507 -923.533 -923.598 -923.538 -923.544 -923.585 -923.56 -923.597 -923.582 -923.567 -923.582 -923.565 -923.594 -923.602 -923.581 -923.556 -923.566 -923.604 -923.591 -923.572 -923.574 -923.582 -923.573 -923.543 -923.577 -923.577 -923.506 -923.518 -923.533 -923.385 -923.159 -923.065 -922.837 -922.603 -922.629 -922.459 -922.25 -922.36 -922.326 -922.31 -922.272 -921.905 -921.448 -921.197 -921.003 -920.956 -921.029 -920.972 -920.954 -920.77 -920.322 -919.159 -918.099 -918.335 -918.33 -918.166 -918.021 -917.395 -917.055 -916.995 -917.057 -916.804 -916.128 -915.72 -915.74 -915.692 -915.554 -915.094 -914.388 -914.307 -914.35 -913.874 -913.276 -912.973 -912.994 -912.638 -911.906 -911.662 -911.721 -911.193 -910.398 -910.256 -909.553 -907.689 -907.299 -906.985 -905.845 -905.442 -904.477 -903.838 -903.05 -902.211 -901.604 -900.739 -900.135 -899.385 -898.667 -897.469 -895.937 -895.138 -894.627 -894.13 -893.581 -892.831 -892.409 -891.587 -891.287 -890.587 -889.835 -889.368 -888.51 -887.936 -886.475 -884.989 -884.308 -883.825 -883.274 -882.523 -882.136 -881.57 -881.016 -881.043 -880.16 -879.923 -880.093 -879.62 -879.038 -878.533 -878.748 -878.697 -878.624 -878.627 -878.261 -877.859 -877.527 -877.526 -877.406 -877.363 -877.407 -877.347 -877.407 -877.297 -877.033 -876.503 -876.105 -876.072 -876.033 -876.024 -876.019 -876.013 -875.705 -874.982 -874.139 -873.483 -873.421 -873.407 -873.364 -873.308 -873.07 -872.902 -872.618 -872.428 -872.247 -872.064 -872.086 -872.085 -872.07 -872.059 -871.717 -871.099 -870.85 -870.77 -870.71 -870.745 -870.687 -870.634 -870.411 -870.129 -869.932 -869.758 -869.622 -869.56 -869.46 -869.464 -869.499 -869.487 -869.487 -869.484 -869.5 -869.485 -869.485 -869.492 -869.466 -869.435 -869.399 -869.28 -868.852 -868.223 -868.071 -868.203 -868.085 -868.134 -868.139 -868.092 -868.02 -867.867 -867.705 -867.303 -866.919 -866.766 -866.785 -866.568 -865.881 -865.337 -865.384 -864.719 -863.115 -862.474 -862.74 -862.578 -862.167 -861.664 -861.415 -861.505 -861.406 -861.334 -861.372 -861.364 -861.373 -861.363 -861.37 -861.395 -861.371 -861.351 -861.385 -861.456 -861.733 -861.902 -861.659 -861.742 -861.731 -861.412 -861.707 -861.957 -862.162 -862.511 -862.398 -862.559 -862.626 -862.298 -862.246 -861.937 -861.513 -861.373 -861.376 -861.382 -861.344 -861.384 -861.421 -861.425 -861.419 -861.44 -861.574 -861.732 -861.883 -861.971 -861.895 -861.906 -861.687 -861.443 -861.557 -861.513 -861.648 -861.822 -861.945 -862.267 -862.373 -862.565 -862.656 -862.571 -862.659 -862.577 -862.613 -862.64 -862.577 -862.682 -862.635 -862.68 -862.697 -862.657 -862.694 -862.72 -862.806 -863.154 -863.844 -864.134 -864.134 -864.357 -864.167 -864.082 -864.591 -864.95 -864.995 -865.339 -865.358 -865.295 -865.51 -865.474 -865.453 -865.486 -865.453 -865.465 -865.446 -865.474 -865.495 -865.49 -865.494 -865.515 -865.552 -865.576 -865.667 -865.891 -866.102 -865.97 -865.971 -866.249 -866.005 -865.966 -866.085 -865.812 -865.962 -866.081 -866.154 -866.384 -866.562 -866.766 -866.692 -866.779 -866.82 -866.783 -866.844 -866.81 -866.807 -866.788 -866.799 -866.797 -866.782 -866.803 -866.778 -866.761 -866.822 -866.805 -866.785 -866.841 -866.803 -866.792 -866.803 -866.799 -866.813 -866.802 -866.826 -866.818 -866.815 -866.795 -866.786 -866.824 -866.806 -866.794 -866.793 -866.827 -866.829 -866.797 -866.822 -866.807 -866.833 -866.845 -866.807 -866.854 -866.916 -866.965 -866.999 -867.097 -867.087 -866.923 -866.927 -866.933 -866.986 -866.971 -866.903 -866.98 -866.998 -866.913 -866.933 -866.948 -866.902 -866.873 -866.87 -866.965 -866.919 -866.885 -866.957 -866.876 -867.063 -867.14 -866.995 -867.028 -867.114 -867.357 -867.378 -867.474 -867.61 -867.476 -867.446 -867.545 -867.541 -867.31 -867.345 -867.433 -867.333 -867.536 -867.424 -867.222 -867.341 -867.317 -867.282 -867.259 -867.308 -867.3 -867.301 -867.271 -867.07 -867.14 -867.358 -867.347 -867.225 -867.129 -867.305 -867.25 -867.242 -867.264 -867.232 -867.353 -867.152 -867.252 -867.353 -867.354 -867.119 -867.248 -867.366 -867.168 -867.36 -867.326 -867.263 -867.185 -867.085 -866.975 -866.947 -867.311 -867.113 -867.092 -867.268 -867.039 -867.094 -867.177 -867.151 -867.178 -867.236 -867.187 -867.189 -867.338 -867.13 -866.984 -867.059 -867.059 -867.1 -867.034 -867.05 -867.141 -867.145 -867.039 -867.169 -867.18 -867.017 -867.128 -867 -866.896 -867.173 -867.269 -867.068 -867.062 -867.058 -867.107 -867.114 -867.084 -867.163 -867.107 -867.211 -867.136 -866.977 -867.123 -867.062 -867.129 -867.239 -866.985 -866.965 -867.085 -867.17 -867.261 -867.23 -867.161 -867.107 -867.019 -866.975 -867.118 -867.076 -867.042 -867.017 -866.956 -867.04 -867.051 -867.019 -866.999 -867.042 -867.031 -867.147 -867.083 -866.963 -867.083 -867.061 -867.049 -867.039 -867.01 -867.079 -866.96 -866.857 -866.999 -867.046 -867.094 -867.138 -867.097 -867.063 -867.003 -866.968 -866.964 -867.009 -866.967 -867.044 -867.003 -866.936 -867.02 -866.987 -867.04 -867.034 -867.095 -867.084 -866.963 -867.044 -867.014 -866.989 -866.9 -867.018 -867.1 -866.89 -866.941 -867.033 -867.004 -867.035 -866.941 -866.965 -867.088 -867.071 -867.029 -866.98 -867 -866.926 -866.946 -867.064 -867.106 -867.041 -866.909 -867.02 -867.044 -867.04 -867.104 -867.003 -866.969 -867.049 -866.984 -866.926 -867.114 -866.951 -866.911 -867.046 -867.098 -867.103 -866.978 -866.979 -867.021 -867.074 -867.054 -867.047 -867.114 -866.994 -867.01 -867.045 -867.045 -867.055 -866.971 -867.046 -867.07 -867.094 -867.119 -867.037 -866.942 -866.918 -866.984 -866.854 -866.952 -866.997 -866.904 -867.025 -866.98 -866.923 -867.002 -867.038 -867.072 -866.97 -866.904 -867.002 -867.042 -866.967 -867.019 -867.002 -866.869 -867.007 -867.042 -867.032 -867.084 -866.986 -866.971 -866.955 -867.05 -867.191 -867.128 -866.966 -867.036 -867.075 -866.984 -866.97 -866.951 -867.008 -866.917 -866.858 -867 -866.943 -867.056 -867.05 -867.009 -867.013 -866.964 -867.077 -866.908 -867.001 -867.038 -866.917 -866.958 -866.891 -867.04 -867.021 -867.021 -867.015 -866.919 -867.035 -867.011 -866.995 -867.036 -866.981 -866.979 -866.96 -866.98 -866.937 -867.01 -867.193 -867.032 -867.055 -866.983 -867.021 -867.167 -866.933 -867.002 -866.98 -866.997 -867.046 -867.03 -867.119 -867.083 -867.137 -867.086 -867.067 -867.118 -866.974 -867.105 -866.931 -866.816 -867.038 -867.016 -867.008 -867.012 -867.002 -866.893 -866.922 -867.117 -867.077 -867.169 -867.032 -866.804 -866.983 -866.959 -866.973 -867.003 -866.948 -866.958 -866.984 -867.002 -867.024 -866.998 -867.045 -867.117 -867.039 -866.961 -867.053 -867.083 -866.815 -866.976 -867.079 -867.064 -867.04 -866.853 -866.949 -866.926 -866.997 -867.089 -866.859 -867.049 -867.051 -866.938 -867.035 -866.982 -867.007 -866.918 -866.945 -867.061 -866.943 -867.015 -867.017 -866.929 -866.919 -867.008 -867.115 -866.947 -866.877 -867.022 -867.076 -867.055 -867.026 -867.133 -867.072 -866.939 -867.054 -866.97 -867.004 -867.012 -867.019 -867.032 -866.98 -867.123 -866.978 -866.896 -866.998 -866.902 -866.957 -867.033 -867.033 -866.983 -866.984 -866.956 -866.91 -866.994 -867.073 -867.044 -867.017 -866.932 -866.856 -867.005 -866.96 -866.951 -866.924 -866.928 -867.001 -866.964 -866.993 -866.918 -866.955 -867.067 -866.992 -866.915 -866.991 -866.928 -866.981 -867.018 -866.919 -866.971 -866.997 -867.064 -867.092 -866.943 -866.884 -867.028 -866.997 -866.942 -867.036 -867.025 -866.945 -867.056 -866.971 -866.817 -866.962 -866.896 -866.867 -866.944 -866.987 -867.021 -866.911 -867.012 -866.974 -866.911 -867.104 -866.982 -867.028 -867.068 -866.964 -866.974 -867.078 -866.999 -866.99 -867.205 -867.154 -867.145 -867.207 -867.097 -867.032 -867.097 -867.067 -867.036 -867.096 -866.917 -866.982 -867.094 -867.012 -867.15 -867.05 -866.981 -867.093 -867.042 -867.187 -866.941 -866.873 -867.166 -867.018 -866.982 -867.091 -867.08 -867.002 -867.052 -867.092 -866.922 -866.942 -866.972 -866.94 -867.09 -867.028 -867.087 -867.115 -866.919 -866.966 -866.973 -866.999 -866.996 -866.966 -866.934 -866.938 -867.066 -866.996 -866.888 -867.008 -867.076 -867.105 -867.176 -867.053 -866.947 -867.007 -867.135 -867.178 -867.005 -866.885 -866.91 -867.005 -866.98 -866.872 -866.954 -866.87 -866.888 -867.007 -866.971 -866.991 -867.041 -867.041 -867.005 -866.969 -866.889 -866.995 -867.121 -866.991 -866.967 -867.006 -867.086 -867.08 -866.941 -866.958 -867.036 -867.048 -867.005 -866.948 -866.884 -866.872 -866.97 -867.139 -867.014 -866.912 -867.031 -866.877 -866.984 -867.026 -866.905 -866.926 -866.969 -867.01 -866.94 -866.927 -866.894 -866.857 -866.948 -866.974 -866.953 -866.942 -866.942 -866.998 -866.956 -866.898 -866.936 -867.005 -867.068 -866.922 -866.915 -866.975 -866.979 -866.977 -866.811 -866.886 -867.067 -867.016 -866.873 -867 -866.948 -866.822 -866.974 -866.915 -866.907 -866.975 -866.903 -866.949 -866.909 -866.926 -867.021 -867.049 -866.978 -866.99 -866.999 -866.847 -866.841 -866.916 -866.985 diff --git a/csv/pressure_Vacuum.csv b/csv/pressure_Vacuum.csv new file mode 100644 index 0000000..74332c6 --- /dev/null +++ b/csv/pressure_Vacuum.csv @@ -0,0 +1,2402 @@ +956.013794 +955.484924 +955.487671 +955.846252 +955.711121 +955.464111 +955.554016 +955.548523 +955.517517 +955.714661 +955.658752 +955.65625 +955.78241 +955.626831 +955.771301 +955.790222 +955.497864 +955.610779 +955.702271 +955.542786 +955.702026 +955.557251 +955.505798 +955.777954 +955.721558 +955.616394 +955.653687 +955.700439 +955.707214 +955.839478 +955.722717 +955.642578 +955.61969 +955.554504 +955.761169 +955.758423 +955.779236 +955.629944 +955.534973 +955.632935 +955.669922 +955.752686 +955.544861 +955.690125 +955.917358 +955.703979 +955.887939 +955.989807 +955.708252 +955.74408 +955.937134 +955.887634 +955.641296 +955.694031 +955.863403 +955.919861 +955.993042 +956.15564 +955.724792 +955.605469 +955.97937 +955.776123 +955.970276 +956.348083 +956.166443 +955.718018 +956.262085 +956.249451 +955.959961 +956.205261 +955.989014 +956.044922 +956.020813 +956.064819 +956.226807 +956.140381 +956.044373 +955.752441 +955.850769 +956.122437 +956.11145 +955.988647 +955.895081 +956.171936 +956.082275 +955.899231 +956.312134 +956.34729 +956.144836 +956.310181 +956.340393 +956.304199 +956.52655 +956.288025 +956.231323 +956.606689 +956.534485 +956.31665 +956.183655 +956.189636 +956.405151 +956.402649 +956.640564 +956.826599 +956.429626 +956.416626 +956.384399 +956.386536 +956.514038 +956.443054 +956.40448 +956.436035 +956.642273 +956.515625 +956.723938 +956.581177 +956.118225 +956.149536 +956.421692 +956.132996 +955.931152 +956.431335 +956.218994 +955.946167 +956.088684 +956.100281 +956.297119 +956.096375 +956.010498 +956.152649 +955.8479 +956.140137 +956.306396 +955.969055 +955.981079 +956.083618 +956.209167 +956.062744 +955.895752 +955.933105 +956.084412 +956.076172 +956.094177 +956.126343 +955.761536 +955.846497 +956.158875 +955.893921 +955.859497 +955.787231 +955.759583 +956.380005 +956.072266 +955.743958 +956.094543 +956.139343 +955.754517 +955.676208 +955.723999 +955.602722 +955.780457 +955.625366 +955.762329 +955.725342 +955.632141 +955.961792 +955.637268 +955.796692 +955.686218 +955.538086 +956.042969 +955.840637 +955.785095 +955.827332 +955.776672 +955.893372 +955.61499 +955.59906 +955.96698 +955.950684 +955.866821 +955.689636 +955.566528 +955.969971 +955.790955 +955.690247 +955.798157 +955.855591 +956.157227 +955.821716 +955.614563 +955.965698 +955.954102 +955.612 +955.710999 +955.986267 +955.783325 +955.745239 +955.908752 +955.895203 +955.733948 +955.838806 +955.823547 +955.778076 +956.079712 +955.937805 +955.804016 +955.872009 +956.044373 +956.240051 +956.200623 +955.971558 +955.703796 +955.924805 +956.168823 +956.130493 +956.091797 +955.898315 +956.019897 +956.183105 +955.947815 +956.144043 +956.29126 +956.085938 +955.955811 +956.250488 +956.583862 +956.059998 +956.11554 +956.246338 +955.792908 +956.044617 +956.125183 +956.207886 +955.921265 +955.564575 +955.81665 +955.95697 +955.82251 +955.57782 +955.667969 +955.766235 +955.881409 +955.793823 +955.52002 +955.753723 +955.656799 +955.461609 +955.640381 +955.669678 +955.564575 +955.554016 +955.541748 +955.447693 +955.37915 +955.436584 +955.417847 +955.478333 +955.541626 +955.401672 +955.447937 +955.440674 +955.378662 +955.430237 +955.387756 +955.512695 +955.492615 +955.357788 +955.461243 +955.408203 +955.416931 +955.488708 +955.420837 +955.469849 +955.454346 +955.406799 +955.481812 +955.460327 +955.386353 +955.463196 +955.452881 +955.415649 +955.428955 +955.392944 +955.493164 +955.560669 +955.441711 +955.483521 +955.587585 +955.361572 +955.405212 +955.482971 +955.436768 +955.567444 +955.444702 +955.421875 +955.450928 +955.391663 +955.449646 +955.3974 +955.431946 +955.440491 +955.387756 +955.425537 +955.451843 +955.448853 +955.436218 +955.392578 +955.275085 +954.785461 +954.069946 +954.001404 +953.580322 +952.696777 +952.714355 +952.26825 +951.338562 +951.401855 +951.088928 +950.08783 +950.041077 +950.215759 +949.999084 +949.866455 +949.454895 +949.106262 +948.872925 +948.778625 +948.812195 +948.696655 +948.707764 +948.677612 +948.677368 +948.699524 +948.682068 +948.621765 +948.434509 +948.13031 +947.906494 +947.889282 +947.691406 +947.573364 +947.406067 +947.366882 +947.410522 +947.351501 +947.430969 +947.374573 +947.382507 +947.376099 +947.351501 +947.428894 +947.410522 +947.494019 +947.445557 +947.395142 +947.583801 +947.643311 +947.556702 +947.488953 +947.576477 +947.644897 +947.589783 +947.491272 +947.578857 +947.673706 +947.567627 +947.609192 +947.542358 +947.474243 +947.618408 +947.716309 +947.661926 +947.580139 +947.653748 +947.674866 +947.766174 +947.722778 +947.394348 +947.486206 +947.412964 +947.308228 +947.387573 +947.32373 +947.341736 +947.216614 +946.709717 +946.079651 +946.007324 +946.075989 +945.928772 +945.59967 +944.958069 +944.64209 +944.695007 +944.695923 +944.681335 +944.675354 +944.613953 +944.366943 +943.932434 +943.590576 +943.390076 +942.521484 +942.244751 +942.389404 +941.918945 +942.141174 +942.055237 +941.957642 +941.906799 +941.490051 +941.223206 +941.035095 +940.937622 +940.822754 +940.928101 +940.821655 +940.733337 +940.845154 +940.791992 +940.819702 +940.863098 +940.902222 +940.9375 +940.980896 +941.115967 +941.12384 +941.135925 +941.201172 +941.125244 +941.308289 +941.38739 +941.343201 +941.521057 +941.566528 +941.605835 +941.704102 +941.827759 +941.883362 +941.763245 +941.900818 +942.026184 +942.035156 +941.915833 +941.930664 +941.967407 +942.04364 +942.075562 +941.981567 +942.032288 +942.052734 +942.109802 +942.069641 +942.00885 +942.039062 +942.05249 +942.035278 +941.987061 +941.90918 +941.65863 +941.418274 +941.550354 +941.626465 +941.354553 +941.125488 +941.185181 +941.091003 +940.889282 +940.883179 +940.822754 +940.775024 +940.755127 +940.772156 +940.750916 +940.749146 +940.766602 +940.744141 +940.745728 +940.752625 +940.758728 +940.749634 +940.764771 +940.755005 +940.745483 +940.768555 +940.75 +940.738586 +940.756409 +940.767883 +940.760864 +940.755493 +940.759827 +940.749634 +940.738831 +940.748352 +940.758484 +940.765381 +940.76825 +940.751709 +940.764099 +940.755493 +940.732056 +940.753784 +940.755127 +940.757568 +940.791748 +940.810852 +940.770203 +940.693726 +940.347473 +939.341553 +938.381104 +937.07605 +935.085815 +932.823853 +930.434204 +929.109619 +927.679749 +926.162842 +925.091003 +923.810425 +922.977295 +922.250854 +921.269958 +920.35614 +919.429565 +918.307922 +918.13385 +918.129211 +917.302917 +917.047424 +917.010681 +917.064148 +917.06488 +917.007446 +917.076599 +917.024109 +917.077148 +917.212402 +917.721802 +918.315613 +918.304688 +918.257019 +918.313293 +918.267395 +918.328491 +918.432861 +918.538391 +918.551331 +918.674561 +918.642639 +918.69043 +918.807434 +918.995178 +919.412109 +919.2771 +919.37207 +919.557373 +919.54248 +919.512817 +919.58252 +919.715637 +919.934021 +920.066528 +919.676575 +920.153503 +919.972839 +919.228271 +919.618347 +919.120911 +918.822266 +918.800781 +918.403442 +918.402283 +918.341309 +918.296082 +918.296204 +918.328491 +918.323059 +918.32605 +918.332825 +918.309082 +918.330872 +918.318359 +918.331909 +918.356934 +918.311829 +918.305847 +918.345703 +918.320984 +918.347534 +918.312622 +918.320862 +918.424255 +918.359558 +918.402527 +918.543762 +918.835327 +919.051208 +918.891357 +918.912598 +919.131958 +919.36377 +919.541565 +919.566589 +919.851013 +919.957214 +920.078857 +920.097778 +920.133606 +920.396362 +920.350525 +920.142334 +920.300476 +920.888062 +920.587097 +920.550781 +920.907104 +920.387634 +920.656189 +920.931091 +920.344788 +920.497375 +920.827087 +920.764832 +920.833862 +920.684326 +920.602112 +920.857422 +920.704346 +920.67688 +920.875183 +920.756714 +920.345459 +920.789978 +920.980591 +920.497375 +920.687439 +920.767456 +920.947205 +920.921143 +920.590637 +920.57489 +920.440125 +920.887695 +920.953857 +920.769104 +920.963745 +920.741089 +920.667358 +920.896545 +921.038147 +920.814087 +921.045959 +921.212463 +920.92218 +921.11084 +921.095459 +921.135193 +921.28894 +921.485962 +921.642395 +921.597351 +921.582458 +921.547852 +921.831299 +921.876282 +922.089539 +921.886536 +922.029602 +922.130188 +921.929932 +922.376038 +922.177979 +922.063354 +922.254883 +922.250732 +922.256836 +922.159485 +922.315857 +922.283936 +922.214355 +922.248718 +922.180603 +922.27417 +922.310791 +922.208496 +922.305664 +922.35321 +922.273132 +922.333801 +922.313232 +922.303833 +922.351135 +922.317139 +922.315186 +922.342285 +922.323425 +922.315857 +922.342041 +922.331848 +922.318604 +922.325378 +922.304749 +922.312073 +922.320801 +922.326294 +922.341003 +922.305542 +922.303711 +922.329163 +922.331482 +922.327576 +922.331848 +922.336304 +922.323792 +922.325378 +922.317139 +922.339661 +922.359497 +922.347351 +922.334229 +922.340576 +922.380066 +922.337463 +922.322754 +922.357666 +922.344482 +922.328857 +922.333801 +922.348145 +922.325989 +922.333679 +922.366638 +922.335022 +922.311951 +922.319885 +922.32666 +922.336975 +922.314819 +922.316467 +922.358582 +922.367981 +922.323425 +922.32782 +922.330322 +922.3302 +922.357666 +922.341614 +922.317383 +922.337463 +922.326294 +922.302551 +922.288635 +922.263489 +922.166809 +921.984253 +921.86377 +921.66272 +921.357971 +920.886902 +920.973022 +921.112183 +920.746216 +920.909058 +920.806274 +920.766235 +920.797119 +920.466858 +920.199402 +919.818726 +919.484375 +919.102173 +918.309631 +918.244629 +918.363159 +918.244202 +918.345093 +918.249451 +918.251404 +918.201599 +917.949646 +917.57251 +917.399719 +917.335266 +917.037537 +917.190247 +917.387207 +917.127441 +917.092896 +917.292908 +917.446533 +917.375488 +917.536133 +917.724121 +917.56543 +917.578979 +917.561951 +917.794495 +917.863647 +917.88855 +917.807007 +917.396729 +917.343079 +917.091858 +916.998474 +917.031189 +916.756653 +916.229004 +915.611572 +915.654053 +915.374084 +914.549011 +914.272278 +914.401917 +914.328979 +914.095764 +913.897034 +913.878418 +913.664368 +913.327209 +913.214233 +913.338013 +913.577881 +913.27301 +913.147278 +913.366943 +913.475708 +913.549866 +913.658875 +913.900208 +913.990479 +914.028259 +914.297546 +914.258606 +914.287537 +914.439941 +914.312561 +914.387207 +914.368713 +914.318665 +914.400208 +914.343262 +914.36676 +914.367249 +914.339661 +914.357483 +914.309509 +914.328979 +914.297668 +914.295349 +914.366211 +914.347961 +914.347839 +914.392395 +914.343567 +914.299255 +914.349121 +914.378601 +914.320496 +914.345215 +914.363708 +914.319824 +914.337952 +914.367371 +914.363708 +914.365051 +914.36676 +914.350708 +914.379211 +914.399536 +914.38678 +914.371948 +914.366333 +914.386536 +914.416382 +914.393066 +914.34198 +914.387573 +914.393677 +914.405457 +914.441528 +914.490662 +914.513428 +914.405029 +914.38446 +914.37677 +914.35968 +914.453613 +914.540283 +914.48999 +914.460022 +914.515381 +914.42926 +914.517212 +914.554443 +914.531799 +914.619507 +914.541809 +914.507324 +914.482971 +914.492615 +914.465881 +914.446838 +914.556152 +914.471497 +914.385254 +914.404114 +914.437195 +914.385864 +914.36853 +914.471863 +914.466919 +914.474365 +914.531128 +914.458435 +914.449585 +914.599548 +914.560181 +914.482971 +914.578552 +914.51355 +914.502075 +914.651001 +914.770874 +914.899048 +914.94989 +914.900085 +915.007996 +915.176941 +915.096313 +915.057861 +915.119263 +915.165527 +915.385132 +915.281555 +915.374756 +915.440796 +915.481934 +915.58905 +915.493164 +915.653809 +915.531494 +915.588257 +915.715271 +915.583862 +915.65448 +915.659668 +915.733276 +915.704102 +915.664856 +915.72937 +915.696899 +915.698853 +915.71582 +915.701721 +915.701599 +915.711365 +915.70813 +915.711792 +915.692383 +915.670715 +915.680908 +915.682739 +915.67688 +915.672974 +915.702393 +915.706726 +915.706299 +915.694946 +915.681946 +915.702637 +915.684448 +915.707886 +915.721558 +915.700806 +915.751526 +915.79541 +915.796448 +915.856018 +915.922607 +915.98053 +916.127136 +916.177551 +916.138611 +916.152405 +916.280457 +916.310852 +916.196411 +916.342712 +916.349792 +916.349487 +916.606934 +916.611633 +916.561462 +916.675903 +916.798584 +916.844177 +916.700378 +916.743347 +916.860474 +916.816589 +916.856445 +916.880676 +916.787659 +916.919495 +916.984131 +916.837708 +917.015686 +917.025696 +916.932007 +917.019958 +917.026489 +917.012146 +916.988586 +917.000305 +917.052368 +917.070618 +917.040039 +917.028442 +917.046814 +917.05957 +917.03949 +917.052368 +917.045898 +917.02832 +917.055664 +917.02832 +917.023987 +917.052795 +917.051086 +917.049255 +917.029724 +917.048889 +917.071045 +917.051331 +917.087952 +917.066711 +917.037659 +917.079895 +917.048218 +917.051208 +917.145813 +917.161194 +917.055664 +917.056946 +917.102173 +917.074158 +917.172546 +917.103882 +917.051758 +917.145691 +917.128601 +917.126404 +917.09436 +917.090576 +917.202881 +917.287842 +917.292786 +917.22113 +917.246887 +917.279846 +917.303345 +917.140991 +917.07428 +917.3703 +917.421082 +917.383423 +917.461731 +917.622375 +917.672546 +917.693359 +918.036194 +918.026672 +917.948486 +917.991333 +918.052307 +917.989807 +917.888794 +918.167603 +918.085266 +917.863647 +918.041626 +918.045959 +917.870178 +917.97821 +917.99408 +918.023376 +917.973511 +917.911987 +918.09491 +918.067322 +918.013245 +918.088135 +918.126587 +918.217773 +918.272644 +918.278503 +918.326172 +918.324219 +918.322937 +918.320679 +918.312988 +918.323975 +918.305176 +918.350281 +918.325928 +918.294678 +918.322815 +918.288269 +918.3172 +918.303528 +918.293335 +918.330872 +918.299194 +918.297485 +918.302063 +918.281982 +918.293091 +918.305969 +918.296631 +918.311218 +918.32373 +918.315247 +918.329163 +918.301453 +918.283569 +918.300232 +918.311829 +918.358459 +918.394958 +918.513794 +918.514587 +918.385437 +918.499451 +918.447998 +918.557312 +918.575684 +918.484863 +918.604736 +918.648376 +918.60968 +918.399902 +918.844543 +919.084412 +919.196594 +919.162476 +918.767944 +919.514465 +919.64856 +919.020691 +919.219116 +919.46405 +919.357361 +919.251587 +919.459656 +919.576233 +919.424622 +919.438782 +919.562927 +920.100647 +920.240417 +919.981445 +920.164185 +920.434021 +920.33551 +919.849731 +920.048401 +920.085022 +919.82251 +920.062195 +920.177612 +920.314941 +920.041077 +920.241211 +920.518066 +920.137512 +920.170349 +920.436646 +920.523804 +920.312195 +920.28241 +920.706482 +920.58844 +920.612671 +920.684326 +920.615906 +920.808044 +920.92218 +920.918274 +920.837891 +921.002747 +920.923218 +920.834106 +921.007935 +920.943726 +920.911621 +920.920776 +920.992798 +920.97876 +920.968689 +920.989807 +920.93573 +920.91272 +920.891602 +920.945923 +920.956482 +920.98175 +921.015869 +920.952698 +920.94397 +920.957397 +920.960632 +920.958923 +920.978882 +920.980835 +920.966125 +921.001648 +921.011169 +920.987061 +920.968872 +920.98645 +920.994751 +920.987976 +920.988892 +921.014465 +920.99762 +920.955017 +920.995789 +921.046631 +921.026184 +921.00061 +920.997131 +920.99762 +920.968994 +920.977966 +920.97821 +921.0224 +921.05835 +920.994141 +921.033997 +921.002869 +920.937195 +920.957886 +920.999573 +921.008057 +921.016296 +921.08374 +921.03595 +921.008179 +921.110474 +921.12793 +921.055481 +921.128723 +921.292603 +921.239075 +921.280212 +921.27356 +921.155273 +921.353027 +921.255615 +921.391602 +921.50238 +921.220398 +921.458069 +921.509521 +921.356689 +921.630676 +921.758484 +921.649597 +921.565002 +921.432007 +921.4776 +921.580383 +921.600586 +921.635132 +921.802917 +921.803955 +922.041321 +922.288757 +922.133728 +922.297729 +922.224915 +922.13446 +922.281067 +922.201965 +922.253967 +922.280945 +922.193115 +922.101013 +922.184265 +922.268005 +922.223083 +922.25177 +922.198975 +922.299011 +922.260864 +922.173462 +922.271179 +922.268555 +922.320679 +922.261108 +922.263733 +922.314026 +922.295105 +922.299316 +922.337097 +922.34021 +922.305176 +922.33551 +922.338928 +922.305664 +922.328613 +922.338257 +922.323792 +922.333191 +922.351929 +922.346191 +922.332153 +922.333557 +922.316895 +922.350769 +922.355591 +922.31781 +922.344788 +922.325378 +922.309326 +922.323242 +922.338623 +922.323914 +922.312317 +922.343323 +922.333557 +922.327026 +922.339539 +922.354004 +922.339661 +922.340698 +922.356384 +922.308289 +922.32196 +922.347229 +922.324036 +922.327332 +922.338135 +922.354675 +922.332153 +922.338257 +922.353638 +922.358826 +922.433899 +922.422791 +922.358459 +922.374451 +922.398315 +922.396118 +922.424377 +922.45459 +922.342285 +922.377075 +922.417175 +922.361206 +922.43573 +922.428772 +922.378784 +922.489136 +922.393738 +922.45697 +922.560364 +922.492615 +922.517761 +922.522095 +922.714905 +922.633972 +922.726624 +922.78772 +922.416138 +922.738098 +922.69458 +922.43988 +922.633728 +922.68988 +922.905518 +922.753723 +922.718689 +922.956177 +922.798157 +923.10144 +923.0625 +922.908386 +923.039307 +922.890381 +923.097961 +923.132874 +923.168152 +923.25647 +923.28125 +923.49585 +923.452026 +923.40802 +923.499878 +923.497498 +923.49231 +923.528137 +923.543091 +923.510803 +923.493225 +923.549255 +923.579712 +923.506653 +923.532837 +923.598206 +923.537659 +923.544128 +923.585083 +923.560303 +923.597412 +923.581787 +923.566833 +923.582214 +923.564636 +923.593933 +923.602112 +923.580505 +923.556396 +923.56604 +923.603699 +923.590942 +923.571899 +923.573975 +923.581909 +923.572571 +923.543213 +923.577087 +923.576721 +923.506348 +923.518494 +923.533325 +923.384827 +923.159424 +923.065002 +922.836975 +922.602844 +922.628906 +922.458923 +922.250305 +922.360291 +922.325623 +922.31012 +922.271912 +921.904785 +921.447754 +921.197083 +921.003479 +920.95636 +921.028625 +920.972107 +920.953735 +920.770142 +920.322144 +919.158813 +918.099365 +918.335266 +918.329834 +918.166077 +918.020691 +917.395142 +917.054626 +916.995361 +917.057373 +916.803833 +916.128174 +915.719604 +915.739502 +915.691956 +915.553894 +915.09436 +914.387573 +914.307068 +914.349915 +913.873596 +913.275757 +912.973206 +912.993835 +912.638367 +911.905701 +911.661682 +911.720703 +911.192627 +910.397522 +910.255615 +909.553284 +907.688904 +907.299377 +906.985413 +905.845398 +905.44165 +904.477173 +903.837769 +903.050171 +902.210999 +901.60437 +900.738953 +900.134888 +899.384644 +898.66748 +897.468994 +895.936707 +895.138062 +894.627075 +894.129822 +893.580872 +892.831238 +892.409302 +891.587036 +891.287354 +890.586975 +889.834717 +889.367615 +888.509583 +887.935791 +886.475037 +884.989441 +884.307617 +883.824951 +883.274475 +882.523071 +882.135925 +881.569702 +881.016357 +881.042847 +880.159851 +879.922913 +880.092773 +879.61969 +879.037964 +878.533447 +878.74823 +878.696777 +878.623657 +878.626953 +878.260864 +877.859253 +877.526855 +877.526489 +877.40564 +877.362549 +877.40686 +877.347351 +877.407166 +877.296875 +877.032593 +876.502808 +876.105103 +876.072083 +876.033142 +876.024231 +876.01947 +876.012634 +875.704834 +874.982056 +874.139343 +873.483459 +873.420654 +873.406799 +873.363953 +873.307922 +873.069702 +872.9021 +872.618286 +872.427551 +872.247314 +872.063721 +872.08606 +872.085388 +872.069763 +872.059021 +871.716736 +871.098633 +870.850159 +870.769897 +870.709961 +870.745117 +870.686951 +870.633728 +870.411255 +870.129333 +869.932495 +869.758057 +869.62207 +869.559692 +869.460022 +869.463806 +869.499268 +869.486694 +869.487061 +869.484009 +869.499756 +869.484985 +869.484741 +869.491577 +869.466064 +869.435242 +869.399292 +869.280396 +868.852234 +868.222839 +868.071167 +868.203125 +868.084534 +868.133911 +868.139282 +868.091919 +868.020264 +867.866516 +867.705444 +867.303162 +866.919006 +866.766418 +866.784973 +866.568054 +865.881348 +865.336731 +865.383972 +864.719177 +863.114868 +862.474426 +862.739563 +862.578308 +862.167419 +861.663879 +861.415344 +861.504578 +861.406067 +861.333801 +861.371887 +861.364075 +861.372864 +861.363403 +861.369934 +861.39502 +861.370728 +861.351013 +861.385254 +861.45636 +861.733398 +861.901794 +861.659485 +861.741699 +861.730957 +861.412109 +861.706726 +861.957336 +862.16217 +862.510864 +862.397522 +862.559082 +862.625671 +862.297546 +862.246216 +861.936768 +861.513245 +861.372986 +861.375793 +861.381775 +861.343994 +861.383728 +861.420532 +861.424805 +861.418945 +861.44043 +861.574158 +861.731812 +861.882751 +861.971497 +861.894653 +861.905701 +861.686829 +861.443054 +861.55719 +861.512939 +861.648193 +861.822021 +861.945435 +862.266602 +862.372803 +862.564758 +862.655823 +862.570618 +862.659241 +862.577026 +862.613464 +862.639648 +862.577148 +862.68219 +862.635437 +862.680054 +862.696899 +862.656616 +862.694092 +862.720459 +862.805969 +863.15448 +863.843994 +864.134216 +864.134216 +864.356995 +864.167114 +864.081787 +864.591187 +864.949585 +864.995056 +865.339355 +865.358032 +865.295166 +865.510132 +865.474304 +865.45282 +865.485718 +865.453003 +865.464539 +865.445862 +865.473999 +865.495056 +865.489502 +865.493713 +865.515198 +865.552368 +865.575806 +865.66748 +865.890747 +866.101624 +865.970032 +865.971375 +866.24939 +866.004883 +865.96582 +866.084534 +865.812073 +865.961792 +866.081116 +866.154419 +866.384033 +866.5625 +866.765625 +866.692322 +866.778992 +866.820129 +866.782715 +866.843811 +866.810242 +866.807434 +866.787598 +866.7995 +866.796692 +866.782227 +866.802856 +866.778442 +866.760559 +866.821777 +866.805481 +866.784973 +866.841492 +866.803406 +866.792358 +866.802734 +866.79895 +866.812866 +866.80188 +866.825867 +866.817749 +866.814819 +866.79541 +866.78595 +866.823914 +866.805664 +866.794434 +866.793091 +866.826538 +866.828796 +866.79657 +866.822266 +866.806641 +866.833191 +866.844788 +866.807129 +866.854004 +866.916443 +866.964966 +866.999146 +867.096985 +867.086792 +866.922607 +866.926636 +866.93335 +866.986267 +866.971497 +866.902527 +866.980042 +866.997681 +866.913269 +866.933044 +866.94751 +866.901794 +866.872559 +866.870178 +866.965393 +866.919373 +866.885498 +866.956787 +866.876465 +867.062805 +867.140198 +866.994568 +867.028442 +867.114258 +867.356812 +867.37793 +867.474487 +867.609985 +867.476318 +867.446045 +867.545349 +867.54126 +867.310364 +867.344727 +867.432678 +867.332703 +867.535706 +867.423706 +867.221619 +867.341492 +867.317383 +867.281677 +867.259399 +867.308411 +867.299561 +867.301086 +867.270813 +867.069519 +867.139832 +867.358093 +867.346802 +867.22467 +867.129089 +867.30481 +867.250427 +867.241943 +867.263611 +867.232483 +867.35321 +867.151733 +867.252014 +867.353333 +867.354492 +867.119324 +867.248291 +867.365723 +867.168213 +867.360168 +867.325867 +867.263123 +867.184814 +867.085266 +866.974854 +866.946838 +867.310547 +867.11261 +867.092407 +867.268005 +867.038696 +867.094238 +867.177307 +867.151245 +867.178284 +867.236389 +867.187439 +867.188843 +867.338318 +867.130066 +866.983643 +867.058899 +867.059204 +867.100098 +867.034119 +867.050415 +867.140991 +867.145081 +867.039246 +867.169312 +867.180054 +867.01709 +867.128113 +867.000122 +866.896057 +867.172913 +867.269287 +867.067566 +867.0625 +867.058105 +867.106628 +867.113586 +867.08429 +867.163452 +867.10675 +867.210693 +867.135742 +866.97699 +867.123047 +867.0625 +867.128784 +867.239197 +866.985168 +866.9646 +867.084839 +867.170166 +867.261475 +867.230225 +867.161377 +867.106628 +867.018799 +866.975159 +867.118042 +867.0755 +867.04248 +867.016541 +866.955811 +867.039856 +867.051392 +867.019043 +866.999451 +867.042297 +867.030884 +867.147156 +867.083008 +866.963318 +867.083008 +867.06073 +867.048767 +867.038696 +867.009888 +867.078735 +866.959534 +866.857117 +866.999451 +867.046082 +867.094238 +867.138062 +867.09668 +867.062988 +867.002747 +866.968323 +866.963989 +867.009033 +866.966553 +867.044128 +867.002869 +866.936279 +867.020142 +866.986877 +867.039856 +867.033813 +867.095215 +867.083984 +866.96344 +867.043762 +867.014282 +866.989197 +866.900269 +867.018066 +867.099792 +866.890015 +866.940552 +867.032532 +867.003845 +867.035461 +866.940552 +866.9646 +867.087891 +867.071472 +867.029419 +866.979736 +866.999634 +866.926025 +866.945862 +867.06427 +867.106445 +867.041321 +866.90863 +867.019653 +867.044434 +867.039673 +867.104492 +867.002563 +866.969299 +867.048645 +866.984192 +866.925537 +867.113586 +866.95105 +866.911194 +867.046204 +867.097656 +867.102539 +866.978088 +866.978638 +867.020996 +867.07373 +867.054199 +867.046814 +867.114441 +866.993774 +867.010254 +867.044556 +867.04541 +867.055298 +866.970947 +867.045837 +867.069519 +867.09436 +867.119019 +867.036743 +866.94165 +866.91803 +866.983643 +866.85437 +866.951904 +866.996704 +866.90448 +867.024902 +866.979736 +866.923401 +867.002075 +867.038208 +867.072083 +866.969543 +866.90448 +867.00177 +867.041626 +866.966736 +867.018799 +867.002197 +866.869202 +867.006958 +867.041931 +867.032349 +867.08429 +866.985596 +866.971497 +866.954834 +867.050415 +867.190979 +867.127625 +866.96637 +867.03595 +867.075195 +866.983948 +866.970276 +866.951294 +867.007629 +866.91687 +866.858276 +866.999817 +866.94281 +867.055603 +867.050293 +867.008728 +867.012939 +866.964111 +867.076782 +866.908386 +867.001404 +867.03772 +866.91687 +866.95813 +866.890686 +867.039856 +867.020996 +867.021118 +867.015442 +866.918823 +867.035095 +867.010559 +866.995239 +867.035767 +866.981018 +866.978943 +866.960083 +866.980042 +866.936951 +867.009583 +867.19342 +867.032043 +867.055481 +866.983337 +867.021118 +867.167053 +866.933167 +867.00238 +866.979736 +866.996704 +867.045532 +867.030396 +867.119019 +867.083191 +867.136902 +867.086121 +867.067383 +867.118469 +866.974426 +867.10498 +866.930908 +866.816101 +867.03772 +867.015564 +867.007935 +867.012329 +867.00238 +866.893433 +866.922424 +867.117371 +867.077454 +867.16864 +867.032166 +866.804382 +866.982971 +866.959106 +866.9729 +867.003418 +866.94812 +866.957947 +866.984192 +867.002197 +867.023682 +866.998169 +867.044739 +867.117371 +867.039001 +866.960693 +867.052673 +867.08252 +866.815247 +866.975708 +867.079102 +867.064087 +867.039551 +866.853027 +866.949341 +866.925537 +866.997498 +867.08905 +866.85907 +867.048645 +867.05072 +866.938049 +867.034668 +866.981995 +867.007446 +866.917725 +866.944885 +867.061157 +866.943237 +867.015137 +867.016846 +866.928589 +866.918518 +867.007751 +867.115417 +866.946716 +866.877441 +867.0224 +867.075806 +867.055176 +867.026489 +867.133484 +867.072083 +866.939209 +867.054321 +866.970154 +867.004028 +867.011658 +867.019165 +867.031738 +866.979919 +867.123352 +866.977783 +866.896362 +866.997681 +866.902222 +866.956604 +867.033325 +867.033142 +866.983215 +866.984314 +866.956482 +866.910339 +866.99408 +867.073425 +867.044128 +867.017395 +866.931702 +866.856323 +867.005493 +866.960388 +866.95105 +866.924255 +866.927795 +867.000793 +866.963989 +866.992981 +866.917542 +866.954651 +867.067017 +866.991638 +866.915222 +866.991455 +866.927979 +866.980591 +867.018066 +866.919006 +866.970947 +866.997192 +867.063782 +867.09198 +866.942505 +866.883972 +867.027832 +866.996521 +866.941833 +867.035645 +867.02533 +866.94519 +867.055847 +866.97113 +866.817078 +866.961853 +866.896362 +866.867371 +866.944458 +866.986572 +867.021118 +866.911194 +867.011536 +866.974182 +866.911316 +867.104004 +866.981689 +867.028259 +867.067993 +866.964111 +866.973755 +867.078125 +866.998657 +866.990173 +867.205322 +867.153992 +867.144775 +867.206787 +867.096863 +867.03186 +867.096985 +867.066589 +867.036072 +867.095703 +866.917053 +866.981567 +867.093933 +867.012207 +867.149658 +867.05011 +866.981262 +867.092957 +867.04248 +867.186584 +866.941162 +866.873108 +867.166382 +867.018494 +866.981567 +867.090698 +867.079712 +867.001892 +867.051941 +867.092102 +866.922302 +866.941528 +866.971924 +866.939575 +867.089722 +867.028259 +867.087219 +867.115234 +866.918823 +866.966064 +866.9729 +866.999451 +866.996338 +866.965942 +866.933838 +866.938232 +867.066223 +866.995911 +866.888428 +867.007935 +867.076355 +867.105164 +867.176331 +867.052917 +866.947144 +867.007324 +867.134949 +867.178284 +867.004822 +866.884521 +866.909912 +867.004517 +866.979736 +866.872131 +866.954346 +866.869507 +866.888062 +867.006958 +866.97052 +866.99115 +867.040833 +867.041199 +867.005493 +866.968872 +866.888855 +866.995056 +867.121094 +866.991455 +866.966736 +867.006104 +867.085815 +867.07959 +866.941162 +866.958435 +867.036255 +867.047668 +867.0047 +866.94812 +866.88385 +866.872253 +866.969543 +867.13855 +867.013916 +866.91156 +867.030884 +866.877319 +866.983826 +867.025879 +866.905457 +866.926208 +866.968689 +867.010254 +866.940308 +866.927307 +866.894409 +866.856934 +866.948364 +866.973572 +866.953369 +866.941528 +866.942139 +866.998169 +866.955505 +866.897644 +866.935791 +867.005371 +867.068359 +866.921753 +866.9151 +866.975403 +866.979431 +866.976807 +866.811218 +866.885803 +867.066589 +867.016113 +866.872559 +866.999939 +866.947998 +866.821655 +866.973755 +866.9151 +866.906982 +866.974854 +866.903198 +866.949097 +866.909363 +866.925659 +867.020996 +867.049438 +866.978088 +866.990356 +866.998962 +866.846741 +866.840881 +866.916199 +866.985291 diff --git a/eatit b/eatit index 9de79191eb8f8d3d1c1c7550fd5adec00d0bf95e..2413225e08ce52cca90b1d732c20984d2c6dcdfc 100755 GIT binary patch literal 53528 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

g|(0cAFQS)b`D69tu1t+#>MkM7xO9UvHQ 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 diff --git a/makefile b/makefile index 425e0f6..48d08ed 100644 --- a/makefile +++ b/makefile @@ -7,7 +7,7 @@ EXE = eatit CCC = g++ OPT = -O3 -Wall -$(EXE) : $(SRC)main.cpp $(SRC)raweat.hpp +$(EXE) : $(SRC)main.cpp $(SRC)raweat.hpp $(SRC)half_precision_floating_point.hpp $(CCC) $(OPT) $< -o $@ clean : diff --git a/src/endian.hpp b/src/endian.hpp new file mode 100644 index 0000000..2054635 --- /dev/null +++ b/src/endian.hpp @@ -0,0 +1,60 @@ +//---------------------------------------------------------------------------// + +#ifndef MY_LITTLE_ENDIAN +#define MY_LITTLE_ENDIAN + +#include + +#define IS_BIG_ENDIAN (*(uint16_t*)"\0\xff" < 0x100) + +//---------------------------------------------------------------------------// + +class endian +{ + +private: + + // endianness + bool little_endian_; + +public: + + // constructor + endian() + { + // check endianness on machine + little_endian_ = get_endian(); + } + + // provide information about little versus big endian architecture + bool get_endian() + { + // declare short (16 bit) integer representing "1" + short int wd = 0x001; + + // get byte pattern of integer + uint8_t *pwd = (uint8_t*)(&wd); + + //for ( int i = 0; i < 2; i ++ ) std::cout< +#include +#include "endian.hpp" + +//---------------------------------------------------------------------------// + +class half_precision_floating_point +{ + +private: + + // size of half precision floating point number in bits + int size_ = 16; + + // construction of the number (binary16) according to IEEE 754-2008 standard + std::bitset<1> sign_; + std::bitset<5> expo_; + std::bitset<10> frac_; + + // endianness of machine/architecture + bool little_endian_; + + // number as single-precision floating point number + float num_; + + // array of bytes representing the number + std::vector numbytes_; + +public: + + // constructors + half_precision_floating_point(std::vector numbytes) : + numbytes_(numbytes) + { + assert( numbytes_.size() == 2 ); + endian endi; + little_endian_ = endi.little_endian(); + assert( little_endian_ && "just don't work on big endian machines!" ); + } + + half_precision_floating_point(float num) : + num_(num) + { + + } + + // destructor + ~half_precision_floating_point() + { + + } + + // assignment operator + half_precision_floating_point& operator=(const half_precision_floating_point& other) + { + if ( this != &other ) + { + size_ = other.size_; + sign_ = other.sign_; + expo_ = other.expo_; + frac_ = other.frac_; + little_endian_ = other.little_endian_; + num_ = other.num_; + numbytes_ = other.numbytes_; + } + + return *this; + } + + + // convert byte pattern to number + void convert_to_float() + { + // declare a single precision floating point number + // float myfloat = 0.0; + + if ( little_endian_ ) + { + + } + + } + + // convert floating point number to bytes + void convert_to_byte() + { + + } + +}; + +#endif + +//---------------------------------------------------------------------------// + diff --git a/src/main.cpp b/src/main.cpp index c394d1f..3d796e1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,13 +9,13 @@ int main(int argc, char* argv[]) { // path of filename provided ? - assert( argc > 1 && "please provide a filename and path" ); + assert( argc > 2 && "please provide a filename and path for input and output" ); std::cout<<"number of CLI-arguments: "<> marks = eatraw.get_markers(); for ( auto mrk: marks ) { @@ -39,13 +42,32 @@ int main(int argc, char* argv[]) std::cout<<"\n"; } - eatraw.convert_data(); + // convert unsigned char data in buffer to desired data type + //eatraw.convert_data(); + eatraw.convert_data_16_bit_float(); - std::vector mydata = eatraw.get_data(); - std::cout<<"\n"< maindata = eatraw.get_data(); + std::cout<<"\nsize of data array: "<(&ab); + for ( int i = 0; i < (int)sizeof(float); i++ ) std::cout< bssc(sc); + for ( int i = 0; i < 8; i++ ) std::cout< #include #include @@ -8,6 +11,9 @@ #include #include +#include "half_precision_floating_point.hpp" +#include "endian.hpp" + //---------------------------------------------------------------------------// class raw_eater @@ -40,6 +46,9 @@ private: // data sections corresponding to markers std::map> datasec_; + // length of data array + unsigned long int datsize_; + // TODO preliminary: for now, we assume 32/64 bit ? floats in all data std::vector datmes_; @@ -61,17 +70,6 @@ public: (std::istreambuf_iterator())); rawdata_ = rawdata; - // show size of buffer - std::cout<<"size of buffer "<>(mrk.first,markseq)); } @@ -198,12 +215,9 @@ public: // convert actual measurement data void convert_data() { - // length of data array - unsigned long int datsize = datasec_["datas marker"].size(); + assert ( (datsize_-28)%4 == 0 && "length of buffer is not a multiple of 4" ); - assert ( (datsize-28)%4 == 0 && "length of buffer is not a multiple of 4" ); - - unsigned long int totnumfl = (datsize-28)/4; + unsigned long int totnumfl = (datsize_-28)/(int)sizeof(float); for ( unsigned long int numfl = 0; numfl < totnumfl; numfl++ ) { // assuming 4 byte float @@ -211,6 +225,8 @@ public: uint8_t* pnum = reinterpret_cast(&num); for ( int byi = 0; byi < (int)sizeof(float); byi++ ) { + // TODO what's the byte order in the file?? + // for now, we just don't care... pnum[byi] = (int)datasec_["datas marker"][(unsigned long int)(28+numfl*sizeof(float)+byi)]; } @@ -219,6 +235,61 @@ public: } } + // convert half-precision (16bit) floating point numbers + void convert_data_16_bit_float() + { + // single (32bit) floating point number + float fl = 0.0; + + unsigned long int totnumby = (datsize_-28)/2; + for ( unsigned long int by = 0; by < totnumby; by++ ) + { + // retrieve two bytes of floating point number + std::vector pnum; + for ( int i = 0; i < 2; i++ ) pnum.push_back(datasec_["datas marker"][(unsigned long int)(28+by*2+i)]); + + // obtain bitset + std::bitset<8> byA(pnum[0]), byB(pnum[1]); + + // TODO all following code only works for little endian!! + + // sign + float sign = byB[0]; + + // exponent of 16bit float + long int expo = 0; + for ( int i = 0; i < 5; i++ ) if ( byB[1+i] ) expo += pow(2.0,4-i); + expo -= 15; + + // convert to exponent of 32bit float + + + // mantissa + + + // declare bitset of float + std::bitset<8> flA(0x00), flB(0x00), flC(0x00), flD(0x00); + + + } + } + + // convert 16bit "decimal-encoding" floating point numbers + void convert_data_16_bit_decimal() + { + //assert ( (datsize_-29)%2 == 0 && "length of buffer is not a multiple of 2" ); + + unsigned long int totnumby = (datsize_-30)/2; + for ( unsigned long int by = 0; by < totnumby; by++ ) + { + std::vector pnum; + for ( int i = 0; i < 2; i++ ) pnum.push_back(datasec_["datas marker"][(unsigned long int)(29+by*2+i)]); + + datmes_.push_back((double)( (((int)pnum[0]-128)*256 + (int)pnum[1])/100.0 )); + + } + } + // get data array encoded as floats/doubles std::vector& get_data() { @@ -226,14 +297,14 @@ public: } // write data to csv-like file - void write_data(std::string filename) + void write_data(std::string filename, int precision = 9) { // open file std::ofstream fout(filename.c_str()); for ( auto el : datmes_ ) { - fout<