JetBrains-Research/commit-message-editing-visualization
0
1{2 "cells": [3 {4 "metadata": {},5 "cell_type": "markdown",6 "source": "# Edit Distance Distribution",7 "id": "bb1af2eaf6ddbce6"8 },9 {10 "metadata": {},11 "cell_type": "markdown",12 "source": "## Our dataset",13 "id": "2827c98e00529ecb"14 },15 {16 "metadata": {17 "ExecuteTime": {18 "end_time": "2024-10-15T18:48:57.008291Z",19 "start_time": "2024-10-15T18:48:53.986563Z"20 }21 },22 "cell_type": "code",23 "source": [24 "from generation_steps.metrics_analysis import edit_distance_fn\n",25 "from datasets import load_dataset\n",26 "\n",27 "\n",28 "df = load_dataset(\"JetBrains-Research/synthetic-commit-msg-edits\", \"all_pairs\", split=\"train\").to_pandas()\n",29 "df_edit_distance = {\"Full\": [edit_distance_fn(pred=row[\"G_text\"], ref=row[\"E_text\"]) for _, row in df.loc[df.is_related].iterrows()],\n",30 " \"Synthetic Backward\": [edit_distance_fn(pred=row[\"G_text\"], ref=row[\"E_text\"]) for _, row in df.loc[df.is_related & (df.G_type == \"synthetic_backward\") & (df.E_type == \"expert_labeled\")].iterrows()],\n",31 " \"Synthetic Forward\": [edit_distance_fn(pred=row[\"G_text\"], ref=row[\"E_text\"]) for _, row in df.loc[df.is_related & (df.G_type == \"initial\") & (df.E_type == \"synthetic_forward\")].iterrows()] + [edit_distance_fn(pred=row[\"G_text\"], ref=row[\"E_text\"]) for _, row in df.loc[df.is_related & (df.G_type == \"synthetic_backward\") & (df.E_type == \"synthetic_forward_from_backward\")].iterrows()],\n",32 " \"Expert-labeled\": [edit_distance_fn(pred=row[\"G_text\"], ref=row[\"E_text\"]) for _, row in df.loc[df.is_related & (df.G_type == \"initial\") & (df.E_type == \"expert_labeled\")].iterrows()]\n",33 " }\n",34 "\n",35 "colors = {\"Expert-labeled\": \"#C19C0B\",\n",36 " \"Synthetic Backward\": \"#913632\",\n",37 " \"Synthetic Forward\": \"#58136a\",\n",38 " \"Full\": \"#000000\"}"39 ],40 "id": "8da5a9c5a27d176e",41 "outputs": [],42 "execution_count": 343 },44 {45 "metadata": {},46 "cell_type": "markdown",47 "source": "## FUS data",48 "id": "3bcd6ecdc8ca813b"49 },50 {51 "metadata": {52 "ExecuteTime": {53 "end_time": "2024-10-15T18:49:21.118726Z",54 "start_time": "2024-10-15T18:49:21.115088Z"55 }56 },57 "cell_type": "code",58 "source": [59 "import pandas as pd\n",60 "\n",61 "\n",62 "PROD_LENGTH_RATIO = 1.772691712591923\n",63 "\n",64 "\n",65 "df = pd.read_csv(\"data/fus_pycharm_fixed.csv\")\n",66 "\n",67 "bin_centers = []\n",68 "bin_widths = []\n",69 "for value in df[\"Metric Value\"]:\n",70 " if len(value.split('-')) == 2:\n",71 " lower, upper = map(float, value.split('-'))\n",72 " center = (lower + upper) / 2\n",73 " width = upper - lower\n",74 " bin_centers.append(center * PROD_LENGTH_RATIO)\n",75 " bin_widths.append(width * PROD_LENGTH_RATIO)\n",76 " else:\n",77 " center = float(value)\n",78 " width = 1\n",79 " bin_centers.append(center * PROD_LENGTH_RATIO)\n",80 " bin_widths.append(width * PROD_LENGTH_RATIO)\n",81 "df[\"center\"] = bin_centers\n",82 "df[\"width\"] = bin_widths"83 ],84 "id": "2d2db355e78bf5a6",85 "outputs": [],86 "execution_count": 587 },88 {89 "metadata": {},90 "cell_type": "markdown",91 "source": "## Chart",92 "id": "dbc2e81dfe9cdf92"93 },94 {95 "metadata": {96 "ExecuteTime": {97 "end_time": "2024-10-15T18:51:22.969205Z",98 "start_time": "2024-10-15T18:51:22.910711Z"99 }100 },101 "cell_type": "code",102 "source": [103 "import numpy as np\n",104 "from scipy.stats import gaussian_kde\n",105 "import plotly.graph_objects as go\n",106 "\n",107 "df = df.iloc[1:]\n",108 "traces = [go.Bar(\n",109 " x=df[\"center\"],\n",110 " y=df[\"Events\"] / (df[\"Events\"].sum() * df[\"width\"]),\n",111 " width=df[\"width\"],\n",112 " name='PyCharm logs (scaled)',\n",113 " opacity=0.75,\n",114 " marker=dict(color='#1bd88a'))]\n",115 "\n",116 "for key in df_edit_distance:\n",117 " kde_x = np.linspace(0, 1200, 1000)\n",118 " kde = gaussian_kde(df_edit_distance[key])\n",119 " kde_line = go.Scatter(\n",120 " x=kde_x, \n",121 " y=kde(kde_x), \n",122 " mode='lines', \n",123 " name=key,\n",124 " line=dict(color=colors[key], width=5)\n",125 " ) \n",126 " traces.append(kde_line)\n",127 "\n",128 "fig = go.Figure(data=traces)\n",129 "\n",130 "fig.update_layout(\n",131 " bargap=0.1,\n",132 " xaxis=dict(\n",133 " title=dict(text=\"Edit Distance\", font=dict(size=30)),\n",134 " range=[0, 1200],\n",135 " showgrid=True,\n",136 " gridcolor='lightgrey'\n",137 " ),\n",138 " yaxis=dict(\n",139 " title=dict(text=\"Probability Density\", font=dict(size=30)),\n",140 " range=[0, 0.004],\n",141 " showgrid=True,\n",142 " gridcolor='lightgrey',\n",143 " tickvals=[0.0005, 0.001, 0.0015, 0.002, 0.0025, 0.003, 0.0035, 0.004],\n",144 " tickformat=\".4f\"\n",145 " ),\n",146 " plot_bgcolor='rgba(0,0,0,0)',\n",147 " paper_bgcolor='rgba(0,0,0,0)',\n",148 " font=dict(size=24),\n",149 " legend=dict(font=dict(size=30)),\n",150 " width=1600,\n",151 " height=600,\n",152 ")\n",153 "\n",154 "fig.show()"155 ],156 "id": "885906640bd2c23f",157 "outputs": [158 {159 "data": {160 "application/vnd.plotly.v1+json": {161 "data": [162 {163 "marker": {164 "color": "#1bd88a"165 },166 "name": "PyCharm logs (scaled)",167 "opacity": 0.75,168 "width": [169 70.90766850367692,170 70.90766850367692,171 72.68036021626884,172 70.90766850367692,173 70.90766850367692,174 72.68036021626884,175 70.90766850367692,176 72.68036021626884,177 70.90766850367692,178 70.90766850367692,179 72.68036021626884,180 70.90766850367692,181 70.90766850367692,182 72.68036021626884,183 70.90766850367692,184 72.68036021626884,185 70.90766850367692,186 70.90766850367692,187 72.68036021626884,188 70.90766850367692,189 70.90766850367692,190 72.68036021626884,191 70.90766850367692,192 72.68036021626884,193 70.90766850367692,194 70.90766850367692,195 72.68036021626884,196 70.90766850367692,197 72.68036021626884,198 null199 ],200 "x": [201 37.22652596443039,202 109.90688618069923,203 183.47359225326403,204 257.0402983258288,205 329.7206585420977,206 403.28736461466247,207 476.8540706872273,208 550.4207767597921,209 623.9874828323569,210 696.6678430486257,211 770.2345491211905,212 843.8012551937554,213 916.4816154100242,214 990.048321482589,215 1063.6150275551538,216 1137.1817336277186,217 1210.7484397002834,218 1283.4287999165522,219 1356.9955059891172,220 1430.562212061682,221 1503.2425722779508,222 1576.8092783505156,223 1650.3759844230804,224 1723.9426904956451,225 1797.50939656821,226 1870.1897567844787,227 1943.7564628570435,228 2017.3231689296085,229 2090.889875002173,230 null231 ],232 "y": [233 0.0055212691408292516,234 0.0010079948595921825,235 5.182834479116033E-4,236 5.494026036515949E-4,237 8.218336467846172E-4,238 0.0013599403291355745,239 0.0011941560723997477,240 0.0011916089528907802,241 8.626983032545705E-4,242 5.267000167238431E-4,243 2.0819933377645605E-4,244 1.1351293463875928E-4,245 5.902672601215483E-5,246 3.543818447258826E-5,247 2.2702586927751857E-5,248 4.429773059073533E-6,249 4.540517385550371E-6,250 4.540517385550371E-6,251 0.0,252 9.081034771100743E-6,253 0.0,254 0.0,255 0.0,256 0.0,257 4.540517385550371E-6,258 0.0,259 0.0,260 0.0,261 0.0,262 0.0263 ],264 "type": "bar"265 },266 {267 "line": {268 "color": "#000000",269 "width": 5270 },271 "mode": "lines",272 "name": "Full",273 "x": [274 0.0,275 1.2012012012012012,276 2.4024024024024024,277 3.6036036036036037,278 4.804804804804805,279 6.006006006006006,280 7.207207207207207,281 8.408408408408409,282 9.60960960960961,283 10.81081081081081,284 12.012012012012011,285 13.213213213213214,286 14.414414414414415,287 15.615615615615615,288 16.816816816816818,289 18.01801801801802,290 19.21921921921922,291 20.42042042042042,292 21.62162162162162,293 22.822822822822822,294 24.024024024024023,295 25.225225225225227,296 26.426426426426428,297 27.62762762762763,298 28.82882882882883,299 30.03003003003003,300 31.23123123123123,301 32.432432432432435,302 33.633633633633636,303 34.83483483483484,304 36.03603603603604,305 37.23723723723724,306 38.43843843843844,307 39.63963963963964,308 40.84084084084084,309 42.04204204204204,310 43.24324324324324,311 44.44444444444444,312 45.645645645645644,313 46.846846846846844,314 48.048048048048045,315 49.24924924924925,316 50.450450450450454,317 51.651651651651655,318 52.852852852852855,319 54.054054054054056,320 55.25525525525526,321 56.45645645645646,322 57.65765765765766,323 58.85885885885886,324 60.06006006006006,325 61.26126126126126,326 62.46246246246246,327 63.66366366366366,328 64.86486486486487,329 66.06606606606607,330 67.26726726726727,331 68.46846846846847,332 69.66966966966967,333 70.87087087087087,334 72.07207207207207,335 73.27327327327328,336 74.47447447447448,337 75.67567567567568,338 76.87687687687688,339 78.07807807807808,340 79.27927927927928,341 80.48048048048048,342 81.68168168168168,343 82.88288288288288,344 84.08408408408408,345 85.28528528528528,346 86.48648648648648,347 87.68768768768768,348 88.88888888888889,349 90.09009009009009,350 91.29129129129129,351 92.49249249249249,352 93.69369369369369,353 94.89489489489489,354 96.09609609609609,355 97.2972972972973,356 98.4984984984985,357 99.6996996996997,358 100.90090090090091,359 102.10210210210211,360 103.30330330330331,361 104.50450450450451,362 105.70570570570571,363 106.90690690690691,364 108.10810810810811,365 109.30930930930931,366 110.51051051051051,367 111.71171171171171,368 112.91291291291292,369 114.11411411411412,370 115.31531531531532,371 116.51651651651652,372 117.71771771771772,373 118.91891891891892,374 120.12012012012012,375 121.32132132132132,376 122.52252252252252,377 123.72372372372372,378 124.92492492492492,379 126.12612612612612,380 127.32732732732732,381 128.52852852852854,382 129.72972972972974,383 130.93093093093094,384 132.13213213213214,385 133.33333333333334,386 134.53453453453454,387 135.73573573573574,388 136.93693693693695,389 138.13813813813815,390 139.33933933933935,391 140.54054054054055,392 141.74174174174175,393 142.94294294294295,394 144.14414414414415,395 145.34534534534535,396 146.54654654654655,397 147.74774774774775,398 148.94894894894895,399 150.15015015015015,400 151.35135135135135,401 152.55255255255256,402 153.75375375375376,403 154.95495495495496,404 156.15615615615616,405 157.35735735735736,406 158.55855855855856,407 159.75975975975976,408 160.96096096096096,409 162.16216216216216,410 163.36336336336336,411 164.56456456456456,412 165.76576576576576,413 166.96696696696696,414 168.16816816816817,415 169.36936936936937,416 170.57057057057057,417 171.77177177177177,418 172.97297297297297,419 174.17417417417417,420 175.37537537537537,421 176.57657657657657,422 177.77777777777777,423 178.97897897897897,424 180.18018018018017,425 181.38138138138137,426 182.58258258258257,427 183.78378378378378,428 184.98498498498498,429 186.18618618618618,430 187.38738738738738,431 188.58858858858858,432 189.78978978978978,433 190.99099099099098,434 192.19219219219218,435 193.3933933933934,436 194.5945945945946,437 195.7957957957958,438 196.996996996997,439 198.1981981981982,440 199.3993993993994,441 200.60060060060061,442 201.80180180180182,443 203.00300300300302,444 204.20420420420422,445 205.40540540540542,446 206.60660660660662,447 207.80780780780782,448 209.00900900900902,449 210.21021021021022,450 211.41141141141142,451 212.61261261261262,452 213.81381381381382,453 215.01501501501502,454 216.21621621621622,455 217.41741741741743,456 218.61861861861863,457 219.81981981981983,458 221.02102102102103,459 222.22222222222223,460 223.42342342342343,461 224.62462462462463,462 225.82582582582583,463 227.02702702702703,464 228.22822822822823,465 229.42942942942943,466 230.63063063063063,467 231.83183183183183,468 233.03303303303304,469 234.23423423423424,470 235.43543543543544,471 236.63663663663664,472 237.83783783783784,473 239.03903903903904,474 240.24024024024024,475 241.44144144144144,476 242.64264264264264,477 243.84384384384384,478 245.04504504504504,479 246.24624624624624,480 247.44744744744744,481 248.64864864864865,482 249.84984984984985,483 251.05105105105105,484 252.25225225225225,485 253.45345345345345,486 254.65465465465465,487 255.85585585585585,488 257.0570570570571,489 258.25825825825825,490 259.4594594594595,491 260.66066066066065,492 261.8618618618619,493 263.06306306306305,494 264.2642642642643,495 265.46546546546546,496 266.6666666666667,497 267.86786786786786,498 269.0690690690691,499 270.27027027027026,500 271.4714714714715,501 272.67267267267266,502 273.8738738738739,503 275.07507507507506,504 276.2762762762763,505 277.47747747747746,506 278.6786786786787,507 279.87987987987987,508 281.0810810810811,509 282.28228228228227,510 283.4834834834835,511 284.68468468468467,512 285.8858858858859,513 287.08708708708707,514 288.2882882882883,515 289.4894894894895,516 290.6906906906907,517 291.8918918918919,518 293.0930930930931,519 294.2942942942943,520 295.4954954954955,521 296.6966966966967,522 297.8978978978979,523 299.0990990990991,524 300.3003003003003,525 301.5015015015015,526 302.7027027027027,527 303.9039039039039,528 305.1051051051051,529 306.3063063063063,530 307.5075075075075,531 308.70870870870874,532 309.9099099099099,533 311.11111111111114,534 312.3123123123123,535 313.51351351351354,536 314.7147147147147,537 315.91591591591595,538 317.1171171171171,539 318.31831831831835,540 319.5195195195195,541 320.72072072072075,542 321.9219219219219,543 323.12312312312315,544 324.3243243243243,545 325.52552552552555,546 326.7267267267267,547 327.92792792792795,548 329.1291291291291,549 330.33033033033036,550 331.5315315315315,551 332.73273273273276,552 333.93393393393393,553 335.13513513513516,554 336.33633633633633,555 337.53753753753756,556 338.73873873873873,557 339.93993993993996,558 341.14114114114113,559 342.34234234234236,560 343.54354354354354,561 344.74474474474476,562 345.94594594594594,563 347.14714714714717,564 348.34834834834834,565 349.54954954954957,566 350.75075075075074,567 351.95195195195197,568 353.15315315315314,569 354.35435435435437,570 355.55555555555554,571 356.7567567567568,572 357.95795795795794,573 359.1591591591592,574 360.36036036036035,575 361.5615615615616,576 362.76276276276275,577 363.963963963964,578 365.16516516516515,579 366.3663663663664,580 367.56756756756755,581 368.7687687687688,582 369.96996996996995,583 371.1711711711712,584 372.37237237237235,585 373.5735735735736,586 374.77477477477476,587 375.975975975976,588 377.17717717717716,589 378.3783783783784,590 379.57957957957956,591 380.7807807807808,592 381.98198198198196,593 383.1831831831832,594 384.38438438438436,595 385.5855855855856,596 386.7867867867868,597 387.987987987988,598 389.1891891891892,599 390.3903903903904,600 391.5915915915916,601 392.7927927927928,602 393.993993993994,603 395.1951951951952,604 396.3963963963964,605 397.5975975975976,606 398.7987987987988,607 400.0,608 401.20120120120123,609 402.4024024024024,610 403.60360360360363,611 404.8048048048048,612 406.00600600600603,613 407.2072072072072,614 408.40840840840843,615 409.6096096096096,616 410.81081081081084,617 412.012012012012,618 413.21321321321324,619 414.4144144144144,620 415.61561561561564,621 416.8168168168168,622 418.01801801801804,623 419.2192192192192,624 420.42042042042044,625 421.6216216216216,626 422.82282282282284,627 424.024024024024,628 425.22522522522524,629 426.4264264264264,630 427.62762762762765,631 428.8288288288288,632 430.03003003003005,633 431.2312312312312,634 432.43243243243245,635 433.6336336336336,636 434.83483483483485,637 436.036036036036,638 437.23723723723725,639 438.4384384384384,640 439.63963963963965,641 440.8408408408408,642 442.04204204204206,643 443.2432432432432,644 444.44444444444446,645 445.64564564564563,646 446.84684684684686,647 448.04804804804803,648 449.24924924924926,649 450.45045045045043,650 451.65165165165166,651 452.85285285285283,652 454.05405405405406,653 455.25525525525524,654 456.45645645645646,655 457.65765765765764,656 458.85885885885887,657 460.06006006006004,658 461.26126126126127,659 462.4624624624625,660 463.66366366366367,661 464.8648648648649,662 466.06606606606607,663 467.2672672672673,664 468.4684684684685,665 469.6696696696697,666 470.8708708708709,667 472.0720720720721,668 473.2732732732733,669 474.4744744744745,670 475.6756756756757,671 476.8768768768769,672 478.0780780780781,673 479.2792792792793,674 480.4804804804805,675 481.6816816816817,676 482.8828828828829,677 484.0840840840841,678 485.2852852852853,679 486.4864864864865,680 487.6876876876877,681 488.8888888888889,682 490.0900900900901,683 491.2912912912913,684 492.4924924924925,685 493.6936936936937,686 494.8948948948949,687 496.0960960960961,688 497.2972972972973,689 498.4984984984985,690 499.6996996996997,691 500.9009009009009,692 502.1021021021021,693 503.3033033033033,694 504.5045045045045,695 505.7057057057057,696 506.9069069069069,697 508.1081081081081,698 509.3093093093093,699 510.5105105105105,700 511.7117117117117,701 512.9129129129129,702 514.1141141141142,703 515.3153153153153,704 516.5165165165165,705 517.7177177177177,706 518.918918918919,707 520.1201201201201,708 521.3213213213213,709 522.5225225225225,710 523.7237237237238,711 524.9249249249249,712 526.1261261261261,713 527.3273273273273,714 528.5285285285286,715 529.7297297297297,716 530.9309309309309,717 532.1321321321321,718 533.3333333333334,719 534.5345345345345,720 535.7357357357357,721 536.936936936937,722 538.1381381381382,723 539.3393393393394,724 540.5405405405405,725 541.7417417417417,726 542.942942942943,727 544.1441441441442,728 545.3453453453453,729 546.5465465465466,730 547.7477477477478,731 548.948948948949,732 550.1501501501501,733 551.3513513513514,734 552.5525525525526,735 553.7537537537538,736 554.9549549549549,737 556.1561561561562,738 557.3573573573574,739 558.5585585585586,740 559.7597597597597,741 560.960960960961,742 562.1621621621622,743 563.3633633633634,744 564.5645645645645,745 565.7657657657658,746 566.966966966967,747 568.1681681681682,748 569.3693693693693,749 570.5705705705706,750 571.7717717717718,751 572.972972972973,752 574.1741741741741,753 575.3753753753754,754 576.5765765765766,755 577.7777777777778,756 578.978978978979,757 580.1801801801802,758 581.3813813813814,759 582.5825825825826,760 583.7837837837837,761 584.984984984985,762 586.1861861861862,763 587.3873873873874,764 588.5885885885886,765 589.7897897897898,766 590.990990990991,767 592.1921921921922,768 593.3933933933934,769 594.5945945945946,770 595.7957957957958,771 596.996996996997,772 598.1981981981982,773 599.3993993993994,774 600.6006006006006,775 601.8018018018018,776 603.003003003003,777 604.2042042042042,778 605.4054054054054,779 606.6066066066066,780 607.8078078078078,781 609.009009009009,782 610.2102102102102,783 611.4114114114114,784 612.6126126126126,785 613.8138138138138,786 615.015015015015,787 616.2162162162163,788 617.4174174174175,789 618.6186186186186,790 619.8198198198198,791 621.021021021021,792 622.2222222222223,793 623.4234234234234,794 624.6246246246246,795 625.8258258258259,796 627.0270270270271,797 628.2282282282282,798 629.4294294294294,799 630.6306306306307,800 631.8318318318319,801 633.033033033033,802 634.2342342342342,803 635.4354354354355,804 636.6366366366367,805 637.8378378378378,806 639.039039039039,807 640.2402402402403,808 641.4414414414415,809 642.6426426426426,810 643.8438438438438,811 645.0450450450451,812 646.2462462462463,813 647.4474474474474,814 648.6486486486486,815 649.8498498498499,816 651.0510510510511,817 652.2522522522522,818 653.4534534534534,819 654.6546546546547,820 655.8558558558559,821 657.057057057057,822 658.2582582582583,823 659.4594594594595,824 660.6606606606607,825 661.8618618618618,826 663.063063063063,827 664.2642642642643,828 665.4654654654655,829 666.6666666666666,830 667.8678678678679,831 669.0690690690691,832 670.2702702702703,833 671.4714714714714,834 672.6726726726727,835 673.8738738738739,836 675.0750750750751,837 676.2762762762762,838 677.4774774774775,839 678.6786786786787,840 679.8798798798799,841 681.081081081081,842 682.2822822822823,843 683.4834834834835,844 684.6846846846847,845 685.8858858858858,846 687.0870870870871,847 688.2882882882883,848 689.4894894894895,849 690.6906906906906,850 691.8918918918919,851 693.0930930930931,852 694.2942942942943,853 695.4954954954956,854 696.6966966966967,855 697.8978978978979,856 699.0990990990991,857 700.3003003003004,858 701.5015015015015,859 702.7027027027027,860 703.9039039039039,861 705.1051051051052,862 706.3063063063063,863 707.5075075075075,864 708.7087087087087,865 709.90990990991,866 711.1111111111111,867 712.3123123123123,868 713.5135135135135,869 714.7147147147148,870 715.9159159159159,871 717.1171171171171,872 718.3183183183183,873 719.5195195195196,874 720.7207207207207,875 721.9219219219219,876 723.1231231231232,877 724.3243243243244,878 725.5255255255255,879 726.7267267267267,880 727.927927927928,881 729.1291291291292,882 730.3303303303303,883 731.5315315315315,884 732.7327327327328,885 733.933933933934,886 735.1351351351351,887 736.3363363363363,888 737.5375375375376,889 738.7387387387388,890 739.9399399399399,891 741.1411411411411,892 742.3423423423424,893 743.5435435435436,894 744.7447447447447,895 745.9459459459459,896 747.1471471471472,897 748.3483483483484,898 749.5495495495495,899 750.7507507507507,900 751.951951951952,901 753.1531531531532,902 754.3543543543543,903 755.5555555555555,904 756.7567567567568,905 757.957957957958,906 759.1591591591591,907 760.3603603603603,908 761.5615615615616,909 762.7627627627628,910 763.9639639639639,911 765.1651651651651,912 766.3663663663664,913 767.5675675675676,914 768.7687687687687,915 769.96996996997,916 771.1711711711712,917 772.3723723723724,918 773.5735735735736,919 774.7747747747748,920 775.975975975976,921 777.1771771771772,922 778.3783783783784,923 779.5795795795796,924 780.7807807807808,925 781.981981981982,926 783.1831831831832,927 784.3843843843844,928 785.5855855855856,929 786.7867867867868,930 787.987987987988,931 789.1891891891892,932 790.3903903903904,933 791.5915915915916,934 792.7927927927929,935 793.993993993994,936 795.1951951951952,937 796.3963963963964,938 797.5975975975977,939 798.7987987987988,940 800.0,941 801.2012012012012,942 802.4024024024025,943 803.6036036036036,944 804.8048048048048,945 806.006006006006,946 807.2072072072073,947 808.4084084084084,948 809.6096096096096,949 810.8108108108108,950 812.0120120120121,951 813.2132132132132,952 814.4144144144144,953 815.6156156156156,954 816.8168168168169,955 818.018018018018,956 819.2192192192192,957 820.4204204204204,958 821.6216216216217,959 822.8228228228228,960 824.024024024024,961 825.2252252252252,962 826.4264264264265,963 827.6276276276276,964 828.8288288288288,965 830.03003003003,966 831.2312312312313,967 832.4324324324324,968 833.6336336336336,969 834.8348348348349,970 836.0360360360361,971 837.2372372372372,972 838.4384384384384,973 839.6396396396397,974 840.8408408408409,975 842.042042042042,976 843.2432432432432,977 844.4444444444445,978 845.6456456456457,979 846.8468468468469,980 848.048048048048,981 849.2492492492493,982 850.4504504504505,983 851.6516516516517,984 852.8528528528528,985 854.0540540540541,986 855.2552552552553,987 856.4564564564565,988 857.6576576576576,989 858.8588588588589,990 860.0600600600601,991 861.2612612612613,992 862.4624624624624,993 863.6636636636637,994 864.8648648648649,995 866.0660660660661,996 867.2672672672672,997 868.4684684684685,998 869.6696696696697,999 870.8708708708709,1000 872.072072072072,1001 873.2732732732733,1002 874.4744744744745,1003 875.6756756756757,1004 876.8768768768768,1005 878.0780780780781,1006 879.2792792792793,1007 880.4804804804805,1008 881.6816816816817,1009 882.8828828828829,1010 884.0840840840841,1011 885.2852852852853,1012 886.4864864864865,1013 887.6876876876877,1014 888.8888888888889,1015 890.0900900900901,1016 891.2912912912913,1017 892.4924924924925,1018 893.6936936936937,1019 894.894894894895,1020 896.0960960960961,1021 897.2972972972973,1022 898.4984984984985,1023 899.6996996996997,1024 900.9009009009009,1025 902.1021021021021,1026 903.3033033033033,1027 904.5045045045046,1028 905.7057057057057,1029 906.9069069069069,1030 908.1081081081081,1031 909.3093093093094,1032 910.5105105105105,1033 911.7117117117117,1034 912.9129129129129,1035 914.1141141141142,1036 915.3153153153153,1037 916.5165165165165,1038 917.7177177177177,1039 918.918918918919,1040 920.1201201201201,1041 921.3213213213213,1042 922.5225225225225,1043 923.7237237237238,1044 924.924924924925,1045 926.1261261261261,1046 927.3273273273273,1047 928.5285285285286,1048 929.7297297297298,1049 930.9309309309309,1050 932.1321321321321,1051 933.3333333333334,1052 934.5345345345346,1053 935.7357357357357,1054 936.936936936937,1055 938.1381381381382,1056 939.3393393393394,1057 940.5405405405405,1058 941.7417417417417,1059 942.942942942943,1060 944.1441441441442,1061 945.3453453453453,1062 946.5465465465466,1063 947.7477477477478,1064 948.948948948949,1065 950.1501501501501,1066 951.3513513513514,1067 952.5525525525526,1068 953.7537537537538,1069 954.9549549549549,1070 956.1561561561562,1071 957.3573573573574,1072 958.5585585585586,1073 959.7597597597597,1074 960.960960960961,1075 962.1621621621622,1076 963.3633633633634,1077 964.5645645645645,1078 965.7657657657658,1079 966.966966966967,1080 968.1681681681682,1081 969.3693693693693,1082 970.5705705705706,1083 971.7717717717718,1084 972.972972972973,1085 974.1741741741741,1086 975.3753753753754,1087 976.5765765765766,1088 977.7777777777778,1089 978.978978978979,1090 980.1801801801802,1091 981.3813813813814,1092 982.5825825825826,1093 983.7837837837837,1094 984.984984984985,1095 986.1861861861862,1096 987.3873873873874,1097 988.5885885885886,1098 989.7897897897898,1099 990.990990990991,1100 992.1921921921922,1101 993.3933933933934,1102 994.5945945945946,1103 995.7957957957958,1104 996.996996996997,1105 998.1981981981982,1106 999.3993993993994,1107 1000.6006006006006,1108 1001.8018018018018,1109 1003.0030030030031,1110 1004.2042042042042,1111 1005.4054054054054,1112 1006.6066066066066,1113 1007.8078078078079,1114 1009.009009009009,1115 1010.2102102102102,1116 1011.4114114114114,1117 1012.6126126126127,1118 1013.8138138138138,1119 1015.015015015015,1120 1016.2162162162163,1121 1017.4174174174175,1122 1018.6186186186186,1123 1019.8198198198198,1124 1021.021021021021,1125 1022.2222222222223,1126 1023.4234234234234,1127 1024.6246246246246,1128 1025.8258258258259,1129 1027.027027027027,1130 1028.2282282282283,1131 1029.4294294294295,1132 1030.6306306306305,1133 1031.8318318318318,1134 1033.033033033033,1135 1034.2342342342342,1136 1035.4354354354355,1137 1036.6366366366367,1138 1037.837837837838,1139 1039.0390390390392,1140 1040.2402402402402,1141 1041.4414414414414,1142 1042.6426426426426,1143 1043.8438438438438,1144 1045.045045045045,1145 1046.2462462462463,1146 1047.4474474474475,1147 1048.6486486486488,1148 1049.8498498498498,1149 1051.051051051051,1150 1052.2522522522522,1151 1053.4534534534534,1152 1054.6546546546547,1153 1055.855855855856,1154 1057.0570570570571,1155 1058.2582582582584,1156 1059.4594594594594,1157 1060.6606606606606,1158 1061.8618618618618,1159 1063.063063063063,1160 1064.2642642642643,1161 1065.4654654654655,1162 1066.6666666666667,1163 1067.867867867868,1164 1069.069069069069,1165 1070.2702702702702,1166 1071.4714714714714,1167 1072.6726726726727,1168 1073.873873873874,1169 1075.0750750750751,1170 1076.2762762762763,1171 1077.4774774774776,1172 1078.6786786786788,1173 1079.8798798798798,1174 1081.081081081081,1175 1082.2822822822823,1176 1083.4834834834835,1177 1084.6846846846847,1178 1085.885885885886,1179 1087.0870870870872,1180 1088.2882882882884,1181 1089.4894894894894,1182 1090.6906906906906,1183 1091.8918918918919,1184 1093.093093093093,1185 1094.2942942942943,1186 1095.4954954954956,1187 1096.6966966966968,1188 1097.897897897898,1189 1099.099099099099,1190 1100.3003003003003,1191 1101.5015015015015,1192 1102.7027027027027,1193 1103.903903903904,1194 1105.1051051051052,1195 1106.3063063063064,1196 1107.5075075075076,1197 1108.7087087087086,1198 1109.9099099099099,1199 1111.111111111111,1200 1112.3123123123123,