IntroToPolyGen.pdf Welcome to PolyGen.exe A Free, Powerful, Even-Order Polynomial Coefficient Generator: Exact by default to: 8th order & 2,000+ coefficients. Real (non-exact) by custom configuration to: 20th order & 2,000+ coefficients The enabling math & tech: Computing adjoints and determinants involve no division; hence any matrix with integer coefficients has an inverse with exact rational coefficients. & Real*16 (128-bit) variables have 31 significant digits; which supports tracking integer values up to 1 octillion. Adjoint integers grow faster than the determinant integers. My (this) cookbook reverse-engineers the key 2,4,6,& 8th order integer divisors which exactify the real*16 inversion results when rounded to the nearest integer. [PolyGen.f95 - source code lines #337-#340.] The computed coefficients are decoupled from one another, so you can compute just one, or a few, if you so choose. The central accomplishment of matrix inversion itself is completely decoupled quantification wherein outputs `reverse-engineer` inputs. Consider that: 'Higher powers' existing in exact -and- predictive harmony resembles a breath of fresh air in the world of social thought. Measurement noise(s) will degrade higher power coefficients. Fortunately real*8 and real*16 math models bypass the noise problem. Your rsults will go wild if you sample on a domain that has discontinuous derivatives. Trying to quantify exact higher power coefficients in a noisy data environment is a fool's errand. Therein use PseudoInverse Analysis, e.g. my 'Tweak-Engine', & oversampling instead. Elsewhere on my website, in source file Tweak-Engine.f95, dated 2018.10.09, lines #895-#903, you'll see two examples which were my first intentional use of exact inverses. The Exact polynomial Generator is similar to Genachi Taguchi's "Designed Experiments" templates in that exact Coe[,] arrays form post-inversion ~ addative solution spaces. Link: http://ftp.setterholm.com/ExactInversePolynomials/PolyGen.zip Analyst: Jeff Setterholm Lakeville MN 55044 USA Thursday 2020.04.08 ********, PolyGen.exe is post-copyright i.e.:FREE ,******** ^ Version 1.0 04/06/2021 06:11 AM ********, Polyize.exe is post-copyright i.e.:FREE ,******** ^ Version 1.1 04/06/2021 04:43 PM My legal disclaimer: *********************************************************** ******** Individual cognition is always flawed ******** ******** including yours & mine. ******** ******** - So: - ******** ******** Use these results at your own risk. ******** *********************************************************** Mitigate malfunctions. Nurture synergies. !------------------------------------------------------------------------------ PolyGen.exe & Polyize.exe runs on my WinXP & Win10 computers. Zip-Directory.txt summarizes the files provided. \Source-ColorCodedPdf - has the three color-coded the Fortran 95 source files. Comments are in red. My compiler is Absoft Pro Fortran 9.0, 2004. 1948 lines of code total. !------------------------------------------------------------------------------ Times associated with generating a pair of example matrices: !--- Start 2021.03.31.1754.23.109 PolyGen.ini 1, 4 !#of independent variables [1,2,3,4,5,6,7,8,9,10] 2,8,8,2,2 !Order (power) for each variable 3, 1 !Polynomial class: 1:exact, 2:Unscaled 4, 218422. !Time estimate coefficient (from my 2004 computer) 0, !///Ends the .ini file read/// 729, :# of Poly Coeff`s !--- Data entry - done 2021.03.31.1754.23.125 !--- task`s time: . . . 16 !--- Powers matrix - done 2021.03.31.1754.23.953 !--- task`s time: . . .828 !--- Powers matrix - inverted 2021.03.31.1757.01.203 !--- task`s time: . 2.37.250 !--- Coeffs matrix - done 2021.03.31.1757.01.343 !--- task`s time: . . .140 PCoesE42288.bin Binary file data write/read sequence- integer*4`s & real*16`s: 4, i* 4 nVT -Number of independent variables fixed size 4, i* 4 nOrdMax -Highest order variable ` ` 4, i* 4 nCT -Number of polynomial coefficients ` ` 40, i* 4 nOrd(20) -Order of each variable ` ` 4, i* 4 iPolyClass-=1:exact, =2:unscaled ` ` 4, i* 4 iCoeDigits- +***. <-count ` ` 4, i* 4 iCoeDeciPl-number of digits after . ` ` 16, r*16 CoeDiv -Coe[,] matrix dividing factor ` ` 16, r*16 CoeMax -AbsMax Coe[,] value after divide ` ` 4, i* 4 iPowDigits- +***. <-count ` ` 4, i* 4 iPowDeciPl-number of digits after . ` ` 16, r*16 PowDiv -Pow[,] matrix dividing factor ` ` 16, r*16 PowMax -AbsMax Pow[,] value after divide ` ` 576, r*16 X[0:nOrdMax,nVT] -Variable values to use allocated 11664, i* 4 nVnC[nVT ,nCT] -Values combinations sequence ` 8503056, r*16 Coe[ nCT ,nCT] -The coefficients solver ` 8503056, r*16 Pow[ nCT ,nCT] Coe[,] = inverse(Pow[,]) ` 17018488, Total Bytes 0.002 :write-time-minutes ballpark !--- Binary file - exported 17,018,488, Total Bytes 2021.03.31.1757.01.562 !--- task`s time: . . .219 !--- Done. 2021.03.31.1757.01.562 !--- Elapsed time: . 2.38.453 year ^m ^d ^h^m ^s ^ms !------------------------------------------------------------------------------ In PolyGen.f95: ~ Lines 28 -158 Key variables: !---------------------------------------------------------------------------7 9 Subroutine CoefficientCount(iP): Number of polynomial coefficients <= 9999 for 7 variables up to order 20 Order of v1 = 0 2 4 6 8| 10 12 14 16 18 20 ----------------- <-exact|unscaled-> ------------------ 1 V2 = 0 1 3 5 7 9| 11 13 15 17 19 21 2 2 9 15 21 27| 33 39 45 51 57 63 3 4 25 35 45| 55 65 75 85 95 105 4 6 49 63| 77 91 105 119 133 147 5 8 81| 99 117 135 153 171 189 6 10 | 121 143 165 187 209 231 7 12 | 169 195 221 247 273 8 14 | 225 255 285 315 9 16 | 289 323 357 10 18 | 361 399 11 V3 = 0 20 | 441 12 2 2 27 45 63 81| 99 117 135 153 171 189 13 2 4 75 105 135| 165 195 225 255 285 315 14 2 6 147 189| 231 273 315 357 399 441 15 2 8 243| 297 351 405 459 513 567 16 2 10 | 363 429 495 561 627 693 17 2 12 | 507 585 663 741 819 18 2 14 | 675 765 855 945 19 2 16 | 867 969 1071 20 2 18 | 1083 1197 21 2 20 | 1323 22 4 4 125 175 225| 275 325 375 425 475 525 23 4 6 245 315| 385 455 525 595 665 735 24 4 8 405| 495 585 675 765 855 945 25 4 10 | 605 715 825 935 1045 1155 26 4 12 | 845 975 1105 1235 1365 27 4 14 | 1125 1275 1425 1575 28 4 16 | 1445 1615 1785 29 4 18 | 1805 1995 30 4 20 | 2205 31 6 6 343 441| 539 637 735 833 931 1029 32 6 8 567| 693 819 945 1071 1197 1323 33 6 10 | 847 1001 1155 1309 1463 1617 34 6 12 | 1183 1365 1547 1729 1911 35 6 14 | 1575 1785 1995 2205 36 6 16 | 2023 2261 2499 37 6 18 | 2527 2793 38 6 20 | 3087 39 8 8 729| 891 1053 1215 1377 1539 1701 40 8 10 |1089 1287 1485 1683 1881 2079 41 8 12 | 1521 1755 1989 2223 2457 42 8 14 | 2025 2295 2565 2835 43 8 16 | 2601 2907 3213 44 8 18 | 3249 3591 45 8 20 | 3969 46 10 10 |1331 1573 1815 2057 2299 2541 47 10 12 | 1859 2145 2431 2717 3003 48 10 14 | 2475 2805 3135 3465 49 10 16 | 3179 3553 3927 50 10 18 | 3971 4389 51 10 20 | 4851 52 12 12 | 2197 2535 2873 3211 3549 53 12 14 | 2925 3315 3705 4095 54 12 16 | 3757 4199 4641 55 12 18 | 4693 5187 56 12 20 | 5733 57 14 14 | 3375 3825 4275 4725 58 14 16 | 4335 4845 5355 59 14 18 | 5415 5985 60 14 20 | 6615 61 16 16 | 4913 5491 6069 62 16 18 | 6137 6783 63 16 20 | 7497 64 18 18 | 6859 7581 65 18 20 | 8379 66 V4 = 0 20 20 | 9261 67 2 2 2 81 135 189 243| 297 351 405 459 513 567 68 2 2 4 225 315 405| 495 585 675 765 855 945 69 2 2 6 441 567| 693 819 945 1071 1197 1323 70 2 2 8 729| 891 1053 1215 1377 1539 1701 71 2 2 10 |1089 1287 1485 1683 1881 2079 72 2 2 12 | 1521 1755 1989 2223 2457 73 2 2 14 | 2025 2295 2565 2835 74 2 2 16 | 2601 2907 3213 75 2 2 18 | 3249 3591 76 2 2 20 | 3969 77 2 4 4 375 525 675| 825 975 1125 1275 1425 1575 78 2 4 6 735 945|1155 1365 1575 1785 1995 2205 79 2 4 8 1215|1485 1755 2025 2295 2565 2835 80 2 4 10 |1815 2145 2475 2805 3135 3465 81 2 4 12 | 2535 2925 3315 3705 4095 82 2 4 14 | 3375 3825 4275 4725 83 2 4 16 | 4335 4845 5355 84 2 4 18 | 5415 5985 85 2 4 20 | 6615 86 2 6 6 1029 1323|1617 1911 2205 2499 2793 3087 87 2 6 8 1701|2079 2457 2835 3213 3591 3969 88 2 6 10 |2541 3003 3465 3927 4389 4851 89 2 6 12 | 3549 4095 4641 5187 5733 90 2 6 14 | 4725 5355 5985 6615 91 2 6 16 | 6069 6783 7497 92 2 6 18 | 7581 8379 93 2 6 20 | 9261 94 2 8 8 2187|2673 3159 3645 4131 4617 5103 95 2 8 10 |3267 3861 4455 5049 5643 6237 96 2 8 12 | 4563 5265 5967 6669 7371 97 2 8 14 | 6075 6885 7695 8505 98 2 8 16 | 7803 8721 9639 99 2 8 18 | 9747 100 2 10 10 |3993 4719 5445 6171 6897 7623 101 2 10 12 | 5577 6435 7293 8151 9009 102 2 10 14 | 7425 8415 9405 103 2 10 16 | 9537 104 2 12 12 | 6591 7605 8619 9633 105 2 12 14 | 8775 9945 106 4 4 4 625 875 1125|1375 1625 1875 2125 2375 2625 107 4 4 6 1225 1575|1925 2275 2625 2975 3325 3675 108 4 4 8 2025|2475 2925 3375 3825 4275 4725 109 4 4 10 |3025 3575 4125 4675 5225 5775 110 4 4 12 | 4225 4875 5525 6175 6825 111 4 4 14 | 5625 6375 7125 7875 112 4 4 16 | 7225 8075 8925 113 4 4 18 | 9025 9975 114 4 6 6 1715 2205|2695 3185 3675 4165 4655 5145 115 4 6 8 2835|3465 4095 4725 5355 5985 6615 116 4 6 10 |4235 5005 5775 6545 7315 8085 117 4 6 12 | 5915 6825 7735 8645 9555 118 4 6 14 | 7875 8925 9975 119 4 8 8 3645|4455 5265 6075 6885 7695 8505 120 4 8 10 |5445 6435 7425 8415 9405 121 4 8 12 | 7605 8775 9945 122 4 10 10 |6655 7865 9075 123 4 10 12 | 9295 124 6 6 6 2401 3087|3773 4459 5145 5831 6517 7203 125 6 6 8 3969|4851 5733 6615 7497 8379 9261 126 6 6 10 |5929 7007 8085 9163 127 6 6 12 | 8281 9555 128 6 8 8 5103|6237 7371 8505 9639 129 6 8 10 |7623 9009 130 6 10 10 |9317 131 8 8 8 6561|8019 9477 132 V5 = 0 8 8 10 |9801 133 2 2 2 2 243 405 567 729| 891 1053 1215 1377 1539 1701 134 2 2 2 4 675 945 1215|1485 1755 2025 2295 2565 2835 135 2 2 2 6 1323 1701|2079 2457 2835 3213 3591 3969 136 2 2 2 8 2187|2673 3159 3645 4131 4617 5103 137 2 2 2 10 |3267 3861 4455 5049 5643 6237 138 2 2 2 12 | 4563 5265 5967 6669 7371 139 2 2 2 14 | 6075 6885 7695 8505 140 2 2 2 16 | 7803 8721 9639 141 2 2 2 18 | 9747 142 2 2 4 4 1125 1575 2025|2475 2925 3375 3825 4275 4725 143 2 2 4 6 2205 2835|3465 4095 4725 5355 5985 6615 144 2 2 4 8 3645|4455 5265 6075 6885 7695 8505 145 2 2 4 10 |5445 6435 7425 8415 9405 146 2 2 4 12 | 7605 8775 9945 147 2 2 6 6 3087 3969|4851 5733 6615 7497 8379 9261 148 2 2 6 8 5103|6237 7371 8505 9639 149 2 2 6 10 |7623 9009 150 2 2 8 8 6561|8019 9477 151 2 2 8 10 |9801 152 2 4 4 4 1875 2625 3375|4125 4875 5625 6375 7125 7875 153 2 4 4 6 3675 4725|5775 6825 7875 8925 9975 154 2 4 4 8 6075|7425 8775 155 2 4 4 10 |9075 156 2 4 6 6 5145 6615|8085 9555 157 2 4 6 8 8505| 158 2 6 6 6 7203 9261| 159 4 4 4 4 3125 4375 5625|6875 8125 9375 160 4 4 4 6 6125 7875|9625 161 V6 = 0 4 4 6 6 8575 | 162 2 2 2 2 2 729 1215 1701 2187|2673 3159 3645 4131 4617 5103 163 2 2 2 2 4 2025 2835 3645|4455 5265 6075 6885 7695 8505 164 2 2 2 2 6 3969 5103|6237 7371 8505 9639 165 2 2 2 2 8 6561|8019 9477 166 2 2 2 2 10 |9801 167 2 2 2 4 4 3375 4725 6075|7425 8775 168 2 2 2 4 6 6615 8505| 169 2 2 2 6 6 9261 | 170 2 2 4 4 4 5625 7875 | 171V7=0 2 4 4 4 4 9375 | 172 2 2 2 2 2 2 2187 3645 5103 6561|8019 9477 173 2 2 2 2 2 4 6075 8505 | ----------------- <-exact|unscaled-> ------------------