diff --git a/regtest/.gitignore b/regtest/.gitignore index 3264cf4dc8..c60d3ac3c5 100644 --- a/regtest/.gitignore +++ b/regtest/.gitignore @@ -6,6 +6,7 @@ !/adjmat !/function !/analysis +!/annfunc !/basic !/crystallization !/dimred diff --git a/regtest/annfunc/Makefile b/regtest/annfunc/Makefile new file mode 100644 index 0000000000..42480767ae --- /dev/null +++ b/regtest/annfunc/Makefile @@ -0,0 +1,2 @@ +include ../scripts/module.make + diff --git a/regtest/annfunc/rt-test/Makefile b/regtest/annfunc/rt-test/Makefile new file mode 100644 index 0000000000..f61096e589 --- /dev/null +++ b/regtest/annfunc/rt-test/Makefile @@ -0,0 +1 @@ +include ../../scripts/test.make \ No newline at end of file diff --git a/regtest/annfunc/rt-test/colvar.reference b/regtest/annfunc/rt-test/colvar.reference new file mode 100644 index 0000000000..974deee475 --- /dev/null +++ b/regtest/annfunc/rt-test/colvar.reference @@ -0,0 +1,547 @@ +#! FIELDS time ann.node-0 + 0.000000 -0.1600 + 1.000000 -0.2244 + 2.000000 -0.1779 + 3.000000 -0.2043 + 4.000000 -0.2146 + 5.000000 -0.2260 + 6.000000 -0.2246 + 7.000000 -0.1911 + 8.000000 -0.2152 + 9.000000 -0.1664 + 10.000000 -0.2112 + 11.000000 -0.1923 + 12.000000 -0.1593 + 13.000000 -0.1505 + 14.000000 -0.2192 + 15.000000 -0.2358 + 16.000000 -0.2285 + 17.000000 -0.2250 + 18.000000 -0.2228 + 19.000000 -0.1522 + 20.000000 -0.1893 + 21.000000 -0.1555 + 22.000000 -0.2239 + 23.000000 -0.1643 + 24.000000 -0.1760 + 25.000000 -0.2066 + 26.000000 -0.1706 + 27.000000 -0.1779 + 28.000000 -0.2105 + 29.000000 -0.2038 + 30.000000 -0.2209 + 31.000000 -0.1305 + 32.000000 -0.1553 + 33.000000 -0.2221 + 34.000000 -0.1729 + 35.000000 -0.1939 + 36.000000 -0.1643 + 37.000000 -0.1872 + 38.000000 -0.2203 + 39.000000 -0.1524 + 40.000000 -0.2037 + 41.000000 -0.1847 + 42.000000 -0.1967 + 43.000000 -0.2162 + 44.000000 -0.2228 + 45.000000 -0.2116 + 46.000000 -0.1600 + 47.000000 -0.1508 + 48.000000 -0.2180 + 49.000000 -0.1468 + 50.000000 -0.1772 + 51.000000 -0.2082 + 52.000000 -0.1574 + 53.000000 -0.1669 + 54.000000 -0.1577 + 55.000000 -0.1881 + 56.000000 -0.1616 + 57.000000 -0.1512 + 58.000000 -0.1864 + 59.000000 -0.2164 + 60.000000 -0.1762 + 61.000000 -0.1348 + 62.000000 -0.1596 + 63.000000 -0.1798 + 64.000000 -0.2034 + 65.000000 -0.2040 + 66.000000 -0.2041 + 67.000000 -0.1468 + 68.000000 -0.1741 + 69.000000 -0.2051 + 70.000000 -0.2081 + 71.000000 -0.1503 + 72.000000 -0.2214 + 73.000000 -0.2125 + 74.000000 -0.1413 + 75.000000 -0.1471 + 76.000000 -0.1842 + 77.000000 -0.1522 + 78.000000 -0.2026 + 79.000000 -0.1624 + 80.000000 -0.1828 + 81.000000 -0.1994 + 82.000000 -0.1724 + 83.000000 -0.1543 + 84.000000 -0.1491 + 85.000000 -0.2203 + 86.000000 -0.1489 + 87.000000 -0.1405 + 88.000000 -0.1709 + 89.000000 -0.2173 + 90.000000 -0.1893 + 91.000000 -0.2022 + 92.000000 -0.2278 + 93.000000 -0.2359 + 94.000000 -0.2148 + 95.000000 -0.2132 + 96.000000 -0.1264 + 97.000000 -0.2102 + 98.000000 -0.1432 + 99.000000 -0.1465 + 100.000000 -0.1351 + 101.000000 -0.2149 + 102.000000 -0.2155 + 103.000000 -0.1985 + 104.000000 -0.1980 + 105.000000 -0.2348 + 106.000000 -0.1614 + 107.000000 -0.1720 + 108.000000 -0.1857 + 109.000000 -0.2063 + 110.000000 -0.1978 + 111.000000 -0.1790 + 112.000000 -0.1846 + 113.000000 -0.1496 + 114.000000 -0.1477 + 115.000000 -0.1602 + 116.000000 -0.1389 + 117.000000 -0.1531 + 118.000000 -0.1525 + 119.000000 -0.1435 + 120.000000 -0.1489 + 121.000000 -0.1343 + 122.000000 -0.1394 + 123.000000 -0.1312 + 124.000000 -0.1687 + 125.000000 -0.1443 + 126.000000 -0.2036 + 127.000000 -0.1605 + 128.000000 -0.2137 + 129.000000 -0.1508 + 130.000000 -0.1696 + 131.000000 -0.2217 + 132.000000 -0.1835 + 133.000000 -0.2134 + 134.000000 -0.1703 + 135.000000 -0.1305 + 136.000000 -0.2205 + 137.000000 -0.2068 + 138.000000 -0.1687 + 139.000000 -0.1477 + 140.000000 -0.1814 + 141.000000 -0.1697 + 142.000000 -0.1403 + 143.000000 -0.1975 + 144.000000 -0.1617 + 145.000000 -0.1729 + 146.000000 -0.2072 + 147.000000 -0.1975 + 148.000000 -0.1272 + 149.000000 -0.1453 + 150.000000 -0.1703 + 151.000000 -0.1505 + 152.000000 -0.1574 + 153.000000 -0.2166 + 154.000000 -0.1708 + 155.000000 -0.2118 + 156.000000 -0.2068 + 157.000000 -0.1755 + 158.000000 -0.2063 + 159.000000 -0.2221 + 160.000000 -0.1329 + 161.000000 -0.1233 + 162.000000 -0.1778 + 163.000000 -0.1614 + 164.000000 -0.1451 + 165.000000 -0.1454 + 166.000000 -0.1296 + 167.000000 -0.1494 + 168.000000 -0.1836 + 169.000000 -0.1403 + 170.000000 -0.1645 + 171.000000 -0.1992 + 172.000000 -0.2242 + 173.000000 -0.1476 + 174.000000 -0.2280 + 175.000000 -0.2134 + 176.000000 -0.1488 + 177.000000 -0.1498 + 178.000000 -0.1532 + 179.000000 -0.1310 + 180.000000 -0.1511 + 181.000000 -0.1762 + 182.000000 -0.2102 + 183.000000 -0.2271 + 184.000000 -0.2123 + 185.000000 -0.1844 + 186.000000 -0.2065 + 187.000000 -0.1862 + 188.000000 -0.1656 + 189.000000 -0.1915 + 190.000000 -0.2154 + 191.000000 -0.1363 + 192.000000 -0.1214 + 193.000000 -0.1874 + 194.000000 -0.1312 + 195.000000 -0.1682 + 196.000000 -0.1744 + 197.000000 -0.1315 + 198.000000 -0.2040 + 199.000000 -0.1233 + 200.000000 -0.1351 + 201.000000 -0.1410 + 202.000000 -0.1514 + 203.000000 -0.1016 + 204.000000 -0.2187 + 205.000000 -0.1715 + 206.000000 -0.1565 + 207.000000 -0.2184 + 208.000000 -0.1346 + 209.000000 -0.1656 + 210.000000 -0.1846 + 211.000000 -0.1552 + 212.000000 -0.2120 + 213.000000 -0.2223 + 214.000000 -0.2175 + 215.000000 -0.1331 + 216.000000 -0.1438 + 217.000000 -0.1484 + 218.000000 -0.2166 + 219.000000 -0.1685 + 220.000000 -0.1701 + 221.000000 -0.2111 + 222.000000 -0.2298 + 223.000000 -0.2130 + 224.000000 -0.1746 + 225.000000 -0.2072 + 226.000000 -0.1320 + 227.000000 -0.1992 + 228.000000 -0.2196 + 229.000000 -0.2067 + 230.000000 -0.1496 + 231.000000 -0.2293 + 232.000000 -0.1851 + 233.000000 -0.1654 + 234.000000 -0.1923 + 235.000000 -0.2224 + 236.000000 -0.2264 + 237.000000 -0.1739 + 238.000000 -0.1300 + 239.000000 -0.1389 + 240.000000 -0.1475 + 241.000000 -0.1405 + 242.000000 -0.1811 + 243.000000 -0.2228 + 244.000000 -0.1508 + 245.000000 -0.1657 + 246.000000 -0.1370 + 247.000000 -0.1632 + 248.000000 -0.2123 + 249.000000 -0.2167 + 250.000000 -0.1879 + 251.000000 -0.1927 + 252.000000 -0.2102 + 253.000000 -0.1881 + 254.000000 -0.2175 + 255.000000 -0.2193 + 256.000000 -0.2086 + 257.000000 -0.1327 + 258.000000 -0.1816 + 259.000000 -0.1941 + 260.000000 -0.1355 + 261.000000 -0.1633 + 262.000000 -0.1978 + 263.000000 -0.1981 + 264.000000 -0.2143 + 265.000000 -0.2173 + 266.000000 -0.1767 + 267.000000 -0.1592 + 268.000000 -0.1379 + 269.000000 -0.1600 + 270.000000 -0.1324 + 271.000000 -0.1821 + 272.000000 -0.1844 + 273.000000 -0.1502 + 274.000000 -0.1676 + 275.000000 -0.1820 + 276.000000 -0.2066 + 277.000000 -0.2136 + 278.000000 -0.2112 + 279.000000 -0.1962 + 280.000000 -0.1950 + 281.000000 -0.1971 + 282.000000 -0.2043 + 283.000000 -0.1435 + 284.000000 -0.2004 + 285.000000 -0.1534 + 286.000000 -0.1710 + 287.000000 -0.1668 + 288.000000 -0.2148 + 289.000000 -0.1875 + 290.000000 -0.1505 + 291.000000 -0.1671 + 292.000000 -0.1872 + 293.000000 -0.2148 + 294.000000 -0.1994 + 295.000000 -0.2155 + 296.000000 -0.1678 + 297.000000 -0.2027 + 298.000000 -0.2132 + 299.000000 -0.1980 + 300.000000 -0.1851 + 301.000000 -0.1753 + 302.000000 -0.2156 + 303.000000 -0.1543 + 304.000000 -0.1783 + 305.000000 -0.2041 + 306.000000 -0.1638 + 307.000000 -0.1576 + 308.000000 -0.2080 + 309.000000 -0.2176 + 310.000000 -0.2144 + 311.000000 -0.2057 + 312.000000 -0.1781 + 313.000000 -0.1937 + 314.000000 -0.1972 + 315.000000 -0.2165 + 316.000000 -0.1939 + 317.000000 -0.2149 + 318.000000 -0.1930 + 319.000000 -0.2160 + 320.000000 -0.1985 + 321.000000 -0.2274 + 322.000000 -0.2240 + 323.000000 -0.2147 + 324.000000 -0.1999 + 325.000000 -0.1985 + 326.000000 -0.2240 + 327.000000 -0.1772 + 328.000000 -0.1995 + 329.000000 -0.1788 + 330.000000 -0.1942 + 331.000000 -0.2237 + 332.000000 -0.1881 + 333.000000 -0.1897 + 334.000000 -0.2258 + 335.000000 -0.2004 + 336.000000 -0.1856 + 337.000000 -0.2020 + 338.000000 -0.1934 + 339.000000 -0.2192 + 340.000000 -0.2203 + 341.000000 -0.2011 + 342.000000 -0.1825 + 343.000000 -0.1970 + 344.000000 -0.1765 + 345.000000 -0.1899 + 346.000000 -0.1725 + 347.000000 -0.2186 + 348.000000 -0.2087 + 349.000000 -0.2299 + 350.000000 -0.1835 + 351.000000 -0.1739 + 352.000000 -0.2083 + 353.000000 -0.2169 + 354.000000 -0.2023 + 355.000000 -0.1971 + 356.000000 -0.2013 + 357.000000 -0.1790 + 358.000000 -0.1962 + 359.000000 -0.1879 + 360.000000 -0.2145 + 361.000000 -0.2238 + 362.000000 -0.2326 + 363.000000 -0.1926 + 364.000000 -0.1829 + 365.000000 -0.2169 + 366.000000 -0.1890 + 367.000000 -0.2089 + 368.000000 -0.2181 + 369.000000 -0.1941 + 370.000000 -0.1610 + 371.000000 -0.1862 + 372.000000 -0.2217 + 373.000000 -0.1838 + 374.000000 -0.2276 + 375.000000 -0.2303 + 376.000000 -0.2315 + 377.000000 -0.1649 + 378.000000 -0.1777 + 379.000000 -0.2139 + 380.000000 -0.1916 + 381.000000 -0.1798 + 382.000000 -0.1870 + 383.000000 -0.1666 + 384.000000 -0.2063 + 385.000000 -0.2146 + 386.000000 -0.2039 + 387.000000 -0.1652 + 388.000000 -0.2082 + 389.000000 -0.2297 + 390.000000 -0.2042 + 391.000000 -0.2112 + 392.000000 -0.2159 + 393.000000 -0.2337 + 394.000000 -0.1814 + 395.000000 -0.1614 + 396.000000 -0.1600 + 397.000000 -0.1867 + 398.000000 -0.2221 + 399.000000 -0.1817 + 400.000000 -0.1872 + 401.000000 -0.2287 + 402.000000 -0.1891 + 403.000000 -0.1445 + 404.000000 -0.2160 + 405.000000 -0.2125 + 406.000000 -0.1501 + 407.000000 -0.1642 + 408.000000 -0.1460 + 409.000000 -0.1786 + 410.000000 -0.1604 + 411.000000 -0.2013 + 412.000000 -0.1729 + 413.000000 -0.2183 + 414.000000 -0.2175 + 415.000000 -0.1935 + 416.000000 -0.1924 + 417.000000 -0.1853 + 418.000000 -0.2150 + 419.000000 -0.2330 + 420.000000 -0.1969 + 421.000000 -0.1864 + 422.000000 -0.1837 + 423.000000 -0.1209 + 424.000000 -0.1987 + 425.000000 -0.1555 + 426.000000 -0.2185 + 427.000000 -0.1146 + 428.000000 -0.2267 + 429.000000 -0.2012 + 430.000000 -0.2169 + 431.000000 -0.1470 + 432.000000 -0.1920 + 433.000000 -0.1799 + 434.000000 -0.1225 + 435.000000 -0.1365 + 436.000000 -0.1177 + 437.000000 -0.1384 + 438.000000 -0.2404 + 439.000000 -0.2269 + 440.000000 -0.2074 + 441.000000 -0.1695 + 442.000000 -0.1900 + 443.000000 -0.2074 + 444.000000 -0.1464 + 445.000000 -0.2052 + 446.000000 -0.1959 + 447.000000 -0.2025 + 448.000000 -0.1345 + 449.000000 -0.0989 + 450.000000 -0.2079 + 451.000000 -0.1360 + 452.000000 -0.1985 + 453.000000 -0.2150 + 454.000000 -0.1994 + 455.000000 -0.1933 + 456.000000 -0.2033 + 457.000000 -0.2083 + 458.000000 -0.1242 + 459.000000 -0.1935 + 460.000000 -0.0901 + 461.000000 -0.1049 + 462.000000 -0.1956 + 463.000000 -0.2072 + 464.000000 -0.1106 + 465.000000 -0.1882 + 466.000000 -0.2078 + 467.000000 -0.1874 + 468.000000 -0.1746 + 469.000000 -0.1982 + 470.000000 -0.1335 + 471.000000 -0.2122 + 472.000000 -0.2032 + 473.000000 -0.0811 + 474.000000 -0.1187 + 475.000000 -0.1927 + 476.000000 -0.1691 + 477.000000 -0.1431 + 478.000000 -0.2030 + 479.000000 -0.2002 + 480.000000 -0.2063 + 481.000000 -0.1777 + 482.000000 -0.1975 + 483.000000 -0.0940 + 484.000000 -0.2058 + 485.000000 -0.1863 + 486.000000 -0.1162 + 487.000000 -0.1225 + 488.000000 -0.1967 + 489.000000 -0.1953 + 490.000000 -0.2007 + 491.000000 -0.2005 + 492.000000 -0.1685 + 493.000000 -0.2099 + 494.000000 -0.0657 + 495.000000 -0.1768 + 496.000000 -0.1123 + 497.000000 -0.1912 + 498.000000 -0.1333 + 499.000000 -0.1308 + 500.000000 -0.0901 + 501.000000 -0.1255 + 502.000000 -0.1143 + 503.000000 -0.0931 + 504.000000 -0.2108 + 505.000000 -0.1967 + 506.000000 -0.2019 + 507.000000 -0.1677 + 508.000000 -0.1669 + 509.000000 -0.1870 + 510.000000 -0.1229 + 511.000000 -0.0721 + 512.000000 -0.1168 + 513.000000 -0.0578 + 514.000000 -0.0696 + 515.000000 -0.1937 + 516.000000 -0.1241 + 517.000000 -0.0684 + 518.000000 -0.1881 + 519.000000 -0.1648 + 520.000000 -0.1462 + 521.000000 -0.1506 + 522.000000 -0.1137 + 523.000000 -0.1916 + 524.000000 -0.0669 + 525.000000 -0.1827 + 526.000000 -0.0866 + 527.000000 -0.0519 + 528.000000 -0.1850 + 529.000000 -0.2064 + 530.000000 -0.1176 + 531.000000 -0.1070 + 532.000000 -0.0620 + 533.000000 -0.1698 + 534.000000 -0.1958 + 535.000000 -0.1748 + 536.000000 -0.2011 + 537.000000 -0.1647 + 538.000000 -0.0366 + 539.000000 -0.0929 + 540.000000 -0.0678 + 541.000000 -0.0568 + 542.000000 -0.1765 + 543.000000 -0.1570 + 544.000000 -0.1694 + 545.000000 -0.1792 diff --git a/regtest/annfunc/rt-test/config b/regtest/annfunc/rt-test/config new file mode 100644 index 0000000000..0bec991474 --- /dev/null +++ b/regtest/annfunc/rt-test/config @@ -0,0 +1,4 @@ +type=driver +plumed_modules=annfunc +arg="--plumed plumed.dat --ixyz diala_traj_nm.xyz" +extra_files="../../trajectories/diala_traj_nm.xyz" diff --git a/regtest/annfunc/rt-test/plumed.dat b/regtest/annfunc/rt-test/plumed.dat new file mode 100644 index 0000000000..0cc0b32271 --- /dev/null +++ b/regtest/annfunc/rt-test/plumed.dat @@ -0,0 +1,4 @@ +p1: POSITION ATOM=1 +p2: POSITION ATOM=2 +ann: ANN ARG=p1.x,p2.x NUM_LAYERS=3 NUM_NODES=2,3,1 ACTIVATIONS=Tanh,Tanh WEIGHTS0=0.1,0.2,0.3,0.4,0.5,0.6 WEIGHTS1=0.7,0.8,0.9 BIASES0=0.1,0.11,0.12 BIASES1=0.13 +PRINT ARG=ann.node-0 STRIDE=1 FILE=colvar FMT=%15.4f diff --git a/regtest/annfunc/rt-test_circular_layer_and_derivative/Makefile b/regtest/annfunc/rt-test_circular_layer_and_derivative/Makefile new file mode 100644 index 0000000000..f61096e589 --- /dev/null +++ b/regtest/annfunc/rt-test_circular_layer_and_derivative/Makefile @@ -0,0 +1 @@ +include ../../scripts/test.make \ No newline at end of file diff --git a/regtest/annfunc/rt-test_circular_layer_and_derivative/colvar.reference b/regtest/annfunc/rt-test_circular_layer_and_derivative/colvar.reference new file mode 100644 index 0000000000..614e1133cd --- /dev/null +++ b/regtest/annfunc/rt-test_circular_layer_and_derivative/colvar.reference @@ -0,0 +1,547 @@ +#! FIELDS time ann.node-0 ann.node-1 + 0.000000 -0.9554 0.2953 + 1.000000 -0.9908 0.1351 + 2.000000 -0.9705 0.2410 + 3.000000 -0.9844 0.1761 + 4.000000 -0.9880 0.1546 + 5.000000 -0.9912 0.1327 + 6.000000 -0.9909 0.1349 + 7.000000 -0.9784 0.2066 + 8.000000 -0.9882 0.1534 + 9.000000 -0.9614 0.2751 + 10.000000 -0.9869 0.1613 + 11.000000 -0.9790 0.2037 + 12.000000 -0.9548 0.2972 + 13.000000 -0.9449 0.3275 + 14.000000 -0.9894 0.1451 + 15.000000 -0.9934 0.1150 + 16.000000 -0.9918 0.1279 + 17.000000 -0.9909 0.1345 + 18.000000 -0.9903 0.1386 + 19.000000 -0.9470 0.3213 + 20.000000 -0.9774 0.2115 + 21.000000 -0.9506 0.3103 + 22.000000 -0.9907 0.1364 + 23.000000 -0.9597 0.2811 + 24.000000 -0.9692 0.2464 + 25.000000 -0.9853 0.1710 + 26.000000 -0.9649 0.2625 + 27.000000 -0.9705 0.2412 + 28.000000 -0.9867 0.1626 + 29.000000 -0.9842 0.1772 + 30.000000 -0.9898 0.1423 + 31.000000 -0.9140 0.4056 + 32.000000 -0.9504 0.3110 + 33.000000 -0.9902 0.1398 + 34.000000 -0.9667 0.2557 + 35.000000 -0.9798 0.2001 + 36.000000 -0.9596 0.2814 + 37.000000 -0.9763 0.2163 + 38.000000 -0.9897 0.1433 + 39.000000 -0.9471 0.3208 + 40.000000 -0.9842 0.1773 + 41.000000 -0.9748 0.2229 + 42.000000 -0.9811 0.1933 + 43.000000 -0.9884 0.1516 + 44.000000 -0.9903 0.1386 + 45.000000 -0.9870 0.1607 + 46.000000 -0.9555 0.2950 + 47.000000 -0.9451 0.3267 + 48.000000 -0.9890 0.1480 + 49.000000 -0.9402 0.3407 + 50.000000 -0.9700 0.2432 + 51.000000 -0.9858 0.1677 + 52.000000 -0.9528 0.3037 + 53.000000 -0.9620 0.2731 + 54.000000 -0.9532 0.3024 + 55.000000 -0.9768 0.2143 + 56.000000 -0.9570 0.2901 + 57.000000 -0.9457 0.3252 + 58.000000 -0.9758 0.2187 + 59.000000 -0.9885 0.1510 + 60.000000 -0.9692 0.2463 + 61.000000 -0.9218 0.3878 + 62.000000 -0.9551 0.2962 + 63.000000 -0.9717 0.2361 + 64.000000 -0.9840 0.1781 + 65.000000 -0.9843 0.1768 + 66.000000 -0.9843 0.1766 + 67.000000 -0.9403 0.3404 + 68.000000 -0.9676 0.2524 + 69.000000 -0.9846 0.1747 + 70.000000 -0.9858 0.1681 + 71.000000 -0.9446 0.3283 + 72.000000 -0.9900 0.1411 + 73.000000 -0.9873 0.1590 + 74.000000 -0.9322 0.3620 + 75.000000 -0.9406 0.3396 + 76.000000 -0.9745 0.2244 + 77.000000 -0.9470 0.3213 + 78.000000 -0.9836 0.1801 + 79.000000 -0.9578 0.2873 + 80.000000 -0.9737 0.2280 + 81.000000 -0.9823 0.1873 + 82.000000 -0.9664 0.2572 + 83.000000 -0.9493 0.3143 + 84.000000 -0.9430 0.3327 + 85.000000 -0.9897 0.1433 + 86.000000 -0.9428 0.3332 + 87.000000 -0.9311 0.3648 + 88.000000 -0.9653 0.2611 + 89.000000 -0.9888 0.1490 + 90.000000 -0.9774 0.2115 + 91.000000 -0.9834 0.1812 + 92.000000 -0.9916 0.1292 + 93.000000 -0.9934 0.1149 + 94.000000 -0.9880 0.1544 + 95.000000 -0.9875 0.1577 + 96.000000 -0.9059 0.4236 + 97.000000 -0.9865 0.1636 + 98.000000 -0.9351 0.3544 + 99.000000 -0.9397 0.3420 + 100.000000 -0.9221 0.3868 + 101.000000 -0.9881 0.1539 + 102.000000 -0.9883 0.1526 + 103.000000 -0.9819 0.1894 + 104.000000 -0.9816 0.1908 + 105.000000 -0.9932 0.1168 + 106.000000 -0.9569 0.2903 + 107.000000 -0.9660 0.2585 + 108.000000 -0.9754 0.2206 + 109.000000 -0.9851 0.1720 + 110.000000 -0.9816 0.1911 + 111.000000 -0.9711 0.2385 + 112.000000 -0.9747 0.2235 + 113.000000 -0.9437 0.3309 + 114.000000 -0.9414 0.3372 + 115.000000 -0.9557 0.2943 + 116.000000 -0.9285 0.3715 + 117.000000 -0.9478 0.3188 + 118.000000 -0.9472 0.3205 + 119.000000 -0.9355 0.3533 + 120.000000 -0.9427 0.3335 + 121.000000 -0.9209 0.3899 + 122.000000 -0.9293 0.3694 + 123.000000 -0.9153 0.4028 + 124.000000 -0.9634 0.2681 + 125.000000 -0.9367 0.3502 + 126.000000 -0.9841 0.1779 + 127.000000 -0.9560 0.2934 + 128.000000 -0.9877 0.1565 + 129.000000 -0.9451 0.3267 + 130.000000 -0.9641 0.2655 + 131.000000 -0.9901 0.1406 + 132.000000 -0.9741 0.2263 + 133.000000 -0.9876 0.1569 + 134.000000 -0.9646 0.2636 + 135.000000 -0.9139 0.4059 + 136.000000 -0.9897 0.1431 + 137.000000 -0.9852 0.1711 + 138.000000 -0.9634 0.2681 + 139.000000 -0.9413 0.3375 + 140.000000 -0.9728 0.2318 + 141.000000 -0.9642 0.2650 + 142.000000 -0.9307 0.3657 + 143.000000 -0.9814 0.1917 + 144.000000 -0.9571 0.2896 + 145.000000 -0.9668 0.2555 + 146.000000 -0.9855 0.1699 + 147.000000 -0.9814 0.1919 + 148.000000 -0.9074 0.4203 + 149.000000 -0.9380 0.3467 + 150.000000 -0.9647 0.2633 + 151.000000 -0.9449 0.3275 + 152.000000 -0.9529 0.3034 + 153.000000 -0.9886 0.1506 + 154.000000 -0.9652 0.2616 + 155.000000 -0.9871 0.1604 + 156.000000 -0.9852 0.1711 + 157.000000 -0.9688 0.2478 + 158.000000 -0.9851 0.1718 + 159.000000 -0.9902 0.1400 + 160.000000 -0.9184 0.3957 + 161.000000 -0.8992 0.4375 + 162.000000 -0.9703 0.2419 + 163.000000 -0.9567 0.2911 + 164.000000 -0.9377 0.3475 + 165.000000 -0.9382 0.3461 + 166.000000 -0.9122 0.4098 + 167.000000 -0.9434 0.3317 + 168.000000 -0.9741 0.2262 + 169.000000 -0.9306 0.3660 + 170.000000 -0.9597 0.2809 + 171.000000 -0.9823 0.1876 + 172.000000 -0.9907 0.1360 + 173.000000 -0.9410 0.3383 + 174.000000 -0.9916 0.1290 + 175.000000 -0.9876 0.1571 + 176.000000 -0.9426 0.3341 + 177.000000 -0.9439 0.3301 + 178.000000 -0.9481 0.3180 + 179.000000 -0.9149 0.4038 + 180.000000 -0.9456 0.3254 + 181.000000 -0.9691 0.2465 + 182.000000 -0.9865 0.1640 + 183.000000 -0.9914 0.1306 + 184.000000 -0.9872 0.1594 + 185.000000 -0.9746 0.2239 + 186.000000 -0.9851 0.1718 + 187.000000 -0.9756 0.2195 + 188.000000 -0.9607 0.2776 + 189.000000 -0.9785 0.2062 + 190.000000 -0.9882 0.1532 + 191.000000 -0.9244 0.3815 + 192.000000 -0.8949 0.4464 + 193.000000 -0.9764 0.2161 + 194.000000 -0.9153 0.4028 + 195.000000 -0.9630 0.2696 + 196.000000 -0.9680 0.2511 + 197.000000 -0.9158 0.4016 + 198.000000 -0.9843 0.1768 + 199.000000 -0.8989 0.4382 + 200.000000 -0.9223 0.3866 + 201.000000 -0.9316 0.3634 + 202.000000 -0.9457 0.3249 + 203.000000 -0.8378 0.5460 + 204.000000 -0.9892 0.1464 + 205.000000 -0.9657 0.2595 + 206.000000 -0.9518 0.3066 + 207.000000 -0.9891 0.1472 + 208.000000 -0.9213 0.3890 + 209.000000 -0.9608 0.2773 + 210.000000 -0.9747 0.2233 + 211.000000 -0.9503 0.3113 + 212.000000 -0.9871 0.1602 + 213.000000 -0.9902 0.1398 + 214.000000 -0.9889 0.1488 + 215.000000 -0.9188 0.3948 + 216.000000 -0.9358 0.3524 + 217.000000 -0.9422 0.3351 + 218.000000 -0.9886 0.1508 + 219.000000 -0.9634 0.2682 + 220.000000 -0.9646 0.2637 + 221.000000 -0.9868 0.1621 + 222.000000 -0.9921 0.1256 + 223.000000 -0.9875 0.1579 + 224.000000 -0.9681 0.2507 + 225.000000 -0.9854 0.1702 + 226.000000 -0.9166 0.3997 + 227.000000 -0.9823 0.1876 + 228.000000 -0.9895 0.1448 + 229.000000 -0.9852 0.1713 + 230.000000 -0.9437 0.3309 + 231.000000 -0.9920 0.1266 + 232.000000 -0.9750 0.2220 + 233.000000 -0.9607 0.2778 + 234.000000 -0.9790 0.2041 + 235.000000 -0.9903 0.1393 + 236.000000 -0.9913 0.1317 + 237.000000 -0.9675 0.2528 + 238.000000 -0.9129 0.4081 + 239.000000 -0.9285 0.3715 + 240.000000 -0.9409 0.3386 + 241.000000 -0.9311 0.3648 + 242.000000 -0.9725 0.2328 + 243.000000 -0.9903 0.1386 + 244.000000 -0.9451 0.3267 + 245.000000 -0.9608 0.2771 + 246.000000 -0.9255 0.3788 + 247.000000 -0.9585 0.2851 + 248.000000 -0.9873 0.1590 + 249.000000 -0.9887 0.1502 + 250.000000 -0.9766 0.2149 + 251.000000 -0.9791 0.2034 + 252.000000 -0.9865 0.1636 + 253.000000 -0.9768 0.2141 + 254.000000 -0.9889 0.1488 + 255.000000 -0.9893 0.1456 + 256.000000 -0.9860 0.1668 + 257.000000 -0.9180 0.3966 + 258.000000 -0.9729 0.2310 + 259.000000 -0.9799 0.1996 + 260.000000 -0.9228 0.3853 + 261.000000 -0.9587 0.2843 + 262.000000 -0.9817 0.1907 + 263.000000 -0.9818 0.1900 + 264.000000 -0.9878 0.1554 + 265.000000 -0.9888 0.1492 + 266.000000 -0.9696 0.2446 + 267.000000 -0.9546 0.2979 + 268.000000 -0.9268 0.3755 + 269.000000 -0.9554 0.2953 + 270.000000 -0.9176 0.3975 + 271.000000 -0.9732 0.2299 + 272.000000 -0.9746 0.2239 + 273.000000 -0.9444 0.3288 + 274.000000 -0.9625 0.2713 + 275.000000 -0.9732 0.2301 + 276.000000 -0.9853 0.1710 + 277.000000 -0.9877 0.1567 + 278.000000 -0.9869 0.1615 + 279.000000 -0.9809 0.1945 + 280.000000 -0.9803 0.1974 + 281.000000 -0.9812 0.1929 + 282.000000 -0.9844 0.1761 + 283.000000 -0.9355 0.3533 + 284.000000 -0.9828 0.1846 + 285.000000 -0.9483 0.3173 + 286.000000 -0.9652 0.2614 + 287.000000 -0.9619 0.2735 + 288.000000 -0.9881 0.1540 + 289.000000 -0.9765 0.2157 + 290.000000 -0.9448 0.3278 + 291.000000 -0.9620 0.2729 + 292.000000 -0.9763 0.2165 + 293.000000 -0.9881 0.1540 + 294.000000 -0.9823 0.1875 + 295.000000 -0.9883 0.1524 + 296.000000 -0.9627 0.2704 + 297.000000 -0.9838 0.1793 + 298.000000 -0.9876 0.1571 + 299.000000 -0.9817 0.1906 + 300.000000 -0.9750 0.2220 + 301.000000 -0.9686 0.2485 + 302.000000 -0.9883 0.1523 + 303.000000 -0.9493 0.3143 + 304.000000 -0.9708 0.2400 + 305.000000 -0.9843 0.1766 + 306.000000 -0.9591 0.2832 + 307.000000 -0.9529 0.3032 + 308.000000 -0.9858 0.1678 + 309.000000 -0.9889 0.1484 + 310.000000 -0.9880 0.1545 + 311.000000 -0.9849 0.1730 + 312.000000 -0.9705 0.2411 + 313.000000 -0.9797 0.2004 + 314.000000 -0.9814 0.1921 + 315.000000 -0.9886 0.1506 + 316.000000 -0.9798 0.2001 + 317.000000 -0.9881 0.1539 + 318.000000 -0.9794 0.2021 + 319.000000 -0.9884 0.1516 + 320.000000 -0.9819 0.1892 + 321.000000 -0.9916 0.1296 + 322.000000 -0.9907 0.1361 + 323.000000 -0.9881 0.1541 + 324.000000 -0.9826 0.1857 + 325.000000 -0.9819 0.1892 + 326.000000 -0.9907 0.1361 + 327.000000 -0.9700 0.2432 + 328.000000 -0.9824 0.1867 + 329.000000 -0.9711 0.2388 + 330.000000 -0.9800 0.1992 + 331.000000 -0.9906 0.1366 + 332.000000 -0.9768 0.2143 + 333.000000 -0.9777 0.2102 + 334.000000 -0.9912 0.1325 + 335.000000 -0.9828 0.1846 + 336.000000 -0.9754 0.2205 + 337.000000 -0.9835 0.1809 + 338.000000 -0.9796 0.2011 + 339.000000 -0.9894 0.1451 + 340.000000 -0.9897 0.1431 + 341.000000 -0.9831 0.1830 + 342.000000 -0.9735 0.2288 + 343.000000 -0.9813 0.1926 + 344.000000 -0.9695 0.2450 + 345.000000 -0.9777 0.2099 + 346.000000 -0.9665 0.2567 + 347.000000 -0.9892 0.1463 + 348.000000 -0.9860 0.1665 + 349.000000 -0.9921 0.1252 + 350.000000 -0.9742 0.2259 + 351.000000 -0.9675 0.2528 + 352.000000 -0.9859 0.1672 + 353.000000 -0.9887 0.1500 + 354.000000 -0.9836 0.1803 + 355.000000 -0.9813 0.1923 + 356.000000 -0.9832 0.1827 + 357.000000 -0.9713 0.2380 + 358.000000 -0.9809 0.1947 + 359.000000 -0.9766 0.2149 + 360.000000 -0.9880 0.1543 + 361.000000 -0.9906 0.1364 + 362.000000 -0.9927 0.1206 + 363.000000 -0.9792 0.2027 + 364.000000 -0.9737 0.2279 + 365.000000 -0.9887 0.1496 + 366.000000 -0.9773 0.2120 + 367.000000 -0.9861 0.1660 + 368.000000 -0.9891 0.1474 + 369.000000 -0.9799 0.1996 + 370.000000 -0.9564 0.2920 + 371.000000 -0.9756 0.2195 + 372.000000 -0.9901 0.1404 + 373.000000 -0.9743 0.2251 + 374.000000 -0.9916 0.1292 + 375.000000 -0.9922 0.1247 + 376.000000 -0.9925 0.1224 + 377.000000 -0.9601 0.2798 + 378.000000 -0.9704 0.2416 + 379.000000 -0.9878 0.1559 + 380.000000 -0.9787 0.2054 + 381.000000 -0.9717 0.2361 + 382.000000 -0.9761 0.2172 + 383.000000 -0.9617 0.2740 + 384.000000 -0.9851 0.1718 + 385.000000 -0.9880 0.1543 + 386.000000 -0.9842 0.1768 + 387.000000 -0.9605 0.2782 + 388.000000 -0.9858 0.1677 + 389.000000 -0.9921 0.1256 + 390.000000 -0.9843 0.1765 + 391.000000 -0.9869 0.1613 + 392.000000 -0.9884 0.1520 + 393.000000 -0.9929 0.1187 + 394.000000 -0.9728 0.2316 + 395.000000 -0.9568 0.2908 + 396.000000 -0.9555 0.2950 + 397.000000 -0.9759 0.2182 + 398.000000 -0.9902 0.1398 + 399.000000 -0.9730 0.2308 + 400.000000 -0.9763 0.2165 + 401.000000 -0.9918 0.1277 + 402.000000 -0.9774 0.2114 + 403.000000 -0.9369 0.3497 + 404.000000 -0.9884 0.1518 + 405.000000 -0.9873 0.1590 + 406.000000 -0.9443 0.3291 + 407.000000 -0.9595 0.2816 + 408.000000 -0.9390 0.3439 + 409.000000 -0.9709 0.2394 + 410.000000 -0.9558 0.2939 + 411.000000 -0.9831 0.1829 + 412.000000 -0.9668 0.2555 + 413.000000 -0.9891 0.1472 + 414.000000 -0.9888 0.1489 + 415.000000 -0.9796 0.2009 + 416.000000 -0.9790 0.2040 + 417.000000 -0.9751 0.2217 + 418.000000 -0.9881 0.1540 + 419.000000 -0.9928 0.1199 + 420.000000 -0.9812 0.1932 + 421.000000 -0.9757 0.2191 + 422.000000 -0.9741 0.2260 + 423.000000 -0.8935 0.4491 + 424.000000 -0.9820 0.1889 + 425.000000 -0.9506 0.3105 + 426.000000 -0.9892 0.1468 + 427.000000 -0.8779 0.4788 + 428.000000 -0.9914 0.1312 + 429.000000 -0.9830 0.1837 + 430.000000 -0.9887 0.1500 + 431.000000 -0.9403 0.3404 + 432.000000 -0.9788 0.2048 + 433.000000 -0.9718 0.2359 + 434.000000 -0.8972 0.4415 + 435.000000 -0.9246 0.3809 + 436.000000 -0.8858 0.4640 + 437.000000 -0.9278 0.3732 + 438.000000 -0.9942 0.1074 + 439.000000 -0.9914 0.1310 + 440.000000 -0.9855 0.1698 + 441.000000 -0.9641 0.2654 + 442.000000 -0.9777 0.2102 + 443.000000 -0.9855 0.1696 + 444.000000 -0.9395 0.3426 + 445.000000 -0.9847 0.1745 + 446.000000 -0.9806 0.1958 + 447.000000 -0.9835 0.1807 + 448.000000 -0.9211 0.3892 + 449.000000 -0.8274 0.5617 + 450.000000 -0.9856 0.1689 + 451.000000 -0.9237 0.3832 + 452.000000 -0.9819 0.1894 + 453.000000 -0.9880 0.1542 + 454.000000 -0.9823 0.1873 + 455.000000 -0.9794 0.2019 + 456.000000 -0.9839 0.1785 + 457.000000 -0.9858 0.1680 + 458.000000 -0.9010 0.4338 + 459.000000 -0.9795 0.2016 + 460.000000 -0.7915 0.6112 + 461.000000 -0.8488 0.5287 + 462.000000 -0.9805 0.1967 + 463.000000 -0.9854 0.1704 + 464.000000 -0.8665 0.4992 + 465.000000 -0.9767 0.2144 + 466.000000 -0.9856 0.1691 + 467.000000 -0.9763 0.2163 + 468.000000 -0.9679 0.2515 + 469.000000 -0.9817 0.1903 + 470.000000 -0.9192 0.3938 + 471.000000 -0.9872 0.1597 + 472.000000 -0.9838 0.1791 + 473.000000 -0.7470 0.6649 + 474.000000 -0.8882 0.4595 + 475.000000 -0.9790 0.2040 + 476.000000 -0.9636 0.2675 + 477.000000 -0.9348 0.3552 + 478.000000 -0.9837 0.1796 + 479.000000 -0.9826 0.1860 + 480.000000 -0.9851 0.1722 + 481.000000 -0.9700 0.2430 + 482.000000 -0.9814 0.1919 + 483.000000 -0.8080 0.5892 + 484.000000 -0.9848 0.1735 + 485.000000 -0.9756 0.2196 + 486.000000 -0.8815 0.4721 + 487.000000 -0.8972 0.4415 + 488.000000 -0.9809 0.1944 + 489.000000 -0.9803 0.1976 + 490.000000 -0.9828 0.1846 + 491.000000 -0.9827 0.1853 + 492.000000 -0.9631 0.2693 + 493.000000 -0.9864 0.1644 + 494.000000 -0.6505 0.7595 + 495.000000 -0.9695 0.2449 + 496.000000 -0.8711 0.4911 + 497.000000 -0.9783 0.2074 + 498.000000 -0.9188 0.3947 + 499.000000 -0.9139 0.4059 + 500.000000 -0.7912 0.6116 + 501.000000 -0.9034 0.4287 + 502.000000 -0.8764 0.4815 + 503.000000 -0.8044 0.5940 + 504.000000 -0.9866 0.1629 + 505.000000 -0.9809 0.1944 + 506.000000 -0.9833 0.1821 + 507.000000 -0.9622 0.2722 + 508.000000 -0.9618 0.2738 + 509.000000 -0.9759 0.2182 + 510.000000 -0.8979 0.4401 + 511.000000 -0.6939 0.7201 + 512.000000 -0.8831 0.4692 + 513.000000 -0.5912 0.8065 + 514.000000 -0.6778 0.7352 + 515.000000 -0.9794 0.2017 + 516.000000 -0.9006 0.4347 + 517.000000 -0.6701 0.7423 + 518.000000 -0.9765 0.2155 + 519.000000 -0.9598 0.2806 + 520.000000 -0.9386 0.3451 + 521.000000 -0.9447 0.3280 + 522.000000 -0.8748 0.4844 + 523.000000 -0.9784 0.2065 + 524.000000 -0.6594 0.7518 + 525.000000 -0.9733 0.2294 + 526.000000 -0.7744 0.6327 + 527.000000 -0.5419 0.8404 + 528.000000 -0.9747 0.2236 + 529.000000 -0.9851 0.1721 + 530.000000 -0.8851 0.4653 + 531.000000 -0.8552 0.5184 + 532.000000 -0.6240 0.7815 + 533.000000 -0.9638 0.2666 + 534.000000 -0.9806 0.1962 + 535.000000 -0.9679 0.2513 + 536.000000 -0.9829 0.1839 + 537.000000 -0.9596 0.2815 + 538.000000 -0.3962 0.9182 + 539.000000 -0.8029 0.5962 + 540.000000 -0.6658 0.7461 + 541.000000 -0.5825 0.8129 + 542.000000 -0.9692 0.2462 + 543.000000 -0.9520 0.3062 + 544.000000 -0.9637 0.2669 + 545.000000 -0.9711 0.2389 diff --git a/regtest/annfunc/rt-test_circular_layer_and_derivative/config b/regtest/annfunc/rt-test_circular_layer_and_derivative/config new file mode 100644 index 0000000000..0bec991474 --- /dev/null +++ b/regtest/annfunc/rt-test_circular_layer_and_derivative/config @@ -0,0 +1,4 @@ +type=driver +plumed_modules=annfunc +arg="--plumed plumed.dat --ixyz diala_traj_nm.xyz" +extra_files="../../trajectories/diala_traj_nm.xyz" diff --git a/regtest/annfunc/rt-test_circular_layer_and_derivative/deriv.reference b/regtest/annfunc/rt-test_circular_layer_and_derivative/deriv.reference new file mode 100644 index 0000000000..c351195b67 --- /dev/null +++ b/regtest/annfunc/rt-test_circular_layer_and_derivative/deriv.reference @@ -0,0 +1,1093 @@ +#! FIELDS time parameter ann.node-0 ann.node-1 + 0.000000 0 0.7321 2.3689 + 0.000000 1 0.9503 3.0749 + 1.000000 0 0.1783 1.3071 + 1.000000 1 0.2300 1.6868 + 2.000000 0 0.4950 1.9936 + 2.000000 1 0.6415 2.5835 + 3.000000 0 0.2795 1.5621 + 3.000000 1 0.3613 2.0196 + 4.000000 0 0.2232 1.4259 + 4.000000 1 0.2883 1.8417 + 5.000000 0 0.1728 1.2913 + 5.000000 1 0.2230 1.6661 + 6.000000 0 0.1777 1.3054 + 6.000000 1 0.2294 1.6846 + 7.000000 0 0.3720 1.7616 + 7.000000 1 0.4816 2.2801 + 8.000000 0 0.2201 1.4179 + 8.000000 1 0.2843 1.8313 + 9.000000 0 0.6375 2.2278 + 9.000000 1 0.8270 2.8901 + 10.000000 0 0.2401 1.4684 + 10.000000 1 0.3102 1.8973 + 11.000000 0 0.3624 1.7421 + 11.000000 1 0.4690 2.2547 + 12.000000 0 0.7417 2.3831 + 12.000000 1 0.9628 3.0936 + 13.000000 0 0.8998 2.5959 + 13.000000 1 1.1689 3.3724 + 14.000000 0 0.2006 1.3679 + 14.000000 1 0.2590 1.7660 + 15.000000 0 0.1374 1.1872 + 15.000000 1 0.1771 1.5304 + 16.000000 0 0.1629 1.2632 + 16.000000 1 0.2102 1.6296 + 17.000000 0 0.1767 1.3021 + 17.000000 1 0.2280 1.6802 + 18.000000 0 0.1858 1.3274 + 18.000000 1 0.2399 1.7133 + 19.000000 0 0.8663 2.5531 + 19.000000 1 1.1252 3.3162 + 20.000000 0 0.3879 1.7931 + 20.000000 1 0.5022 2.3213 + 21.000000 0 0.8076 2.4743 + 21.000000 1 1.0487 3.2129 + 22.000000 0 0.1809 1.3140 + 22.000000 1 0.2335 1.6957 + 23.000000 0 0.6653 2.2711 + 23.000000 1 0.8632 2.9468 + 24.000000 0 0.5162 2.0303 + 24.000000 1 0.6691 2.6316 + 25.000000 0 0.2655 1.5298 + 25.000000 1 0.3432 1.9773 + 26.000000 0 0.5820 2.1398 + 26.000000 1 0.7548 2.7749 + 27.000000 0 0.4957 1.9946 + 27.000000 1 0.6424 2.5848 + 28.000000 0 0.2434 1.4769 + 28.000000 1 0.3145 1.9083 + 29.000000 0 0.2825 1.5690 + 29.000000 1 0.3653 2.0286 + 30.000000 0 0.1939 1.3492 + 30.000000 1 0.2503 1.7417 + 31.000000 0 1.3949 3.1430 + 31.000000 1 1.8154 4.0906 + 32.000000 0 0.8114 2.4796 + 32.000000 1 1.0537 3.2200 + 33.000000 0 0.1885 1.3348 + 33.000000 1 0.2433 1.7228 + 34.000000 0 0.5536 2.0929 + 34.000000 1 0.7178 2.7135 + 35.000000 0 0.3508 1.7178 + 35.000000 1 0.4540 2.2229 + 36.000000 0 0.6662 2.2723 + 36.000000 1 0.8645 2.9483 + 37.000000 0 0.4045 1.8262 + 37.000000 1 0.5237 2.3646 + 38.000000 0 0.1963 1.3560 + 38.000000 1 0.2534 1.7505 + 39.000000 0 0.8633 2.5487 + 39.000000 1 1.1213 3.3105 + 40.000000 0 0.2829 1.5704 + 40.000000 1 0.3658 2.0304 + 41.000000 0 0.4277 1.8707 + 41.000000 1 0.5539 2.4228 + 42.000000 0 0.3298 1.6737 + 42.000000 1 0.4266 2.1653 + 43.000000 0 0.2157 1.4066 + 43.000000 1 0.2785 1.8165 + 44.000000 0 0.1858 1.3274 + 44.000000 1 0.2399 1.7133 + 45.000000 0 0.2382 1.4636 + 45.000000 1 0.3078 1.8910 + 46.000000 0 0.7311 2.3678 + 46.000000 1 0.9490 3.0734 + 47.000000 0 0.8954 2.5902 + 47.000000 1 1.1632 3.3650 + 48.000000 0 0.2071 1.3843 + 48.000000 1 0.2674 1.7874 + 49.000000 0 0.9749 2.6904 + 49.000000 1 1.2670 3.4964 + 50.000000 0 0.5035 2.0081 + 50.000000 1 0.6525 2.6026 + 51.000000 0 0.2566 1.5085 + 51.000000 1 0.3317 1.9496 + 52.000000 0 0.7739 2.4282 + 52.000000 1 1.0048 3.1527 + 53.000000 0 0.6287 2.2150 + 53.000000 1 0.8156 2.8733 + 54.000000 0 0.7680 2.4207 + 54.000000 1 0.9971 3.1427 + 55.000000 0 0.3977 1.8123 + 55.000000 1 0.5149 2.3465 + 56.000000 0 0.7071 2.3323 + 56.000000 1 0.9177 3.0270 + 57.000000 0 0.8868 2.5790 + 57.000000 1 1.1520 3.3502 + 58.000000 0 0.4127 1.8412 + 58.000000 1 0.5344 2.3843 + 59.000000 0 0.2143 1.4032 + 59.000000 1 0.2768 1.8121 + 60.000000 0 0.5153 2.0281 + 60.000000 1 0.6679 2.6287 + 61.000000 0 1.2699 3.0189 + 61.000000 1 1.6521 3.9275 + 62.000000 0 0.7371 2.3769 + 62.000000 1 0.9568 3.0853 + 63.000000 0 0.4761 1.9596 + 63.000000 1 0.6168 2.5391 + 64.000000 0 0.2851 1.5751 + 64.000000 1 0.3687 2.0366 + 65.000000 0 0.2812 1.5660 + 65.000000 1 0.3636 2.0246 + 66.000000 0 0.2808 1.5652 + 66.000000 1 0.3630 2.0235 + 67.000000 0 0.9736 2.6892 + 67.000000 1 1.2653 3.4948 + 68.000000 0 0.5400 2.0699 + 68.000000 1 0.7000 2.6834 + 69.000000 0 0.2753 1.5517 + 69.000000 1 0.3558 2.0059 + 70.000000 0 0.2575 1.5101 + 70.000000 1 0.3328 1.9517 + 71.000000 0 0.9041 2.6015 + 71.000000 1 1.1746 3.3798 + 72.000000 0 0.1915 1.3428 + 72.000000 1 0.2471 1.7334 + 73.000000 0 0.2339 1.4526 + 73.000000 1 0.3021 1.8766 + 74.000000 0 1.1023 2.8388 + 74.000000 1 1.4332 3.6910 + 75.000000 0 0.9689 2.6833 + 75.000000 1 1.2591 3.4871 + 76.000000 0 0.4330 1.8803 + 76.000000 1 0.5609 2.4354 + 77.000000 0 0.8663 2.5531 + 77.000000 1 1.1252 3.3162 + 78.000000 0 0.2905 1.5869 + 78.000000 1 0.3757 2.0519 + 79.000000 0 0.6941 2.3139 + 79.000000 1 0.9007 3.0029 + 80.000000 0 0.4460 1.9046 + 80.000000 1 0.5777 2.4672 + 81.000000 0 0.3115 1.6336 + 81.000000 1 0.4029 2.1129 + 82.000000 0 0.5597 2.1028 + 82.000000 1 0.7257 2.7265 + 83.000000 0 0.8284 2.5024 + 83.000000 1 1.0758 3.2499 + 84.000000 0 0.9288 2.6324 + 84.000000 1 1.2068 3.4203 + 85.000000 0 0.1963 1.3560 + 85.000000 1 0.2534 1.7505 + 86.000000 0 0.9320 2.6370 + 86.000000 1 1.2110 3.4263 + 87.000000 0 1.1201 2.8586 + 87.000000 1 1.4564 3.7170 + 88.000000 0 0.5768 2.1320 + 88.000000 1 0.7479 2.7647 + 89.000000 0 0.2096 1.3913 + 89.000000 1 0.2707 1.7966 + 90.000000 0 0.3879 1.7931 + 90.000000 1 0.5022 2.3213 + 91.000000 0 0.2937 1.5939 + 91.000000 1 0.3798 2.0611 + 92.000000 0 0.1655 1.2707 + 92.000000 1 0.2136 1.6394 + 93.000000 0 0.1373 1.1863 + 93.000000 1 0.1769 1.5293 + 94.000000 0 0.2225 1.4240 + 94.000000 1 0.2874 1.8392 + 95.000000 0 0.2306 1.4444 + 95.000000 1 0.2979 1.8659 + 96.000000 0 1.5268 3.2650 + 96.000000 1 1.9878 4.2508 + 97.000000 0 0.2458 1.4820 + 97.000000 1 0.3176 1.9150 + 98.000000 0 1.0559 2.7861 + 98.000000 1 1.3726 3.6219 + 99.000000 0 0.9823 2.6988 + 99.000000 1 1.2767 3.5073 + 100.000000 0 1.2637 3.0124 + 100.000000 1 1.6440 3.9189 + 101.000000 0 0.2214 1.4217 + 101.000000 1 0.2859 1.8363 + 102.000000 0 0.2183 1.4137 + 102.000000 1 0.2820 1.8259 + 103.000000 0 0.3178 1.6474 + 103.000000 1 0.4111 2.1309 + 104.000000 0 0.3218 1.6556 + 104.000000 1 0.4162 2.1417 + 105.000000 0 0.1408 1.1974 + 105.000000 1 0.1816 1.5438 + 106.000000 0 0.7084 2.3351 + 106.000000 1 0.9195 3.0306 + 107.000000 0 0.5650 2.1117 + 107.000000 1 0.7326 2.7381 + 108.000000 0 0.4191 1.8535 + 108.000000 1 0.5428 2.4003 + 109.000000 0 0.2681 1.5351 + 109.000000 1 0.3465 1.9843 + 110.000000 0 0.3227 1.6581 + 110.000000 1 0.4175 2.1449 + 111.000000 0 0.4850 1.9749 + 111.000000 1 0.6284 2.5591 + 112.000000 0 0.4297 1.8736 + 112.000000 1 0.5565 2.4265 + 113.000000 0 0.9186 2.6198 + 113.000000 1 1.1935 3.4037 + 114.000000 0 0.9549 2.6659 + 114.000000 1 1.2408 3.4642 + 115.000000 0 0.7276 2.3627 + 115.000000 1 0.9445 3.0667 + 116.000000 0 1.1622 2.9049 + 116.000000 1 1.5114 3.7778 + 117.000000 0 0.8521 2.5333 + 117.000000 1 1.1067 3.2904 + 118.000000 0 0.8621 2.5475 + 118.000000 1 1.1198 3.3090 + 119.000000 0 1.0493 2.7788 + 119.000000 1 1.3641 3.6123 + 120.000000 0 0.9333 2.6382 + 120.000000 1 1.2127 3.4279 + 121.000000 0 1.2842 3.0332 + 121.000000 1 1.6707 3.9463 + 122.000000 0 1.1493 2.8911 + 122.000000 1 1.4946 3.7597 + 123.000000 0 1.3744 3.1229 + 123.000000 1 1.7886 4.0641 + 124.000000 0 0.6062 2.1786 + 124.000000 1 0.7863 2.8257 + 125.000000 0 1.0305 2.7559 + 125.000000 1 1.3394 3.5823 + 126.000000 0 0.2843 1.5729 + 126.000000 1 0.3676 2.0336 + 127.000000 0 0.7231 2.3564 + 127.000000 1 0.9386 3.0585 + 128.000000 0 0.2277 1.4374 + 128.000000 1 0.2942 1.8568 + 129.000000 0 0.8954 2.5902 + 129.000000 1 1.1632 3.3650 + 130.000000 0 0.5949 2.1602 + 130.000000 1 0.7715 2.8016 + 131.000000 0 0.1902 1.3397 + 131.000000 1 0.2455 1.7292 + 132.000000 0 0.4398 1.8929 + 132.000000 1 0.5697 2.4519 + 133.000000 0 0.2288 1.4401 + 133.000000 1 0.2956 1.8603 + 134.000000 0 0.5865 2.1465 + 134.000000 1 0.7606 2.7836 + 135.000000 0 1.3967 3.1443 + 135.000000 1 1.8177 4.0922 + 136.000000 0 0.1957 1.3542 + 136.000000 1 0.2527 1.7482 + 137.000000 0 0.2656 1.5292 + 137.000000 1 0.3433 1.9766 + 138.000000 0 0.6062 2.1786 + 138.000000 1 0.7863 2.8257 + 139.000000 0 0.9562 2.6671 + 139.000000 1 1.2425 3.4658 + 140.000000 0 0.4601 1.9304 + 140.000000 1 0.5960 2.5009 + 141.000000 0 0.5931 2.1580 + 141.000000 1 0.7692 2.7987 + 142.000000 0 1.1256 2.8648 + 142.000000 1 1.4636 3.7252 + 143.000000 0 0.3248 1.6622 + 143.000000 1 0.4201 2.1503 + 144.000000 0 0.7051 2.3300 + 144.000000 1 0.9151 3.0240 + 145.000000 0 0.5528 2.0919 + 145.000000 1 0.7167 2.7121 + 146.000000 0 0.2623 1.5218 + 146.000000 1 0.3390 1.9669 + 147.000000 0 0.3253 1.6631 + 147.000000 1 0.4208 2.1514 + 148.000000 0 1.5024 3.2431 + 148.000000 1 1.9559 4.2221 + 149.000000 0 1.0092 2.7308 + 149.000000 1 1.3117 3.5493 + 150.000000 0 0.5856 2.1454 + 150.000000 1 0.7595 2.7822 + 151.000000 0 0.8998 2.5959 + 151.000000 1 1.1689 3.3724 + 152.000000 0 0.7728 2.4271 + 152.000000 1 1.0033 3.1511 + 153.000000 0 0.2133 1.4006 + 153.000000 1 0.2755 1.8087 + 154.000000 0 0.5785 2.1342 + 154.000000 1 0.7501 2.7675 + 155.000000 0 0.2375 1.4616 + 155.000000 1 0.3069 1.8884 + 156.000000 0 0.2656 1.5292 + 156.000000 1 0.3433 1.9766 + 157.000000 0 0.5219 2.0399 + 157.000000 1 0.6764 2.6441 + 158.000000 0 0.2676 1.5343 + 158.000000 1 0.3460 1.9833 + 159.000000 0 0.1888 1.3355 + 159.000000 1 0.2437 1.7237 + 160.000000 0 1.3244 3.0739 + 160.000000 1 1.7232 3.9997 + 161.000000 0 1.6344 3.3590 + 161.000000 1 2.1285 4.3744 + 162.000000 0 0.4979 1.9976 + 162.000000 1 0.6453 2.5888 + 163.000000 0 0.7115 2.3385 + 163.000000 1 0.9234 3.0350 + 164.000000 0 1.0142 2.7367 + 164.000000 1 1.3182 3.5571 + 165.000000 0 1.0065 2.7283 + 165.000000 1 1.3082 3.5461 + 166.000000 0 1.4245 3.1713 + 166.000000 1 1.8541 4.1276 + 167.000000 0 0.9230 2.6255 + 167.000000 1 1.1993 3.4112 + 168.000000 0 0.4391 1.8910 + 168.000000 1 0.5687 2.4493 + 169.000000 0 1.1271 2.8661 + 169.000000 1 1.4656 3.7268 + 170.000000 0 0.6640 2.2685 + 170.000000 1 0.8616 2.9434 + 171.000000 0 0.3124 1.6360 + 171.000000 1 0.4041 2.1160 + 172.000000 0 0.1801 1.3116 + 172.000000 1 0.2324 1.6926 + 173.000000 0 0.9601 2.6707 + 173.000000 1 1.2476 3.4706 + 174.000000 0 0.1651 1.2691 + 174.000000 1 0.2129 1.6372 + 175.000000 0 0.2292 1.4409 + 175.000000 1 0.2961 1.8613 + 176.000000 0 0.9359 2.6406 + 176.000000 1 1.2160 3.4310 + 177.000000 0 0.9142 2.6141 + 177.000000 1 1.1877 3.3963 + 178.000000 0 0.8485 2.5298 + 178.000000 1 1.1021 3.2857 + 179.000000 0 1.3812 3.1296 + 179.000000 1 1.7975 4.0729 + 180.000000 0 0.8887 2.5822 + 180.000000 1 1.1544 3.3544 + 181.000000 0 0.5161 2.0291 + 181.000000 1 0.6689 2.6300 + 182.000000 0 0.2466 1.4836 + 182.000000 1 0.3186 1.9170 + 183.000000 0 0.1685 1.2790 + 183.000000 1 0.2174 1.6501 + 184.000000 0 0.2350 1.4553 + 184.000000 1 0.3035 1.8802 + 185.000000 0 0.4310 1.8764 + 185.000000 1 0.5582 2.4303 + 186.000000 0 0.2673 1.5330 + 186.000000 1 0.3455 1.9815 + 187.000000 0 0.4153 1.8459 + 187.000000 1 0.5378 2.3904 + 188.000000 0 0.6485 2.2443 + 188.000000 1 0.8413 2.9118 + 189.000000 0 0.3703 1.7572 + 189.000000 1 0.4794 2.2744 + 190.000000 0 0.2195 1.4160 + 190.000000 1 0.2834 1.8288 + 191.000000 0 1.2282 2.9763 + 191.000000 1 1.5977 3.8715 + 192.000000 0 1.7047 3.4176 + 192.000000 1 2.2204 4.4515 + 193.000000 0 0.4039 1.8244 + 193.000000 1 0.5229 2.3622 + 194.000000 0 1.3744 3.1229 + 194.000000 1 1.7886 4.0641 + 195.000000 0 0.6129 2.1890 + 195.000000 1 0.7949 2.8393 + 196.000000 0 0.5351 2.0624 + 196.000000 1 0.6936 2.6736 + 197.000000 0 1.3659 3.1150 + 197.000000 1 1.7775 4.0537 + 198.000000 0 0.2812 1.5660 + 198.000000 1 0.3636 2.0246 + 199.000000 0 1.6385 3.3614 + 199.000000 1 2.1338 4.3776 + 200.000000 0 1.2621 3.0111 + 200.000000 1 1.6419 3.9173 + 201.000000 0 1.1107 2.8475 + 201.000000 1 1.4442 3.7024 + 202.000000 0 0.8850 2.5758 + 202.000000 1 1.1496 3.3460 + 203.000000 0 2.6203 4.0209 + 203.000000 1 3.4191 5.2466 + 204.000000 0 0.2035 1.3751 + 204.000000 1 0.2628 1.7755 + 205.000000 0 0.5695 2.1196 + 205.000000 1 0.7384 2.7484 + 206.000000 0 0.7889 2.4494 + 206.000000 1 1.0243 3.1803 + 207.000000 0 0.2052 1.3791 + 207.000000 1 0.2649 1.7807 + 208.000000 0 1.2779 3.0267 + 208.000000 1 1.6625 3.9377 + 209.000000 0 0.6475 2.2432 + 209.000000 1 0.8401 2.9103 + 210.000000 0 0.4290 1.8726 + 210.000000 1 0.5556 2.4253 + 211.000000 0 0.8126 2.4808 + 211.000000 1 1.0552 3.2215 + 212.000000 0 0.2368 1.4596 + 212.000000 1 0.3060 1.8858 + 213.000000 0 0.1883 1.3337 + 213.000000 1 0.2430 1.7215 + 214.000000 0 0.2090 1.3894 + 214.000000 1 0.2699 1.7941 + 215.000000 0 1.3179 3.0673 + 215.000000 1 1.7147 3.9910 + 216.000000 0 1.0433 2.7704 + 216.000000 1 1.3563 3.6013 + 217.000000 0 0.9424 2.6497 + 217.000000 1 1.2245 3.4430 + 218.000000 0 0.2137 1.4013 + 218.000000 1 0.2760 1.8096 + 219.000000 0 0.6073 2.1811 + 219.000000 1 0.7877 2.8289 + 220.000000 0 0.5876 2.1489 + 220.000000 1 0.7620 2.7868 + 221.000000 0 0.2417 1.4715 + 221.000000 1 0.3123 1.9013 + 222.000000 0 0.1581 1.2491 + 222.000000 1 0.2039 1.6111 + 223.000000 0 0.2313 1.4463 + 223.000000 1 0.2988 1.8684 + 224.000000 0 0.5333 2.0592 + 224.000000 1 0.6914 2.6693 + 225.000000 0 0.2632 1.5234 + 225.000000 1 0.3402 1.9689 + 226.000000 0 1.3525 3.1017 + 226.000000 1 1.7600 4.0362 + 227.000000 0 0.3124 1.6360 + 227.000000 1 0.4041 2.1160 + 228.000000 0 0.1998 1.3650 + 228.000000 1 0.2579 1.7622 + 229.000000 0 0.2661 1.5300 + 229.000000 1 0.3439 1.9777 + 230.000000 0 0.9186 2.6198 + 230.000000 1 1.1935 3.4037 + 231.000000 0 0.1602 1.2549 + 231.000000 1 0.2066 1.6186 + 232.000000 0 0.4244 1.8640 + 232.000000 1 0.5496 2.4140 + 233.000000 0 0.6497 2.2469 + 233.000000 1 0.8429 2.9151 + 234.000000 0 0.3635 1.7439 + 234.000000 1 0.4705 2.2571 + 235.000000 0 0.1873 1.3316 + 235.000000 1 0.2417 1.7187 + 236.000000 0 0.1709 1.2859 + 236.000000 1 0.2205 1.6592 + 237.000000 0 0.5417 2.0732 + 237.000000 1 0.7023 2.6878 + 238.000000 0 1.4123 3.1590 + 238.000000 1 1.8382 4.1115 + 239.000000 0 1.1622 2.9049 + 239.000000 1 1.5114 3.7778 + 240.000000 0 0.9621 2.6741 + 240.000000 1 1.2503 3.4750 + 241.000000 0 1.1201 2.8586 + 241.000000 1 1.4564 3.7170 + 242.000000 0 0.4636 1.9364 + 242.000000 1 0.6006 2.5087 + 243.000000 0 0.1858 1.3274 + 243.000000 1 0.2399 1.7133 + 244.000000 0 0.8954 2.5902 + 244.000000 1 1.1632 3.3650 + 245.000000 0 0.6466 2.2421 + 245.000000 1 0.8389 2.9088 + 246.000000 0 1.2103 2.9570 + 246.000000 1 1.5742 3.8462 + 247.000000 0 0.6829 2.2964 + 247.000000 1 0.8862 2.9799 + 248.000000 0 0.2342 1.4538 + 248.000000 1 0.3025 1.8782 + 249.000000 0 0.2126 1.3991 + 249.000000 1 0.2745 1.8068 + 250.000000 0 0.3995 1.8160 + 250.000000 1 0.5173 2.3513 + 251.000000 0 0.3613 1.7387 + 251.000000 1 0.4676 2.2503 + 252.000000 0 0.2458 1.4820 + 252.000000 1 0.3176 1.9150 + 253.000000 0 0.3970 1.8114 + 253.000000 1 0.5141 2.3453 + 254.000000 0 0.2090 1.3894 + 254.000000 1 0.2699 1.7941 + 255.000000 0 0.2014 1.3689 + 255.000000 1 0.2600 1.7674 + 256.000000 0 0.2543 1.5028 + 256.000000 1 0.3286 1.9421 + 257.000000 0 1.3309 3.0805 + 257.000000 1 1.7318 4.0084 + 258.000000 0 0.4572 1.9254 + 258.000000 1 0.5923 2.4944 + 259.000000 0 0.3492 1.7144 + 259.000000 1 0.4519 2.2184 + 260.000000 0 1.2530 3.0007 + 260.000000 1 1.6300 3.9035 + 261.000000 0 0.6800 2.2930 + 261.000000 1 0.8824 2.9754 + 262.000000 0 0.3217 1.6563 + 262.000000 1 0.4162 2.1426 + 263.000000 0 0.3197 1.6522 + 263.000000 1 0.4136 2.1372 + 264.000000 0 0.2250 1.4301 + 264.000000 1 0.2906 1.8472 + 265.000000 0 0.2100 1.3920 + 265.000000 1 0.2712 1.7975 + 266.000000 0 0.5090 2.0176 + 266.000000 1 0.6597 2.6149 + 267.000000 0 0.7448 2.3866 + 267.000000 1 0.9669 3.0981 + 268.000000 0 1.1883 2.9327 + 268.000000 1 1.5455 3.8143 + 269.000000 0 0.7321 2.3689 + 269.000000 1 0.9503 3.0749 + 270.000000 0 1.3375 3.0871 + 270.000000 1 1.7404 4.0171 + 271.000000 0 0.4530 1.9175 + 271.000000 1 0.5868 2.4840 + 272.000000 0 0.4310 1.8764 + 272.000000 1 0.5582 2.4303 + 273.000000 0 0.9066 2.6040 + 273.000000 1 1.1778 3.3830 + 274.000000 0 0.6207 2.2020 + 274.000000 1 0.8052 2.8562 + 275.000000 0 0.4537 1.9184 + 275.000000 1 0.5877 2.4853 + 276.000000 0 0.2655 1.5298 + 276.000000 1 0.3432 1.9773 + 277.000000 0 0.2281 1.4382 + 277.000000 1 0.2947 1.8578 + 278.000000 0 0.2405 1.4692 + 278.000000 1 0.3107 1.8983 + 279.000000 0 0.3334 1.6812 + 279.000000 1 0.4313 2.1752 + 280.000000 0 0.3422 1.6998 + 280.000000 1 0.4428 2.1995 + 281.000000 0 0.3283 1.6697 + 281.000000 1 0.4247 2.1601 + 282.000000 0 0.2795 1.5621 + 282.000000 1 0.3613 2.0196 + 283.000000 0 1.0493 2.7788 + 283.000000 1 1.3641 3.6123 + 284.000000 0 0.3038 1.6174 + 284.000000 1 0.3929 2.0918 + 285.000000 0 0.8445 2.5243 + 285.000000 1 1.0968 3.2785 + 286.000000 0 0.5774 2.1318 + 286.000000 1 0.7488 2.7644 + 287.000000 0 0.6305 2.2172 + 287.000000 1 0.8179 2.8762 + 288.000000 0 0.2218 1.4225 + 288.000000 1 0.2864 1.8373 + 289.000000 0 0.4026 1.8225 + 289.000000 1 0.5213 2.3598 + 290.000000 0 0.9010 2.5971 + 290.000000 1 1.1705 3.3740 + 291.000000 0 0.6275 2.2125 + 291.000000 1 0.8141 2.8700 + 292.000000 0 0.4051 1.8271 + 292.000000 1 0.5246 2.3659 + 293.000000 0 0.2218 1.4225 + 293.000000 1 0.2864 1.8373 + 294.000000 0 0.3120 1.6344 + 294.000000 1 0.4035 2.1140 + 295.000000 0 0.2180 1.4130 + 295.000000 1 0.2815 1.8249 + 296.000000 0 0.6169 2.1962 + 296.000000 1 0.8002 2.8487 + 297.000000 0 0.2887 1.5835 + 297.000000 1 0.3732 2.0476 + 298.000000 0 0.2295 1.4421 + 298.000000 1 0.2964 1.8629 + 299.000000 0 0.3213 1.6548 + 299.000000 1 0.4156 2.1406 + 300.000000 0 0.4244 1.8640 + 300.000000 1 0.5496 2.4140 + 301.000000 0 0.5243 2.0441 + 301.000000 1 0.6796 2.6497 + 302.000000 0 0.2176 1.4122 + 302.000000 1 0.2810 1.8239 + 303.000000 0 0.8284 2.5024 + 303.000000 1 1.0758 3.2499 + 304.000000 0 0.4911 1.9863 + 304.000000 1 0.6364 2.5740 + 305.000000 0 0.2808 1.5652 + 305.000000 1 0.3630 2.0235 + 306.000000 0 0.6745 2.2843 + 306.000000 1 0.8753 2.9640 + 307.000000 0 0.7713 2.4242 + 307.000000 1 1.0014 3.1473 + 308.000000 0 0.2570 1.5098 + 308.000000 1 0.3321 1.9513 + 309.000000 0 0.2083 1.3880 + 309.000000 1 0.2690 1.7922 + 310.000000 0 0.2231 1.4263 + 310.000000 1 0.2881 1.8423 + 311.000000 0 0.2709 1.5424 + 311.000000 1 0.3502 1.9939 + 312.000000 0 0.4949 1.9924 + 312.000000 1 0.6413 2.5820 + 313.000000 0 0.3519 1.7203 + 313.000000 1 0.4554 2.2263 + 314.000000 0 0.3262 1.6662 + 314.000000 1 0.4220 2.1555 + 315.000000 0 0.2136 1.4017 + 315.000000 1 0.2758 1.8102 + 316.000000 0 0.3508 1.7178 + 316.000000 1 0.4540 2.2229 + 317.000000 0 0.2214 1.4217 + 317.000000 1 0.2859 1.8363 + 318.000000 0 0.3574 1.7316 + 318.000000 1 0.4625 2.2410 + 319.000000 0 0.2159 1.4077 + 319.000000 1 0.2789 1.8180 + 320.000000 0 0.3173 1.6465 + 320.000000 1 0.4104 2.1298 + 321.000000 0 0.1665 1.2740 + 321.000000 1 0.2148 1.6436 + 322.000000 0 0.1803 1.3126 + 322.000000 1 0.2326 1.6939 + 323.000000 0 0.2220 1.4236 + 323.000000 1 0.2868 1.8388 + 324.000000 0 0.3071 1.6246 + 324.000000 1 0.3972 2.1012 + 325.000000 0 0.3173 1.6465 + 325.000000 1 0.4104 2.1298 + 326.000000 0 0.1803 1.3126 + 326.000000 1 0.2326 1.6939 + 327.000000 0 0.5035 2.0081 + 327.000000 1 0.6525 2.6026 + 328.000000 0 0.3100 1.6310 + 328.000000 1 0.4009 2.1096 + 329.000000 0 0.4865 1.9780 + 329.000000 1 0.6304 2.5632 + 330.000000 0 0.3481 1.7126 + 330.000000 1 0.4504 2.2161 + 331.000000 0 0.1814 1.3157 + 331.000000 1 0.2341 1.6980 + 332.000000 0 0.3977 1.8123 + 332.000000 1 0.5149 2.3465 + 333.000000 0 0.3837 1.7849 + 333.000000 1 0.4968 2.3106 + 334.000000 0 0.1727 1.2916 + 334.000000 1 0.2228 1.6665 + 335.000000 0 0.3038 1.6174 + 335.000000 1 0.3929 2.0918 + 336.000000 0 0.4192 1.8544 + 336.000000 1 0.5428 2.4015 + 337.000000 0 0.2932 1.5937 + 337.000000 1 0.3791 2.0608 + 338.000000 0 0.3541 1.7247 + 338.000000 1 0.4582 2.2319 + 339.000000 0 0.2006 1.3679 + 339.000000 1 0.2590 1.7660 + 340.000000 0 0.1960 1.3553 + 340.000000 1 0.2530 1.7496 + 341.000000 0 0.2991 1.6071 + 341.000000 1 0.3868 2.0783 + 342.000000 0 0.4488 1.9096 + 342.000000 1 0.5813 2.4736 + 343.000000 0 0.3277 1.6695 + 343.000000 1 0.4240 2.1598 + 344.000000 0 0.5106 2.0208 + 344.000000 1 0.6618 2.6191 + 345.000000 0 0.3826 1.7822 + 345.000000 1 0.4952 2.3071 + 346.000000 0 0.5580 2.1007 + 346.000000 1 0.7235 2.7237 + 347.000000 0 0.2034 1.3755 + 347.000000 1 0.2626 1.7760 + 348.000000 0 0.2534 1.5012 + 348.000000 1 0.3275 1.9400 + 349.000000 0 0.1575 1.2477 + 349.000000 1 0.2032 1.6094 + 350.000000 0 0.4385 1.8910 + 350.000000 1 0.5679 2.4493 + 351.000000 0 0.5417 2.0732 + 351.000000 1 0.7023 2.6878 + 352.000000 0 0.2554 1.5062 + 352.000000 1 0.3300 1.9465 + 353.000000 0 0.2120 1.3972 + 353.000000 1 0.2737 1.8043 + 354.000000 0 0.2913 1.5897 + 354.000000 1 0.3767 2.0556 + 355.000000 0 0.3267 1.6671 + 355.000000 1 0.4227 2.1566 + 356.000000 0 0.2982 1.6048 + 356.000000 1 0.3857 2.0752 + 357.000000 0 0.4835 1.9729 + 357.000000 1 0.6265 2.5565 + 358.000000 0 0.3339 1.6821 + 358.000000 1 0.4320 2.1763 + 359.000000 0 0.3995 1.8160 + 359.000000 1 0.5173 2.3513 + 360.000000 0 0.2227 1.4256 + 360.000000 1 0.2876 1.8413 + 361.000000 0 0.1811 1.3150 + 361.000000 1 0.2337 1.6971 + 362.000000 0 0.1483 1.2201 + 362.000000 1 0.1912 1.5733 + 363.000000 0 0.3596 1.7368 + 363.000000 1 0.4654 2.2478 + 364.000000 0 0.4453 1.9027 + 364.000000 1 0.5768 2.4646 + 365.000000 0 0.2112 1.3958 + 365.000000 1 0.2728 1.8024 + 366.000000 0 0.3897 1.7967 + 366.000000 1 0.5046 2.3261 + 367.000000 0 0.2523 1.4983 + 367.000000 1 0.3260 1.9362 + 368.000000 0 0.2060 1.3821 + 368.000000 1 0.2660 1.7846 + 369.000000 0 0.3492 1.7144 + 369.000000 1 0.4519 2.2184 + 370.000000 0 0.7163 2.3463 + 370.000000 1 0.9296 3.0453 + 371.000000 0 0.4153 1.8459 + 371.000000 1 0.5378 2.3904 + 372.000000 0 0.1899 1.3390 + 372.000000 1 0.2451 1.7283 + 373.000000 0 0.4358 1.8861 + 373.000000 1 0.5644 2.4430 + 374.000000 0 0.1657 1.2717 + 374.000000 1 0.2138 1.6406 + 375.000000 0 0.1563 1.2439 + 375.000000 1 0.2016 1.6044 + 376.000000 0 0.1518 1.2310 + 376.000000 1 0.1958 1.5875 + 377.000000 0 0.6587 2.2599 + 377.000000 1 0.8546 2.9321 + 378.000000 0 0.4973 1.9977 + 378.000000 1 0.6445 2.5890 + 379.000000 0 0.2263 1.4340 + 379.000000 1 0.2923 1.8523 + 380.000000 0 0.3680 1.7536 + 380.000000 1 0.4764 2.2697 + 381.000000 0 0.4761 1.9596 + 381.000000 1 0.6168 2.5391 + 382.000000 0 0.4076 1.8318 + 382.000000 1 0.5278 2.3720 + 383.000000 0 0.6326 2.2208 + 383.000000 1 0.8206 2.8810 + 384.000000 0 0.2676 1.5343 + 384.000000 1 0.3460 1.9833 + 385.000000 0 0.2224 1.4244 + 385.000000 1 0.2873 1.8398 + 386.000000 0 0.2816 1.5674 + 386.000000 1 0.3641 2.0264 + 387.000000 0 0.6518 2.2506 + 387.000000 1 0.8457 2.9200 + 388.000000 0 0.2566 1.5085 + 388.000000 1 0.3317 1.9496 + 389.000000 0 0.1583 1.2500 + 389.000000 1 0.2041 1.6123 + 390.000000 0 0.2804 1.5638 + 390.000000 1 0.3625 2.0217 + 391.000000 0 0.2401 1.4684 + 391.000000 1 0.3102 1.8973 + 392.000000 0 0.2167 1.4092 + 392.000000 1 0.2798 1.8199 + 393.000000 0 0.1445 1.2087 + 393.000000 1 0.1863 1.5584 + 394.000000 0 0.4594 1.9294 + 394.000000 1 0.5951 2.4996 + 395.000000 0 0.7105 2.3373 + 395.000000 1 0.9221 3.0335 + 396.000000 0 0.7311 2.3678 + 396.000000 1 0.9490 3.0734 + 397.000000 0 0.4108 1.8375 + 397.000000 1 0.5319 2.3793 + 398.000000 0 0.1885 1.3348 + 398.000000 1 0.2433 1.7228 + 399.000000 0 0.4565 1.9244 + 399.000000 1 0.5914 2.4931 + 400.000000 0 0.4051 1.8271 + 400.000000 1 0.5246 2.3659 + 401.000000 0 0.1625 1.2616 + 401.000000 1 0.2096 1.6275 + 402.000000 0 0.3879 1.7939 + 402.000000 1 0.5022 2.3224 + 403.000000 0 1.0268 2.7512 + 403.000000 1 1.3347 3.5760 + 404.000000 0 0.2163 1.4084 + 404.000000 1 0.2794 1.8190 + 405.000000 0 0.2339 1.4526 + 405.000000 1 0.3021 1.8766 + 406.000000 0 0.9085 2.6072 + 406.000000 1 1.1803 3.3872 + 407.000000 0 0.6672 2.2734 + 407.000000 1 0.8657 2.9498 + 408.000000 0 0.9933 2.7118 + 408.000000 1 1.2909 3.5244 + 409.000000 0 0.4888 1.9821 + 409.000000 1 0.6334 2.5686 + 410.000000 0 0.7252 2.3587 + 410.000000 1 0.9413 3.0616 + 411.000000 0 0.2987 1.6056 + 411.000000 1 0.3863 2.0763 + 412.000000 0 0.5528 2.0919 + 412.000000 1 0.7167 2.7121 + 413.000000 0 0.2054 1.3802 + 413.000000 1 0.2652 1.7822 + 414.000000 0 0.2094 1.3902 + 414.000000 1 0.2704 1.7951 + 415.000000 0 0.3535 1.7238 + 415.000000 1 0.4575 2.2308 + 416.000000 0 0.3630 1.7422 + 416.000000 1 0.4698 2.2548 + 417.000000 0 0.4231 1.8611 + 417.000000 1 0.5479 2.4103 + 418.000000 0 0.2215 1.4213 + 418.000000 1 0.2861 1.8357 + 419.000000 0 0.1469 1.2158 + 419.000000 1 0.1894 1.5677 + 420.000000 0 0.3293 1.6721 + 420.000000 1 0.4260 2.1632 + 421.000000 0 0.4140 1.8431 + 421.000000 1 0.5361 2.3867 + 422.000000 0 0.4384 1.8900 + 422.000000 1 0.5679 2.4480 + 423.000000 0 1.7259 3.4341 + 423.000000 1 2.2482 4.4732 + 424.000000 0 0.3163 1.6441 + 424.000000 1 0.4092 2.1267 + 425.000000 0 0.8087 2.4754 + 425.000000 1 1.0501 3.2145 + 426.000000 0 0.2045 1.3777 + 426.000000 1 0.2640 1.7788 + 427.000000 0 1.9777 3.6263 + 427.000000 1 2.5776 4.7262 + 428.000000 0 0.1698 1.2829 + 428.000000 1 0.2191 1.6553 + 429.000000 0 0.3006 1.6090 + 429.000000 1 0.3888 2.0807 + 430.000000 0 0.2120 1.3972 + 430.000000 1 0.2737 1.8043 + 431.000000 0 0.9729 2.6870 + 431.000000 1 1.2643 3.4919 + 432.000000 0 0.3658 1.7483 + 432.000000 1 0.4734 2.2628 + 433.000000 0 0.4753 1.9576 + 433.000000 1 0.6158 2.5364 + 434.000000 0 1.6651 3.3836 + 434.000000 1 2.1686 4.4068 + 435.000000 0 1.2238 2.9711 + 435.000000 1 1.5919 3.8647 + 436.000000 0 1.8498 3.5311 + 436.000000 1 2.4102 4.6009 + 437.000000 0 1.1736 2.9175 + 437.000000 1 1.5264 3.7944 + 438.000000 0 0.1235 1.1427 + 438.000000 1 0.1591 1.4725 + 439.000000 0 0.1693 1.2813 + 439.000000 1 0.2184 1.6531 + 440.000000 0 0.2620 1.5204 + 440.000000 1 0.3386 1.9651 + 441.000000 0 0.5951 2.1615 + 441.000000 1 0.7718 2.8033 + 442.000000 0 0.3832 1.7823 + 442.000000 1 0.4960 2.3072 + 443.000000 0 0.2615 1.5196 + 443.000000 1 0.3380 1.9641 + 444.000000 0 0.9850 2.7012 + 444.000000 1 1.2801 3.5105 + 445.000000 0 0.2748 1.5509 + 445.000000 1 0.3552 2.0049 + 446.000000 0 0.3370 1.6881 + 446.000000 1 0.4361 2.1841 + 447.000000 0 0.2920 1.5894 + 447.000000 1 0.3775 2.0551 + 448.000000 0 1.2795 3.0279 + 448.000000 1 1.6647 3.9393 + 449.000000 0 2.7829 4.0993 + 449.000000 1 3.6321 5.3502 + 450.000000 0 0.2596 1.5146 + 450.000000 1 0.3355 1.9575 + 451.000000 0 1.2391 2.9865 + 451.000000 1 1.6119 3.8849 + 452.000000 0 0.3178 1.6474 + 452.000000 1 0.4111 2.1309 + 453.000000 0 0.2219 1.4220 + 453.000000 1 0.2866 1.8367 + 454.000000 0 0.3115 1.6336 + 454.000000 1 0.4029 2.1129 + 455.000000 0 0.3563 1.7283 + 455.000000 1 0.4611 2.2366 + 456.000000 0 0.2861 1.5768 + 456.000000 1 0.3699 2.0387 + 457.000000 0 0.2572 1.5088 + 457.000000 1 0.3324 1.9499 + 458.000000 0 1.6043 3.3322 + 458.000000 1 2.0892 4.3392 + 459.000000 0 0.3552 1.7257 + 459.000000 1 0.4597 2.2333 + 460.000000 0 3.3397 4.3246 + 460.000000 1 4.3622 5.6488 + 461.000000 0 2.4436 3.9232 + 461.000000 1 3.1876 5.1176 + 462.000000 0 0.3397 1.6932 + 462.000000 1 0.4395 2.1908 + 463.000000 0 0.2636 1.5242 + 463.000000 1 0.3407 1.9700 + 464.000000 0 2.1616 3.7524 + 464.000000 1 2.8183 4.8924 + 465.000000 0 0.3976 1.8114 + 465.000000 1 0.5148 2.3453 + 466.000000 0 0.2600 1.5154 + 466.000000 1 0.3360 1.9585 + 467.000000 0 0.4045 1.8253 + 467.000000 1 0.5237 2.3635 + 468.000000 0 0.5356 2.0611 + 468.000000 1 0.6943 2.6718 + 469.000000 0 0.3203 1.6524 + 469.000000 1 0.4143 2.1374 + 470.000000 0 1.3100 3.0579 + 470.000000 1 1.7045 3.9787 + 471.000000 0 0.2358 1.4569 + 471.000000 1 0.3046 1.8822 + 472.000000 0 0.2875 1.5793 + 472.000000 1 0.3717 2.0420 + 473.000000 0 4.0030 4.4973 + 473.000000 1 5.2330 5.8791 + 474.000000 0 1.8113 3.5014 + 474.000000 1 2.3599 4.5618 + 475.000000 0 0.3625 1.7398 + 475.000000 1 0.4691 2.2516 + 476.000000 0 0.6031 2.1726 + 476.000000 1 0.7823 2.8179 + 477.000000 0 1.0601 2.7898 + 477.000000 1 1.3782 3.6267 + 478.000000 0 0.2888 1.5823 + 478.000000 1 0.3734 2.0460 + 479.000000 0 0.3072 1.6233 + 479.000000 1 0.3974 2.0995 + 480.000000 0 0.2685 1.5359 + 480.000000 1 0.3471 1.9854 + 481.000000 0 0.5017 2.0027 + 481.000000 1 0.6502 2.5955 + 482.000000 0 0.3253 1.6631 + 482.000000 1 0.4208 2.1514 + 483.000000 0 3.0848 4.2301 + 483.000000 1 4.0279 5.5234 + 484.000000 0 0.2719 1.5435 + 484.000000 1 0.3515 1.9953 + 485.000000 0 0.4152 1.8450 + 485.000000 1 0.5377 2.3892 + 486.000000 0 1.9171 3.5796 + 486.000000 1 2.4983 4.6647 + 487.000000 0 1.6651 3.3836 + 487.000000 1 2.1686 4.4068 + 488.000000 0 0.3324 1.6774 + 488.000000 1 0.4301 2.1701 + 489.000000 0 0.3423 1.6984 + 489.000000 1 0.4429 2.1975 + 490.000000 0 0.3034 1.6153 + 490.000000 1 0.3924 2.0890 + 491.000000 0 0.3053 1.6193 + 491.000000 1 0.3949 2.0942 + 492.000000 0 0.6106 2.1841 + 492.000000 1 0.7920 2.8328 + 493.000000 0 0.2477 1.4864 + 493.000000 1 0.3201 1.9207 + 494.000000 0 5.3096 4.5480 + 494.000000 1 6.9506 5.9536 + 495.000000 0 0.5096 2.0175 + 495.000000 1 0.6605 2.6148 + 496.000000 0 2.0850 3.6983 + 496.000000 1 2.7180 4.8211 + 497.000000 0 0.3738 1.7635 + 497.000000 1 0.4838 2.2826 + 498.000000 0 1.3165 3.0645 + 498.000000 1 1.7130 3.9873 + 499.000000 0 1.3936 3.1383 + 499.000000 1 1.8137 4.0844 + 500.000000 0 3.3429 4.3249 + 500.000000 1 4.3665 5.6491 + 501.000000 0 1.5633 3.2943 + 501.000000 1 2.0355 4.2893 + 502.000000 0 1.9994 3.6390 + 502.000000 1 2.6059 4.7429 + 503.000000 0 3.1414 4.2539 + 503.000000 1 4.1021 5.5549 + 504.000000 0 0.2436 1.4759 + 504.000000 1 0.3148 1.9070 + 505.000000 0 0.3324 1.6774 + 505.000000 1 0.4301 2.1701 + 506.000000 0 0.2960 1.5987 + 506.000000 1 0.3828 2.0673 + 507.000000 0 0.6229 2.2024 + 507.000000 1 0.8080 2.8568 + 508.000000 0 0.6312 2.2169 + 508.000000 1 0.8188 2.8758 + 509.000000 0 0.4101 1.8347 + 509.000000 1 0.5311 2.3757 + 510.000000 0 1.6527 3.3720 + 510.000000 1 2.1524 4.3915 + 511.000000 0 4.7475 4.5744 + 511.000000 1 6.2112 5.9847 + 512.000000 0 1.8911 3.5593 + 512.000000 1 2.4643 4.6380 + 513.000000 0 6.0112 4.4068 + 513.000000 1 7.8745 5.7728 + 514.000000 0 4.9608 4.5732 + 514.000000 1 6.4917 5.9845 + 515.000000 0 0.3553 1.7250 + 515.000000 1 0.4597 2.2323 + 516.000000 0 1.6104 3.3359 + 516.000000 1 2.0970 4.3440 + 517.000000 0 5.0636 4.5708 + 517.000000 1 6.6269 5.9819 + 518.000000 0 0.4007 1.8161 + 518.000000 1 0.5188 2.3515 + 519.000000 0 0.6615 2.2633 + 519.000000 1 0.8583 2.9365 + 520.000000 0 0.9971 2.7122 + 520.000000 1 1.2959 3.5250 + 521.000000 0 0.9016 2.5963 + 521.000000 1 1.1713 3.3729 + 522.000000 0 2.0240 3.6554 + 522.000000 1 2.6382 4.7646 + 523.000000 0 0.3709 1.7573 + 523.000000 1 0.4801 2.2746 + 524.000000 0 5.1984 4.5598 + 524.000000 1 6.8042 5.9684 + 525.000000 0 0.4500 1.9095 + 525.000000 1 0.5829 2.4736 + 526.000000 0 3.5945 4.3990 + 526.000000 1 4.6966 5.7477 + 527.000000 0 6.5280 4.2095 + 527.000000 1 8.5560 5.5173 + 528.000000 0 0.4289 1.8698 + 528.000000 1 0.5555 2.4216 + 529.000000 0 0.2682 1.5346 + 529.000000 1 0.3466 1.9836 + 530.000000 0 1.8588 3.5357 + 530.000000 1 2.4220 4.6069 + 531.000000 0 2.3404 3.8608 + 531.000000 1 3.0523 5.0354 + 532.000000 0 5.6356 4.4998 + 532.000000 1 7.3797 5.8925 + 533.000000 0 0.5979 2.1618 + 533.000000 1 0.7754 2.8037 + 534.000000 0 0.3381 1.6899 + 534.000000 1 0.4375 2.1864 + 535.000000 0 0.5346 2.0588 + 535.000000 1 0.6930 2.6689 + 536.000000 0 0.3011 1.6098 + 536.000000 1 0.3894 2.0818 + 537.000000 0 0.6653 2.2677 + 537.000000 1 0.8633 2.9424 + 538.000000 0 7.6747 3.3119 + 538.000000 1 10.0730 4.3468 + 539.000000 0 3.1604 4.2563 + 539.000000 1 4.1271 5.5582 + 540.000000 0 5.1154 4.5646 + 540.000000 1 6.6950 5.9741 + 541.000000 0 6.1045 4.3742 + 541.000000 1 7.9975 5.7307 + 542.000000 0 0.5143 2.0248 + 542.000000 1 0.6666 2.6243 + 543.000000 0 0.7853 2.4417 + 543.000000 1 1.0196 3.1703 + 544.000000 0 0.6001 2.1667 + 544.000000 1 0.7783 2.8100 + 545.000000 0 0.4855 1.9738 + 545.000000 1 0.6291 2.5576 diff --git a/regtest/annfunc/rt-test_circular_layer_and_derivative/plumed.dat b/regtest/annfunc/rt-test_circular_layer_and_derivative/plumed.dat new file mode 100644 index 0000000000..0a2bd0c029 --- /dev/null +++ b/regtest/annfunc/rt-test_circular_layer_and_derivative/plumed.dat @@ -0,0 +1,6 @@ +p1: POSITION ATOM=1 +p2: POSITION ATOM=2 +ann: ANN ARG=p1.x,p2.x NUM_LAYERS=3 NUM_NODES=2,3,2 ACTIVATIONS=Tanh,Circular WEIGHTS0=0.1,0.2,0.3,0.4,0.5,0.6 WEIGHTS1=0.7,0.8,0.9,0.1,0.2,0.3 BIASES0=0.1,0.11,0.12 BIASES1=0.13,0.14 +ann_n: ANN ARG=p1.x,p2.x NUM_LAYERS=3 NUM_NODES=2,3,2 ACTIVATIONS=Tanh,Circular WEIGHTS0=0.1,0.2,0.3,0.4,0.5,0.6 WEIGHTS1=0.7,0.8,0.9,0.1,0.2,0.3 BIASES0=0.1,0.11,0.12 BIASES1=0.13,0.14 NUMERICAL_DERIVATIVES +PRINT ARG=ann.node-0,ann.node-1 FILE=colvar FMT=%15.4f +DUMPDERIVATIVES ARG=ann.node-0,ann.node-1 FILE=deriv FMT=%.4f diff --git a/regtest/annfunc/rt-test_derivative/Makefile b/regtest/annfunc/rt-test_derivative/Makefile new file mode 100644 index 0000000000..f61096e589 --- /dev/null +++ b/regtest/annfunc/rt-test_derivative/Makefile @@ -0,0 +1 @@ +include ../../scripts/test.make \ No newline at end of file diff --git a/regtest/annfunc/rt-test_derivative/colvar.reference b/regtest/annfunc/rt-test_derivative/colvar.reference new file mode 100644 index 0000000000..f7423d971d --- /dev/null +++ b/regtest/annfunc/rt-test_derivative/colvar.reference @@ -0,0 +1,547 @@ +#! FIELDS time ann.node-0 + 0.000000 -0.1614 + 1.000000 -0.2283 + 2.000000 -0.1798 + 3.000000 -0.2072 + 4.000000 -0.2180 + 5.000000 -0.2299 + 6.000000 -0.2285 + 7.000000 -0.1935 + 8.000000 -0.2187 + 9.000000 -0.1679 + 10.000000 -0.2144 + 11.000000 -0.1948 + 12.000000 -0.1607 + 13.000000 -0.1517 + 14.000000 -0.2228 + 15.000000 -0.2403 + 16.000000 -0.2326 + 17.000000 -0.2290 + 18.000000 -0.2266 + 19.000000 -0.1534 + 20.000000 -0.1916 + 21.000000 -0.1568 + 22.000000 -0.2278 + 23.000000 -0.1658 + 24.000000 -0.1779 + 25.000000 -0.2096 + 26.000000 -0.1723 + 27.000000 -0.1798 + 28.000000 -0.2137 + 29.000000 -0.2067 + 30.000000 -0.2246 + 31.000000 -0.1313 + 32.000000 -0.1565 + 33.000000 -0.2259 + 34.000000 -0.1747 + 35.000000 -0.1964 + 36.000000 -0.1658 + 37.000000 -0.1895 + 38.000000 -0.2240 + 39.000000 -0.1536 + 40.000000 -0.2065 + 41.000000 -0.1868 + 42.000000 -0.1993 + 43.000000 -0.2196 + 44.000000 -0.2266 + 45.000000 -0.2149 + 46.000000 -0.1614 + 47.000000 -0.1519 + 48.000000 -0.2215 + 49.000000 -0.1479 + 50.000000 -0.1791 + 51.000000 -0.2113 + 52.000000 -0.1587 + 53.000000 -0.1685 + 54.000000 -0.1590 + 55.000000 -0.1904 + 56.000000 -0.1630 + 57.000000 -0.1524 + 58.000000 -0.1887 + 59.000000 -0.2199 + 60.000000 -0.1780 + 61.000000 -0.1356 + 62.000000 -0.1610 + 63.000000 -0.1817 + 64.000000 -0.2063 + 65.000000 -0.2070 + 66.000000 -0.2070 + 67.000000 -0.1479 + 68.000000 -0.1759 + 69.000000 -0.2081 + 70.000000 -0.2112 + 71.000000 -0.1515 + 72.000000 -0.2252 + 73.000000 -0.2158 + 74.000000 -0.1422 + 75.000000 -0.1481 + 76.000000 -0.1863 + 77.000000 -0.1534 + 78.000000 -0.2055 + 79.000000 -0.1638 + 80.000000 -0.1849 + 81.000000 -0.2021 + 82.000000 -0.1742 + 83.000000 -0.1556 + 84.000000 -0.1502 + 85.000000 -0.2240 + 86.000000 -0.1500 + 87.000000 -0.1415 + 88.000000 -0.1726 + 89.000000 -0.2209 + 90.000000 -0.1916 + 91.000000 -0.2050 + 92.000000 -0.2319 + 93.000000 -0.2405 + 94.000000 -0.2182 + 95.000000 -0.2165 + 96.000000 -0.1271 + 97.000000 -0.2134 + 98.000000 -0.1442 + 99.000000 -0.1476 + 100.000000 -0.1359 + 101.000000 -0.2183 + 102.000000 -0.2189 + 103.000000 -0.2012 + 104.000000 -0.2006 + 105.000000 -0.2393 + 106.000000 -0.1629 + 107.000000 -0.1737 + 108.000000 -0.1879 + 109.000000 -0.2093 + 110.000000 -0.2004 + 111.000000 -0.1809 + 112.000000 -0.1867 + 113.000000 -0.1507 + 114.000000 -0.1488 + 115.000000 -0.1616 + 116.000000 -0.1398 + 117.000000 -0.1543 + 118.000000 -0.1537 + 119.000000 -0.1445 + 120.000000 -0.1500 + 121.000000 -0.1351 + 122.000000 -0.1403 + 123.000000 -0.1320 + 124.000000 -0.1703 + 125.000000 -0.1454 + 126.000000 -0.2065 + 127.000000 -0.1619 + 128.000000 -0.2170 + 129.000000 -0.1519 + 130.000000 -0.1713 + 131.000000 -0.2254 + 132.000000 -0.1856 + 133.000000 -0.2168 + 134.000000 -0.1720 + 135.000000 -0.1313 + 136.000000 -0.2242 + 137.000000 -0.2098 + 138.000000 -0.1703 + 139.000000 -0.1488 + 140.000000 -0.1834 + 141.000000 -0.1713 + 142.000000 -0.1412 + 143.000000 -0.2002 + 144.000000 -0.1631 + 145.000000 -0.1747 + 146.000000 -0.2103 + 147.000000 -0.2001 + 148.000000 -0.1279 + 149.000000 -0.1463 + 150.000000 -0.1720 + 151.000000 -0.1517 + 152.000000 -0.1588 + 153.000000 -0.2201 + 154.000000 -0.1725 + 155.000000 -0.2151 + 156.000000 -0.2098 + 157.000000 -0.1774 + 158.000000 -0.2093 + 159.000000 -0.2259 + 160.000000 -0.1337 + 161.000000 -0.1240 + 162.000000 -0.1797 + 163.000000 -0.1628 + 164.000000 -0.1461 + 165.000000 -0.1464 + 166.000000 -0.1303 + 167.000000 -0.1505 + 168.000000 -0.1857 + 169.000000 -0.1412 + 170.000000 -0.1660 + 171.000000 -0.2019 + 172.000000 -0.2280 + 173.000000 -0.1487 + 174.000000 -0.2321 + 175.000000 -0.2167 + 176.000000 -0.1499 + 177.000000 -0.1510 + 178.000000 -0.1544 + 179.000000 -0.1318 + 180.000000 -0.1522 + 181.000000 -0.1780 + 182.000000 -0.2133 + 183.000000 -0.2311 + 184.000000 -0.2156 + 185.000000 -0.1865 + 186.000000 -0.2095 + 187.000000 -0.1884 + 188.000000 -0.1672 + 189.000000 -0.1939 + 190.000000 -0.2189 + 191.000000 -0.1372 + 192.000000 -0.1220 + 193.000000 -0.1896 + 194.000000 -0.1320 + 195.000000 -0.1698 + 196.000000 -0.1762 + 197.000000 -0.1323 + 198.000000 -0.2070 + 199.000000 -0.1239 + 200.000000 -0.1359 + 201.000000 -0.1419 + 202.000000 -0.1526 + 203.000000 -0.1020 + 204.000000 -0.2223 + 205.000000 -0.1732 + 206.000000 -0.1578 + 207.000000 -0.2220 + 208.000000 -0.1354 + 209.000000 -0.1672 + 210.000000 -0.1868 + 211.000000 -0.1565 + 212.000000 -0.2153 + 213.000000 -0.2261 + 214.000000 -0.2211 + 215.000000 -0.1339 + 216.000000 -0.1448 + 217.000000 -0.1495 + 218.000000 -0.2201 + 219.000000 -0.1701 + 220.000000 -0.1718 + 221.000000 -0.2143 + 222.000000 -0.2340 + 223.000000 -0.2163 + 224.000000 -0.1764 + 225.000000 -0.2102 + 226.000000 -0.1327 + 227.000000 -0.2019 + 228.000000 -0.2232 + 229.000000 -0.2097 + 230.000000 -0.1507 + 231.000000 -0.2335 + 232.000000 -0.1873 + 233.000000 -0.1670 + 234.000000 -0.1947 + 235.000000 -0.2261 + 236.000000 -0.2304 + 237.000000 -0.1756 + 238.000000 -0.1307 + 239.000000 -0.1398 + 240.000000 -0.1485 + 241.000000 -0.1415 + 242.000000 -0.1831 + 243.000000 -0.2266 + 244.000000 -0.1519 + 245.000000 -0.1672 + 246.000000 -0.1379 + 247.000000 -0.1647 + 248.000000 -0.2156 + 249.000000 -0.2202 + 250.000000 -0.1901 + 251.000000 -0.1951 + 252.000000 -0.2134 + 253.000000 -0.1904 + 254.000000 -0.2211 + 255.000000 -0.2229 + 256.000000 -0.2117 + 257.000000 -0.1335 + 258.000000 -0.1837 + 259.000000 -0.1966 + 260.000000 -0.1363 + 261.000000 -0.1648 + 262.000000 -0.2005 + 263.000000 -0.2008 + 264.000000 -0.2177 + 265.000000 -0.2208 + 266.000000 -0.1786 + 267.000000 -0.1606 + 268.000000 -0.1388 + 269.000000 -0.1614 + 270.000000 -0.1332 + 271.000000 -0.1841 + 272.000000 -0.1865 + 273.000000 -0.1514 + 274.000000 -0.1691 + 275.000000 -0.1841 + 276.000000 -0.2096 + 277.000000 -0.2170 + 278.000000 -0.2144 + 279.000000 -0.1988 + 280.000000 -0.1976 + 281.000000 -0.1997 + 282.000000 -0.2072 + 283.000000 -0.1445 + 284.000000 -0.2032 + 285.000000 -0.1546 + 286.000000 -0.1727 + 287.000000 -0.1684 + 288.000000 -0.2182 + 289.000000 -0.1897 + 290.000000 -0.1517 + 291.000000 -0.1686 + 292.000000 -0.1894 + 293.000000 -0.2182 + 294.000000 -0.2021 + 295.000000 -0.2190 + 296.000000 -0.1694 + 297.000000 -0.2056 + 298.000000 -0.2166 + 299.000000 -0.2007 + 300.000000 -0.1873 + 301.000000 -0.1771 + 302.000000 -0.2190 + 303.000000 -0.1556 + 304.000000 -0.1803 + 305.000000 -0.2070 + 306.000000 -0.1652 + 307.000000 -0.1589 + 308.000000 -0.2111 + 309.000000 -0.2211 + 310.000000 -0.2178 + 311.000000 -0.2087 + 312.000000 -0.1800 + 313.000000 -0.1962 + 314.000000 -0.1998 + 315.000000 -0.2199 + 316.000000 -0.1964 + 317.000000 -0.2183 + 318.000000 -0.1955 + 319.000000 -0.2194 + 320.000000 -0.2012 + 321.000000 -0.2315 + 322.000000 -0.2278 + 323.000000 -0.2180 + 324.000000 -0.2027 + 325.000000 -0.2012 + 326.000000 -0.2278 + 327.000000 -0.1791 + 328.000000 -0.2022 + 329.000000 -0.1807 + 330.000000 -0.1967 + 331.000000 -0.2276 + 332.000000 -0.1904 + 333.000000 -0.1921 + 334.000000 -0.2298 + 335.000000 -0.2032 + 336.000000 -0.1878 + 337.000000 -0.2049 + 338.000000 -0.1959 + 339.000000 -0.2228 + 340.000000 -0.2240 + 341.000000 -0.2039 + 342.000000 -0.1846 + 343.000000 -0.1996 + 344.000000 -0.1784 + 345.000000 -0.1923 + 346.000000 -0.1742 + 347.000000 -0.2221 + 348.000000 -0.2118 + 349.000000 -0.2341 + 350.000000 -0.1856 + 351.000000 -0.1756 + 352.000000 -0.2114 + 353.000000 -0.2204 + 354.000000 -0.2051 + 355.000000 -0.1998 + 356.000000 -0.2041 + 357.000000 -0.1810 + 358.000000 -0.1988 + 359.000000 -0.1901 + 360.000000 -0.2178 + 361.000000 -0.2276 + 362.000000 -0.2369 + 363.000000 -0.1950 + 364.000000 -0.1850 + 365.000000 -0.2204 + 366.000000 -0.1913 + 367.000000 -0.2120 + 368.000000 -0.2216 + 369.000000 -0.1966 + 370.000000 -0.1624 + 371.000000 -0.1884 + 372.000000 -0.2254 + 373.000000 -0.1859 + 374.000000 -0.2317 + 375.000000 -0.2345 + 376.000000 -0.2357 + 377.000000 -0.1664 + 378.000000 -0.1796 + 379.000000 -0.2173 + 380.000000 -0.1940 + 381.000000 -0.1817 + 382.000000 -0.1892 + 383.000000 -0.1682 + 384.000000 -0.2093 + 385.000000 -0.2180 + 386.000000 -0.2068 + 387.000000 -0.1668 + 388.000000 -0.2113 + 389.000000 -0.2338 + 390.000000 -0.2072 + 391.000000 -0.2144 + 392.000000 -0.2194 + 393.000000 -0.2381 + 394.000000 -0.1834 + 395.000000 -0.1628 + 396.000000 -0.1614 + 397.000000 -0.1889 + 398.000000 -0.2259 + 399.000000 -0.1837 + 400.000000 -0.1894 + 401.000000 -0.2328 + 402.000000 -0.1914 + 403.000000 -0.1456 + 404.000000 -0.2194 + 405.000000 -0.2158 + 406.000000 -0.1512 + 407.000000 -0.1657 + 408.000000 -0.1471 + 409.000000 -0.1805 + 410.000000 -0.1618 + 411.000000 -0.2041 + 412.000000 -0.1747 + 413.000000 -0.2218 + 414.000000 -0.2210 + 415.000000 -0.1959 + 416.000000 -0.1949 + 417.000000 -0.1875 + 418.000000 -0.2184 + 419.000000 -0.2374 + 420.000000 -0.1995 + 421.000000 -0.1886 + 422.000000 -0.1858 + 423.000000 -0.1215 + 424.000000 -0.2014 + 425.000000 -0.1567 + 426.000000 -0.2221 + 427.000000 -0.1152 + 428.000000 -0.2307 + 429.000000 -0.2040 + 430.000000 -0.2204 + 431.000000 -0.1480 + 432.000000 -0.1944 + 433.000000 -0.1819 + 434.000000 -0.1232 + 435.000000 -0.1374 + 436.000000 -0.1183 + 437.000000 -0.1393 + 438.000000 -0.2452 + 439.000000 -0.2309 + 440.000000 -0.2105 + 441.000000 -0.1711 + 442.000000 -0.1924 + 443.000000 -0.2105 + 444.000000 -0.1475 + 445.000000 -0.2081 + 446.000000 -0.1985 + 447.000000 -0.2054 + 448.000000 -0.1353 + 449.000000 -0.0992 + 450.000000 -0.2109 + 451.000000 -0.1368 + 452.000000 -0.2012 + 453.000000 -0.2184 + 454.000000 -0.2021 + 455.000000 -0.1958 + 456.000000 -0.2062 + 457.000000 -0.2114 + 458.000000 -0.1249 + 459.000000 -0.1960 + 460.000000 -0.0904 + 461.000000 -0.1053 + 462.000000 -0.1982 + 463.000000 -0.2102 + 464.000000 -0.1110 + 465.000000 -0.1905 + 466.000000 -0.2109 + 467.000000 -0.1896 + 468.000000 -0.1764 + 469.000000 -0.2009 + 470.000000 -0.1343 + 471.000000 -0.2155 + 472.000000 -0.2061 + 473.000000 -0.0813 + 474.000000 -0.1193 + 475.000000 -0.1952 + 476.000000 -0.1707 + 477.000000 -0.1441 + 478.000000 -0.2059 + 479.000000 -0.2030 + 480.000000 -0.2093 + 481.000000 -0.1796 + 482.000000 -0.2001 + 483.000000 -0.0943 + 484.000000 -0.2088 + 485.000000 -0.1885 + 486.000000 -0.1167 + 487.000000 -0.1232 + 488.000000 -0.1993 + 489.000000 -0.1979 + 490.000000 -0.2035 + 491.000000 -0.2032 + 492.000000 -0.1702 + 493.000000 -0.2131 + 494.000000 -0.0657 + 495.000000 -0.1787 + 496.000000 -0.1128 + 497.000000 -0.1936 + 498.000000 -0.1341 + 499.000000 -0.1315 + 500.000000 -0.0903 + 501.000000 -0.1262 + 502.000000 -0.1148 + 503.000000 -0.0933 + 504.000000 -0.2140 + 505.000000 -0.1993 + 506.000000 -0.2047 + 507.000000 -0.1693 + 508.000000 -0.1685 + 509.000000 -0.1892 + 510.000000 -0.1236 + 511.000000 -0.0722 + 512.000000 -0.1174 + 513.000000 -0.0579 + 514.000000 -0.0697 + 515.000000 -0.1962 + 516.000000 -0.1248 + 517.000000 -0.0685 + 518.000000 -0.1904 + 519.000000 -0.1663 + 520.000000 -0.1472 + 521.000000 -0.1518 + 522.000000 -0.1142 + 523.000000 -0.1940 + 524.000000 -0.0670 + 525.000000 -0.1848 + 526.000000 -0.0868 + 527.000000 -0.0520 + 528.000000 -0.1872 + 529.000000 -0.2095 + 530.000000 -0.1182 + 531.000000 -0.1074 + 532.000000 -0.0621 + 533.000000 -0.1714 + 534.000000 -0.1984 + 535.000000 -0.1766 + 536.000000 -0.2039 + 537.000000 -0.1662 + 538.000000 -0.0366 + 539.000000 -0.0931 + 540.000000 -0.0679 + 541.000000 -0.0568 + 542.000000 -0.1784 + 543.000000 -0.1583 + 544.000000 -0.1711 + 545.000000 -0.1812 diff --git a/regtest/annfunc/rt-test_derivative/config b/regtest/annfunc/rt-test_derivative/config new file mode 100644 index 0000000000..0bec991474 --- /dev/null +++ b/regtest/annfunc/rt-test_derivative/config @@ -0,0 +1,4 @@ +type=driver +plumed_modules=annfunc +arg="--plumed plumed.dat --ixyz diala_traj_nm.xyz" +extra_files="../../trajectories/diala_traj_nm.xyz" diff --git a/regtest/annfunc/rt-test_derivative/deriv.reference b/regtest/annfunc/rt-test_derivative/deriv.reference new file mode 100644 index 0000000000..019f06fe7c --- /dev/null +++ b/regtest/annfunc/rt-test_derivative/deriv.reference @@ -0,0 +1,1093 @@ +#! FIELDS time parameter ann.node-0 + 0.000000 0 0.7339 + 0.000000 1 0.9682 + 1.000000 0 0.7234 + 1.000000 1 0.9554 + 2.000000 0 0.7311 + 2.000000 1 0.9648 + 3.000000 0 0.7269 + 3.000000 1 0.9597 + 4.000000 0 0.7252 + 4.000000 1 0.9577 + 5.000000 0 0.7232 + 5.000000 1 0.9552 + 6.000000 0 0.7234 + 6.000000 1 0.9554 + 7.000000 0 0.7290 + 7.000000 1 0.9623 + 8.000000 0 0.7251 + 8.000000 1 0.9575 + 9.000000 0 0.7329 + 9.000000 1 0.9671 + 10.000000 0 0.7257 + 10.000000 1 0.9583 + 11.000000 0 0.7288 + 11.000000 1 0.9621 + 12.000000 0 0.7339 + 12.000000 1 0.9683 + 13.000000 0 0.7352 + 13.000000 1 0.9699 + 14.000000 0 0.7243 + 14.000000 1 0.9565 + 15.000000 0 0.7213 + 15.000000 1 0.9529 + 16.000000 0 0.7227 + 16.000000 1 0.9546 + 17.000000 0 0.7234 + 17.000000 1 0.9555 + 18.000000 0 0.7238 + 18.000000 1 0.9559 + 19.000000 0 0.7349 + 19.000000 1 0.9695 + 20.000000 0 0.7294 + 20.000000 1 0.9627 + 21.000000 0 0.7345 + 21.000000 1 0.9690 + 22.000000 0 0.7236 + 22.000000 1 0.9556 + 23.000000 0 0.7331 + 23.000000 1 0.9673 + 24.000000 0 0.7314 + 24.000000 1 0.9652 + 25.000000 0 0.7265 + 25.000000 1 0.9592 + 26.000000 0 0.7323 + 26.000000 1 0.9663 + 27.000000 0 0.7311 + 27.000000 1 0.9649 + 28.000000 0 0.7258 + 28.000000 1 0.9584 + 29.000000 0 0.7270 + 29.000000 1 0.9598 + 30.000000 0 0.7241 + 30.000000 1 0.9564 + 31.000000 0 0.7380 + 31.000000 1 0.9732 + 32.000000 0 0.7345 + 32.000000 1 0.9691 + 33.000000 0 0.7239 + 33.000000 1 0.9560 + 34.000000 0 0.7320 + 34.000000 1 0.9659 + 35.000000 0 0.7286 + 35.000000 1 0.9618 + 36.000000 0 0.7332 + 36.000000 1 0.9674 + 37.000000 0 0.7296 + 37.000000 1 0.9630 + 38.000000 0 0.7242 + 38.000000 1 0.9564 + 39.000000 0 0.7349 + 39.000000 1 0.9695 + 40.000000 0 0.7269 + 40.000000 1 0.9598 + 41.000000 0 0.7300 + 41.000000 1 0.9635 + 42.000000 0 0.7281 + 42.000000 1 0.9612 + 43.000000 0 0.7250 + 43.000000 1 0.9574 + 44.000000 0 0.7238 + 44.000000 1 0.9559 + 45.000000 0 0.7257 + 45.000000 1 0.9583 + 46.000000 0 0.7338 + 46.000000 1 0.9682 + 47.000000 0 0.7352 + 47.000000 1 0.9698 + 48.000000 0 0.7247 + 48.000000 1 0.9570 + 49.000000 0 0.7357 + 49.000000 1 0.9704 + 50.000000 0 0.7312 + 50.000000 1 0.9650 + 51.000000 0 0.7263 + 51.000000 1 0.9589 + 52.000000 0 0.7342 + 52.000000 1 0.9686 + 53.000000 0 0.7327 + 53.000000 1 0.9669 + 54.000000 0 0.7341 + 54.000000 1 0.9685 + 55.000000 0 0.7295 + 55.000000 1 0.9630 + 56.000000 0 0.7336 + 56.000000 1 0.9680 + 57.000000 0 0.7351 + 57.000000 1 0.9698 + 58.000000 0 0.7299 + 58.000000 1 0.9633 + 59.000000 0 0.7249 + 59.000000 1 0.9573 + 60.000000 0 0.7314 + 60.000000 1 0.9653 + 61.000000 0 0.7374 + 61.000000 1 0.9725 + 62.000000 0 0.7338 + 62.000000 1 0.9682 + 63.000000 0 0.7308 + 63.000000 1 0.9645 + 64.000000 0 0.7270 + 64.000000 1 0.9599 + 65.000000 0 0.7270 + 65.000000 1 0.9598 + 66.000000 0 0.7269 + 66.000000 1 0.9598 + 67.000000 0 0.7356 + 67.000000 1 0.9704 + 68.000000 0 0.7318 + 68.000000 1 0.9657 + 69.000000 0 0.7269 + 69.000000 1 0.9597 + 70.000000 0 0.7263 + 70.000000 1 0.9590 + 71.000000 0 0.7352 + 71.000000 1 0.9699 + 72.000000 0 0.7240 + 72.000000 1 0.9562 + 73.000000 0 0.7256 + 73.000000 1 0.9581 + 74.000000 0 0.7365 + 74.000000 1 0.9715 + 75.000000 0 0.7356 + 75.000000 1 0.9704 + 76.000000 0 0.7302 + 76.000000 1 0.9637 + 77.000000 0 0.7349 + 77.000000 1 0.9695 + 78.000000 0 0.7273 + 78.000000 1 0.9602 + 79.000000 0 0.7335 + 79.000000 1 0.9677 + 80.000000 0 0.7304 + 80.000000 1 0.9640 + 81.000000 0 0.7278 + 81.000000 1 0.9608 + 82.000000 0 0.7321 + 82.000000 1 0.9660 + 83.000000 0 0.7347 + 83.000000 1 0.9692 + 84.000000 0 0.7354 + 84.000000 1 0.9701 + 85.000000 0 0.7242 + 85.000000 1 0.9564 + 86.000000 0 0.7354 + 86.000000 1 0.9701 + 87.000000 0 0.7366 + 87.000000 1 0.9716 + 88.000000 0 0.7322 + 88.000000 1 0.9661 + 89.000000 0 0.7247 + 89.000000 1 0.9570 + 90.000000 0 0.7294 + 90.000000 1 0.9627 + 91.000000 0 0.7274 + 91.000000 1 0.9603 + 92.000000 0 0.7228 + 92.000000 1 0.9548 + 93.000000 0 0.7214 + 93.000000 1 0.9530 + 94.000000 0 0.7252 + 94.000000 1 0.9577 + 95.000000 0 0.7255 + 95.000000 1 0.9580 + 96.000000 0 0.7385 + 96.000000 1 0.9739 + 97.000000 0 0.7260 + 97.000000 1 0.9586 + 98.000000 0 0.7362 + 98.000000 1 0.9711 + 99.000000 0 0.7358 + 99.000000 1 0.9706 + 100.000000 0 0.7374 + 100.000000 1 0.9725 + 101.000000 0 0.7251 + 101.000000 1 0.9575 + 102.000000 0 0.7250 + 102.000000 1 0.9574 + 103.000000 0 0.7279 + 103.000000 1 0.9610 + 104.000000 0 0.7281 + 104.000000 1 0.9611 + 105.000000 0 0.7216 + 105.000000 1 0.9532 + 106.000000 0 0.7336 + 106.000000 1 0.9679 + 107.000000 0 0.7321 + 107.000000 1 0.9661 + 108.000000 0 0.7300 + 108.000000 1 0.9635 + 109.000000 0 0.7266 + 109.000000 1 0.9594 + 110.000000 0 0.7280 + 110.000000 1 0.9611 + 111.000000 0 0.7310 + 111.000000 1 0.9648 + 112.000000 0 0.7301 + 112.000000 1 0.9637 + 113.000000 0 0.7353 + 113.000000 1 0.9700 + 114.000000 0 0.7355 + 114.000000 1 0.9703 + 115.000000 0 0.7338 + 115.000000 1 0.9681 + 116.000000 0 0.7369 + 116.000000 1 0.9719 + 117.000000 0 0.7349 + 117.000000 1 0.9695 + 118.000000 0 0.7349 + 118.000000 1 0.9695 + 119.000000 0 0.7362 + 119.000000 1 0.9710 + 120.000000 0 0.7355 + 120.000000 1 0.9702 + 121.000000 0 0.7375 + 121.000000 1 0.9726 + 122.000000 0 0.7368 + 122.000000 1 0.9718 + 123.000000 0 0.7379 + 123.000000 1 0.9731 + 124.000000 0 0.7326 + 124.000000 1 0.9667 + 125.000000 0 0.7361 + 125.000000 1 0.9710 + 126.000000 0 0.7271 + 126.000000 1 0.9599 + 127.000000 0 0.7337 + 127.000000 1 0.9681 + 128.000000 0 0.7254 + 128.000000 1 0.9578 + 129.000000 0 0.7352 + 129.000000 1 0.9698 + 130.000000 0 0.7325 + 130.000000 1 0.9665 + 131.000000 0 0.7239 + 131.000000 1 0.9561 + 132.000000 0 0.7303 + 132.000000 1 0.9639 + 133.000000 0 0.7254 + 133.000000 1 0.9579 + 134.000000 0 0.7324 + 134.000000 1 0.9664 + 135.000000 0 0.7380 + 135.000000 1 0.9733 + 136.000000 0 0.7242 + 136.000000 1 0.9564 + 137.000000 0 0.7266 + 137.000000 1 0.9593 + 138.000000 0 0.7326 + 138.000000 1 0.9667 + 139.000000 0 0.7356 + 139.000000 1 0.9703 + 140.000000 0 0.7306 + 140.000000 1 0.9642 + 141.000000 0 0.7324 + 141.000000 1 0.9664 + 142.000000 0 0.7366 + 142.000000 1 0.9716 + 143.000000 0 0.7281 + 143.000000 1 0.9612 + 144.000000 0 0.7336 + 144.000000 1 0.9679 + 145.000000 0 0.7319 + 145.000000 1 0.9659 + 146.000000 0 0.7264 + 146.000000 1 0.9592 + 147.000000 0 0.7282 + 147.000000 1 0.9613 + 148.000000 0 0.7384 + 148.000000 1 0.9738 + 149.000000 0 0.7360 + 149.000000 1 0.9708 + 150.000000 0 0.7324 + 150.000000 1 0.9664 + 151.000000 0 0.7352 + 151.000000 1 0.9699 + 152.000000 0 0.7342 + 152.000000 1 0.9686 + 153.000000 0 0.7249 + 153.000000 1 0.9572 + 154.000000 0 0.7322 + 154.000000 1 0.9662 + 155.000000 0 0.7257 + 155.000000 1 0.9583 + 156.000000 0 0.7266 + 156.000000 1 0.9593 + 157.000000 0 0.7315 + 157.000000 1 0.9653 + 158.000000 0 0.7266 + 158.000000 1 0.9594 + 159.000000 0 0.7239 + 159.000000 1 0.9561 + 160.000000 0 0.7377 + 160.000000 1 0.9728 + 161.000000 0 0.7389 + 161.000000 1 0.9744 + 162.000000 0 0.7312 + 162.000000 1 0.9650 + 163.000000 0 0.7337 + 163.000000 1 0.9680 + 164.000000 0 0.7360 + 164.000000 1 0.9708 + 165.000000 0 0.7359 + 165.000000 1 0.9707 + 166.000000 0 0.7381 + 166.000000 1 0.9734 + 167.000000 0 0.7354 + 167.000000 1 0.9701 + 168.000000 0 0.7303 + 168.000000 1 0.9639 + 169.000000 0 0.7367 + 169.000000 1 0.9717 + 170.000000 0 0.7332 + 170.000000 1 0.9674 + 171.000000 0 0.7278 + 171.000000 1 0.9608 + 172.000000 0 0.7235 + 172.000000 1 0.9556 + 173.000000 0 0.7357 + 173.000000 1 0.9705 + 174.000000 0 0.7229 + 174.000000 1 0.9548 + 175.000000 0 0.7254 + 175.000000 1 0.9579 + 176.000000 0 0.7355 + 176.000000 1 0.9703 + 177.000000 0 0.7353 + 177.000000 1 0.9700 + 178.000000 0 0.7348 + 178.000000 1 0.9694 + 179.000000 0 0.7379 + 179.000000 1 0.9732 + 180.000000 0 0.7351 + 180.000000 1 0.9697 + 181.000000 0 0.7315 + 181.000000 1 0.9653 + 182.000000 0 0.7260 + 182.000000 1 0.9587 + 183.000000 0 0.7230 + 183.000000 1 0.9550 + 184.000000 0 0.7256 + 184.000000 1 0.9582 + 185.000000 0 0.7301 + 185.000000 1 0.9637 + 186.000000 0 0.7267 + 186.000000 1 0.9594 + 187.000000 0 0.7299 + 187.000000 1 0.9634 + 188.000000 0 0.7331 + 188.000000 1 0.9673 + 189.000000 0 0.7291 + 189.000000 1 0.9624 + 190.000000 0 0.7251 + 190.000000 1 0.9576 + 191.000000 0 0.7371 + 191.000000 1 0.9722 + 192.000000 0 0.7392 + 192.000000 1 0.9747 + 193.000000 0 0.7297 + 193.000000 1 0.9631 + 194.000000 0 0.7379 + 194.000000 1 0.9731 + 195.000000 0 0.7327 + 195.000000 1 0.9668 + 196.000000 0 0.7317 + 196.000000 1 0.9655 + 197.000000 0 0.7378 + 197.000000 1 0.9731 + 198.000000 0 0.7270 + 198.000000 1 0.9598 + 199.000000 0 0.7390 + 199.000000 1 0.9745 + 200.000000 0 0.7373 + 200.000000 1 0.9725 + 201.000000 0 0.7366 + 201.000000 1 0.9716 + 202.000000 0 0.7352 + 202.000000 1 0.9698 + 203.000000 0 0.7416 + 203.000000 1 0.9777 + 204.000000 0 0.7245 + 204.000000 1 0.9568 + 205.000000 0 0.7321 + 205.000000 1 0.9661 + 206.000000 0 0.7343 + 206.000000 1 0.9688 + 207.000000 0 0.7246 + 207.000000 1 0.9569 + 208.000000 0 0.7375 + 208.000000 1 0.9726 + 209.000000 0 0.7330 + 209.000000 1 0.9672 + 210.000000 0 0.7301 + 210.000000 1 0.9636 + 211.000000 0 0.7346 + 211.000000 1 0.9691 + 212.000000 0 0.7257 + 212.000000 1 0.9583 + 213.000000 0 0.7239 + 213.000000 1 0.9561 + 214.000000 0 0.7247 + 214.000000 1 0.9570 + 215.000000 0 0.7376 + 215.000000 1 0.9728 + 216.000000 0 0.7362 + 216.000000 1 0.9711 + 217.000000 0 0.7355 + 217.000000 1 0.9702 + 218.000000 0 0.7249 + 218.000000 1 0.9573 + 219.000000 0 0.7325 + 219.000000 1 0.9666 + 220.000000 0 0.7324 + 220.000000 1 0.9664 + 221.000000 0 0.7259 + 221.000000 1 0.9585 + 222.000000 0 0.7225 + 222.000000 1 0.9543 + 223.000000 0 0.7255 + 223.000000 1 0.9580 + 224.000000 0 0.7317 + 224.000000 1 0.9655 + 225.000000 0 0.7265 + 225.000000 1 0.9593 + 226.000000 0 0.7378 + 226.000000 1 0.9730 + 227.000000 0 0.7278 + 227.000000 1 0.9608 + 228.000000 0 0.7244 + 228.000000 1 0.9566 + 229.000000 0 0.7266 + 229.000000 1 0.9594 + 230.000000 0 0.7353 + 230.000000 1 0.9700 + 231.000000 0 0.7226 + 231.000000 1 0.9545 + 232.000000 0 0.7300 + 232.000000 1 0.9635 + 233.000000 0 0.7330 + 233.000000 1 0.9672 + 234.000000 0 0.7289 + 234.000000 1 0.9622 + 235.000000 0 0.7238 + 235.000000 1 0.9559 + 236.000000 0 0.7231 + 236.000000 1 0.9551 + 237.000000 0 0.7318 + 237.000000 1 0.9657 + 238.000000 0 0.7381 + 238.000000 1 0.9734 + 239.000000 0 0.7369 + 239.000000 1 0.9719 + 240.000000 0 0.7356 + 240.000000 1 0.9704 + 241.000000 0 0.7366 + 241.000000 1 0.9716 + 242.000000 0 0.7307 + 242.000000 1 0.9644 + 243.000000 0 0.7238 + 243.000000 1 0.9559 + 244.000000 0 0.7352 + 244.000000 1 0.9698 + 245.000000 0 0.7330 + 245.000000 1 0.9672 + 246.000000 0 0.7371 + 246.000000 1 0.9721 + 247.000000 0 0.7334 + 247.000000 1 0.9677 + 248.000000 0 0.7255 + 248.000000 1 0.9581 + 249.000000 0 0.7248 + 249.000000 1 0.9571 + 250.000000 0 0.7296 + 250.000000 1 0.9630 + 251.000000 0 0.7289 + 251.000000 1 0.9622 + 252.000000 0 0.7260 + 252.000000 1 0.9586 + 253.000000 0 0.7295 + 253.000000 1 0.9629 + 254.000000 0 0.7247 + 254.000000 1 0.9570 + 255.000000 0 0.7245 + 255.000000 1 0.9568 + 256.000000 0 0.7262 + 256.000000 1 0.9589 + 257.000000 0 0.7377 + 257.000000 1 0.9729 + 258.000000 0 0.7305 + 258.000000 1 0.9642 + 259.000000 0 0.7286 + 259.000000 1 0.9618 + 260.000000 0 0.7374 + 260.000000 1 0.9725 + 261.000000 0 0.7333 + 261.000000 1 0.9676 + 262.000000 0 0.7280 + 262.000000 1 0.9610 + 263.000000 0 0.7279 + 263.000000 1 0.9609 + 264.000000 0 0.7253 + 264.000000 1 0.9578 + 265.000000 0 0.7247 + 265.000000 1 0.9571 + 266.000000 0 0.7313 + 266.000000 1 0.9651 + 267.000000 0 0.7340 + 267.000000 1 0.9684 + 268.000000 0 0.7370 + 268.000000 1 0.9721 + 269.000000 0 0.7339 + 269.000000 1 0.9682 + 270.000000 0 0.7377 + 270.000000 1 0.9729 + 271.000000 0 0.7305 + 271.000000 1 0.9641 + 272.000000 0 0.7301 + 272.000000 1 0.9637 + 273.000000 0 0.7353 + 273.000000 1 0.9700 + 274.000000 0 0.7327 + 274.000000 1 0.9668 + 275.000000 0 0.7305 + 275.000000 1 0.9641 + 276.000000 0 0.7265 + 276.000000 1 0.9592 + 277.000000 0 0.7254 + 277.000000 1 0.9579 + 278.000000 0 0.7258 + 278.000000 1 0.9583 + 279.000000 0 0.7282 + 279.000000 1 0.9614 + 280.000000 0 0.7285 + 280.000000 1 0.9616 + 281.000000 0 0.7282 + 281.000000 1 0.9613 + 282.000000 0 0.7269 + 282.000000 1 0.9597 + 283.000000 0 0.7362 + 283.000000 1 0.9710 + 284.000000 0 0.7275 + 284.000000 1 0.9604 + 285.000000 0 0.7348 + 285.000000 1 0.9693 + 286.000000 0 0.7323 + 286.000000 1 0.9663 + 287.000000 0 0.7328 + 287.000000 1 0.9670 + 288.000000 0 0.7251 + 288.000000 1 0.9576 + 289.000000 0 0.7296 + 289.000000 1 0.9630 + 290.000000 0 0.7353 + 290.000000 1 0.9699 + 291.000000 0 0.7328 + 291.000000 1 0.9669 + 292.000000 0 0.7297 + 292.000000 1 0.9631 + 293.000000 0 0.7251 + 293.000000 1 0.9576 + 294.000000 0 0.7278 + 294.000000 1 0.9608 + 295.000000 0 0.7250 + 295.000000 1 0.9574 + 296.000000 0 0.7326 + 296.000000 1 0.9667 + 297.000000 0 0.7271 + 297.000000 1 0.9600 + 298.000000 0 0.7254 + 298.000000 1 0.9579 + 299.000000 0 0.7280 + 299.000000 1 0.9611 + 300.000000 0 0.7300 + 300.000000 1 0.9635 + 301.000000 0 0.7315 + 301.000000 1 0.9654 + 302.000000 0 0.7249 + 302.000000 1 0.9573 + 303.000000 0 0.7347 + 303.000000 1 0.9692 + 304.000000 0 0.7311 + 304.000000 1 0.9648 + 305.000000 0 0.7269 + 305.000000 1 0.9598 + 306.000000 0 0.7333 + 306.000000 1 0.9675 + 307.000000 0 0.7342 + 307.000000 1 0.9687 + 308.000000 0 0.7262 + 308.000000 1 0.9589 + 309.000000 0 0.7246 + 309.000000 1 0.9569 + 310.000000 0 0.7251 + 310.000000 1 0.9575 + 311.000000 0 0.7266 + 311.000000 1 0.9594 + 312.000000 0 0.7312 + 312.000000 1 0.9649 + 313.000000 0 0.7286 + 313.000000 1 0.9618 + 314.000000 0 0.7280 + 314.000000 1 0.9611 + 315.000000 0 0.7248 + 315.000000 1 0.9572 + 316.000000 0 0.7286 + 316.000000 1 0.9618 + 317.000000 0 0.7251 + 317.000000 1 0.9575 + 318.000000 0 0.7287 + 318.000000 1 0.9620 + 319.000000 0 0.7249 + 319.000000 1 0.9573 + 320.000000 0 0.7279 + 320.000000 1 0.9609 + 321.000000 0 0.7228 + 321.000000 1 0.9547 + 322.000000 0 0.7235 + 322.000000 1 0.9555 + 323.000000 0 0.7251 + 323.000000 1 0.9575 + 324.000000 0 0.7276 + 324.000000 1 0.9606 + 325.000000 0 0.7279 + 325.000000 1 0.9609 + 326.000000 0 0.7235 + 326.000000 1 0.9555 + 327.000000 0 0.7312 + 327.000000 1 0.9650 + 328.000000 0 0.7276 + 328.000000 1 0.9606 + 329.000000 0 0.7310 + 329.000000 1 0.9647 + 330.000000 0 0.7285 + 330.000000 1 0.9617 + 331.000000 0 0.7235 + 331.000000 1 0.9556 + 332.000000 0 0.7295 + 332.000000 1 0.9630 + 333.000000 0 0.7293 + 333.000000 1 0.9626 + 334.000000 0 0.7231 + 334.000000 1 0.9551 + 335.000000 0 0.7275 + 335.000000 1 0.9604 + 336.000000 0 0.7299 + 336.000000 1 0.9634 + 337.000000 0 0.7272 + 337.000000 1 0.9601 + 338.000000 0 0.7287 + 338.000000 1 0.9619 + 339.000000 0 0.7243 + 339.000000 1 0.9565 + 340.000000 0 0.7241 + 340.000000 1 0.9564 + 341.000000 0 0.7274 + 341.000000 1 0.9603 + 342.000000 0 0.7304 + 342.000000 1 0.9640 + 343.000000 0 0.7281 + 343.000000 1 0.9612 + 344.000000 0 0.7313 + 344.000000 1 0.9651 + 345.000000 0 0.7293 + 345.000000 1 0.9626 + 346.000000 0 0.7320 + 346.000000 1 0.9659 + 347.000000 0 0.7244 + 347.000000 1 0.9566 + 348.000000 0 0.7261 + 348.000000 1 0.9588 + 349.000000 0 0.7224 + 349.000000 1 0.9542 + 350.000000 0 0.7302 + 350.000000 1 0.9638 + 351.000000 0 0.7318 + 351.000000 1 0.9657 + 352.000000 0 0.7261 + 352.000000 1 0.9588 + 353.000000 0 0.7248 + 353.000000 1 0.9571 + 354.000000 0 0.7271 + 354.000000 1 0.9600 + 355.000000 0 0.7281 + 355.000000 1 0.9612 + 356.000000 0 0.7274 + 356.000000 1 0.9603 + 357.000000 0 0.7309 + 357.000000 1 0.9647 + 358.000000 0 0.7283 + 358.000000 1 0.9614 + 359.000000 0 0.7296 + 359.000000 1 0.9630 + 360.000000 0 0.7251 + 360.000000 1 0.9575 + 361.000000 0 0.7235 + 361.000000 1 0.9556 + 362.000000 0 0.7220 + 362.000000 1 0.9537 + 363.000000 0 0.7287 + 363.000000 1 0.9619 + 364.000000 0 0.7304 + 364.000000 1 0.9640 + 365.000000 0 0.7247 + 365.000000 1 0.9570 + 366.000000 0 0.7294 + 366.000000 1 0.9628 + 367.000000 0 0.7261 + 367.000000 1 0.9587 + 368.000000 0 0.7245 + 368.000000 1 0.9568 + 369.000000 0 0.7286 + 369.000000 1 0.9618 + 370.000000 0 0.7337 + 370.000000 1 0.9680 + 371.000000 0 0.7299 + 371.000000 1 0.9634 + 372.000000 0 0.7239 + 372.000000 1 0.9560 + 373.000000 0 0.7301 + 373.000000 1 0.9637 + 374.000000 0 0.7228 + 374.000000 1 0.9547 + 375.000000 0 0.7224 + 375.000000 1 0.9542 + 376.000000 0 0.7221 + 376.000000 1 0.9539 + 377.000000 0 0.7332 + 377.000000 1 0.9674 + 378.000000 0 0.7311 + 378.000000 1 0.9648 + 379.000000 0 0.7253 + 379.000000 1 0.9578 + 380.000000 0 0.7289 + 380.000000 1 0.9622 + 381.000000 0 0.7308 + 381.000000 1 0.9645 + 382.000000 0 0.7297 + 382.000000 1 0.9632 + 383.000000 0 0.7328 + 383.000000 1 0.9669 + 384.000000 0 0.7266 + 384.000000 1 0.9594 + 385.000000 0 0.7251 + 385.000000 1 0.9575 + 386.000000 0 0.7269 + 386.000000 1 0.9597 + 387.000000 0 0.7330 + 387.000000 1 0.9672 + 388.000000 0 0.7263 + 388.000000 1 0.9589 + 389.000000 0 0.7224 + 389.000000 1 0.9543 + 390.000000 0 0.7270 + 390.000000 1 0.9598 + 391.000000 0 0.7257 + 391.000000 1 0.9583 + 392.000000 0 0.7250 + 392.000000 1 0.9574 + 393.000000 0 0.7218 + 393.000000 1 0.9534 + 394.000000 0 0.7306 + 394.000000 1 0.9642 + 395.000000 0 0.7337 + 395.000000 1 0.9680 + 396.000000 0 0.7338 + 396.000000 1 0.9682 + 397.000000 0 0.7298 + 397.000000 1 0.9633 + 398.000000 0 0.7239 + 398.000000 1 0.9560 + 399.000000 0 0.7305 + 399.000000 1 0.9641 + 400.000000 0 0.7297 + 400.000000 1 0.9631 + 401.000000 0 0.7227 + 401.000000 1 0.9546 + 402.000000 0 0.7293 + 402.000000 1 0.9626 + 403.000000 0 0.7361 + 403.000000 1 0.9710 + 404.000000 0 0.7249 + 404.000000 1 0.9573 + 405.000000 0 0.7256 + 405.000000 1 0.9581 + 406.000000 0 0.7353 + 406.000000 1 0.9699 + 407.000000 0 0.7332 + 407.000000 1 0.9674 + 408.000000 0 0.7359 + 408.000000 1 0.9707 + 409.000000 0 0.7310 + 409.000000 1 0.9648 + 410.000000 0 0.7338 + 410.000000 1 0.9682 + 411.000000 0 0.7274 + 411.000000 1 0.9604 + 412.000000 0 0.7319 + 412.000000 1 0.9659 + 413.000000 0 0.7245 + 413.000000 1 0.9568 + 414.000000 0 0.7248 + 414.000000 1 0.9571 + 415.000000 0 0.7286 + 415.000000 1 0.9619 + 416.000000 0 0.7290 + 416.000000 1 0.9622 + 417.000000 0 0.7300 + 417.000000 1 0.9635 + 418.000000 0 0.7252 + 418.000000 1 0.9576 + 419.000000 0 0.7219 + 419.000000 1 0.9536 + 420.000000 0 0.7282 + 420.000000 1 0.9613 + 421.000000 0 0.7299 + 421.000000 1 0.9634 + 422.000000 0 0.7303 + 422.000000 1 0.9639 + 423.000000 0 0.7393 + 423.000000 1 0.9748 + 424.000000 0 0.7279 + 424.000000 1 0.9609 + 425.000000 0 0.7346 + 425.000000 1 0.9691 + 426.000000 0 0.7245 + 426.000000 1 0.9568 + 427.000000 0 0.7400 + 427.000000 1 0.9758 + 428.000000 0 0.7230 + 428.000000 1 0.9550 + 429.000000 0 0.7276 + 429.000000 1 0.9606 + 430.000000 0 0.7248 + 430.000000 1 0.9571 + 431.000000 0 0.7357 + 431.000000 1 0.9705 + 432.000000 0 0.7290 + 432.000000 1 0.9623 + 433.000000 0 0.7309 + 433.000000 1 0.9646 + 434.000000 0 0.7391 + 434.000000 1 0.9746 + 435.000000 0 0.7372 + 435.000000 1 0.9722 + 436.000000 0 0.7397 + 436.000000 1 0.9753 + 437.000000 0 0.7369 + 437.000000 1 0.9719 + 438.000000 0 0.7205 + 438.000000 1 0.9520 + 439.000000 0 0.7230 + 439.000000 1 0.9550 + 440.000000 0 0.7265 + 440.000000 1 0.9592 + 441.000000 0 0.7324 + 441.000000 1 0.9664 + 442.000000 0 0.7294 + 442.000000 1 0.9628 + 443.000000 0 0.7265 + 443.000000 1 0.9592 + 444.000000 0 0.7358 + 444.000000 1 0.9706 + 445.000000 0 0.7268 + 445.000000 1 0.9596 + 446.000000 0 0.7284 + 446.000000 1 0.9616 + 447.000000 0 0.7274 + 447.000000 1 0.9603 + 448.000000 0 0.7375 + 448.000000 1 0.9727 + 449.000000 0 0.7421 + 449.000000 1 0.9782 + 450.000000 0 0.7265 + 450.000000 1 0.9592 + 451.000000 0 0.7373 + 451.000000 1 0.9724 + 452.000000 0 0.7279 + 452.000000 1 0.9610 + 453.000000 0 0.7252 + 453.000000 1 0.9577 + 454.000000 0 0.7278 + 454.000000 1 0.9608 + 455.000000 0 0.7288 + 455.000000 1 0.9621 + 456.000000 0 0.7271 + 456.000000 1 0.9600 + 457.000000 0 0.7264 + 457.000000 1 0.9591 + 458.000000 0 0.7389 + 458.000000 1 0.9743 + 459.000000 0 0.7289 + 459.000000 1 0.9621 + 460.000000 0 0.7431 + 460.000000 1 0.9794 + 461.000000 0 0.7413 + 461.000000 1 0.9773 + 462.000000 0 0.7285 + 462.000000 1 0.9617 + 463.000000 0 0.7266 + 463.000000 1 0.9593 + 464.000000 0 0.7405 + 464.000000 1 0.9764 + 465.000000 0 0.7296 + 465.000000 1 0.9631 + 466.000000 0 0.7265 + 466.000000 1 0.9592 + 467.000000 0 0.7297 + 467.000000 1 0.9632 + 468.000000 0 0.7319 + 468.000000 1 0.9658 + 469.000000 0 0.7280 + 469.000000 1 0.9611 + 470.000000 0 0.7377 + 470.000000 1 0.9729 + 471.000000 0 0.7257 + 471.000000 1 0.9583 + 472.000000 0 0.7273 + 472.000000 1 0.9602 + 473.000000 0 0.7441 + 473.000000 1 0.9807 + 474.000000 0 0.7396 + 474.000000 1 0.9752 + 475.000000 0 0.7291 + 475.000000 1 0.9624 + 476.000000 0 0.7327 + 476.000000 1 0.9667 + 477.000000 0 0.7363 + 477.000000 1 0.9712 + 478.000000 0 0.7273 + 478.000000 1 0.9602 + 479.000000 0 0.7278 + 479.000000 1 0.9608 + 480.000000 0 0.7267 + 480.000000 1 0.9595 + 481.000000 0 0.7314 + 481.000000 1 0.9653 + 482.000000 0 0.7282 + 482.000000 1 0.9613 + 483.000000 0 0.7427 + 483.000000 1 0.9789 + 484.000000 0 0.7268 + 484.000000 1 0.9596 + 485.000000 0 0.7300 + 485.000000 1 0.9635 + 486.000000 0 0.7400 + 486.000000 1 0.9757 + 487.000000 0 0.7391 + 487.000000 1 0.9746 + 488.000000 0 0.7284 + 488.000000 1 0.9616 + 489.000000 0 0.7286 + 489.000000 1 0.9619 + 490.000000 0 0.7276 + 490.000000 1 0.9606 + 491.000000 0 0.7277 + 491.000000 1 0.9607 + 492.000000 0 0.7328 + 492.000000 1 0.9669 + 493.000000 0 0.7261 + 493.000000 1 0.9587 + 494.000000 0 0.7458 + 494.000000 1 0.9828 + 495.000000 0 0.7315 + 495.000000 1 0.9653 + 496.000000 0 0.7405 + 496.000000 1 0.9763 + 497.000000 0 0.7293 + 497.000000 1 0.9626 + 498.000000 0 0.7377 + 498.000000 1 0.9729 + 499.000000 0 0.7382 + 499.000000 1 0.9735 + 500.000000 0 0.7431 + 500.000000 1 0.9795 + 501.000000 0 0.7388 + 501.000000 1 0.9743 + 502.000000 0 0.7402 + 502.000000 1 0.9760 + 503.000000 0 0.7427 + 503.000000 1 0.9790 + 504.000000 0 0.7260 + 504.000000 1 0.9586 + 505.000000 0 0.7284 + 505.000000 1 0.9616 + 506.000000 0 0.7275 + 506.000000 1 0.9604 + 507.000000 0 0.7330 + 507.000000 1 0.9672 + 508.000000 0 0.7330 + 508.000000 1 0.9671 + 509.000000 0 0.7300 + 509.000000 1 0.9635 + 510.000000 0 0.7391 + 510.000000 1 0.9746 + 511.000000 0 0.7451 + 511.000000 1 0.9819 + 512.000000 0 0.7400 + 512.000000 1 0.9757 + 513.000000 0 0.7466 + 513.000000 1 0.9838 + 514.000000 0 0.7454 + 514.000000 1 0.9823 + 515.000000 0 0.7290 + 515.000000 1 0.9622 + 516.000000 0 0.7390 + 516.000000 1 0.9744 + 517.000000 0 0.7455 + 517.000000 1 0.9824 + 518.000000 0 0.7298 + 518.000000 1 0.9633 + 519.000000 0 0.7333 + 519.000000 1 0.9675 + 520.000000 0 0.7362 + 520.000000 1 0.9710 + 521.000000 0 0.7354 + 521.000000 1 0.9701 + 522.000000 0 0.7404 + 522.000000 1 0.9761 + 523.000000 0 0.7292 + 523.000000 1 0.9626 + 524.000000 0 0.7457 + 524.000000 1 0.9826 + 525.000000 0 0.7307 + 525.000000 1 0.9644 + 526.000000 0 0.7436 + 526.000000 1 0.9801 + 527.000000 0 0.7472 + 527.000000 1 0.9845 + 528.000000 0 0.7304 + 528.000000 1 0.9640 + 529.000000 0 0.7267 + 529.000000 1 0.9595 + 530.000000 0 0.7398 + 530.000000 1 0.9755 + 531.000000 0 0.7411 + 531.000000 1 0.9771 + 532.000000 0 0.7462 + 532.000000 1 0.9832 + 533.000000 0 0.7328 + 533.000000 1 0.9670 + 534.000000 0 0.7285 + 534.000000 1 0.9617 + 535.000000 0 0.7319 + 535.000000 1 0.9659 + 536.000000 0 0.7276 + 536.000000 1 0.9606 + 537.000000 0 0.7335 + 537.000000 1 0.9677 + 538.000000 0 0.7487 + 538.000000 1 0.9863 + 539.000000 0 0.7429 + 539.000000 1 0.9792 + 540.000000 0 0.7456 + 540.000000 1 0.9825 + 541.000000 0 0.7468 + 541.000000 1 0.9840 + 542.000000 0 0.7316 + 542.000000 1 0.9655 + 543.000000 0 0.7345 + 543.000000 1 0.9690 + 544.000000 0 0.7327 + 544.000000 1 0.9668 + 545.000000 0 0.7312 + 545.000000 1 0.9650 diff --git a/regtest/annfunc/rt-test_derivative/plumed.dat b/regtest/annfunc/rt-test_derivative/plumed.dat new file mode 100644 index 0000000000..fabc273c50 --- /dev/null +++ b/regtest/annfunc/rt-test_derivative/plumed.dat @@ -0,0 +1,6 @@ +p1: POSITION ATOM=1 +p2: POSITION ATOM=2 +ann: ANN ARG=p1.x,p2.x NUM_LAYERS=3 NUM_NODES=2,3,1 ACTIVATIONS=Tanh,Linear WEIGHTS0=0.1,0.2,0.3,0.4,0.5,0.6 WEIGHTS1=0.7,0.8,0.9 BIASES0=0.1,0.11,0.12 BIASES1=0.13 +ann_n: ANN ARG=p1.x,p2.x NUM_LAYERS=3 NUM_NODES=2,3,1 ACTIVATIONS=Tanh,Linear WEIGHTS0=0.1,0.2,0.3,0.4,0.5,0.6 WEIGHTS1=0.7,0.8,0.9 BIASES0=0.1,0.11,0.12 BIASES1=0.13 NUMERICAL_DERIVATIVES +PRINT ARG=ann.node-0 FILE=colvar FMT=%15.4f +DUMPDERIVATIVES ARG=ann.node-0 FILE=deriv FMT=%15.4f diff --git a/src/.gitignore b/src/.gitignore index e83121078e..b20c729d17 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -5,6 +5,7 @@ !/README !/adjmat !/analysis +!/annfunc !/asmjit !/bias !/blas diff --git a/src/annfunc/.gitignore b/src/annfunc/.gitignore new file mode 100644 index 0000000000..f51ff1c574 --- /dev/null +++ b/src/annfunc/.gitignore @@ -0,0 +1,4 @@ +core/** +deps/** +function/** +*.o diff --git a/src/annfunc/ANN.cpp b/src/annfunc/ANN.cpp new file mode 100644 index 0000000000..24ad77ac7a --- /dev/null +++ b/src/annfunc/ANN.cpp @@ -0,0 +1,397 @@ +/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +MIT License + +Copyright (c) 2019 Wei Chen and Andrew Ferguson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ +#include "function/Function.h" +#include "function/ActionRegister.h" +#include "cassert" + +#include +#include +#include +// #include + +using namespace std; + +// #define DEBUG +// #define DEBUG_2 +// #define DEBUG_3 + +namespace PLMD { +namespace function { +namespace annfunc { + +//+PLUMEDOC ANNMOD_Function ANN +/* +Calculates the ANN-function. + +This module implements ANN class, which is a subclass of Function class. +ANN class takes multi-dimensional arrays as inputs for a fully-connected feedforward neural network +with specified neural network weights and generates corresponding outputs. +The ANN outputs can be used as collective variables, inputs for other collective variables, +or inputs for data analysis tools. + +\par Examples + +Assume we have an ANN with numbers of nodes being [2, 3, 1], and weights connecting layer 0 and 1 are + +[[1,2], [3,4], [5,6]] + +weights connecting layer 1 and 2 are + +[[7,8,9]] + +Bias for layer 1 and 2 are [10, 11, 12] and [13], respectively. + +All activation functions are Tanh. + +Then if input variables are l_0_out_0, l_0_out_1, the corresponding ANN function object can be defined using +following plumed script: + +\plumedfile +ANN ... +LABEL=ann +ARG=l_0_out_0,l_0_out_1 +NUM_LAYERS=3 +NUM_NODES=2,3,1 +ACTIVATIONS=Tanh,Tanh +WEIGHTS0=1,2,3,4,5,6 +WEIGHTS1=7,8,9 +BIASES0=10,11,12 +BIASES1=13 +... ANN +\endplumedfile + +To access its components, we use "ann.node-0", "ann.node-1", ..., which represents 0th, 1st,..., component of neural network outputs. + + +*/ +//+ENDPLUMEDOC + +class ANN : public Function +{ +private: + int num_layers; + vector num_nodes; + vector activations; // activation functions + vector > weights; // flattened weight arrays + vector > biases; + vector > output_of_each_layer; + vector > input_of_each_layer; + vector coeff; // weight matrix arrays, reshaped from "weights" + +public: + static void registerKeywords( Keywords& keys ); + explicit ANN(const ActionOptions&); + virtual void calculate(); + void calculate_output_of_each_layer(const vector& input); + void back_prop(vector >& derivatives_of_each_layer, int index_of_output_component); +}; + +PLUMED_REGISTER_ACTION(ANN,"ANN") + +void ANN::registerKeywords( Keywords& keys ) { + Function::registerKeywords(keys); + keys.use("ARG"); keys.use("PERIODIC"); + keys.add("compulsory", "NUM_LAYERS", "number of layers of the neural network"); + keys.add("compulsory", "NUM_NODES", "numbers of nodes in each layer of the neural network"); + keys.add("compulsory", "ACTIVATIONS", "activation functions for the neural network"); + keys.add("numbered", "WEIGHTS", "flattened weight arrays connecting adjacent layers, " + "WEIGHTS0 represents flattened weight array connecting layer 0 and layer 1, " + "WEIGHTS1 represents flattened weight array connecting layer 1 and layer 2, ..."); + keys.add("numbered", "BIASES", "bias array for each layer of the neural network, " + "BIASES0 represents bias array for layer 1, BIASES1 represents bias array for layer 2, ..."); + // since v2.2 plumed requires all components be registered + keys.addOutputComponent("node", "default", "components of ANN outputs"); +} + +ANN::ANN(const ActionOptions&ao): + Action(ao), + Function(ao) +{ + parse("NUM_LAYERS", num_layers); + num_nodes = vector(num_layers); + activations = vector(num_layers - 1); + output_of_each_layer = vector >(num_layers); + input_of_each_layer = vector >(num_layers); + coeff = vector(num_layers - 1); + parseVector("NUM_NODES", num_nodes); + parseVector("ACTIVATIONS", activations); + log.printf("\nactivations = "); + for (auto ss: activations) { + log.printf("%s, ", ss.c_str()); + } + log.printf("\nnum_nodes = "); + for (auto ss: num_nodes) { + log.printf("%d, ", ss); + } + vector temp_single_coeff, temp_single_bias; + for (int ii = 0; ; ii ++) { + // parse coeff + if( !parseNumberedVector("WEIGHTS", ii, temp_single_coeff) ) { + temp_single_coeff=weights[ii-1]; + break; + } + weights.push_back(temp_single_coeff); + log.printf("size of temp_single_coeff = %lu\n", temp_single_coeff.size()); + log.printf("size of weights = %lu\n", weights.size()); + // parse bias + if( !parseNumberedVector("BIASES", ii, temp_single_bias) ) { + temp_single_bias=biases[ii-1]; + } + biases.push_back(temp_single_bias); + log.printf("size of temp_single_bias = %lu\n", temp_single_bias.size()); + log.printf("size of biases = %lu\n", biases.size()); + } + + if(getNumberOfArguments() != num_nodes[0]) { + error("Number of arguments is wrong"); + } + + auto temp_coeff = weights; + for (int ii = 0; ii < num_layers - 1; ii ++) { + int num_of_rows, num_of_cols; // num of rows/cols for the coeff matrix of this connection + num_of_rows = num_nodes[ii + 1]; + num_of_cols = num_nodes[ii]; + assert (num_of_rows * num_of_cols == temp_coeff[ii].size()); // check whether the size matches + // create a 2d array to hold coefficients + coeff[ii] = new double*[num_of_rows]; + for (int kk = 0; kk < num_of_rows; kk ++) { + coeff[ii][kk] = new double[num_of_cols]; + } + for (int jj = 0; jj < temp_coeff[ii].size(); jj ++) { + coeff[ii][jj / num_of_cols][jj % num_of_cols] = temp_coeff[ii][jj]; + } + } + // check coeff + for (int ii = 0; ii < num_layers - 1; ii ++) { + log.printf("coeff %d = \n", ii); + for (int jj = 0; jj < num_nodes[ii + 1]; jj ++) { + for (int kk = 0; kk < num_nodes[ii]; kk ++) { + log.printf("%f ", coeff[ii][jj][kk]); + } + log.printf("\n"); + } + } + // check bias + for (int ii = 0; ii < num_layers - 1; ii ++) { + log.printf("bias %d = \n", ii); + for (int jj = 0; jj < num_nodes[ii + 1]; jj ++) { + log.printf("%f ", biases[ii][jj]); + } + log.printf("\n"); + } + log.printf("initialization ended\n"); + // create components + for (int ii = 0; ii < num_nodes[num_layers - 1]; ii ++) { + string name_of_this_component = "node-" + to_string(ii); + addComponentWithDerivatives(name_of_this_component); + componentIsNotPeriodic(name_of_this_component); + } + checkRead(); +} + +void ANN::calculate_output_of_each_layer(const vector& input) { + // first layer + output_of_each_layer[0] = input; + // following layers + for(int ii = 1; ii < num_nodes.size(); ii ++) { + output_of_each_layer[ii].resize(num_nodes[ii]); + input_of_each_layer[ii].resize(num_nodes[ii]); + // first calculate input + for (int jj = 0; jj < num_nodes[ii]; jj ++) { + input_of_each_layer[ii][jj] = biases[ii - 1][jj]; // add bias term + for (int kk = 0; kk < num_nodes[ii - 1]; kk ++) { + input_of_each_layer[ii][jj] += coeff[ii - 1][jj][kk] * output_of_each_layer[ii - 1][kk]; + } + } + // then get output + if (activations[ii - 1] == string("Linear")) { + for(int jj = 0; jj < num_nodes[ii]; jj ++) { + output_of_each_layer[ii][jj] = input_of_each_layer[ii][jj]; + } + } + else if (activations[ii - 1] == string("Tanh")) { + for(int jj = 0; jj < num_nodes[ii]; jj ++) { + output_of_each_layer[ii][jj] = tanh(input_of_each_layer[ii][jj]); + } + } + else if (activations[ii - 1] == string("Circular")) { + assert (num_nodes[ii] % 2 == 0); + for(int jj = 0; jj < num_nodes[ii] / 2; jj ++) { + double radius = sqrt(input_of_each_layer[ii][2 * jj] * input_of_each_layer[ii][2 * jj] + +input_of_each_layer[ii][2 * jj + 1] * input_of_each_layer[ii][2 * jj + 1]); + output_of_each_layer[ii][2 * jj] = input_of_each_layer[ii][2 * jj] / radius; + output_of_each_layer[ii][2 * jj + 1] = input_of_each_layer[ii][2 * jj + 1] / radius; + + } + } + else { + printf("layer type not found!\n\n"); + return; + } + } +#ifdef DEBUG_2 + // print out the result for debugging + printf("output_of_each_layer = \n"); + // for (int ii = num_layers - 1; ii < num_layers; ii ++) { + for (int ii = 0; ii < num_layers; ii ++) { + printf("layer[%d]: ", ii); + if (ii != 0) { + cout << activations[ii - 1] << "\t"; + } + else { + cout << "input \t" ; + } + for (int jj = 0; jj < num_nodes[ii]; jj ++) { + printf("%lf\t", output_of_each_layer[ii][jj]); + } + printf("\n"); + } + printf("\n"); +#endif + return; +} + +void ANN::back_prop(vector >& derivatives_of_each_layer, int index_of_output_component) { + derivatives_of_each_layer = output_of_each_layer; // the data structure and size should be the same, so I simply deep copy it + // first calculate derivatives for bottleneck layer + for (int ii = 0; ii < num_nodes[num_nodes.size() - 1]; ii ++ ) { + if (ii == index_of_output_component) { + derivatives_of_each_layer[num_nodes.size() - 1][ii] = 1; + } + else { + derivatives_of_each_layer[num_nodes.size() - 1][ii] = 0; + } + } + // the use back propagation to calculate derivatives for previous layers + for (int jj = num_nodes.size() - 2; jj >= 0; jj --) { + if (activations[jj] == string("Circular")) { + vector temp_derivative_of_input_for_this_layer; + temp_derivative_of_input_for_this_layer.resize(num_nodes[jj + 1]); +#ifdef DEBUG + assert (num_nodes[jj + 1] % 2 == 0); +#endif + // first calculate the derivative of input from derivative of output of this circular layer + for(int ii = 0; ii < num_nodes[jj + 1] / 2; ii ++) { + // printf("size of input_of_each_layer[%d] = %d\n",jj, input_of_each_layer[jj].size()); + double x_p = input_of_each_layer[jj + 1][2 * ii]; + double x_q = input_of_each_layer[jj + 1][2 * ii + 1]; + double radius = sqrt(x_p * x_p + x_q * x_q); + temp_derivative_of_input_for_this_layer[2 * ii] = x_q / (radius * radius * radius) + * (x_q * derivatives_of_each_layer[jj + 1][2 * ii] + - x_p * derivatives_of_each_layer[jj + 1][2 * ii + 1]); + temp_derivative_of_input_for_this_layer[2 * ii + 1] = x_p / (radius * radius * radius) + * (x_p * derivatives_of_each_layer[jj + 1][2 * ii + 1] + - x_q * derivatives_of_each_layer[jj + 1][2 * ii]); + } +#ifdef DEBUG + for (int mm = 0; mm < num_nodes[jj + 1]; mm ++) { + printf("temp_derivative_of_input_for_this_layer[%d] = %lf\n", mm, temp_derivative_of_input_for_this_layer[mm]); + printf("derivatives_of_each_layer[%d + 1][%d] = %lf\n", jj, mm, derivatives_of_each_layer[jj + 1][mm]); + } +#endif + // the calculate the derivative of output of layer jj, from derivative of input of layer (jj + 1) + for (int mm = 0; mm < num_nodes[jj]; mm ++) { + derivatives_of_each_layer[jj][mm] = 0; + for (int kk = 0; kk < num_nodes[jj + 1]; kk ++) { + derivatives_of_each_layer[jj][mm] += coeff[jj][kk][mm] \ + * temp_derivative_of_input_for_this_layer[kk]; +#ifdef DEBUG + printf("derivatives_of_each_layer[%d][%d] = %lf\n", jj, mm, derivatives_of_each_layer[jj][mm]); + printf("coeff[%d][%d][%d] = %lf\n", jj, kk, mm, coeff[jj][kk][mm]); +#endif + } + } + // TODO: should be fine, pass all tests, although there seems to be some problems here previously + } + else { + for (int mm = 0; mm < num_nodes[jj]; mm ++) { + derivatives_of_each_layer[jj][mm] = 0; + for (int kk = 0; kk < num_nodes[jj + 1]; kk ++) { + if (activations[jj] == string("Tanh")) { + // printf("tanh\n"); + derivatives_of_each_layer[jj][mm] += derivatives_of_each_layer[jj + 1][kk] \ + * coeff[jj][kk][mm] \ + * (1 - output_of_each_layer[jj + 1][kk] * output_of_each_layer[jj + 1][kk]); + } + else if (activations[jj] == string("Linear")) { + // printf("linear\n"); + derivatives_of_each_layer[jj][mm] += derivatives_of_each_layer[jj + 1][kk] \ + * coeff[jj][kk][mm] \ + * 1; + } + else { + printf("layer type not found!\n\n"); + return; + } + } + } + } + } +#ifdef DEBUG + // print out the result for debugging + printf("derivatives_of_each_layer = \n"); + for (int ii = 0; ii < num_layers; ii ++) { + printf("layer[%d]: ", ii); + for (int jj = 0; jj < num_nodes[ii]; jj ++) { + printf("%lf\t", derivatives_of_each_layer[ii][jj]); + } + printf("\n"); + } + printf("\n"); +#endif + return; +} + +void ANN::calculate() { + + vector input_layer_data(num_nodes[0]); + for (int ii = 0; ii < num_nodes[0]; ii ++) { + input_layer_data[ii] = getArgument(ii); + } + + calculate_output_of_each_layer(input_layer_data); + vector > derivatives_of_each_layer; + + for (int ii = 0; ii < num_nodes[num_layers - 1]; ii ++) { + back_prop(derivatives_of_each_layer, ii); + string name_of_this_component = "node-" + to_string(ii); + Value* value_new=getPntrToComponent(name_of_this_component); + value_new -> set(output_of_each_layer[num_layers - 1][ii]); + for (int jj = 0; jj < num_nodes[0]; jj ++) { + value_new -> setDerivative(jj, derivatives_of_each_layer[0][jj]); // TODO: setDerivative or addDerivative? + } +#ifdef DEBUG_3 + printf("derivatives = "); + for (int jj = 0; jj < num_nodes[0]; jj ++) { + printf("%f ", value_new -> getDerivative(jj)); + } + printf("\n"); +#endif + } + +} + +} +} +} diff --git a/src/annfunc/COPYRIGHT b/src/annfunc/COPYRIGHT new file mode 100644 index 0000000000..4586da16bf --- /dev/null +++ b/src/annfunc/COPYRIGHT @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Wei Chen and Andrew Ferguson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/src/annfunc/Makefile b/src/annfunc/Makefile new file mode 100644 index 0000000000..23cb74ae14 --- /dev/null +++ b/src/annfunc/Makefile @@ -0,0 +1,3 @@ +USE=core function +# generic makefile +include ../maketools/make.module diff --git a/src/annfunc/README.md b/src/annfunc/README.md new file mode 100644 index 0000000000..db57134cef --- /dev/null +++ b/src/annfunc/README.md @@ -0,0 +1,83 @@ +ANN (Artificial Neural Network) function for plumed +==================== + +This is plumed ANN function (annfunc) module. It implements `ANN` class, which is a subclass of `Function` class. `ANN` class takes multi-dimensional arrays as inputs for a fully-connected feedforward neural network with specified neural network weights and generates corresponding outputs. The `ANN` outputs can be used as collective variables, inputs for other collective variables, or inputs for data analysis tools. + +## Installation + +Enable compilation by adding the `--enable-modules=annfunc` to the configure command. + +## Usage + +It is used in a similar way to [other plumed functions](https://www.plumed.org/doc-v2.5/user-doc/html/_function.html). To define an `ANN` function object, we need to define following keywords: + +- `ARG` (string array): input variable names for the fully-connected feedforward neural network + +- `NUM_LAYERS` (int): number of layers for the neural network + +- `NUM_NODES` (int array): number of nodes in all layers of the neural network + +- `ACTIVATIONS` (string array): types of activation functions of layers, currently we have implemented "Linear", "Tanh", "Circular" layers, it should be straightforward to add other types as well + +- `WEIGHTS` (numbered keyword, double array): this is a numbered keyword, `WEIGHTS0` represents flattened weight array connecting layer 0 and layer 1, `WEIGHTS1` represents flattened weight array connecting layer 1 and layer 2, ... An example is given in the next section. + +- `BIASES` (numbered keyword, double array): this is a numbered keyword, BIASES0 represents bias array for layer 1, BIASES1 represents bias array for layer 2, ... + +Assuming we have an `ANN` function object named `ann`, we use `ann.node-0, ann.node-1, ...` to access component 0, 1, ... of its outputs (used as collective variables, inputs for other collective variables, or data analysis tools). + +## Examples + +Assume we have an ANN with numbers of nodes being [2, 3, 1], and weights connecting layer 0 and 1 are + +``` +[[1,2], +[3,4], +[5,6]] +``` + +weights connecting layer 1 and 2 are + +``` +[[7,8,9]] +``` + +Bias for layer 1 and 2 are + +``` +[10, 11, 12] +``` + +and + +``` +[13] +``` + +respectively. + +All activation functions are `Tanh`. + +Then if input variables are `l_0_out_0, l_0_out_1`, the corresponding `ANN` function object can be defined using following plumed script: + +``` +ann: ANN ARG=l_0_out_0,l_0_out_1 NUM_LAYERS=3 NUM_NODES=2,3,1 ACTIVATIONS=Tanh,Tanh WEIGHTS0=1,2,3,4,5,6 WEIGHTS1=7,8,9 BIASES0=10,11,12 BIASES1=13 +``` + +This plumed script can be generated with function `Plumed_helper.get_ANN_expression()` in [this](https://github.com/weiHelloWorld/plumed_helper/blob/master/plumed_helper.py) repository. Following is the Python code using this function to generate the script above: + +```Python +from plumed_helper import Plumed_helper +ANN_weights = [np.array([1,2,3,4,5,6]), np.array([7,8,9])] +ANN_bias = [np.array([10, 11, 12]), np.array([13])] +Plumed_helper.get_ANN_expression('ANN', node_num=[2, 3, 1], + ANN_weights=ANN_weights, ANN_bias=ANN_bias, + activation_list=['Tanh', 'Tanh']) +``` + +## Authors + +Wei Chen (UIUC, weichen9@illinois.edu) and Andrew Ferguson (University of Chicago, andrewferguson@uchicago.edu) + +## Copyright + +See ./COPYRIGHT diff --git a/src/annfunc/module.type b/src/annfunc/module.type new file mode 100644 index 0000000000..de83273033 --- /dev/null +++ b/src/annfunc/module.type @@ -0,0 +1 @@ +default-off diff --git a/user-doc/ANNfuncMOD.md b/user-doc/ANNfuncMOD.md new file mode 100644 index 0000000000..7083ce183c --- /dev/null +++ b/user-doc/ANNfuncMOD.md @@ -0,0 +1,24 @@ +\page ANNfuncMOD ANN (Artificial Neural Network) function + +## Overview + +This is plumed ANN function (annfunc) module. It implements `ANN` class, which is a subclass of `Function` class. `ANN` class takes multi-dimensional arrays as inputs for a fully-connected feedforward neural network with specified neural network weights and generates corresponding outputs. The `ANN` outputs can be used as collective variables, inputs for other collective variables, or inputs for data analysis tools. + +## Installation + +This module is not installed by default. Add '\-\-enable-modules=annfunc' to your './configure' command when building PLUMED to enable these features. + +## Usage + +Currently, all features of the ANNfunc module are included in a single ANNfunc collective variable: \ref ANN + +## Module Contents +- \subpage ANNMODFunction + +\page ANNMODFunction Functions Documentation + +The following list contains descriptions of functions developed for the PLUMED-ANNfunc module. They can be used in combination with other actions outside of the ANNfunc module. + + + +
\subpage ANN Calculates the ANN-function.