1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>QuantLib: Version history</title>
<link href='https://fonts.googleapis.com/css?family=Merriweather+Sans:800' rel='stylesheet' type='text/css'>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="quantlibextra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname"><a href="http://quantlib.org">
<img alt="QuantLib" src="QL-title.jpg"></a>
<div id="projectbrief">A free/open-source library for quantitative finance</div>
<div id="projectnumber">Reference manual - version 1.20</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Version history </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><b>Release 1.20 - October 26th, 2020</b></p>
<p>PORTABILITY</p><ul>
<li>Support for Visual C++ 2012 is being deprecated. It will be dropped after the next release in order to enable use of C++11 features.</li>
<li>It is now possible to opt into using <code>std::tuple</code> instead of <code>boost::tuple</code> when the compiler allows it. The default is still to use the Boost implementation. The feature can be enabled by uncommenting the <code>QL_USE_STD_TUPLE</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-std-tuple</code> switch to <code>./configure</code> on other systems. The <code>--enable-std-tuple</code> switch is also implied by <code>--enable-std-classes</code>. (Thanks to Joseph Wang.)</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added mixing-factor parameter to Heston finite-differences barrier, rebate and double-barrier engines (thanks to GitHub user <code>jackgillett101</code>).</li>
<li>Added a few additional results to Black swaption engine and to analytic European option engine (thanks to Peter Caspers and Marcin Rybacki).</li>
<li>Improved calculation of spot date for vanilla swap around holidays (thanks to Paul Giltinan).</li>
<li>Added ex-coupon feature to amortizing bonds, callable bonds and convertible bonds.</li>
<li>Added optional first-coupon day counter to fixed-rate bonds (thanks to Jacob Lee-Howes).</li>
</ul>
<p>MATH</p><ul>
<li>Added convenience classes <code>LogCubic</code> and <code>LogMixedLinearCubic</code> hiding a few default parameters (thanks to Andrea Maffezzoli).</li>
</ul>
<p>MODELS</p><ul>
<li>Added control variate based on asymptotic expansion for the Heston model (thanks to Klaus Spanderen).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added missing Hong Kong holiday (thanks to GitHub user <code>CarrieMY</code>).</li>
<li>Added a couple of one-off closing days to the Romanian calendar.</li>
<li>Added a one-off holiday to South Korean calendar (thanks to GitHub user <code>fayce66</code>).</li>
<li>Added a missing holiday to Turkish calendar (thanks to Berat Postalcioglu).</li>
</ul>
<p>DOCUMENTATION</p><ul>
<li>Added basic documentation to optimization methods (thanks to GitHub user <code>martinbrose</code>).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Features deprecate in version 1.16 were removed: a constructor of the <code>FdmOrnsteinUhlenbeckOp</code> class and a constructor of the <code>SwaptionVolatilityMatrix</code> class.</li>
</ul>
<p><b>Release 1.19 - July 20th, 2020</b></p>
<p>PORTABILITY</p><ul>
<li>Support for Visual C++ 2012 is being deprecated. It will be dropped around the end of 2020 or the beginning of 2021 in order to enable use of C++11 features.</li>
<li>Avoided use in Makefiles of functions only available to GNU Make (thanks to GitHub user <code>UnitedMarsupials</code> for the heads-up).</li>
</ul>
<p>BUILD</p><ul>
<li>Automated builds on Travis and GitHub Actions were extended. We now have a build for Mac OS X, as well as a few builds that run a number of checks on the code (including clang-tidy) and automatically open pull requests with fixes.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Added options for iterative bootstrap to widen the search domain or to keep the best result upon failure (thanks to Francis Duffy).</li>
<li>Added flat-extrapolation option to fitted bond curves (thanks to Peter Caspers).</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added finite-difference pricing engine for equity options under the Cox-Ingersoll-Ross process (thanks to Lew Wei Hao).</li>
<li>Added Heston engine based on exponentially-fitted Laguerre quadrature rule (thanks to Klaus Spanderen).</li>
<li>Added Monte Carlo pricing engines for lookback options (thanks to Lew Wei Hao).</li>
<li>Added Monte Carlo pricing engine for double-barrier options (thanks to Lew Wei Hao).</li>
<li>Added analytic pricing engine for equity options under the Vasicek model (thanks to Lew Wei Hao).</li>
<li>The <code>Bond::yield</code> method can now specify a guess and whether the passed price is clean or dirty (thanks to Francois Botha).</li>
</ul>
<p>MODELS</p><ul>
<li>Improved grid scaling for FDM Heston SLV calibration, and fixed drift and diffusion for Heston SLV process (thanks to Klaus Spanderen and Peter Caspers).</li>
<li>Added mixing factor to Heston SLV process (thanks to Lew Wei Hao).</li>
</ul>
<p>MATH</p><ul>
<li>Improved nodes/weights for the exponentially fitted Laguerre quadrature rule and added sine and cosine quadratures (thanks to Klaus Spanderen).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Improved performance of the Calendar class (thanks to Leonardo Arcari).</li>
<li>Updated holidays for Indian and Russian calendars (thanks to Alexey Indiryakov).</li>
<li>Added missing All Souls Day holiday to Mexican calendar (thanks to GitHub user <code>phil-zxx</code> for the heads-up).</li>
<li>Restored New Year's Eve holiday to Eurex calendar (thanks to Joshua Engelman).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Features deprecate in version 1.15 were removed: constructors of inflation swap helpers, inflation-based pricing engines and inflation coupon pricers that didn't take a nominal term structure.</li>
<li>The constructor of <code>BMAIndex</code> taking a calendar was deprecated.</li>
<li>The constructors of several interest-rate term structures taking jumps without a reference date were deprecated.</li>
<li>The <code>CurveDependentStepCondition</code> class and related typedefs were deprecated.</li>
<li>The constructor of <code>BlackCalibrationHelper</code> taking an interest-rate structure was deprecated.</li>
<li>The constructors of several inflation curves taking a nominal curve were deprecated. The nominal curve should now be passed to the used coupon pricers.</li>
</ul>
<p><b>Release 1.18 - March 23rd, 2020</b></p>
<p>PORTABILITY</p><ul>
<li>As announced in the past release, support of Visual C++ 2010 is dropped. Also, we'll probably deprecate Visual C++ 2012 in the next release in order to drop it around the end of 2020.</li>
</ul>
<p>BUILD</p><ul>
<li>Cmake now installs headers with the correct folder hierarchy (thanks to Cheng Li).</li>
<li>The <code>--enable-unity-build</code> flag passed to configure now also causes the test suite to be built as a single source file.</li>
<li>The Visual Studio projects now allow enabling unity builds as described at <a href="https://devblogs.microsoft.com/cppblog/support-for-unity-jumbo-files-in-visual-studio-2017-15-8-experimental/">https://devblogs.microsoft.com/cppblog/support-for-unity-jumbo-files-in-visual-studio-2017-15-8-experimental/</a></li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>A new <code>GlobalBootstrap</code> class can now be used with <code>PiecewiseYieldCurve</code> and other bootstrapped curves (thanks to Peter Caspers). It allows to produce curves close to Bloomberg's.</li>
<li>The experimental <code>SofrFutureRateHelper</code> class and its parent <code>OvernightIndexFutureRateHelper</code> can now choose to use either compounding or averaging, in order to accommodate different conventions for 1M and 3M SOFR futures (thanks to GitHub user <code>tani3010</code>).</li>
<li>The <code>FraRateHelper</code> class has new constructors that take IMM start / end offsets (thanks to Peter Caspers).</li>
<li>It is now possible to pass explicit minimum and maximum values to the <code>IterativeBootstrap</code> class. The accuracy parameter was also moved to the same class; passing it to the curve constructor is now deprecated.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>It is now possible to build fixed-rate bonds with an arbitrary schedule, even without a regular tenor (thanks to Steven Van Haren).</li>
</ul>
<p>MODELS</p><ul>
<li>It is now possible to use normal volatilities to calibrate a short-rate model over caps.</li>
</ul>
<p>DATE/TIME</p><ul>
<li>The Austrian calendar was added (thanks to Benjamin Schwendinger).</li>
<li>The German calendar incorrectly listed December 31st as a holiday; this is now fixed (thanks to Prasad Somwanshi).</li>
<li>Chinese holidays were updated for 2020 and the coronavirus event (thanks to Cheng Li).</li>
<li>South Korea holidays were updated for 2016-2020 (thanks to GitHub user <code>fayce66</code>).</li>
<li>In the calendar class, <code>holidayList</code> is now an instance method; the static version is deprecated. The <code>businessDayList</code> method was also added. (Thanks to Piotr Siejda.)</li>
<li>A bug in the 30/360 German day counter was fixed (thanks to Kobe Young for the heads-up).</li>
</ul>
<p>OPTIMIZERS</p><ul>
<li>The differential evolution optimizer was updated (thanks to Peter Caspers).</li>
</ul>
<p>CURRENCIES</p><ul>
<li>Added Kazakstani Tenge to currencies (thanks to Jonathan Barber).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Features deprecate in version 1.14 were removed: one of the constructors of the <code>BSMOperator</code> class, the whole <code>OperatorFactory</code> class, and the typedef <code>CalibrationHelper</code> which was used to alias the <code>BlackCalibrationHelper</code> class.</li>
<li>The <code>CalibrationHelperBase</code> class is now called <code>CalibrationHelper</code>. The old name remains as a typedef but is deprecated.</li>
<li>The overload of <code>CalibratedModel::calibrate</code> and <code>CalibratedModel::value</code> taking a vector of <code>BlackCalibrationHelper</code>s are deprecated in favor of the ones taking a vector of <code>CalibrationHelper</code>s.</li>
<li>The static method <code>Calendar::holidayList</code> is deprecated in favor of the instance method by the same name.</li>
<li>The constructors of <code>PiecewiseDefaultCurve</code> and <code>PiecewiseYieldCurve</code> taking an accuracy parameter are deprecated in favor of passing the parameter to an instance of the bootstrap class.</li>
<li>The constructors of <code>BondHelper</code> and derived classes taking a boolean flag to choose between clean and dirty price are deprecated in favor of the ones taking a <code>Bond::Price::Type</code> argument. The <code>useCleanPrice</code> method is also deprecated in favor of <code>priceType</code>.</li>
</ul>
<p><b>Release 1.17 - December 3rd, 2019</b></p>
<p>PORTABILITY</p><ul>
<li>As of this release, support of Visual C++ 2010 is deprecated; it will be dropped in next release. Also, we'll probably deprecate Visual C++ 2012 in one of the next few releases in order to drop it around the end of 2020.</li>
</ul>
<p>CONFIGURATION</p><ul>
<li>A new function <code>compiledBoostVersion()</code> is available, (thanks to Andrew Smith). It returns the version of Boost used to compile the library, as reported by the <code>BOOST_VERSION</code> macro. This can help avoid linking the library with user code compiled with a different Boost version (which can result in erratic behavior).</li>
<li>It is now possible to specify at run time whether to use indexed coupons (thanks to Ralf Konrad). The compile-time configuration is still used as a default, but it is also possible to call either of the static methods <code>IborCoupon::createAtParCoupons</code> or <code>IborCoupon::createIndexedCoupons</code> to specify your preference. For the time being, the methods above must necessarily be called before creating any instance of <code>IborCoupon</code> or of its derived classes.</li>
</ul>
<p>BUILD</p><ul>
<li>As of this version, the names of the binaries produced by the included Visual C++ solution no longer contain the toolset version (e.g., v142).</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added ex-coupon functionality to floating-rate bonds (thanks to Steven Van Haren).</li>
<li>The inner structure <code>Callability::Price</code> was moved to the class <code>Bond</code> and can now be used to specify what kind of price was passed to the <code>BondFunctions::yield</code> method (thanks to Francois Botha).</li>
<li>It is now possible to use a par-coupon approximation for FRAs like the one used in Ibor coupons (thanks to Peter Caspers).</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Added escrowed dividend model to the new-style FD engine for <code>DividendVanillaOption</code> (thanks to Klaus Spanderen).</li>
<li>Black cap/floor engine now also returns caplet deltas (thanks to Wojciech Slusarski).</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>OIS rate helpers can now choose whether to use as a pillar for the bootstrap either their maturity date or the end date of the last underlying fixing. This provides an alternative if the bootstrap should fail. (Thanks to Drew Saunders for the heads-up.)</li>
<li>Instances of the <code>FittedBondDiscountCurve</code> class now behave as simple evaluators (that is, they use the given parameters without performing root-solving) when the <code>maxIterations</code> parameter is set to 0. (Thanks to Nick Firoozye for the heads-up.)</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added a few special closing days to the US government bond calendar (thanks to Mike DelMedico).</li>
<li>Fixed an incorrect 2019 holiday in Chinese calendar (thanks to Cheng Li).</li>
<li>Added missing holiday to Swedish calendar (thanks to GitHub users <code>periculus</code> and <code>tonyzhipengzhou</code>).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>The classes <code>FDEuropeanEngine</code>, <code>FDAmericanEngine</code>, <code>FDBermudanEngine</code>, <code>FDDividendEuropeanEngine</code>, <code>FDDividendEuropeanEngineShiftScale</code>, <code>FDDividendAmericanEngine</code>, <code>FDDividendAmericanEngineShiftScale</code> are now deprecated. They are superseded by <code>FdBlackScholesVanillaEngine</code>.</li>
</ul>
<p><b>Release 1.16 - August 5th, 2019</b></p>
<p>PORTABILITY</p><ul>
<li>Added support for Visual Studio 2019 (thanks to Paul Giltinan).</li>
</ul>
<p>CONFIGURATION</p><ul>
<li>As announced in past release, the compile-time switch to force non-negative rates was removed.</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Added constant elasticity of variance (CEV) pricing engines for vanilla options. Analytic, FD and SABR engines are available (thanks to Klaus Spanderen).</li>
<li>Added quanto pricing functionality to a couple of FD engines for DividendVanillaOption (thanks to Klaus Spanderen).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Digital coupons can now optionally return the value of the naked option (thanks to Peter Caspers).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Updated Taiwan holidays for 2019 (thanks to Hank Liu).</li>
<li>Added two newly announced holidays to Chinese calendar (thanks to Cheng Li).</li>
<li>Updated Japan calendar (thanks to Eisuke Tani).</li>
<li>Fixed New Year's day adjustment for Canadian calendar (thanks to Roy Zywina).</li>
<li>Added a couple of exceptions for UK bank holidays (thanks to GitHub user Vililikku for the heads-up).</li>
<li>Added French calendar (thanks to GitHub user NJeanray).</li>
<li>Added public methods to expose a calendar's added and removed holidays (thanks to Francois Botha).</li>
<li>Allow the stub date of a schedule to equal the maturity.</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Deprecated a constructor of the SwaptionVolatilityMatrix class that didn't take a calendar.</li>
<li>Removed typedefs GammaDistribution, ChiSquareDistribution, NonCentralChiSquareDistribution and InverseNonCentralChiSquareDistribution, deprecated in version 1.12. Use CumulativeGammaDistribution, CumulativeChiSquareDistribution, NonCentralCumulativeChiSquareDistribution and InverseNonCentralCumulativeChiSquareDistribution instead.</li>
<li>Removed Actual365NoLeap class, deprecated in version 1.11. It was folded into Actual365Fixed.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Take payment days into account when calculating the nodes of a bootstrapped curve based on overnight swaps.</li>
</ul>
<p><b>Release 1.15 - February 19th, 2019</b></p>
<p>PORTABILITY</p><ul>
<li>This release drops support for Boost version 1.43 to 1.47; the minimum required version is now Boost 1.48, released in 2011.</li>
<li>Added a <code>.clang-format</code> file to the repository. The format is not going to be enforced, but the style file is provided as a convenience in case you want to format new code according to the conventions of the library.</li>
<li><code>boost::function</code>, <code>boost::bind</code> and a few related classes and functions were imported into the new namespace <code>QuantLib::ext</code>. This allows them to be conditionally replaced with their <code>std::</code> versions (see the "opt-in features" section below). The default is still to use the Boost implementation. Client code using the <code>boost</code> namespace explicitly doesn't need to be updated.</li>
</ul>
<p>MODELS</p><ul>
<li>Added an experimental volatility basis model for caplet and swaptions (thanks to Sebastian Schlenkrich).</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>It is now possible to specify polynomial order and type when creating a <code>MCAmericanBasketEngine</code> instance (thanks to Klaus Spanderen).</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Inflation curves used to store the nominal curve used during their construction. This is still supported for backward compatibility, but is deprecated. You should instead pass the nominal curve explicitly to objects that need one (e.g., inflation helpers, engines, or cashflow pricers).</li>
<li>Added experimental helpers to bootstrap an interest-rate curve on SOFR futures (thanks to Roy Zywina).</li>
</ul>
<p>INDEXES</p><ul>
<li>It is now possible to choose the fixing calendar for the BMA index (thanks to Jan Ladislav Dussek).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Fixed broken observability in CMS-spread coupon pricer (thanks to Peter Caspers).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Fix implementation of Actual/Actual (ISMA) day counter in case a schedule is provided (thanks to Philip Stephens).</li>
<li>Fix implementation of <code>Calendar::businessDaysBetween</code> method when the initial and final date are the same (thanks to Weston Steimel).</li>
<li>Added day of mourning for G.H.W. Bush to the list of United States holidays (thanks to Joshua Engelman).</li>
<li>Updated list of Chinese holidays for 2019 (thanks to Cheng Li).</li>
<li>Added basic unit tests for the <code>TimeGrid</code> class (thanks to Kai Striega).</li>
</ul>
<p>MATH</p><ul>
<li>Prevent solver failure in Richardson extrapolation (thanks to Klaus Spanderen).</li>
</ul>
<p>EXAMPLES</p><ul>
<li>Added multi-curve bootstrapping example (thanks to Jose Garcia). This examples supersedes the old swap-valuation example, that was therefore removed.</li>
</ul>
<p>NEW OPT-IN FEATURES</p><ul>
<li>It is now possible to use <code>std::function</code>, <code>std::bind</code> and their related classes instead of <code>boost::function</code> and <code>boost::bind</code>. The feature can be enabled by uncommenting the <code>QL_USE_STD_FUNCTION</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-std-function</code> to <code>./configure</code> on other systems. This requires using at least the C++11 standard during compilation.</li>
<li>A new <code>./configure</code> switch, <code>--enable-std-classes</code>, was added as a shortcut for <code>--enable-std-pointers</code> <code>--enable-std-unique-ptr</code> <code>--enable-std-function</code>.</li>
</ul>
<p><b>Release 1.14 - October 1st, 2018</b></p>
<p>PORTABILITY</p><ul>
<li>In April 2018, Microsoft ended its support for Microsoft Visual C++ 2008. As previously announced, this release drops support for it.</li>
<li>Fixed generation of RPM from QuantLib.spec (thanks to Simon Rees).</li>
<li>Avoided uses of some features removed in C++17 so that the library can be compiled under the latest standard if needed.</li>
<li><code>boost::shared_ptr</code> and a few related classes and functions were imported into the new namespace <code>QuantLib::ext</code>. This allows them to be conditionally replaced with their <code>std::</code> versions (see the "opt-in features" section below). The default is still to use the boost implementation. Client code using the <code>boost</code> namespace explicitly doesn't need to be updated.</li>
<li>Fixed build and tests on FreeBSD-11 (thanks to Klaus Spanderen and to Mikhail Teterin for the heads-up).</li>
<li>Fixed tests with the <code>-ffast-math</code> compilation flag enabled (thanks to Klaus Spanderen and to Jon Davies for the heads-up).</li>
</ul>
<p>INSTRUMENTS AND PRICING ENGINES</p><ul>
<li>Add different settlement methods for swaptions (thanks to Peter Caspers).</li>
<li>Take into account distinct day-count conventions for different curves in the analytic barrier-option engine (thanks to GitHub user cosplay-raven).</li>
<li>Extract the correct constant coefficients to use in finite-difference vanilla-option engine when using a time-dependent Black-Scholes process (thanks to GitHub user Grant6899 for the analysis).</li>
</ul>
<p>CASH FLOWS AND INTEREST RATES</p><ul>
<li>Added Bibor and THBFIX indices (thanks to Matthias Lungwitz).</li>
</ul>
<p>MODELS</p><ul>
<li>Added a hook for using a custom smile model in the Markov functional model (thanks to Peter Caspers).</li>
<li>Added a base class CalibrationHelperBase to the hierarchy of calibration helpers in order to allow for helpers not using the Black model.</li>
<li>Return underlying dynamics from Black-Karasinski model (thanks to Fanis Antoniou).</li>
</ul>
<p>FINITE DIFFERENCES</p><ul>
<li>Added higher-order spatial operators (thanks to Klaus Spanderen).</li>
<li>Added TR-BDF2 finite-difference scheme (thanks to Klaus Spanderen).</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Allow swap helpers to specify end-of-month convention (thanks to Matthias Lungwitz).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Prevented division by zero in Actual/365 Canadian day counter (thanks to Ioannis Rigopoulos for the heads-up).</li>
<li>Added Children's Day to the list of Romanian holidays (thanks to Matthias Lungwitz).</li>
<li>Added new calendar for Thailand (thanks to Matthias Lungwitz).</li>
<li>Added 30/360 German day counter (thanks to Peter Caspers and Alexey Indiryakov).</li>
</ul>
<p>MATH</p><ul>
<li>Fixed bug in convex-monotone interpolation (thanks to Peter Caspers for the fix and to Tom Anderson for finding the bug).</li>
</ul>
<p>NEW OPT-IN FEATURES</p><ul>
<li>It is now possible to use <code>std::shared_ptr</code> and its related classes instead of <code>boost::shared_ptr</code>. Note that, unlike its boost counterpart, <code>std::shared_ptr</code> doesn't check for null pointers before access; this can lead to crashes. The feature can be enabled by uncommenting the <code>QL_USE_STD_SHARED_PTR</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-std-pointers</code> to <code>./configure</code> on other systems. This requires using at least the C++11 standard during compilation.</li>
<li>It is now possible to use <code>std::unique_ptr</code> instead of <code>std::auto_ptr</code>; this makes it possible to compile the library in strict C++17 mode and to avoid deprecation warnings in C++11 and C++14 mode. The feature can be enabled by uncommenting the <code>QL_USE_STD_UNIQUE_PTR</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-std-unique-ptr</code> to <code>./configure</code> on other systems.</li>
</ul>
<p>Thanks go also to Sam Danbury, Barry Devlin, Roland Kapl, and GitHub user todatamining for smaller fixes, enhancements, and bug reports.</p>
<p><b>Release 1.13 - May 24th, 2018</b></p>
<p>PORTABILITY</p><ul>
<li>In April 2018, Microsoft ended its support for Microsoft Visual C++ 2008. This release still includes a solution file for VC++ 2008, but we won't support it further or take bug reports for it. The next release will only contain project files for Visual C++ 2010 and later.</li>
<li>Fixed build on Solaris 12.5 in C++11 mode (thanks to Nick Glass).</li>
</ul>
<p>INSTRUMENTS AND PRICING ENGINES</p><ul>
<li>Fix CDS calculation when the start date falls during the week-end (thanks to Guillaume Horel).</li>
<li>Allow construction of a <code>ForwardRateAgreement</code> instance even if the interest-rate curve is not yet linked (thanks to Tom Anderson).</li>
</ul>
<p>CASH FLOWS AND INTEREST RATES</p><ul>
<li>Added Mosprime, Pribor, Robor and Wibor indices (thanks to Matthias Lungwitz).</li>
<li>Improved performance of Black pricer for LIBOR coupons (thanks to Peter Caspers).</li>
<li>Fixed experimental quanto coupon pricer (thanks to Peter Caspers).</li>
<li>Revised experimental CMS-spread coupon pricer (thanks to Peter Caspers).</li>
</ul>
<p>MODELS</p><ul>
<li>Improvements for the experimental generalized Hull-White model (thanks to Roy Zywina).</li>
<li>Fixed drift in GSR process (thanks to Peter Caspers for the fix and to Seung Beom Bang for the heads up).</li>
<li>Fixed an out-of-bound access in the TwoFactorModel::ShortRateDynamics::process method (thanks to Weston Steimel).</li>
</ul>
<p>FINITE DIFFERENCES</p><ul>
<li>Improved Black-Scholes mesher for low volatilities and high discrete dividends (thanks to Klaus Spanderen).</li>
<li>Added method-of-lines scheme (thanks to Klaus Spanderen).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Schedule::until can now be used with schedules built from vectors of dates (thanks to GitHub user Grant6899).</li>
<li>Added Good Friday to the list of Hungarian and Czech holidays (thanks to Matthias Lungwitz).</li>
<li>Updated the list of Turkish holidays after 2014 (thanks to Matthias Lungwitz).</li>
</ul>
<p>MATH</p><ul>
<li>Added convenience operators to initialize array and matrices (thanks to Peter Caspers).</li>
</ul>
<p>TEST SUITE</p><ul>
<li>Added test case for CIR++ model (thanks to Klaus Spanderen).</li>
</ul>
<p>Thanks go also to Jose Aparicio, Roland Kapl and GitHub user lab4quant for smaller fixes and enhancements.</p>
<p><b>Release 1.12.1 - April 16th, 2018</b></p>
<p>QuantLib 1.12.1 is a bug-fix release for version 1.12.</p>
<p>It fixes an error that would occur during initialization of the test suite when using the newly released Boost 1.67.0. Thanks to Klaus Spanderen for the prompt fix.</p>
<p>The library code is unchanged from version 1.12.</p>
<p><b>Release 1.12 - February 1st, 2018</b></p>
<p>PORTABILITY</p><ul>
<li>As announced in the previous release, support for the Dev-C++ IDE was removed.</li>
<li>In April 2018, Microsoft will end its support for Microsoft Visual C++ 2008. Therefore, this is the last version of <a class="el" href="namespace_quant_lib.html">QuantLib</a> to support it with maintained project files.</li>
<li>It is now possible to build a usable library with CMake on Windows (thanks to Javier G. Sogo).</li>
<li>Fix autotools build outside the source tree (thanks to Joshua Ulrich).</li>
</ul>
<p>INSTRUMENTS AND PRICING ENGINES</p><ul>
<li>Added OAS calculation to experimental callable bonds (thanks to Bojan Nikolic).</li>
<li>Avoided infinite loop for some sets of parameters in experimental variance-gamma engine (thanks to Roy Zywina).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>It is now possible to build a cash-flow leg from a schedule created from a precalculated vector of dates (thanks to Peter Caspers).</li>
</ul>
<p>MODELS</p><ul>
<li>Affine models can now be used to bootstrap a default-probability curve (thanks to Jose Aparicio).</li>
<li>Added Andreasen-Huge volatility interpolation and local volatility calibration (thanks to Klaus Spanderen).</li>
<li>Added Rannacher smoothing steps for Heston stochastic local volatility calibration (thanks to Klaus Spanderen).</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Added L2 penalty to fitted parameters of fitted bond discount curve (thanks to Robin Northcott).</li>
<li>Added an optional trading calendar to the FX-swap rate helper and and optional payment lag to the OIS rate helper (thanks to Wojciech Slusarski).</li>
<li>Fixed inconsistent treatment of strike in experimental CPI cap/floor term price surface (thanks to Francis Duffy).</li>
<li>Correctly handled the case of overlapping strike regions for caps and floors in experimental CPI cap/floor term price surface (thanks to Peter Caspers).</li>
<li>Fixed calculation of seasonality correction for interpolated inflation indexes (thanks to Francis Duffy).</li>
<li>Implemented composite zero-yield curve as combination of two existing curves via a given binary function (thanks to Francois Botha).</li>
<li>Fixed interpolation of shift in swaption volatility matrix (thanks to Peter Caspers).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Updated Chinese calendar for 2018 (thanks to Cheng Li).</li>
<li>Added Botswana calendar (thanks to Francois Botha).</li>
<li>Fixed a few problems with US calendars (thanks to Mike DelMedico and to GitHub user ittegrat).</li>
<li>User-added holidays now work correctly when intraday calculations are enabled (thanks to Klaus Spanderen for the fix and to GitHub user volchemist for the report).</li>
</ul>
<p>MATH</p><ul>
<li>Fixed monotonicity of Fritsch-Butland and prevented NaNs in some cases (thanks to GitHub user Grant6899 for the fix and to Tom Anderson for the report).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>The ChiSquareDistribution, NonCentralChiSquareDistribution, InverseNonCentralChiSquareDistribution and GammaDistribution were renamed to CumulativeChiSquareDistribution, NonCentralCumulativeChiSquareDistribution, InverseNonCentralCumulativeChiSquareDistribution and CumulativeGammaDistribution, respectively (thanks to GitHub user IGonza). The old names are still available as typedefs and will be removed in a future release.</li>
</ul>
<p>Thanks go also to Marco Craveiro, Dirk Eddelbuettel, Lakshay Garg, Guillaume Horel, Alix Lassauzet, Patrick Lewis, and GitHub users bmmay, bingoko and tournierjc for smaller fixes and enhancements.</p>
<p><b>Release 1.11 - October 2nd, 2017</b></p>
<p>PORTABILITY</p><ul>
<li>This is the last version of <a class="el" href="namespace_quant_lib.html">QuantLib</a> to support the now obsolete Dev-C++ IDE with a maintained project file. The project will be removed in next release.</li>
</ul>
<p>INSTRUMENTS AND PRICING ENGINES</p><ul>
<li>Added ISDA pricing engine for credit default swaps (thanks to Guillaume Horel, Jose Aparicio and Peter Caspers).</li>
<li>Added Andersen-Piterbarg engine for the Heston model (thanks to Klaus Spanderen).</li>
<li>Improved experimental vanna-volga engine for double-barrier knock-in options (thanks to Giorgio Pazmandi).</li>
<li>Added theta calculation to experimental Kirk spread-option engine (thanks to Krzysztof Wos).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added optional payment lag to fixed, floating and OIS legs (thanks to Fabrice Lecuyer and Joseph Jeisman).</li>
<li>Fixed yield calculation with 30/360 US day count convention and settlement on the 31st of the month (thanks to Frank Xue).</li>
</ul>
<p>MODELS</p><ul>
<li>Added adaptive successive over-relaxation method for implied volatility calculation (thanks to Klaus Spanderen).</li>
</ul>
<p>INDEXES</p><ul>
<li>Fixed day-count convention and spot lag for CAD LIBOR (thanks to Oleg Kulkov).</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Optionally optimize setting up OIS helpers (thanks to Peter Caspers).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added Actual/365 Canadian day count convention (thanks to Andrea Maggiulli).</li>
</ul>
<p>MATH</p><ul>
<li>Added GMRES iterative solver for large linear systems (thanks to Klaus Spanderen).</li>
<li>Updated Hong Kong calendar up to 2020 (thanks to Nicholas Bertocchi and Alix Lassauzet).</li>
</ul>
<p>BUILD</p><ul>
<li>Added configure switch to enable unity build.</li>
</ul>
<p>TEST SUITE</p><ul>
<li>Added –fast and –faster flags to the test-suite executable. When passed, slower tests are discarded so that the test suite runs in just a few minutes.</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Remove the HestonExpansionEngine::numberOfEvaluations method (deprecated in version 1.9).</li>
<li>Remove the MixedLinearCubicInterpolation and MixedLinearCubic constructors not specifying the behavior of the mixed interpolation (deprecated in version 1.8).</li>
<li>Remove deprecated overloads of the Swaption::impliedVolatility and CapFloor::impliedVolatility methods (deprecated in version 1.9).</li>
<li>Remove NoArbSabrModel::checkAbsorptionMatrix method (deprecated in version 1.8.1).</li>
</ul>
<p><b>Release 1.10.1 - August 31st, 2017</b></p>
<p>QuantLib 1.10.1 is a bug-fix release for version 1.10.</p>
<ul>
<li>Prevented a name clash when using the newly-released Boost 1.65.0 with g++ 6.3.</li>
<li>Added a few missing function declarations in the SwaptionVolatilityStructure class (thanks to Peter Caspers).</li>
</ul>
<p><b>Release 1.10 - May 16th, 2017</b></p>
<p>PORTABILITY</p><ul>
<li>Added support for the recently released Visual Studio 2017.</li>
<li>Unified Visual Studio solution file. The provided QuantLib.sln file works for all versions from 2010 to 2017.</li>
<li>Added support for the recently released Boost 1.64.0 (thanks to Klaus Spanderen).</li>
<li>Converted non-ASCII characters in source files to UTF-8; this should make them work with most editors (thanks to Krzysztof WoÅ› and Jose Aparicio).</li>
<li>Fixed some compilation issues with older versions of the Sun CC compiler and with the gcc 3.4 series. The offending code has simply been disabled; when using those compilers, is also suggested to downgrade Boost to an older version since more recent ones can give problems. Boost 1.54.0 was reported to work. It is likely that no further support will be given to these compilers in future releases.</li>
</ul>
<p>INSTRUMENTS AND PRICING ENGINES</p><ul>
<li>Added Heston pricing engine based on Fourier-Cosine series expansion (thanks to Klaus Spanderen).</li>
<li>Added cash annuity model in Black swaption engine (thanks to Peter Caspers, Werner Kuerzinger and Paul Giltinan).</li>
<li>Add an optional exogenous discount curve to analytic Black European option engine (thanks to Paul Giltinan).</li>
</ul>
<p>MODELS</p><ul>
<li>Added collocating local-volatility model (thanks to Klaus Spanderen).</li>
<li>Optionally disable Feller constraint in Cox-Ingersoll-Ross model (thanks to Oleksandr Khomenko).</li>
</ul>
<p>INTEREST RATES</p><ul>
<li>Allow using an arbitrary solver to calculate yield (thanks to Daniel Hrabovcak).</li>
<li>Update handling of July 4th for US LIBOR fixings (thanks to Oleg Kulkov).</li>
<li>Added CompoundingThenSimple convention (thanks to Martin Ross).</li>
</ul>
<p>INFLATION</p><ul>
<li>Use the lagged reference period to interpolate inflation fixings (thanks to Francois Botha).</li>
</ul>
<p>VOLATILITY</p><ul>
<li>Reduce the memory footprint of OptionletStripper1 (thanks to Matthias Lungwitz)</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Updated Chinese calendar for 2017 (thanks to Cheng Li).</li>
<li>Added CDS2015 date-generation rule with the correct semiannual frequency (thanks to Guillaume Horel).</li>
<li>The Iceland calendar used to incorrectly adjust New Year's Day to the next Monday when falling on a holiday. That's now fixed (thanks to Stefan Gunnsteinsson for the heads-up).</li>
<li>Fixed bug that prevented correct calculation of an ECB date on the first day of a month (thanks to Nicholas Bertocchi).</li>
<li>Fixed bug in Schedule that ignored end-of-month convention when calculating reference dates for irregular coupons (thanks to Ryan Taylor).</li>
<li>Allow passing a schedule to Actual/Actual day counter for correct calculation of reference dates (thanks to Ryan Taylor).</li>
</ul>
<p>MATH</p><ul>
<li>Added harmonic spline interpolation (thanks to Nicholas Bertocchi).</li>
</ul>
<p>EXAMPLES</p><ul>
<li>Added examples for global optimizers (thanks to Andres Hernandez).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Removed the SwaptionHelper constructors not taking an explicit volatility type (deprecated in version 1.8).</li>
<li>Removed the SwaptionVolatilityMatrix constructors not taking an explicit volatility type (deprecated in version 1.8).</li>
<li>Removed the BlackSwaptionEngine constructor overriding the displacement from the given volatility structure (deprecated in version 1.8).</li>
<li>Removed the FlatSmileSection and InterpolatedSmileSection constructors not taking an explicit volatility type (deprecated in version 1.8).</li>
<li>Removed the RiskyAssetSwapOption constructor taking a side (deprecated in version 1.8).</li>
</ul>
<p>POSSIBLY BREAKING CHANGES</p><ul>
<li>The constructors of a few Libor-like indexes were made explicit. This means that code such as the following, which used to compile, will now break. That's probably a good thing. <div class="fragment"><div class="line">Handle<YieldTermStructure> forecast_curve;</div>
<div class="line">Euribor6M index = forecast_curve;</div>
</div><!-- fragment --></li>
</ul>
<p><b>Release 1.9.2 - February 27th, 2017</b></p>
<p>QuantLib 1.9.2 is a bug-fix release for version 1.9.1.</p>
<ul>
<li>Prevented errors in yield-curve bootstrapping tests due to an incorrect test setup (thanks to Peter Caspers for the heads-up).</li>
</ul>
<p><b>Release 1.9.1 - January 5th, 2017</b></p>
<p>QuantLib 1.9.1 is a bug-fix release for version 1.9.</p>
<ul>
<li>Prevented a linking error when multiple compilation units included the global ql/quantlib.hpp header (thanks to Dirk Eddelbuettel).</li>
<li>Prevented a compilation error with gcc 4.4 on RedHat (thanks to GitHub user aloupos for the heads-up).</li>
<li>Prevented a compilation error with the parallel unit runner and the recently released Boost 1.63.0.</li>
</ul>
<p><b>Release 1.9 - November 8th, 2016</b></p>
<p>PORTABILITY</p><ul>
<li>Dropped support for Visual C++ 8 (2005). As of April 2016, the compiler is no longer supported by Microsoft.</li>
<li>Allow the parallel test runner to work with Boost 1.62 (thanks to Klaus Spanderen for the fix and to Andrei Borodaenko for the heads-up).</li>
</ul>
<p>INTEREST RATES</p><ul>
<li>Allow negative jumps in interest-rate curves. Previously, trying to pass one would result in an exception (thanks to Leanpub reader Jeff for the heads-up).</li>
<li>Added BBSW and Aonia indexes from Australia and BKBM and NZOCR indexes from New Zealand (thanks to Fabrice Lecuyer).</li>
</ul>
<p>VOLATILITY</p><ul>
<li>Added normal implied-volatility calculation to caps/floors (thanks to Paolo Mazzocchi).</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Fix a scenario in which a <code>CompositeInstrument</code> instance would stop receiving notifications (thanks to Peter Caspers for the heads-up).</li>
<li>Added a few safety checks to the CVA swap engine (thanks to Andrea Maggiulli).</li>
<li>Auto-deactivate Boyle-Lau optimization for barrier options when not using a CRR tree (thanks to Riccardo Ghetta).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Changed data type for <code>Date</code> serial numbers to <code>int_fast_32t</code> to improve performance of date calculations (thanks to Peter Caspers).</li>
<li>Added ECB maintenance period dates for 2017 (thanks to Paolo Mazzocchi).</li>
<li>Fixed rule for the Japanese Mountain Day holiday (thanks to Eisuke Tani).</li>
<li>Fixed United States holidays before 1971 (thanks to Nick Glass for the heads-up).</li>
<li>Added a missing Chinese holiday (thanks to Cheng Li).</li>
<li>Ensure correct formatting when outputting dates (thanks to Peter Caspers).</li>
</ul>
<p>NEW OPT-IN FEATURES</p>
<p>These features are disabled by default and can be enabled by defining a macro or passing a flag to <code>./configure</code>. Feedback is appreciated.</p><ul>
<li>Enable thread-safe singleton initialization (thanks to GitHub user sdgit). The feature can be enabled by uncommenting the <code>QL_ENABLE_SINGLETON_THREAD_SAFE_INIT</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-thread-safe-singleton-init</code> to <code>./configure</code> on other systems.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>The <code>ql/experimental</code> folder contains code whose interface is not fully stable, but is released in order to get user feedback. Experimental classes make no guarantees of backward compatibility; their interfaces might change in future releases.</p>
<p>Changes and new contributions for this release were:</p><ul>
<li>OIS with arithmetic average (thanks to Stefano Fondi). A corresponding bootstrap helpers is also available.</li>
<li>a function to calculate multi-curve sensitivities (thanks to Michael von den Driesch).</li>
</ul>
<p><b>Release 1.8.1 - September 23rd, 2016</b></p>
<p>QuantLib 1.8.1 is a bug-fix release for version 1.8.</p>
<ul>
<li>A test failure with Visual C++ 14 (2015) was avoided. Up to VC++14 update 2, the compiler would inline a call to std::min and std::max incorrectly causing a calculation to fail (thanks to Ivan Cherkasov for the heads-up).</li>
<li>A test failure with the upcoming Boost 1.62 was avoided. A <a class="el" href="namespace_quant_lib.html">QuantLib</a> test was checking for the stored value of a hash whose value changed in Boost 1.62.</li>
<li>Miscellaneous fixes for the g1d swaption engine and instrument (thanks to Peter Caspers).</li>
<li>Whit Monday was no longer a holiday in Sweden since 2005 (thanks to Stefano Fondi).</li>
<li>A new holiday for election day 2016 was added to the South African calendar (thanks to Jasen Mackie).</li>
<li>A few missing CMakeLists were added to the distributed release (thanks to izavyalov for the heads-up).</li>
<li>An irregular last period in a schedule was not reported as such (thanks to Schmidt for the heads-up).</li>
</ul>
<p><b>Release 1.8 - May 18th, 2016</b></p>
<p>PORTABILITY</p><ul>
<li>The minimum required Boost version is now Boost 1.43 (May 2010). However, it is strongly suggested to use a recent version, or at least Boost 1.48 (November 2011).</li>
<li>Added initial CMake support (thanks to Dmitri Nesteruk). This makes it possible to compile QuantLib on CLion and other CMake-based tools.</li>
<li>The build now generates and installs pkg-config file on Linux systems (thanks to GitHub user njwhite).</li>
</ul>
<p>INTEREST RATES</p><ul>
<li>Fixed links to documentation for LIBOR indexes (thanks to Jose Magana).</li>
</ul>
<p>VOLATILITY</p><ul>
<li>Added the possibility to price swaptions and to calculate their implied volatilities in a Black-like model with normal volatilities as well as shifted lognormal (thanks to Peter Caspers).</li>
<li>Added the possibility to price caps in a Black-like model with normal volatilities as well as shifted lognormal (thanks to Michael von den Driesch).</li>
<li>Caplet strike is correctly recomputed during stripping (thanks to Michael von den Driesch).</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added basic CVA IRS pricing engine (stand alone, no portfolio; no WWR, no collateral). Thanks to Jose Aparicio.</li>
</ul>
<p>MODELS</p><ul>
<li>Black-Scholes processes now return the closed-formula expectation, standard deviation and variance over long periods (thanks to Peter Caspers).</li>
</ul>
<p>CURRENCIES</p><ul>
<li>Added Ukrainian hryvnia (thanks to GitHub user maksym-studenets).</li>
</ul>
<p>MONTE CARLO</p><ul>
<li>Use different random-number generators for calibration and pricing in Longstaff-Schwartz engine (thanks to Peter Caspers).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added forecast dates for moving holidays to Saudi Arabia calendar up to 2022 (thanks to Jayanth R. Varma).</li>
<li>Added new Ukrainian holiday, Defender's Day (thanks to GitHub user maksym-studenets).</li>
<li>Added a few more holidays for South Korea (thanks to Faycal El Karaa).</li>
</ul>
<p>MATH</p><ul>
<li>Added mixed log interpolation (thanks to GitHub user sfondi).</li>
<li>Avoid mixing different types while bit-shifting in fast Fourier transform on 64-bit systems (thanks to Nikolai Nowaczyk).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Removed <code>DateParser::split</code> method (deprecated in version 1.6).</li>
</ul>
<p>TEST SUITE</p><ul>
<li>The test suite is now run with a fixed evaluation date instead of using today's date. This helps avoid transient errors due to holidays. It is still possible to use today's date (or any other date) by running it as: <div class="fragment"><div class="line">quantlib-test-suite -- --date=today</div>
</div><!-- fragment --> or <div class="fragment"><div class="line">quantlib-test-suite -- --date=2016-02-08</div>
</div><!-- fragment --> (Thanks to Peter Caspers.)</li>
</ul>
<p>NEW OPT-IN FEATURES</p><ul>
<li>Added a parallel unit-test runner (thanks to Klaus Spanderen). This was successfully used under Linux, but problems were reported on Mac OS X and occasionally on Visual C++ 2010. The feature requires Boost 1.59 or later and can be enabled by uncommenting the <code>QL_ENABLE_PARALLEL_UNIT_TEST_RUNNER</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-parallel-unit-test-runner</code> to <code>./configure</code> on other systems.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p><ul>
<li>Stochastic local-volatility Heston model, (thanks to Klaus Spanderen and Johannes Göttker-Schnetmann). Both a Monte Carlo and a finite-difference calibration and calculation are provided.</li>
<li>Laplace interpolation (thanks to Peter Caspers).</li>
<li>Global optimizers: Hybrid Simulated Annealing, Particle Swarm Optimization, Firefly Algorithm, and Differential Evolution (thanks to Andres Hernandez).</li>
<li>A SVD-based calculation of the Moore-Penrose inverse matrix (thanks to Peter Caspers).</li>
</ul>
<p><b>Release 1.7.1 - January 18th, 2016</b></p>
<p>QuantLib 1.7.1 is a bug-fix release for version 1.7.</p>
<ul>
<li>an unneeded dependency on the Boost.Thread library had slipped into version 1.7. It is now removed (thanks to GitHub user MattPD).</li>
<li>Trying to build a schedule with a 4-weeks tenor would fail. This is now fixed (thanks to GitHub user smallnamespace for the heads-up).</li>
<li>A couple of errors in the list of past holidays for the Russian MOEX calendar was fixed, and the list of holidays for 2016 was added (thanks to Dmitri Nesteruk).</li>
<li>Chinese holidays for 2016 were updated (thanks to Cheng Li).</li>
<li>The correct curve is now used when calculating the at-the-money swap rate while building swaptions (thanks to Peter Caspers).</li>
</ul>
<p><b>Release 1.7 - November 23rd, 2015</b></p>
<p>INTEREST RATES</p><ul>
<li>Added rate helper to bootstrap on cross-currency swaps (thanks to Maddalena Zanzi). The curve to be bootstrapped can be the one for either of the two currencies.</li>
<li>Added the possibility for bootstrap helpers to define their pillar date in different ways (thanks to Paolo Mazzocchi). For each helper, the date of the corresponding node can be defined as the maturity date of the corresponding instrument, as the latest date used on the term structure to price the instrument, or as a custom date. Currently, the feature is enabled for FRAs and swaps.</li>
<li>Added the possibility to pass weight when fitting a bond discount curve. Also, it is now possible to fit a spread over an existing term structure (thanks to Andres Hernandez).</li>
</ul>
<p>INFLATION</p><ul>
<li>Added Kerkhof seasonality model (thanks to Bernd Lewerenz).</li>
<li>Retrieve inflation fixings from the first day of the month (thanks to Gerardo Ballabio). This avoids the need to store them for each day of the corresponding month.</li>
</ul>
<p>VOLATILITY</p><ul>
<li>Improve consistency between caplet stripping and pricing (thanks to Michael von den Driesch)</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Fixed usage of dividend yield in double-barrier formula (Thanks to Dean Raf for the heads-up).</li>
<li>Fixed perturbation formula for barrier options.</li>
</ul>
<p>MODELS</p><ul>
<li>Refine update behavior of GSR model. Depending on the market change, only the appropriate recalculations are performed (thanks to Peter Caspers).</li>
<li>Improve calibration of Heston model (thanks to Peter Caspers).</li>
</ul>
<p>MONTE CARLO</p><ul>
<li>Added the possibility to return the estimated exercise probability from a Longstaff-Schwartz engine (thanks to Giorgio Pazmandi).</li>
</ul>
<p>SETTINGS</p><ul>
<li>Added the possibility to temporarily disable notifications to observers (thanks to Chris Higgs). When re-enabled, any pending notifications are sent.</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added Romanian and Israelian calendars (thanks to Riccardo Barone).</li>
<li>Added ECB reserve maintenance periods for 2016 (thanks to Paolo Mazzocchi).</li>
<li>Updated South Korean calendar until the end of 2032 (thanks to Paolo Mazzocchi and Faycal El Karaa).</li>
<li>Added new Mountain Day holiday for Japan (thanks to Aaron Stephanic for the heads-up).</li>
<li>Remove MLK day from list of US holidays before 1983 (thanks to John Orford for the heads-up).</li>
<li>Added Christmas Eve to BOVESPA holidays (thanks to Daniel Beren for the heads-up).</li>
</ul>
<p>MATH</p><ul>
<li>Added polynomial and abcd functions.</li>
<li>Added Pascal triangle coefficients.</li>
<li>Replaced home-grown implementation of incremental statistics with Boost implementation (thanks to Peter Caspers).</li>
<li>Added Goldstein line-search method (thanks to Cheng Li).</li>
</ul>
<p>NEW OPT-IN FEATURES</p><ul>
<li>Added intraday component to dates (thanks to Klaus Spanderen). Date specifications now include hours, minutes, seconds, milliseconds and microseconds. Day counters are aware of the added data and include them in results. The feature can be enabled by uncommenting the <code>QL_HIGH_RESOLUTION_DATE</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-intraday</code> flag to <code>./configure</code> on other systems.</li>
<li>Added thread-safe implementation of the Observer pattern (thanks to Klaus Spanderen). This can be used to avoid crashes when using QuantLib from languages (such as C# or Java) that run a garbage collector in a separate thread. The feature requires Boost 1.58 or later and can be enabled by uncommenting the <code>QL_ENABLE_THREAD_SAFE_OBSERVER_PATTERN</code> macro in <code>ql/userconfig.hpp</code> on Visual C++ or by passing the <code>--enable-thread-safe-observer-pattern</code> to <code>./configure</code> on other systems.</li>
</ul>
<p><b>Release 1.6.2 - September 2015</b></p>
<p>QuantLib 1.6.2 is a compatibility release. It solves an ambiguous name resolution in the test-suite code when Visual Studio and the newly released Boost 1.59.0 are used together.</p>
<p>The library code did not change.</p>
<p><b>Release 1.6.1 - August 3rd, 2015</b></p>
<p>QuantLib 1.6.1 is a compatibility release. It adds out-of-the-box support for the newly released Visual Studio 2015, and avoids use of deprecated Boost macros that will be removed in the upcoming Boost 1.59.0 release.</p>
<p><b>Release 1.6 - June 23rd, 2015</b></p>
<p>PORTABILITY</p><ul>
<li>Enable successful compilation with Boost 1.58 and either gcc or clang.</li>
<li>Enable multi-processor compilation on Visual C++ as a project switch (thanks to Giorgio Pazmandi).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added Moscow Exchange calendar (thanks to Dmitri Nesteruk).</li>
<li>Added 70th anniversary of anti-Japanese day to Chinese calendar (thanks to Cheng Li).</li>
<li>Fixed Chinese New Year date for 2010 (thanks to Cheng Li).</li>
<li>Added nearest-trading-day business day convention (thanks to Francois Botha).</li>
<li>Prevented normalization of a 7-days period to a 1-week period, since this doesn't apply to business days (thanks to Paolo Mazzocchi).</li>
<li>Allowed schedules built with a vector of dates to be used for coupon generation, given that the required information was provided (thanks to Peter Caspers).</li>
<li>Added support for Australian Security Exchange (ASX) dates (thanks to Maddalena Zanzi).</li>
<li>Added ECB dates for April and June 2016 (thanks to Paolo Mazzocchi).</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Extended digital American options to handle knock-off case (thanks to Riccardo Ghetta).</li>
<li>Extended barrier options to handle KIKO/KOKI barriers (thanks to Riccardo Ghetta).</li>
<li>Added Ikeda/Kunitomo engine, binomial engine and binary/digital engine for double-barrier option (thanks to Riccardo Ghetta).</li>
<li>Added Bachelier engine for caps/floors based on normal volatility (thanks to Michael von den Driesch).</li>
<li>Allowed non strike/type payoffs in finite-differences engine for vanilla options (thanks to Joseph Wang).</li>
<li>Fixed settlement days of BTP bonds.</li>
<li>Fixed generation of schedule for OIS and vanilla swaps.</li>
<li>Added support for ASX dates to futures rate helper (thanks to Maddalena Zanzi).</li>
</ul>
<p>MODELS</p><ul>
<li>Moved Markov functional model, GSR model, Gaussian 1D model and related engines, processes and term structures from the experimental folder to the code library (thanks to Peter Caspers).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added CMS-spread coupons, including digital (thanks to Peter Caspers).</li>
</ul>
<p>INDEXES</p><ul>
<li>Added CMS-spread index (thanks to Peter Caspers).</li>
<li>Fixed day-count convention for Fed Funds rate.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Fixed bug where a valid previous curve state could be a bad guess for the next and lead to a bootstrap failure.</li>
<li>Allow negative adjustment for futures rate helpers (thanks to Paolo Mazzocchi).</li>
</ul>
<p>VOLATILITY</p><ul>
<li>Added support for normal and displaced lognormal volatility to optionlet stripper (thanks to Michael von den Driesch).</li>
<li>Allowed calibration of the alpha of the SABR model to the ATM point while keeping beta, nu and rho fixed (thanks to Peter Caspers).</li>
<li>Added Chambers-Nawalkha implied-volatility approximation (thanks to Peter Caspers).</li>
<li>Added displaced lognormal swaption volatilities (thanks to Peter Caspers).</li>
<li>Allowed the optionlet boostrap to continue if one caplet can no be matched (thanks to Peter Caspers).</li>
<li>Added flat-extrapolation option to swaption ATM volatility matrix (thanks to Peter Caspers).</li>
<li>Implied swaption volatility cube for Gaussian 1-D model (thanks to Peter Caspers).</li>
</ul>
<p>MATH</p><ul>
<li>Allowed user-defined Jacobian in optimization (thanks to Peter Caspers).</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>Added IDR, MYR, RUB and VND currencies (thanks to Lucy King).</li>
</ul>
<p>DEPRECATED FEATURES</p><ul>
<li>Removed deprecated methods and constructors from the BlackVarianceTermStructure, BlackVolTermStructure, CapFloorTermVolatilityStructure, DateParser, FittedBondDiscountCurve, GeneralLinearLeastSquares, Handle, LocalVolTermStructure, OptionletVolatilityStructure, Settings, SwaptionVolatilityStructure and VolatilityTermStructure classes.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p><ul>
<li>Finite-difference meshers based on multi-dimensional integrals (thanks to Klaus Spanderen).</li>
<li>SVI interpolation and a corresponding smile section (thanks to Peter Caspers).</li>
<li>ZABR volatility model (thanks to Peter Caspers).</li>
</ul>
<p><b>Release 1.5 - February 10th, 2015</b></p>
<p>PORTABILITY</p><ul>
<li>Unified project files for Visual Studio 10 and above. Different solutions are still provided for Visual Studio 10, 11 and 12.</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added China Inter-Bank calendar (thanks to Cheng Li).</li>
<li>Added half-month modified following convention (thanks to Paolo Mazzocchi).</li>
<li>Added a few more historical closings for NYSE.</li>
<li>Updated the Hong Kong and China calendar for 2015.</li>
<li>Updated list of ECB dates up to the first two dates for 2016 (thanks to Paolo Mazzocchi).</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Improved Storage and Swing engine (thanks to Klaus Spanderen).</li>
<li>Fixed behavior of the Bjerksund Stensland engine for very small volatilities (thanks to Klaus Spanderen).</li>
<li>Add Heston expansion engine for European options (thanks to Fabien Le Floc'h).</li>
<li>Caps, floors and swaptions can use a displacement in implied-volatility calculation.</li>
<li>Added partial-time fixed and floating strike lookback options (thanks to Francois Botha).</li>
<li>Added binary barrier options (thanks to Riccardo Ghetta).</li>
<li>Added binomial engine for barrier options (thanks to Riccardo Ghetta).</li>
<li>Added Vecer engine for continuous-averaging Asian options (thanks to Bernd Lewerenz).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added ex-coupon feature to fixed-rate bonds, CPI bonds and bond helpers (thanks to Francois Botha).</li>
<li>Fix calculation of sinking notionals when the coupon rate is very near 0 (thanks to Cheng Li).</li>
</ul>
<p>INDEXES</p><ul>
<li>Added Shanghai Inter-bank Offering Rate index (thanks to Cheng Li).</li>
<li>Added Fed Fund index.</li>
<li>Added South-African CPI (thanks to Francois Botha).</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Improvement to CMS market calibration: enabled use of general coupon pricers, added calibration to a term structure of betas (thanks to Peter Caspers).</li>
<li>InterpolatedZeroCurve can be passed rates with any compounding convention and frequency (thanks to Alexandre Radicchi).</li>
<li>Bond helpers can now use quotes for either clean or dirty prices (thanks to Francois Botha).</li>
<li>Added CPI bond helper (thanks to Francois Botha).</li>
<li>Better handling in rate helpers of evaluation dates which are not business dates.</li>
<li>Spreaded curves allow extrapolation if their underlying curve does (thanks to Peter Caspers).</li>
<li>Fixed inflation-rate interpolation (thanks to Amine Ifri).</li>
</ul>
<p>MATH</p><ul>
<li>Added generation of student-t distributed random numbers (thanks to Jose Aparicio).</li>
<li>Added Folin's integration methods (thanks to Klaus Spanderen).</li>
<li>Added mixed backward-flat/linear interpolation (thanks to Peter Caspers).</li>
<li>Improved performance of matrix multiplication (thanks to Peter Caspers).</li>
<li>Fixed wrong primitive calculation in mixed interpolation (thanks to Peter Caspers).</li>
<li>Fixed corner case for finite-difference Newton solver leading to infinite derivative (thanks to Peter Caspers).</li>
<li>Added Maddock's cumulative normal distribution (thanks to Klaus Spanderen).</li>
<li>Added bivariate cumulative student t distribution (thanks to Michal Kaut).</li>
</ul>
<p>LATTICES</p><ul>
<li>Calculate option delta/gamma on binomial trees using Hull formulas (thanks to Riccardo Ghetta).</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>A number of small performance improvements (thanks to Michael Sharpe).</li>
</ul>
<p>EXAMPLES</p><ul>
<li>Added example for Gaussian 1-D models (thanks to Peter Caspers).</li>
<li>Added examples for latent models and basket losses (thanks to Jose Aparicio).</li>
<li>Added example for multi-dimensional integral (thanks to Jose Aparicio).</li>
</ul>
<p>DEPRECATED CLASSES</p><ul>
<li>Removed deprecated Domain and Surface classes.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p><ul>
<li>Extended credit risk plus model (thanks to Peter Caspers).</li>
<li>No-arbitrage Sabr model with corresponding volatility-cube, smile section and interpolation classes (thanks to Peter Caspers).</li>
<li>A number of latent models for basket losses (thanks to Jose Aparicio).</li>
<li>Complex chooser option (thanks to Nathan Kruck, Ahmed Ayadi and Nolan Potier from the IMAFA program at Polytech'Nice Sophia).</li>
<li>Holder-extensible option (thanks to Nathan Kruck, Ahmed Ayadi and Nolan Potier from the IMAFA program at Polytech'Nice Sophia).</li>
<li>Partial-time barrier option (thanks to Nathan Kruck, Ahmed Ayadi and Nolan Potier from the IMAFA program at Polytech'Nice Sophia).</li>
<li>Two-asset correlation option (thanks to Ilyas Rahbaoui and Driss Aouad from the IMAFA program at Polytech'Nice Sophia).</li>
</ul>
<p><b>Release 1.4.1 - November 17th, 2014</b></p>
<p>QuantLib 1.4.1 is a compatibility release. It fixes a number of compilation errors that surfaced when using QuantLib 1.4 with Clang 3.5 and Boost 1.57. Thanks to Tim Smith for the heads-up.</p>
<p>If you are not using Clang, you don't need to upgrade from QuantLib 1.4 to 1.4.1.</p>
<p><b>Release 1.4 - February 26th, 2014</b></p>
<p>PORTABILITY</p><ul>
<li>Boost 1.39 or later is now required. We felt this could be enforced without causing grief to virtually anyone, given that 1.39 was released back in May 2009. We don't expect many people being stuck with an earlier version. This allows one to use make_shared to create shared_ptr instances, which has a number of advantages. Unfortunately, the C++03 implementation (which is still used by a number of older compiler that we're supporting) only allows a maximum of 9 constructor arguments, so we won't be able to use it everywhere.</li>
<li>Support for Visual C++ 2003 (VC++7) was dropped. The compiler is now more than 10 years old and no longer supported by Microsoft. Keeping the support is not worth the time and effort required. Anybody who is still stuck with this compiler and needs the support can fork the repository and maintain the changes.</li>
<li>Specific support for Visual C++ 2013 (VC++12) is not yet available; however, version checks in the code were relaxed so that one can import and convert the VC++11 solution without causing errors when auto-linking the generated libraries.</li>
<li>Fixed Clang warnings.</li>
<li>Use deprecated attribute of supported compilers. This replaces the QL_DISABLE_DEPRECATED mechanism that conditionally removes the features and causes the compiler itself to emit warnings if the features are used. The user can enable or disable the warnings by the means provided by the compiler.</li>
<li>Allow singletons to work under Visual C++ when CLR is enabled (thanks to Simon Shakeshaft).</li>
<li>Fixed compilation errors when using STLport (thanks to Marcello Pietrobon for the heads-up).</li>
</ul>
<p>CONFIGURATION</p><ul>
<li>Added switch to enable OpenMP-based parallelism (thanks to Joseph Wang). Currently, this is only used in a few loops in the finite-differences and tree frameworks.</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added Diamond Jubilee bank holiday to UK calendar.</li>
<li>Added Royal Wedding bank holiday to UK calendar (thanks to Whit Armstrong for the heads-up).</li>
<li>Added utilities to parse and format a date with the extended format implemented in Boost.Date (thanks to Michael von den Driesch). The previous parsing utility was deprecated.</li>
<li>Added Actual/365 (No Leap) day counter (thanks to Nick Glass).</li>
<li>Updated most moving holidays for 2014.</li>
<li>Fixed a Schedule bug where a combination of backwards generation and end-of-month convention would result in missing or duplicated dates (thanks to Nicholas Manganaro for the heads-up).</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Fixed Delta and Gamma calculation in Ju quadratic engine (thanks to Fabien Le Floc'h).</li>
<li>Improved calculation in finite-differences Asian options when the running average is much greater than the forward value (thanks to Klaus Spanderen).</li>
<li>Fixed Theta issue for some American FDM engines (thanks to Klaus Spanderen).</li>
<li>Fix annuity computation for CMS coupons (thanks to Peter Caspers).</li>
<li>Enabled case r=0 in Barone-Adesi/Whaley approximation engine (thanks to Klaus Spanderen).</li>
<li>When building a swaption with MakeSwaption, use the fixed tenor of the underlying swap index if none is given explicitly.</li>
</ul>
<p>MODELS</p><ul>
<li>Allow for calibration of just a subset of a model's parameters. Pre-built constraint are provided for calibration of an Hull-White model while fixing the mean reversion, and for calibration of a Markov functional model while fixing the first component of the piecewise volatility. (Thanks to Peter Caspers.)</li>
<li>Allow recalculation of exercise and end dates in swaption and cap helpers when the evaluation date changes (thanks to Peter Caspers).</li>
<li>Allowed negative strikes in BlackFormula, as long as the strike plus the displacement is still positive (thanks to Peter Caspers).</li>
<li>Added calculation of implied volatility from Bachelier price in BlackFormula (thanks to Gary Kennedy).</li>
<li>Added Broadie-Kaya exact simulation schema to Heston model (thanks to Klaus Spanderen).</li>
<li>Fixed upper/lower bound calculation for internal constraint in calibrated model (thanks to Peter Caspers).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added support for ex-coupon dates to cashflow calculations (thanks to Nick Glass). Currently, ex-coupons dates can be specified for fixed rate bonds.</li>
<li>Fixed calculation of duration and convexity when using Act/Act(ISMA) (thanks to Nick Glass).</li>
</ul>
<p>INDEXES</p><ul>
<li>Fixed IborCoupon construction with null fixing days. The coupon was used the passed fixing days instead of the ones previously processed by the base class constructor (thanks to Lisa Ann and Gerardo Ballabio for the heads-up).</li>
<li>Add a clone() method to SwapIndex which allows to change the tenor (thanks to Peter Caspers).</li>
<li>Ignore inflation-index fixings stored at dates later than the evaluation date.</li>
<li>Added utility class for creating custom Region instances to be passed to inflation indexes.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Prevent some errors when linking a null term structure to a Handle. When settings a null term structure to a Handle used as an underlying for another curve (say, a zero-spreaded curve), the latter tries to reset the jumps in the base class and fails. This error is now trapped. (Thanks to Christoph Breig for the heads-up.)</li>
<li>Fix interpolation of option dates in SwaptionVolatilityDiscrete and derived classes when evaluation date changes (thanks to Shen Hui).</li>
<li>Piecewise-spreaded curve can now choose interpolation (thanks to Mario Aleppo).</li>
</ul>
<p>MATH</p><ul>
<li>Extended Sobol direction numbers up to 21200 dimensions with Joe Kuo 6 searching rule (thanks to Cheng Li).</li>
<li>Added class for two-dimensional integration (thanks to Klaus Spanderen).</li>
<li>Added Maddock inverse-cumulative normal distribution from Boost (thanks to Klaus Spanderen).</li>
<li>Added modified Bessel functions (thanks to Klaus Spanderen).</li>
</ul>
<p>EXPERIMENTAL FOLDER</p><ul>
<li>Deprecated features were removed from experimental code.</li>
<li>Added initial implementation of catastrophe bond (thanks to Grzegorz Andruszkiewicz).</li>
<li>Added Vanna/Volga pricing engine for FX barrier options. Engines were provided for both single- and double-barrier FX options. An analytic engine was also provided for double-barrier equity options (thanks to Yue Tian).</li>
<li>Added Hagan pricing engine for irregular swaptions (thanks to Andre Miemiec).</li>
<li>Added simulated-annealing optimizer (thanks to Peter Caspers).</li>
<li>Added rebated exercise class (thanks to Peter Caspers).</li>
<li>Added pricing engine for arbitrary European payoffs under the Heston model (thanks to Klaus Spanderen).</li>
<li>Added linear terminal swap rate model pricer for CMS coupons (thanks to Peter Caspers).</li>
<li>Reorganized functional Markov model. Added one-factor GSR model, and float/float swap and swaption with a number of corresponding engines. (Thanks to Peter Caspers.)</li>
<li>The Levy engine for continuous-averaging Asian option now checks that the averaging period doesn't start in the future. Also, it allows the b=0 case that would raise an exception until now. (Thanks to Klaus Spanderen.)</li>
<li>Convertible bond now updates correctly when any of its observables changes.</li>
<li>Extended generalized Hull-White model (thanks to Cavit Hafizoglu). The model now allows to choose the mapping function between short rate and state variable, and includes the case of constant parameters.</li>
</ul>
<p><b>Release 1.3 - July 24th, 2013</b></p>
<p>PORTABILITY</p><ul>
<li>Enabled g++ compilation in C++11 mode.</li>
<li>Added VC++11 projects (thanks to Edouard Tallent).</li>
<li>Added x64 target to VC++10 and VC++11 projects (thanks to Johannes Göttker-Schnetmann).</li>
<li>Removed most level-4 warnings in VC++ (thanks to Michael Sharpe).</li>
<li>Removed warnings in VC++ when compiling for the x64 platform (thanks to Johannes Göttker-Schnetmann).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Fixed holiday for Japanese calendar (thanks to Sebastien Gurrieri).</li>
<li>Added Epiphany (introduced in 2011) to Polish calendar (thanks to katastrofa).</li>
<li>Updated South-Korean calendar for 2013 (thanks to Faycal El Karaa).</li>
<li>Updated Chinese calendar for 2012 (thanks to Cheng Li).</li>
<li>Updated calendar for 2013 for China, Hong Kong, India, Indonesia, Singapore, Taiwan and Turkey.</li>
<li>Fixed a few Mexican holidays.</li>
<li>Prevented out-of-bound access to degenerate schedule.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Finite-difference Bermudan swaption engines for the G2++ and the Hull-White models (thanks to Klaus Spanderen).</li>
<li>Added analytic Heston-Hull-White pricing engine for vanilla option using the H1HW approximation (thanks to Klaus Spanderen).</li>
<li>Managed underlying start delay in Jamshidian swaption engine (thanks to Peter Caspers).</li>
</ul>
<p>MODELS</p><ul>
<li>Added calibration to GARCH model (thanks to Slava Mazur).</li>
<li>Fixed forward-looking bias in Garch11 calculation (thanks to Slava Mazur).</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Use correct default for evaluation date in a few CashFlows methods (thanks to Peter Caspers).</li>
<li>Yield-based NPV calculation now uses coupon reference dates; this fixes small discrepancies when using day counters such as ISMA act/act (thanks to Henri Gough and Nick Glass).</li>
<li>Fixed start and end dates for convexity adjustment of in-arrears floating-rate coupon (thanks to Peter Caspers).</li>
</ul>
<p>INDEXES</p><ul>
<li>Added inspector for the joint calendar used by Libor indexes.</li>
<li>Added method to clone a swap index with a different discount curve (thanks to Peter Caspers).</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Fixed degenerate case for ABCD volatility (thanks to Peter Caspers).</li>
<li>Relaxed extrapolation check for default-probability curves. When calculating default probabilities between two dates or times, allow the first to precede the reference date. This effectively assumes that the default probability before the reference is null, and helps in cases where a coupon protection extends a couple of days before the reference due to adjustments (for instance, when the protection starts on a Saturday and the reference is rolled to the following Monday).</li>
<li>Pass correct ATM forward rate to smile section of SwaptionVolCube2 (thanks to Peter Caspers).</li>
<li>Added exogenous discount to OptionletStripper1 (thanks to Peter Caspers).</li>
</ul>
<p>MATH</p><ul>
<li>Added Sobol brownian-bridge random sequence generator (thanks to Klaus Spanderen).</li>
<li>Added Richardson-extrapolation utility for numerical methods (thanks to Klaus Spanderen).</li>
<li>Added differential evolution optimizer (thanks to Ralph Schreyer and Mateusz Kapturski).</li>
<li>Added special case to close()/close_enough() when either value is 0; previously, they would always return false which could be surprising (thanks to Simon Shakeshaft for the fix).</li>
<li>Fixed Gamma distribution tail (thanks to Ian Qsong).</li>
<li>Ensure that the last function call inside a solver is passed the root (thanks to Francis Duffy).</li>
<li>Implemented Lagrange boundary condition for cubic interpolation (thanks to Peter Caspers).</li>
<li>Increased precision in tail of West's bivariate cumulative normal (thanks to Fabien Le Floc'h).</li>
<li>Improved calibration of SABR interpolation by allowing different starting points (thanks to Peter Caspers).</li>
<li>Moved FFT and autocovariance implementations from experimental folder to core library.</li>
</ul>
<p>FINITE DIFFERENCES</p><ul>
<li>Added time-dependent Dirichlet boundary condition (thanks to Peter Caspers).</li>
</ul>
<p>UTILITIES</p><ul>
<li>Implicit conversions of shared_ptr to bool are now explicit; they have been removed in C++11 (thanks to Scott Condit).</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>The ql/experimental folder contains code which is still not fully integrated with the library or even fully tested, but is released in order to get user feedback. Experimental classes are considered unstable; their interfaces might change in future releases.</p>
<p>New contributions for this release were:</p><ul>
<li>Two-asset barrier option and related engine (thanks to IMAFA/Polytech'Nice students Qingxiao Wang and Nabila Barkati).</li>
<li>ODE solver (thanks to Peter Caspers).</li>
<li>Markov functional model (thanks to Peter Caspers).</li>
</ul>
<p><b>Release 1.2.1 - September 10th, 2012</b></p>
<p>Bug-fix release.</p>
<p><b>Release 1.2 - March 6th, 2012</b></p>
<p>PORTABILITY</p><ul>
<li>Microsoft Visual C++ 2010 no longer needs to disable uBlas code.</li>
<li>QuantLib now ships with an updated specification file for building RPMs (thanks to Matt Fair).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>When EOM was specified, a schedule's end date was moved to the end of month even if the 'Unadjusted' convention was given. This is now fixed.</li>
<li>When a daily frequency was used, a schedule could end up containing duplicated dates. This is now fixed (thanks to Simone Medori for the bug report).</li>
<li>Added method to return truncated schedule.</li>
<li>Fixed Swedish Midsummer Eve's date (thanks to Gary Kennedy).</li>
<li>Added South Korea holidays for 2011/2012 (thanks to Charles Chongseok Hyun and Faycal El Karaa).</li>
<li>Added holidays for 2011 to China, Hong Kong, India, Indonesia, Saudi Arabia, and Taiwan calendars.</li>
<li>Added ECB maintenance dates for 2012 and 2013.</li>
<li>Greatly improved performance of business/252 day counter. The previous implementation would count the business days between two dates at each invocation. The new implementation caches dynamically the count of business days for whole months and years, so that after a while only the first and last few days are counted.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>The AssetSwap instrument now supports non-par repayment.</li>
<li>Added specialized class for Italian CCTEU (certificato di credito del tesoro).</li>
<li>Added CPI-linked swaps, bonds, and cap/floors.</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added CashFlows::npvbps() method to calculate NPV and BPS in a single loop to improve performance.</li>
</ul>
<p>INDEXES</p><ul>
<li>Better detection of forecast/past fixings for inflation indexes. When an interpolated index is asked for a fixing at the beginning of a month, the fixing for the following (which would have zero weight in the interpolation) is no longer required. Also, if a fixing is loaded in the index time series, it can be used even its observation lag has not fully elapsed.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Vastly improved the performance of piecewise yield curve bootstrap. Anchoring the evaluation date (see below) provides a further improvement.</li>
<li>Moved CPI-volatility interface from experimental folder to the core library.</li>
</ul>
<p>MATH</p><ul>
<li>Added Newton 1-D solver with finite difference derivatives.</li>
<li>Improved interface for linear least-square regression (thanks to Slava Mazur).</li>
</ul>
<p>FINITE DIFFERENCES</p><ul>
<li>Added TR-BDF2 scheme (thanks to Fabien Le Floc'h).</li>
<li>Moved stable parts of 2D finite-difference framework from the experimental folder to the core library.</li>
</ul>
<p>UTILITIES</p><ul>
<li>Added resetEvaluationDate() and anchorEvaluationDate() methods to enable/disable change of evaluation date at midnight, respectively. Anchoring the evaluation date also improves the performance of some calculations.</li>
</ul>
<p>PATTERNS</p><ul>
<li>Fixed possible problem in LazyObject notification logic. The previous implementation would pass obsolete information to observers that asked for data in their update() method (which is not advised, but possible). This is no longer the case.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>The ql/experimental folder contains code which is still not fully integrated with the library or even fully tested, but is released in order to get user feedback. Experimental classes are considered unstable; their interfaces might change in future releases.</p>
<p>New contributions for this release were:</p><ul>
<li>Spread option and related engine (thanks to IMAFA/Polytech'Nice students Meryem Chibo and Samad Abdessadki).</li>
<li>Writer-extensible option and related engine (thanks to IMAFA/Polytech'Nice students Delphine Bouthier, Marine Casanova, and Xavier Caron).</li>
<li>Levy engine for continuous-averaging Asian options (thanks to IMAFA/Polytech'Nice students Yasmine Lahlou and Amine Samani).</li>
<li>Simple Virtual Power Plant and related finite-difference (FD) engine (thanks to Klaus Spanderen).</li>
<li>FD solver and vanilla spread engine for Kluge-Ornstein-Uhlenbeck process (thanks to Klaus Spanderen).</li>
<li>Added generic n-dimensional FD solver (thanks to Klaus Spanderen).</li>
<li>Added FD pricing engine for a simple storage option based on an exponential Ornstein Uhlenbeck process (thanks to Klaus Spanderen).</li>
<li>Added vanilla and swing option FD pricer for Kluge model (thanks to Klaus Spanderen).</li>
<li>Added FD pricing engine for a simple swing option based on the Black-Scholes model (thanks to Klaus Spanderen).</li>
</ul>
<p><b>Release 1.1 - May 23rd, 2011</b></p>
<p>PORTABILITY</p><ul>
<li>Added support for Microsoft Visual C++ 2010.</li>
<li>Fixed m4 macro for QuantLib detection. It now works also when asked for versions such as 1.1 (as opposed to 1.1.0).</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added Russian calendar.</li>
<li>Revamped time-series iterators (thanks to Slava Mazur.) Iterators on dates and values were added, as well as C++0X-style cbegin() and cend() iterators.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added a few inspectors to zero-coupon inflation swaps.</li>
<li>Added Kirk approximation for two-asset spread options.</li>
<li>Added specialized BTP class (Italian government bonds) and related RendistatoCalculator class to help instantiation of this type of FixedRateBond.</li>
<li>Added analytic pricing engine for the piecewise-constant time-dependent Heston model.</li>
<li>Added paymentCalendar to FixedRateBond, possibly different than the one used for accrual-date calculation.</li>
</ul>
<p>PROCESSES</p><ul>
<li>Added Quadratic Exponential discretization scheme for the Heston process, including martingale correction.</li>
</ul>
<p>INDEXES</p><ul>
<li>Added inspector for discounting curve to swap index (thanks to Peter Caspers.)</li>
<li>Added exogenous discounting to all swap indexes.</li>
<li>Added SONIA index.</li>
<li>Added HICPXT indexes.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Added time-based interface to inflation curves.</li>
<li>Piecewise zero-spreaded term structure can now manage spread with any compounding (thanks to Robert Philipp.)</li>
<li>FittedBondDiscountCurve now works with any BondHelpers, not only FixedRateBondHelpers.</li>
<li>Added Svensson curve-fitting method (thanks to Alessandro Roveda.)</li>
</ul>
<p>MATH</p><ul>
<li>Added Ziggurat random-number generator (thanks to Kakhkhor Abdijalilov.)</li>
<li>Added experimental copula-based random-number generators (thanks to Hachemi Benyahia.)</li>
<li>More performant implementation of inverse cumulative distribution (thanks to Kakhkhor Abdijalilov.)</li>
<li>More performant mt19937 implementation (thanks to Kakhkhor Abdijalilov.)</li>
<li>Added more copulas (thanks to Hachemi Benyahia.) The new formulas are for Ali-Mikhail-Haq copula, Galambos copula, Husler-Reiss copula, and Plackett copula.</li>
<li>Added autocovariance calculation (thanks to Slava Mazur.)</li>
</ul>
<p>MONTE CARLO</p><ul>
<li>Improved LSM basis system (thanks to Kakhkhor Abdijalilov.)</li>
</ul>
<p>UTILITIES</p><ul>
<li>Reworked Null class template (thanks to Kakhkhor Abdijalilov.) The new implementation avoids the need for a macro on 64-bit systems and automatically covers all floating-point and integer types.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>The ql/experimental folder contains code which is still not fully integrated with the library or even fully tested, but is released in order to get user feedback. Experimental classes are considered unstable; their interfaces might change in future releases.</p>
<p>New contributions for this release were:</p><ul>
<li>2D finite-difference Bates engine based on the partial integro differential equation.</li>
<li>2D finite-difference engine for Black-Scholes processes (including local volatility.)</li>
<li>Black-Scholes process with support for vega stress test (thanks to Michael Heckl.)</li>
<li>Extended Ornstein-Uhlenbeck process.</li>
<li>Margrabe option (thanks to IMAFA/Polytech'Nice students Marius Akre, Michael Benguigui, and Yanice Cherrak.)</li>
<li>Simple chooser option (thanks to IMAFA/Polytech'Nice students Clement Barret, Fakher Braham, and Mohamed Amine Sadaoui.)</li>
<li>Generalized Hull-White model (thanks to Cavit Hafizoglu.) The generalized model can take piecewise-constant parameters instead of constant ones. A matching generalized Ornstein-Uhlenbeck process was also added.</li>
<li>Variance-gamma implementation (thanks to Adrian O'Neill.) Contributed classes include a variance-gamma process and model (with data but no behavior at this time) and a couple of working engines for European options.</li>
<li>Hybrid products in the McBasket framework (thanks to Andrea Odetti.) Path pricers now take a vector of YieldTermStructures that contains the (possibly stochastic) yield curves.</li>
<li>Delta calculator for FX options (thanks to Dimitri Reiswich.)</li>
</ul>
<p><b>Release 1.0.1 - September 17th, 2010</b></p>
<p>Bug-fix release.</p>
<p><b>Release 1.0 - February 24th, 2010</b></p>
<p>PORTABILITY</p><ul>
<li>Fixes for x64 Visual Studio compilation (thanks to Craig Miller.)</li>
<li>Enabled language extensions in Visual Studio projects.</li>
<li>Prevented make errors with older shells (thanks to Walter Eaves.)</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Changes to end-of-month adjustment. In a schedule, the Unadjusted convention now supersedes a non-null calendar and causes dates to roll on the unadjusted end of month (possibly a holiday.)</li>
<li>Added new date-generation rule for CDS (thanks to Jose Aparicio.)</li>
<li>Fix for CDS fair-upfront calculation (thanks to Jose Aparicio.) Previously, fair-upfront calculation required a non-null upfront to begin with. This is no longer the case.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Fixed discounting of dividends on convertible-bond grid (thanks to Benoit Houzelle and Samuel Lerouge.)</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>A number of CashFlows methods now return a meaningful result even if the passed leg is empty.</li>
</ul>
<p>PROCESSES</p><ul>
<li>Changed default discretization for Heston process. The new default (giving a better performance) is quadratic exponential with Martingale correction.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Removed ambiguous parRate member functions from YieldTermStructure interface.</li>
</ul>
<p>EXAMPLES</p><ul>
<li>Added market-model example.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>The ql/experimental folder contains code which is still not fully integrated with the library or even fully tested, but is released in order to get user feedback. Experimental classes are considered unstable; their interfaces might change in future releases.</p>
<p>New contributions for this release were:</p><ul>
<li>Longstaff-Schwartz algorithm for basket products including coupon payments (thanks to Andrea Odetti;)</li>
<li>added sparse incomplete LU preconditioner for 2D finite-difference models (thanks to Ralph Schreyer.)</li>
</ul>
<p><b>Release 0.9.9 - November 2009</b></p>
<p>PORTABILITY</p><ul>
<li>Fixes for 64-bit compilation.</li>
<li>Fixes for Sun Solaris compilation (thanks to Andreas Spengler.)</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added overnight-index coupon.</li>
<li>Added inflation coupons.</li>
<li>Parameterized CashFlows functions with explicit flag specifying whether to include settlement-date cash flows.</li>
<li>Added cash-flow related flags to Settings class. They determine whether or not to include today's and/or settlement date's cash flows. They can be overridden while calling CashFlows functions.</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added EUWAX calendar.</li>
<li>Updated 2009 holidays for China, Hong Kong, India, Indonesia, Singapore, and Taiwan.</li>
<li>Removed Easter Monday from Canadian holidays (thanks to Matt Knox.)</li>
<li>Added weekend-only calendar.</li>
</ul>
<p>INDEXES</p><ul>
<li>Added EONIA index.</li>
<li>Added French HICP and Australian CPI inflation indexes.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added overnight-index swaps (including helper for yield-curve bootstrap.)</li>
<li>Added inflation cap/floors (including interface for inflation cap/floor volatility structures.)</li>
<li>Added inspectors for previous and next coupon dates to Bond class.</li>
<li>Added implied z-spread calculation for bonds (thanks to Nathan Abbott.)</li>
<li>Added inspector to see whether a bond is still tradable (as opposed to not expired.)</li>
<li>Added constructor for fixed-rate bonds taking a generic InterestRate instance (thanks to Piter Dias.)</li>
<li>Added upfront to credit default swaps, including application to CDS helpers (thanks to Jose Aparicio.)</li>
<li>Added conventional CDS spread calculation (thanks to Jose Aparicio.)</li>
<li>Enabled non-spot inflation swaps.</li>
<li>Migrated asset swaps to pricing-engine framework.</li>
<li>Migrated inflation swaps to pricing-engine framework.</li>
<li>Migrated old average-strike Asian option pricer to pricing-engine framework (thanks to IMAFA students Jean Nkeng, Adrien Pinatton, and Alpha Sanou Toure.)</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Added builders for a few Monte Carlo engines.</li>
<li>Most Monte Carlo engines can now specify either relative or absolute target tolerance.</li>
<li>Some Monte Carlo engines can now specify either an absolute number of time steps or a number of time steps per year.</li>
<li>Added choice of evolver scheme to finite-difference vanilla engines.</li>
</ul>
<p>MATH</p><ul>
<li>Implemented Parabolic and Fritsch-Butland cubic interpolations.</li>
<li>Added BFGS optimizer (thanks to Frederic Degraeve.)</li>
<li>Added 1D and 2D kernel interpolation (thanks to Dimitri Reiswich.)</li>
<li>Added Akima and overshooting-minimization spline algorithms (thanks to Sylvain Bertrand.)</li>
<li>Added FFT implementation (thanks to Slava Mazur.)</li>
</ul>
<p>RANDOM NUMBERS</p><ul>
<li>Added Luescher's luxury random number generator (a proxy for Boost implementation.)</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Added hook to swap-rate helpers for external discounting term structure (thanks to Roland Lichters.)</li>
<li>Added seasonality to inflation term structures (thanks to Piero Del Boca and Chris Kenyon.)</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>New contributions for this release were:</p><ul>
<li>risky bonds and asset-swap options (thanks to Roland Lichters;)</li>
<li>spreaded hazard-rate curves (thanks to Roland Lichters;)</li>
<li>compound options (thanks to Dimitri Reiswich;)</li>
<li>refactored CDS options (thanks to Jose Aparicio;)</li>
<li>finite-differences solver for the hybrid Heston Hull-White model, including calibration (thanks to Klaus Spanderen;)</li>
<li>finite-differences Asian-option engines (thanks to Ralph Schreyer;)</li>
<li>machinery for default-event specification (thanks to Jose Aparicio;)</li>
<li>recursive CDO engine (thanks to Jose Aparicio.)</li>
</ul>
<p><b>Release 0.9.7 - November 18th, 2008</b></p>
<p>PORTABILITY</p><ul>
<li>Microsoft Visual C++ configurations have been renamed. The default Debug and Release configurations now link to the DLL version of the common runtime library. The names of other configuration should now be more descriptive.</li>
<li>Fixes for Solaris build.</li>
</ul>
<p>BONDS</p><ul>
<li>Added bond example (thanks to Florent Grenier.)</li>
<li>Added support for amortizing bonds (thanks to Simon Ibbotson.)</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added two more cashflow analysis functions (thanks to Toyin Akin.)</li>
</ul>
<p>DATE/TIME</p><ul>
<li>Added bespoke calendar.</li>
</ul>
<p>INDEXES</p><ul>
<li>Added GBP/USD/CHF/JPY swap-rate indexes.</li>
<li>Fixed USD LIBOR calendar (settlement, not NYSE.)</li>
</ul>
<p>MARKET MODELS</p><ul>
<li>Added first displaced-diffusion stochastic-volatility evolver.</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Monte Carlo average-price options now uses past fixings correctly.</li>
</ul>
<p>QUOTES</p><ul>
<li>added LastFixingQuote, a Quote adapter for the last available fixing of a given index.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>New contributions for this release were:</p><ul>
<li>time-dependent binomial trees (thanks to John Maiden.)</li>
<li>a new multidimensional FDM framework based on operator splitting using Craig-Sneyd, Hundsdorfer or Douglas schemes (thanks to Andreas Gaida, Ralph Schreyer, and Klaus Spanderen.)</li>
<li>implementations of Black-variance curve and surface taking a set of quotes as input (thanks to Frank Hövermann.)</li>
<li>synthetic CDO engines (thanks to Roland Lichters.)</li>
<li>variance options, together with a Heston-process engine (thanks to Lorella Fatone, Francesca Mariani, Maria Cristina Recchioni, and Francesco Zirilli.)</li>
<li>a commodity framework, including instruments such as energy futures and energy swaps (thanks to J. Erik Radmall.)</li>
<li>quanto-barrier options (thanks to Paul Farrington.)</li>
<li>amortizing bonds (thanks to Simon Ibbotson.)</li>
<li>a perturbative engine for barrier options (thanks to Lorella Fatone, Maria Cristina Recchioni, and Francesco Zirilli.)</li>
</ul>
<p><b>Release 0.9.6 - August 6th, 2008</b></p>
<p>Bug-fix release for QuantLib 0.9.5. It fixes a bug that would cause bootstrapped term structures to silently switch to linear interpolation when log-linear was requested.</p>
<p><b>Release 0.9.5 - July 30th, 2008</b></p>
<p>CREDIT FRAMEWORK</p>
<p>New credit framework due to the joint efforts of StatPro Italia, Roland Lichters, Chris Kenyon, and Jose Aparicio. The framework currently include:</p><ul>
<li>Interface for default-probability term structure and adapters for hazard-rate and default-density structures.</li>
<li>Flat hazard-rate curve.</li>
<li>Interpolated hazard-rate and default-density curves.</li>
<li>Credit-default swaps (mid-point and integral engines.)</li>
<li>Bootstrapped piecewise default-probability curve.</li>
<li>CDS example.</li>
</ul>
<p>PORTABILITY</p><ul>
<li>Added support for Microsoft Visual C++ 2008 (Boost 1.35 is required for this compiler.)</li>
<li>Fixes for Cygwin build.</li>
</ul>
<p>EXPERIMENTAL FOLDER</p>
<p>The new ql/experimental folder contains code which is still not fully integrated with the library, but is released in order to get user feedback. Experimental classes are considered unstable; their interfaces are likely to change in future releases. The folder currently include:</p><ul>
<li>Generic MC basket option (thanks to Andrea Odetti.)</li>
<li>CDS option (thanks to Roland Stamm.)</li>
<li>Nth-to-default swap (thanks to Roland Lichters.)</li>
<li>Extended Black-Scholes-Merton process (thanks to Frank Hövermann.)</li>
<li>Quanto-adjusted coupons and averaged coupons (thanks to Toyin Akin.)</li>
<li>Callable bonds (thanks to Allen Kuo.)</li>
<li>New framework for volatility term structures.</li>
<li>Sensitivity analysis functions.</li>
</ul>
<p>CALENDARS</p><ul>
<li>Added 2008 holidays for China, India, Indonesia, Singapore, and Taiwan.</li>
<li>Added one-off holiday (President Reagan's and Ford's funerals) to NYSE calendar.</li>
<li>Fixed South Korea calendar (thanks to Charles Chongseok Hyun.)</li>
</ul>
<p>CURRENCIES</p><ul>
<li>Added Peruvian currency.</li>
</ul>
<p>DATES</p><ul>
<li>Added date-generation rules for CDS schedules (i.e., rolling to the 20th of the month.)</li>
</ul>
<p>INDEXES</p><ul>
<li>Added SEK LIBOR index.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Ported Himalaya and Everest options to pricing-engine framework (thanks to the IMAFA students at Polytech'Nice Sophia: Jérôme Bessi, Sébastien Bonifaci, Benjamin Degerbaix and Renaud Pentel.)</li>
</ul>
<p>MATH</p><ul>
<li>Added matrix determinant.</li>
<li>Added QR matrix decomposition.</li>
<li>Added a number of copulas (thanks to Marek Glowacki.)</li>
<li>Added constrained cubic spline.</li>
<li>Implemented derivative and second derivative of log-interpolations.</li>
<li>Added Gauss-Lobatto integration.</li>
<li>Added student-t distribution (thanks to Roland Lichters.)</li>
</ul>
<p>MODELS</p><ul>
<li>Added calibrated GJR-GARCH model (thanks to Yee Man Chan.)</li>
<li>Added Feller constraint to Heston model.</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Refactored variance-swap engines (the underlying stochastic process is now passed to the pricing engine.)</li>
<li>Added GJR-GARCH pricing engines for vanilla options (thanks to Yee Man Chan.)</li>
</ul>
<p>PROCESSES</p><ul>
<li>Added Euler end-point discretization (thanks to Frank Hövermann.)</li>
<li>Added GJR-GARCH process (thanks to Yee Man Chan.)</li>
<li>Added Bates process.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Added turn-of-year effect to yield-curve bootstrapping (generalized to multiple jumps at arbitrary dates.)</li>
<li>Added local bootstrap of forward rates (thanks to Simon Ibbotson.)</li>
<li>Disabled copies of interpolated curves (the existing behavior was incorrect. A fix to re-enable copying will be included in a future release.)</li>
</ul>
<p>VOLATILITY</p><ul>
<li>Added constant cap/floor term volatility structure.</li>
<li>Added stripped optionlet.</li>
</ul>
<p><b>Release 0.9.0 - December 24th, 2007</b></p>
<p>PORTABILITY</p><ul>
<li>Fixes for MSYS and Cygwin build.</li>
<li>Fixes for VC++ build with CLR support enabled.</li>
<li>Dropped MetroWerks CodeWarrior support.</li>
</ul>
<p>CALENDARS</p><ul>
<li>Fix for business-days calculation (thanks to Piter Dias.)</li>
<li>Updated Hong Kong's holidays for 2008 and China's for 2007.</li>
<li>Added new holiday to Canadian calendars (thanks to Matt Knox.)</li>
<li>Fixed joint-calendar specification (thanks to Jay Walters.)</li>
<li>Split Canadian calendar into settlement and TSX (thanks to Matt Knox.)</li>
<li>Added Brazilian exchange calendar (thanks to Richard Gomes.)</li>
<li>Fixes for the Brazilian calendars (thanks to Piter Dias.)</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added average-BMA coupon (thanks to Roland Lichters.)</li>
<li>Fixed-rate coupons can now accept an InterestRate instance (thanks to Piter Dias.)</li>
<li>implemented cash-flow vector builders as helper classes to ease skipping default parameters and single/multiple inputs.</li>
</ul>
<p>DATES</p><ul>
<li>Extended date range up to year 2199.</li>
<li>Fixed period comparison (thanks to Chris Kenyon.)</li>
<li>Fixed short date formatting (thanks to Robert Lopez.)</li>
<li>Enhanced period algebra.</li>
</ul>
<p>INDEXES</p><ul>
<li>Added BMA index (thanks to Roland Lichters.)</li>
<li>Added inflation indexes (thanks to Chris Kenyon.)</li>
<li>Added historical interest-rate index analysis.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added BMA swaps (thanks to Roland Lichters.)</li>
<li>Added year-on-year and zero-coupon inflation swaps (thanks to Chris Kenyon.)</li>
<li>Fixed stub-date management and backward date generation for fixed-rate bonds (thanks to Toyin Akin.)</li>
<li>Added clean/dirty bond-price calculation from Z-spread.</li>
</ul>
<p>LATTICES</p><ul>
<li>Fixed Tsiveriotis-Fernandes tree initialization (thanks to John Maiden.)</li>
</ul>
<p>MATH</p><ul>
<li>Added multi-dimensional cost function for least-square problems (thanks to Guillaume Pealat.)</li>
<li>Added histogram class (thanks to Gang Liang.)</li>
<li>Added log-cubic interpolation.</li>
<li>Fixed conjugate-gradient bug.</li>
<li>Fixed nested Levenberg-Marquardt bug.</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Refactored option engines (the underlying stochastic process is now passed to the pricing engine.)</li>
<li>Refactored bond, cap/floor, swap, and swaption engines (the discount curve is now passed to the pricing engine.)</li>
<li>Added Heston/Hull-White analytic and Monte Carlo engines for vanilla options.</li>
<li>Fixed bug in blackFormulaCashItmProbability in case of non null displacement.</li>
</ul>
<p>PROCESSES</p><ul>
<li>Added hybrid Heston/Hull-White process.</li>
<li>Fixed joint-process bug.</li>
</ul>
<p>QUOTES</p><ul>
<li>Added forward-swap quote.</li>
</ul>
<p>RANDOM NUMBERS</p><ul>
<li>Fixed ordering of primitive polynomials for Sobol/Levitan and Sobol/Levitan/Lemieux methods.</li>
<li>Added JoeKuoD5, JoeKuoD6 and JoeKuoD7 direction integers for Sobol generator.</li>
<li>Added Kuo, Kuo2 and Kuo3 direction integers for Sobol generator.</li>
<li>Added class to generate low-discrepancy sequences using a lattice rule.</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Added discount curve fitted on bond prices (thanks to Allen Kuo.)</li>
<li>Added BMA-swap rate helper (thanks to Roland Lichters.)</li>
<li>Made SwapRateHelper forward-start enabled.</li>
<li>Added universal term-structure bootstrapper (thanks to Chris Kenyon.)</li>
<li>Added abstract inflation term structures (thanks to Chris Kenyon.)</li>
<li>Added piecewise inflation curves (thanks to Chris Kenyon.)</li>
</ul>
<p><b>Release 0.8.1 - June 4th, 2007</b></p>
<p>PORTABILITY</p><ul>
<li>Version 0.8.1 adds support for Boost 1.34 on Linux systems. If you are using version 0.8.0 on Windows systems, you do not need this upgrade.</li>
</ul>
<p><b>Release 0.8.0 - May 30th, 2007</b></p>
<p>PORTABILITY</p><ul>
<li>Version 0.8.0 is the last QuantLib release to support the Metrowerks CodeWarrior compiler (which was discountinued by Metrowerks.) If you use such compiler and want support to continue, you can volunteer for maintaining the necessary patches: contact the QuantLib developers for information.</li>
</ul>
<p>SOURCE TREE</p><ul>
<li>Files and folders in the source tree have been reorganized (hopefully for th ebetter.) If you only included <ql/quantlib.hpp>, all changes were taken care of for you. if you included specific headers, you might want to check its current location; in particular, all folder names are now lowercase.</li>
</ul>
<p>CALENDARS</p><ul>
<li>Added 2007 holidays for Indonesia, Saudi Arabia, and South Korea calendars.</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Added floater range-accrual coupons.</li>
</ul>
<p>INDEXES</p><ul>
<li>Added EuriborSwapFixB family.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added capped/floored floating-rate bond. It can also be used for reverse floaters.</li>
<li>Added delta, gamma and theta to binomial option engines (thanks to Steve Cook.)</li>
<li>Refactored basket engines to allow for more payoffs.</li>
</ul>
<p>LIBOR MARKET MODEL</p><ul>
<li>This release includes an experimental implementation of a Libor market model developed with Mark Joshi. Improvements since release 0.4.0 include normal forward-rate market model, lognormal CMS market model, lognormal coterminal-swap market model, and calibration to caplets and coterminal swaptions. The interface of the model and its integration with the bulk of the library are still in development.</li>
</ul>
<p>MATH</p><ul>
<li>Adaptive Gauss-Kronrod integration added.</li>
<li>Added Higham's nearest correlation matrix method (thanks to Neil Firth)</li>
<li>Refactored optimization framework.</li>
</ul>
<p>PROCESSES</p><ul>
<li>Added new discretization schema to Heston process.</li>
</ul>
<p>UTILITIES</p><ul>
<li>The Handle class was split into RelinkableHandle (behaving like the old Handle class) and Handle (which is notified when its copies are relinked, but cannot itself be relinked.) The former can safely be returned from inspectors.</li>
</ul>
<p><b>Release 0.4.0 - February 20th, 2007</b></p>
<p>PORTABILITY</p><ul>
<li>Starting with release 0.4.0, the Borland free compiler 5.5 and Microsoft Visual C++ 6.0 are no longer supported. If you use one of these compilers and want support to continue, you can volunteer for maintaining the necessary patches: contact the QuantLib developers for information.</li>
</ul>
<p>CALENDARS</p><ul>
<li>Added 2007 holidays for Hong Kong, India, Singapore, and Taiwan exchanges.</li>
</ul>
<p>LIBOR MARKET MODEL</p><ul>
<li>This release includes an experimental implementation of a Libor market model developed with Mark Joshi. Improvements since release 0.3.14 include the use of quasi-random number generators and the calculation of Greeks and of upper bounds for instruments with early-exercise features. The interface of the model and its integration with the bulk of the library are still in development.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added helper classes to make it easier to instantiate swaps, caps/floors, and CMS instruments.</li>
</ul>
<p>INTEREST RATES</p><ul>
<li>Added capped/floored floating-rate coupons (including convexity adjustment.)</li>
</ul>
<p>MATH</p><ul>
<li>Curve, domain and surface interfaces added.</li>
</ul>
<p>PROCESSES</p><ul>
<li>Added reversion level to Ornstein-Uhlenbeck process (thanks to Roland Lichters.)</li>
</ul>
<p>VOLATILITY TERM STRUCTURES</p><ul>
<li>Added stripping of caplet-volatility term structure from cap quotes.</li>
<li>Improved SABR interpolation and calibration.</li>
</ul>
<p><b>Release 0.3.14 - November 6th, 2006</b></p>
<p>PORTABILITY</p><ul>
<li>Version 0.3.14 is the last QuantLib release to support the Borland free compiler 5.5 and Microsoft Visual C++ 6.0. If you use one of these compilers and want support to continue, you can volunteer for maintaining the necessary patches: contact the QuantLib developers for information.</li>
</ul>
<p>LIBOR MARKET MODEL</p><ul>
<li>This release includes an experimental implementation of a Libor market model developed with Mark Joshi. The interface and its integration with the bulk of the library are still in development.</li>
</ul>
<p>CURRENCIES</p><ul>
<li>Added Romanian new lev.</li>
</ul>
<p>DATES, CALENDARS, AND DAY COUNTERS</p><ul>
<li>Added all serial 3M IMM futures (thanks to Toyin Akin.)</li>
<li>Reworked the Schedule class so that it follows market conventions more closely.</li>
<li>Added business/252 day-count convention (thanks to Piter Dias.)</li>
</ul>
<p>INTEREST RATES</p><ul>
<li>Added base swap-rate class and a number of actual swap rates.</li>
<li>Added constant-maturity swap coupons (including convexity adjustment.)</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Added asset swaps.</li>
<li>Added face amount to bonds (defaulting to 100.)</li>
</ul>
<p>MATH</p><ul>
<li>Added hypersphere and lower-diagonal salvaging algorithms (thanks to Yiping Chen.)</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Added Longstaff-Schwartz Monte-Carlo algorithm for American/Bermudan equity options with deterministic interest rates.</li>
</ul>
<p>TERM STRUCTURE</p><ul>
<li>Added piecewise-spreaded yield curve (thanks to Roland Lichters.)</li>
</ul>
<p><b>Release 0.3.13 - July 31st, 2006</b></p>
<p>CALENDARS</p><ul>
<li>Added NERC calendar (thanks to Joe Byers.)</li>
</ul>
<p>INSTRUMENTS AND PRICING ENGINES</p><ul>
<li>Added continuous fixed and floating lookback options (thanks to Warren Chou.)</li>
<li>Added FRA and forward fixed-coupon bonds; examples provided (thanks to Allen Kuo.)</li>
<li>Added variance swaps (thanks to Warren Chou.)</li>
<li>Added composite instrument; example provided.</li>
<li>Added cash-settled swaption pricing in Black swaption engine; test provided.</li>
<li>Added discrete dividends and soft callability to convertible bonds.</li>
</ul>
<p>INTEREST RATES</p><ul>
<li>Fixed business-day conventions for Euribor and LIBOR indices (following below one month, month-end from one month onwards.)</li>
</ul>
<p>MODELS</p><ul>
<li>Added more complex market parameterizations and performance improvements for Libor market model (thanks to Klaus Spanderen.)</li>
</ul>
<p>PROCESSES</p><ul>
<li>Renamed BlackScholedProcess to GeneralizedBlackScholedProcess; specialized classes added for Black-Scholes, Merton, Black and Garman-Kohlhagen processes.</li>
<li>Added Hull-White and G2 processes for Monte Carlo simulation (thanks to Banca Profilo.)</li>
</ul>
<p>RANDOM NUMBERS</p><ul>
<li>Added possibility to skip directly to the n-th item in a Sobol sequence (thanks to Richard Gould.)</li>
</ul>
<p>MATH</p><ul>
<li>Added SABR interpolation for volatilities.</li>
<li>Added general linear least-squares regression (thanks to Klaus Spanderen.)</li>
</ul>
<p><b>Release 0.3.12 - March 27th, 2006</b></p>
<p>CALENDARS</p><ul>
<li>Added Brazilian calendar (thanks to Piter Dias.)</li>
<li>Added Argentinian, Icelandic, Indonesian, Mexican, and Ukrainian calendars.</li>
</ul>
<p>INSTRUMENTS AND PRICING ENGINES</p><ul>
<li>Added convertible bonds (thanks to Theo Boafo.)</li>
<li>The cash flows returned by the Bond::cashflows method now include the redemption.</li>
<li>SimpleSwap can now be set an engine. If none is set, the old cash-flow-based calculation is used.</li>
<li>Generalized McVanillaEngine so that it can manage n-dimensional processes; it now subsumes McHestonEngine.</li>
<li>Added pricing of Bermudan options on binomial trees (thanks to Enrico Michelotti.)</li>
<li>Separated accrual and payment conventions for bonds.</li>
<li>Modified basis-point sensitivity calculation so that it returns the cash variation for a basis-point change in rate (it used to return the figure to be multiplied by the variation in order to obtain the same result.)</li>
</ul>
<p>MODELS</p><ul>
<li>Added weights to short-rate model calibration (thanks to Enrico Michelotti.)</li>
<li>Added Libor market model (thanks to Klaus Spanderen.)</li>
</ul>
<p>OPTIMIZATION</p><ul>
<li>Added Levenberg-Marquardt optimization method (thanks to Klaus Spanderen.)</li>
</ul>
<p>EXAMPLES</p><ul>
<li>Merged American and European option examples; added Bermudan option.</li>
<li>Added convertible-bond example (thanks to Theo Boafo.)</li>
</ul>
<p><b>Release 0.3.11 - October 20th, 2005</b></p>
<p>GLOBAL FEATURES</p><ul>
<li>Added configuration option for adding current function information to error messages.</li>
<li>Added hook for multiple sessions to Singleton.</li>
</ul>
<p>CALENDARS</p><ul>
<li>Added Bombay and Taipei calendars.</li>
</ul>
<p>CURRENCIES</p><ul>
<li>Added new Turkish lira.</li>
</ul>
<p>INDEXES</p><ul>
<li>More accurate LIBOR calendars (thanks to Daniele de Francesco.)</li>
<li>Added DKKLibor, EURLibor, and NZDLibor indexes.</li>
<li>Added TRLibor index (thanks to Sercan Atalik.)</li>
</ul>
<p>PRICING ENGINES</p><ul>
<li>Added Bates stochastic-volatility model; tests provided (thanks to Klaus Spanderen.)</li>
<li>Added vega to analytic discrete-averaging Asian engine; test provided (thanks to Gary Kennedy.)</li>
<li>Added stochastic process for caplet Libor market model; tests provided (thanks to Klaus Spanderen.)</li>
</ul>
<p>TERM STRUCTURES</p><ul>
<li>Added fixed-coupon bond helper for curve bootstrapping (thanks to Toyin Akin.)</li>
</ul>
<p>MATH</p><ul>
<li>Added tabulated Gauss-Legendre quadratures (thanks to Gary Kennedy.)</li>
<li>Added more precise implementation of bivariate cumulative normal distribution (thanks to Gary Kennedy.)</li>
</ul>
<p><b>Release 0.3.10 - July 14th, 2005</b></p>
<p>GLOBAL FEATURES</p><ul>
<li>The suggested syntax for setting and registering with the global evaluation date is now: <div class="fragment"><div class="line">Settings::instance().evaluationDate() = date;</div>
<div class="line">registerWith(Settings::instance().evaluationDate());</div>
</div><!-- fragment --></li>
</ul>
<p>CALENDARS</p><ul>
<li>Istanbul calendar added (thanks to Serkan Atalik.)</li>
</ul>
<p>LATTICE FRAMEWORK</p><ul>
<li>Faster implementation of binomial and trinomial trees.</li>
</ul>
<p>MONTE CARLO FRAMEWORK</p><ul>
<li>Added generic multi-dimensional stochastic process.</li>
<li>Added stochastic process array (thanks to Klaus Spanderen.)</li>
<li>Multi-path generator now takes a generic stochastic process; tests provided.</li>
<li>New Path class implemented which stores asset values rather than variations; this makes pricers independent on whether or not log-variations were calculated. The new class is enabled when QL_DISABLE_DEPRECATED is defined; the old class is used otherwise.</li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Multi-asset option now takes a generic stochastic process.</li>
</ul>
<p>MODELS</p><ul>
<li>Added Heston stochastic-volatility model; tests provided (thanks to Klaus Spanderen.) Provided code include:<ul>
<li>a corresponding stochastic process;</li>
<li>analytic and Monte Carlo option-pricing engines;</li>
<li>parameter calibration.</li>
</ul>
</li>
</ul>
<p>CASH FLOWS</p><ul>
<li>Cash-flow analyses such as NPV, IRR, convexity and duration added (thanks to Charles Whitmore.)</li>
</ul>
<p>MATH</p><ul>
<li>Added Gaussian orthogonal polynomials and Gaussian quadratures; tests provided (thanks to Klaus Spanderen.)</li>
<li>Convergence statistics added; tests provided (thanks to Gary Kennedy.)</li>
</ul>
<p><b>Release 0.3.9 - May 2nd, 2005</b></p>
<p>GLOBAL FEATURES</p><ul>
<li>QL_SQRT, QL_MIN etc. deprecated in favor of std::sqrt, std::min...</li>
<li>Added a tentative tracing facility to ease debugging.</li>
<li>Formatters deprecated in favor of output manipulators. A number of data types can now be sent directly to output streams.</li>
<li>Stream-based implementation of QL_REQUIRE, QL_TRACE and similar macros. Together with manipulators, this allows one to write simpler error messages, as in: <div class="fragment"><div class="line">QL_FAIL(<span class="stringliteral">"forward at date "</span> << d << <span class="stringliteral">" is "</span> << <a class="code" href="group__manips.html#gac63ea3dad10259db3764c7d15a61cde5" title="output rates and spreads as percentages">io::rate</a>(f));</div>
</div><!-- fragment --></li>
</ul>
<p>INSTRUMENTS</p><ul>
<li>Improved Bond class<ul>
<li>yield-related calculation can be performed with either compounded or continuous compounding;</li>
<li>added theoretical price based on discount curve;</li>
<li>fixed-rate coupon bonds can define different rates for each coupon;</li>
<li>added zero-coupon and floating-rate bonds (thanks to StatPro.)</li>
</ul>
</li>
<li>Option instruments now take a generic StochasticProcess; however, most pricing engines still require a BlackScholesProcess. They should be checked to see whether the requirement can be relaxed. Following this change, Merton76Process no longer inherits from BlackScholesProcess. This avoids erroneous upcasts.</li>
<li>Partial fix for Bermudan swaptions with exercise lag (thanks to Luca Berardi for the report and discussion.)</li>
<li>Fix for analytic cap/floor engine; caplets/floorlets whose fixing is in the past are now calculated correctly (thanks to Aurelien Chanudet.)</li>
</ul>
<p>CALENDARS</p><ul>
<li>Added Bratislava and Prague calendars.</li>
</ul>
<p>INDICES</p><ul>
<li>Fixed calendars for LIBOR fixings (thanks to Daniele De Francesco.)</li>
</ul>
<p>FINITE_DIFFERENCES FRAMEWORK</p><ul>
<li>Migrated finite-difference pricers to pricing-engine framework (thanks to Joseph Wang.)</li>
</ul>
<p>YIELD TERM STRUCTURES</p><ul>
<li>Added generic piecewise yield term structure. Client code can choose what to interpolate (discounts, zero yields, forwards) and how (linear, log-linear, flat) by instantiating types such as: <div class="fragment"><div class="line">PiecewiseYieldCurve<Discount,LogLinear></div>
<div class="line">PiecewiseYieldCurve<ZeroYield,Linear></div>
<div class="line">PiecewiseYieldCurve<ForwardRate,Linear></div>
</div><!-- fragment --></li>
<li>Interpolated discount, zero-yield and forward-rate curves can now be set any interpolation.</li>
<li>FlatForward can now take rates with compounding other than continuous.</li>
<li>Fix for extrapolation in zero-spreaded and forward-spreaded yield term structure (thanks to Adjriou Belak for the report.)</li>
</ul>
<p>MATH</p><ul>
<li>Added backward- and forward-flat interpolations.</li>
</ul>
<p><b>Release 0.3.8 - December 22nd, 2004</b></p>
<p>REQUIRED PACKAGES</p><ul>
<li>Boost version 1.31.0 or later is now required.</li>
</ul>
<p>DOCUMENTATION</p><ul>
<li>Documentation now includes a FAQ page.</li>
</ul>
<p>GLOBAL FEATURES</p><ul>
<li>Global evaluation date added through Settings class. Used for index-fixing and exchange-rate lookup.</li>
<li>added InterestRate class, which encapsulate the interest rate compounding algebra. It manages day-counting convention, compounding convention, conversion between different conventions, and discount/compounding factor calculations. It also has its own formatter.</li>
</ul>
<p>INSTRUMENTS</p>
<ul>
<li>Bond and FixedCouponBond classes added (thanks to Jeff Yu) providing price/yield conversions; tests provided.</li>
</ul>
<p>DATE, CALENDARS, AND DAY COUNT CONVENTIONS</p><ul>
<li>Reworked Date interface. Added nextWeekday() and nthWeekday() static methods to the class Date. Added nextIMM() for the calculation of the next IMM date.</li>
<li>Added WeekdayFormatter and FrequencyFormatter</li>
<li>Added "1/1" day counter. The Actual365 is deprecated: as per ISDA documentation "Actual/365" is the same as "Actual/Actual". Use the ActualActual class instead, or the Actual365Fixed class.</li>
<li>Added dayCounterFromString(std::string) to QuantLibFunctions.</li>
<li>Improved Beijing calendar (thanks to Zhou Wu.)</li>
</ul>
<p>CURRENCIES AND FX RATES</p><ul>
<li>Added currency classes; CurrencyTag replaced in library code.</li>
<li>Added money class providing arithmetic with or without conversions; tests provided.</li>
<li>Added exchange-rate class; tests provided.</li>
<li>Added exchange-rate manager with smart rate lookup, i.e., able to derive a missing exchange rate as a chain of provided rates; tests provided.</li>
</ul>
<p>MONTE CARLO FRAMEWORK</p><ul>
<li>Added Faure low-discrepancy sequence (thanks to Gianni Piolanti;) tests provided.</li>
<li>Added randomized (shifted) low discrepancy sequences that will be used for randomized quasi Monte Carlo.</li>
<li>Added SeedGenerator class, for random generation of seeds when they are not given by the user.</li>
<li>Added the implementation of Sobol sequences using the coefficients of the free direction integers as provided by Bratley and Fox, who credited unpublished work of Sobol's and Levitan's.</li>
<li>Added an implementation of Sobol sequences using the coefficients of the free direction integers of Lemieux, Cieslak, and Luttmer. Coefficients for d<=40 are the same as in Bradley-Fox. For dimension 40<d<=360 the coefficients have been calculated as optimal values based on the "resolution" criterion. The values has been provided by Christiane Lemieux, private communication, September 2004.</li>
<li>PathGenerator now works correctly with processes describing S instead of log S. Geometric Brownian process added (thanks to Walter Penschke.)</li>
</ul>
<p>LATTICE FRAMEWORK</p><ul>
<li>Reworked the DiscretizedAsset interface.</li>
</ul>
<p>PRICING ENGINES FRAMEWORK</p><ul>
<li>Added pricing engine for American options with Ju quadratic approximation.</li>
<li>Average-price Asian pricers have been deprecated. New equivalent pricing engines added.</li>
</ul>
<p>FIXED INCOME</p><ul>
<li>Added current coupon to discretized swap and cap/floor.</li>
<li>Added IndexManager as a singleton (will replace XiborManager–already obsoleted in library code.)</li>
<li>Added DayCounter parameter to ParCoupon (to be used for accruing spreads and past fixings.) When missing, it defaults to that of the term structure.</li>
<li>Added compilation flag to select default floating-coupon type.</li>
<li>IndexedCoupon can now take a generic index rather than a Libor (thanks to Daniele De Francesco.)</li>
<li>Added hooks for convexity adjustment in floating-rate coupons; implemented adjustment for InArrearIndexedCoupon.</li>
</ul>
<p>YIELD TERM STRUCTURE</p><ul>
<li>TermStructure renamed to YieldTermStructure (the former name was deprecated.)</li>
<li>New base class BaseTermStructure which can calculate its reference date based on the global evaluation date. YieldTermStructure, BlackVolTermStructure, LocalVolTermStructure, CapFlatVolatilityStructure, CapletForwardVolatilityStructure, and SwaptionVolatilityStructure are now derived from BaseTermStructure so that they inherit its functionality.</li>
</ul>
<p>PATTERNS</p><ul>
<li>Added Singleton pattern.</li>
</ul>
<p>MATH</p><ul>
<li>Added N-dimensional cubic spline (thanks to Roman Gitlin.)</li>
<li>Added CovarianceDecomposition class (decomposes a covariance matrix into standard deviations and correlations)</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>Renamed RelinkableHandle to Handle.</li>
</ul>
<p>PORTABILITY</p><ul>
<li>Support for Dev-C++ IDE added.</li>
<li>Fixes for gcc 2.95 added (thanks to Michael Dirkmann.)</li>
</ul>
<p><b>Release 0.3.7 - July 23rd, 2004</b></p>
<center>IMPORTANT</center><p>QuantLib now depends on the Boost library (www.boost.org).</p>
<p>You will need a working Boost installation in order to compile and use QuantLib. Instructions for installing Boost from sources are available at <a href="http://www.boost.org/more/getting_started.html">http://www.boost.org/more/getting_started.html</a>. Pre-packaged binaries might be available from other sources. Google is your friend (or Debian, or Fink...)</p>
<hr />
<p>DATE, CALENDARS, AND DAY COUNT CONVENTIONS</p><ul>
<li>Working on differentiating calendars depending on country or exchange, instead of city.</li>
<li>Added Italy (Settlement, Exchange), United Kingdom (Settlement, Exchange, Metals), United States (Settlement, Exchange, GovermentBond), Xetra.</li>
<li>Milan, London, and NewYork calendars have been deprecated.</li>
<li>Added (old-style) calendars: Beijing, Hong Kong, Riyadh, Seoul, Singapore, Taiwan.</li>
<li>RollingConvention has been renamed BusinessDayConvention, as for ISDA definitions.</li>
</ul>
<p>MATH</p><ul>
<li>Added rounding algorythms as per OMG enumeration/definition.</li>
</ul>
<p>TEST SUITE</p><ul>
<li>Moved to Boost unit test framework. CppUnit is no longer needed.</li>
<li>Added test for quanto and forward compound engines.</li>
<li>Added test for roundings.</li>
<li>Added test for discrete dividend European options.</li>
<li>Added test for cliquet options.</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>enable/disableExtrapolation() methods were added to a few classes such as TermStructure. They make it possible to persistently allow extrapolation without the need of specifying it at every method call.</li>
<li>Added user-configurable flag to disable usage of deprecated classes.</li>
</ul>
<p>PORTABILITY</p><ul>
<li>Fink package available</li>
<li>Visual C++ 7.x project files added</li>
</ul>
<p><b>Release 0.3.6 - April 15th, 2004</b></p>
<p>Bug-fix release for QuantLib 0.3.5. A bug was removed where calls to impliedVolatility() would break the state of the option and of all options sharing the same stochastic process.</p>
<p><b>Release 0.3.5 - March 31th, 2004</b></p>
<p>BOOST SUPPORT</p><ul>
<li>When available, QuantLib 0.3.5 now uses parts of the Boost library. The presence of Boost is detected automatically under Unix/Linux systems; on Windows systems, it must be enabled by uncommenting the relevant line in ql/userconfig.hpp.</li>
<li>In the next QuantLib release, the presence of the Boost library will be mandatory.</li>
</ul>
<p>MONTE CARLO FRAMEWORK</p><ul>
<li>Modified MultiPath interface to remove drifts. They are now in the stochastic processes.</li>
<li>Preliminary implementation of Longstaff-Schwartz least-squares</li>
<li>Monte Carlo pricer for European basket options</li>
<li>Brownian-bridge bugs fixed</li>
<li>StochasticProcess base class and derived classes (diffusion, jump-diffusion, etc.) have been created.</li>
</ul>
<p>PRICING ENGINES FRAMEWORK</p><ul>
<li>Pricing engines now use Payoff and Exercise classes.</li>
<li>American basket options.</li>
<li>Binary barrier option replaced by vanilla option with digital payoff.</li>
<li>Stulz engine for max and min basket calls and puts on two assets.</li>
<li>American binary option added (a.k.a. one-touch, american digital, americal barrier, etc.) with different payoffs (cash/asset at hit/expiry, etc.)</li>
<li>Added engine for Merton 1976 jump-diffusion process.</li>
<li>Added Bjerksund and Stensland approximation for American option (still unstable.)</li>
<li>Added Barone-Adesi and Whaley approximation for American option.</li>
<li>Improved Black formula engine with more greeks added.</li>
<li>Discrete geometric asian option.</li>
<li>Added Leisen-Reimer binomial tree.</li>
</ul>
<p>SHORT RATE MODELS</p><ul>
<li>Model renamed to ShortRateModel. A typedef is provided for backward compatibility–it will be removed in subsequent releases.</li>
</ul>
<p>VOLATILITY FRAMEWORK</p><ul>
<li>bug fix for short time (0<=t<=Tmin) interpolation</li>
</ul>
<p>OPTIMIZATION FRAMEWORK</p><ul>
<li>Method renamed to OptimizationMethod. A typedef is provided for backward compatibility–it will be removed in subsequent releases.</li>
</ul>
<p>PATTERNS</p><ul>
<li>Composite pattern</li>
</ul>
<p>MATH</p><ul>
<li>Improved cubic spline interpolation. It now handles end conditions such as first derivative value, second derivative value, not-a-knot. Hyman filter for monotonically constrained interpolation has been implemented. Primitive calculation has been enabled in addition to derivative and second derivative.</li>
<li>Primitive, first derivative, and second derivative functions are available for linear interpolator.</li>
<li>Singular value decomposition improved.</li>
<li>Added bivariate cumulative normal distribution.</li>
<li>Added binomial coefficient calculation, binomial distribution, cumulative binomial distribution, and Peizer-Pratt inversion (method 2.)</li>
<li>Added beta functions.</li>
<li>Added Poisson distribution and cumulative distribution.</li>
<li>Added incomplete gamma functions.</li>
<li>Added factorial calculation.</li>
<li>Added rank-reduced square root and improved pseudo-square root of square symmetric matrices.</li>
<li>Added Cholesky decomposition.</li>
</ul>
<p>TEST SUITE</p><ul>
<li>Added test for cubic spline interpolation.</li>
<li>Added test for singular value decomposition.</li>
<li>Added test for two-asset baskets using the Stulz pricing engine.</li>
<li>Added test for Monte Carlo American cash-at-hit options.</li>
<li>Added test for jump-diffusion engine.</li>
<li>Added test for American and European digital options.</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>Inner namespaces have been deprecated.</li>
<li>Added frequency enumeration, including 'once'.</li>
<li>MarketElement renamed to Quote.</li>
<li>Handling strike=0.0 where possible.</li>
<li>More Payoff classes have been introduced: gap, asset-or-nothing, cash-or-nothing. Payoff is now extensively used.</li>
<li>Exercise class is now polymorphic. More derived classes have been introduced, and they are now extensively used.</li>
<li>Introduced QL_FAIL macro.</li>
<li>Added calendar for Copenhagen</li>
<li>14 April 2004 (election day) added to Johannesburg calendar as a one-off holiday.</li>
<li>Documentation generated with Doxygen 1.3.6.</li>
<li>Win32 installer generated with NSIS 2.0.</li>
</ul>
<p><b>Release 0.3.4 - November 21th, 2003</b></p>
<p>MONTE CARLO FRAMEWORK</p><ul>
<li>MC European in one step with strike-independent vol curve (hopefully)</li>
<li>Path pricer for Binary options. It should cover both European and American style options. Also known as: Digital, Binary, Cash-At-Hit, Cash-At-Expiry.</li>
<li>Path pricers for barrier options</li>
</ul>
<p>PRICING ENGINES FRAMEWORK</p><ul>
<li>More options moved to the new pricing engine framework: binary, barrier</li>
<li>Changed setupEngine() into setupArguments(args)</li>
<li>Moved pricing-engine machinery up to Instrument class</li>
</ul>
<p>FIXED INCOME</p><ul>
<li>New basis-point sensitivity functions</li>
<li>Added Swap::startDate() and maturity()</li>
<li>Cap/floor fixing days taken into account</li>
</ul>
<p>SHORT RATE MODELS</p><ul>
<li>An additional constraint can now be passed to the calibration</li>
</ul>
<p>VOLATILITY FRAMEWORK</p><ul>
<li>Visitable volatility term structures</li>
</ul>
<p>OPTIMIZATION FRAMEWORK</p><ul>
<li>Added composite constraint</li>
</ul>
<p>PATTERNS</p><ul>
<li>Visitor, Alexandrescu-style (saves some code duplication)</li>
</ul>
<p>MATH</p><ul>
<li>Added more integration algorithms contributed by Roman Gitlin</li>
<li>Relaxed constaints on interval boundaries for integration algorithms</li>
<li>Interpolation traits</li>
</ul>
<p>TEST SUITE</p><ul>
<li>Added implied cap/floor term volatility test</li>
<li>Added test for binary options in PricingEngine Framework.</li>
<li>Added tests for Barrier options in PricingEngine Framework. Some Monte Carlo tests, but not comprehensive.</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>Conditionally allowed negative yields (disabled by default)</li>
<li>Null calendar and simple day counter for reproducing theoretical calculations</li>
<li>Fixed for VC++.Net compilation</li>
<li>Added spec file for RPMs</li>
<li>Added global flag for early/late payments</li>
<li>Enabled test suite for Borland</li>
<li>Removed OnTheEdge VC++ configurations</li>
<li>Added VC++ configurations for static and dynamic Multithread libraries</li>
<li>Upgraded to use Doxygen 1.3.4</li>
</ul>
<p><b>Release 0.3.3 - September 3rd, 2003</b></p>
<p>MONTE CARLO FRAMEWORK</p><ul>
<li>Re-templatized Monte Carlo model based on traits.</li>
<li>New path generator based on DiffusionProcess, TimeGrid, and externally initialized random number generator.</li>
<li>Added Halton low discrepancy sequence.</li>
<li>Added sequence generators: random sequence generator creates a sequence generator out of a random number generator. InvCumGaussianRsg creates a gaussian sequence generator out of a uniform (random or low discrepancy) sequence generator.</li>
<li>RNG as constructor input constructor( long seed) deprecated.</li>
<li>Mersenne Twister random number generator added</li>
<li>Old PathPricers, PathGenerators, etc are available with a trailing _old</li>
<li>Added Jäckel's Brownian Bridge (not used yet.)</li>
<li>Sobol Random Sequence Generator. Unit and Jäckel.</li>
<li>Added randomized Halton sequences.</li>
</ul>
<p>FINITE DIFFERENCE FRAMEWORK</p><ul>
<li>Old class Grid no longer exists, use CenteredGrid to obtain the same result.</li>
</ul>
<p>LATTICE FRAMEWORK</p><ul>
<li>Abstracted discretized option.</li>
<li>Additive binomial trees. All binomial trees now use DiffusionProcess.</li>
<li>Added Tian binomial tree.</li>
</ul>
<p>PRICING ENGINES FRAMEWORK</p><ul>
<li>Partially implemented.</li>
<li>Quanto forward compounded engines.</li>
<li>Integral (european) pricing engine.</li>
</ul>
<p>YIELD TERM STRUCTURE</p><ul>
<li>ZeroCurve: a term structure based on linear interpolation of zero yields.</li>
</ul>
<p>FIXED INCOME</p><ul>
<li>Up-front and in-arrear indexed coupon.</li>
<li>Specific implementation of compound forward rate from zero yield.</li>
<li>Added compound forward and zero coupon implementations.</li>
<li>Added Futures rate helper with specified maturity date.</li>
<li>Added bucketed bps calculation.</li>
<li>Added swap constructor using specified maturity date as well as added functionality in Scheduler.</li>
<li>Added date-bucketed basis point sensitivity based on 1st derivative of zero coupon rate.</li>
</ul>
<p>OPTIMIZATION FRAMEWORK</p><ul>
<li>Solvers now take any function. ObjectiveFunction disappeared.</li>
</ul>
<p>PATTERNS</p><ul>
<li>Abstracted lazy object.</li>
<li>Abstracted the curiously recurring template pattern.</li>
</ul>
<p>DATE AND CALENDARS</p><ul>
<li>Added joint calendars.</li>
<li>Tokyo, Stockholm, Johannesburg calendar improved.</li>
<li>"MonthEndReference" business day rolling convention. Similar to "ModifiedFollowing", unless where original date is last business day of month all resulting dates will also be last business day of month.</li>
<li>Added basic date generation starting from the end.</li>
</ul>
<p>MATH</p><ul>
<li>Added Gauss-Kronrod integration algorithm.</li>
<li>Added primitive polynomial modulo 2 up to dimension 18 (available up to dimension 27.)</li>
<li>Added BicubicSplineInterpolation.</li>
<li>Numerical Recipes algorithm is back since there is a problem with Nicolas' code: it is unable to fit a straight line, it waves around the line.</li>
<li>Prime number generation.</li>
<li>Acklam's approximation for inverse cumulative normal distribution function (replaced Moro's algorithm as default.)</li>
<li>Added error function.</li>
<li>Improved Cumulative Normal Distribution function using the error function.</li>
<li>Matrix pseudo square algorithm using salvaging algorithm(s).</li>
<li>Added SequenceStatistics.</li>
<li>Major Statistic reworking.</li>
<li>Added DiscrepancyStatistic that inherits from SequenceStatistic and extends it with the calculation of L2-discrepancy.</li>
<li>HStatistics.</li>
<li>Added first and second derivative ot cubic splines.</li>
</ul>
<p>RISK MEASURES</p><ul>
<li>Introduced semiVariance and regret.</li>
<li>Redefinition of average shorfall (normalization factor now is cumulative(target) instead of 1.0)</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>QuEP 9 "generic disposable objects" implemented.</li>
<li>Added test suite.</li>
<li>Dataformatters extended to format long integers, Ordinal numerals, power of two formatting.</li>
<li>Exercise class adopted.</li>
<li>Added user configuration section.</li>
<li>Inhibited automatic conversion of Handle<T> to RelinkableHandle<T>.</li>
<li>Diffusion process extended.</li>
<li>Added strikeSensitivity to the Greeks.</li>
<li>BS does handle t==0.0 and sigma==0.0.</li>
<li>TimeGrid has been reworked.</li>
<li>Added payoff file for Payoff classes. Added Cash-Or-Nothing and Asset-Or-Nothing payoff classes.</li>
<li>Upgraded to use Doxygen 1.3.</li>
</ul>
<p><b>Release 0.3.1 - February 4th, 2003</b></p>
<p>FINITE DIFFERENCE FRAMEWORK</p><ul>
<li>partially implemented QuEP 2 (<a href="http://quantlib.org/quep.shtml">http://quantlib.org/quep.shtml</a>)</li>
</ul>
<p>VOLATILITY FRAMEWORK</p><ul>
<li>added Black and local volatility interface</li>
</ul>
<p>PRICING ENGINES FRAMEWORK</p><ul>
<li>partially implemented QuEP 5 (<a href="http://quantlib.org/quep.shtml">http://quantlib.org/quep.shtml</a>)</li>
</ul>
<p>YIELD TERM STRUCTURE</p><ul>
<li>interface revisited</li>
<li>added discrete time forward methods</li>
<li>added DiscountCurve (loglinear interpolated) and CompoundForward term structures</li>
<li>ForwardSpreadedTermStructure moved under QuantLib::TermStructures namespace</li>
</ul>
<p>FIXED INCOME</p><ul>
<li>Modified coupons so that the payment date can be after the end of the accrual period</li>
</ul>
<p>MISCELLANEA</p><ul>
<li>added/verified holidays of many calendars</li>
<li>added new calendars</li>
<li>added new currencies</li>
<li>more date formatters</li>
<li>added Period(std::string&)</li>
<li>it is now possible to advance a calandar using a Period</li>
<li>added LogLinear Interpolation</li>
<li>the allowExtrapolation boolean in interpolation classes has been removed from constructors and added to the operator()</li>
<li>Renamed Solver1D::lowBound and hiBound</li>
<li>bug fixes</li>
</ul>
<p>BUILD PROCESS</p><ul>
<li>More autoconfiscated time functions and types</li>
<li>Migrated to latest autotools</li>
<li>added patches for Darwin and Solaris</li>
</ul>
<p><b>Release 0.3.0 - May 6th, 2002</b> </p><pre class="fragment">MONTE CARLO FRAMEWORK
- Path and MultiPath are time-aware
- McPricer: extended interface, improved convergency algorithm
FINITE DIFFERENCE FRAMEWORK
- added mixed (implicit/explicit) scheme, from which Crank-Nicolson,
ImplicitEuler, and ExplicitEuler are now derived
- Finite Difference exercise conditions are now in the
FiniteDifferences folder/namespace
- Finite Difference pricers now start with 'Fd' letters
- BSMNumericalOption became BsmFdOption
LATTICE FRAMEWORK
- introduced first version of the framework
- CRR and JR binomial trees
VOLATILITY FRAMEWORK
- early works on reorganization of vol structures
YIELD TERM STRUCTURE
- new TermStructure class based on affine model
- yield curves can be spreaded in term of zeros
(ZeroSpreadedTermStructure) and forwards
(ForwardSpreadedTermStructure)
- Added dates() and times() to PiecewiseFlatForward
- discount factor accuracy in the yield curve bootstrapping is an
input
- added single factor short-rate models (Hull-White, Black-Karasinski)
- added two factor short-rate models framework
- cap/floor and swaption calibration helpers
- added bermudan swaption pricing example (including BK and HW
calibrations)
FIXED INCOME
- cap/floor and swaption tree pricer
- cap/floor analytical pricer
- vanilla swaption Jamshidian pricer
- Added accruedAmount() to coupons
- Made cash flow vector builders into functions
OPTIMIZATION FRAMEWORK
- added conjugate gradient, simplex
PATTERNS
- implemented QuEP 8 and 10
MISCELLANEA
- added allowExtrapolation parameter to interpolaton classes
- added 2D bilinear interpolation
- better spline interpolation algorithm
- Added non-central chi-square distribution function.
- Improved Inverse Cumulative Normal Distribution using Moro's
algorithm
- Introduced class representing stochastic processes
- added isExpired() to Instrument interface
- added functions folder and namespace for %QuantLibXL and any other
function-like interface to %QuantLib
- Handle is now castable to an Handle of a compatible type
- added downsideVariance to the Statistics class
- kustosis() and skewness() now handles the case of stddev == 0 and/or
variance == 0
- added Correlation Matrix to MultiVariateAccumulator
- enforced MS VC compilation settings
- added "-debug" to the QL_VERSION version string ifdef QL_DEBUG
- "make check" runs the example programs under Borland C++
- fixed compilation with "g++ -pedantic"
- Spread as market element
- new calendars introduced
- new Xibor Indexes introduced
- Added optional day count to libor indexes
- Shortened file names within 31 char limit to support HFS
</pre><p><b>Release 0.2.1 - December 3rd, 2001</b> </p><pre class="fragment">MONTE CARLO FRAMEWORK
- Path and MultiPath are now classes on their own
- PathPricer now handles both Path and MultiPath
- MonteCarloModel now handles both single factor and
multi factors simulations.
- McPricer now handles both single factor and
multi factors pricing. New pricing interface
- antithetic variance-reduction technique made possible in Monte Carlo
for both single factor and multi factors
- Control Variate specific class removed: control variation
technique is now handled by the general MC model
- average price and average strike asian option refactored
- Sample as a (value,weight) struct
- random number generators moved under RandomNumbers folder and
namespace
FINITE DIFFERENCE FRAMEWORK
- BackwardEuler and ForwardEuler renamed ImplicitEuler and
ExplicitEuler,
respectively
- refactoring of TridiagonalOperator and derived classes
YIELD TERM STRUCTURE AND FIXED INCOME
- Added some useful methods to term structure classes
- Allowed passing a quote to RateHelpers as double
- added FuturesRateHelpers (no convexity adjustment yet)
- PiecewiseFlatForward now observer of rates passed as MarketElements
- Unified Date and Time interface in TermStructure
- Added BPS to generic swap legs
- added term_structure+swap example
- Fixing days introduced for floating-coupon bond
PATTERNS
- Added factory pattern
- Calendar and DayCounter now use the Strategy pattern
VARIOUS
- used do-while-false idiom in QL_REQUIRE-like macros
- now using size_t where appropriate
- dividendYield is now a Spread instead of a Rate (that is: cost of
carry is allowed)
- RelinkableHandle initialized with an optional Handle
- Worked around VC++ problems in History constructor
- added QL_VERSION and QL_HEX_VERSION
- generic bug fixes
- removed classes deprecated in 0.2.0
</pre><p>INSTALLATION FACILITIES</p><ul>
<li>improved and smoother Win32 binary installer</li>
</ul>
<p>DOCUMENTATION</p><ul>
<li>general re-hauling</li>
<li>improved and extended Monte Carlo documentation</li>
<li>improved and extended examples</li>
<li>Upgraded to Doxygen 1.2.11.1</li>
<li>Added man pages for installed executables</li>
<li>added docs in Windows Help format</li>
<li>added info on "Win32 OnTheEdgeRelease" and "Win32 OnTheEdgeDebug" MS VC++ configurations</li>
<li>additional information on how to create a MS VC++ project based on QuantLib</li>
</ul>
<p><b>Release 0.2.0 - September 18th, 2001</b></p>
<ul>
<li>Library:<ul>
<li>source code moved under ql, better GNU standards</li>
<li>gcc build dir can now be separated from source tree</li>
<li>gcc 3.0.1 port</li>
<li>clean compilation (no warnings)</li>
<li>bootstrap script on cygwin</li>
<li>Fixed automatic choice of seed for random number generators</li>
<li>Actual/actual classes</li>
<li>extended platform support (see table in documentation)</li>
<li>antithetic variance-reduction technique made possible in Monte Carlo</li>
<li>added dividend-Rho greek</li>
<li>First implementation of segment integral (to be redesigned)</li>
<li>Knuth random generator</li>
<li>Cash flows, scheduler, and swap (both generic and simple) added</li>
<li>added ICGaussian random generator</li>
<li>generic bug fixes</li>
</ul>
</li>
<li>Installation facilities:<ul>
<li>improved and smoother Win32 binary installer</li>
<li>better distribution</li>
<li>debian packages available</li>
</ul>
</li>
<li>Documentation:<ul>
<li>general re-hauling</li>
<li>added examples of using QuantLib and of projects based on QL</li>
</ul>
</li>
</ul>
<p><b>Release 0.1.9 - May 31st, 2001</b></p>
<ul>
<li>Library:<ul>
<li>Style guidelines introduced (see <a href="http://quantlib.org/style.shtml">http://quantlib.org/style.shtml</a>) and partially enforced</li>
<li>full support for Microsoft Visual Studio</li>
<li>full support for Linux/gcc</li>
<li>momentarily broken support for Metrowerks CodeWarrior</li>
<li>autoconfiscation (with specialized config.*.hpp files for platforms without automake/autoconf support)</li>
<li>Include files moved under Include/ql folder and referenced as "ql/header.hpp"</li>
<li>Implemented expression templates techniques for array algebra optimization</li>
<li>Added custom iterators</li>
<li>Improved term structure</li>
<li>Added Asian, Bermudan, Shout, Cliquet, Himalaya, and Barrier options (all with greeks calculation, control variated where possible)</li>
<li>Added Helsinki and Wellington calendars</li>
<li>Improved Normal distribution related functions: cumulative, inverse cumulative, etc.</li>
<li>Added uniform and Gaussian random number generators</li>
<li>Added Statistics class (mean, variance, skewness, downside variance, etc.)</li>
<li>Added RiskMeasures class: VAR, average shortfall, expected shortfall, etc.</li>
<li>Added RiskStatistics class combining Statistics and RiskMeasures</li>
<li>Added sample accumulator for multivariate analysis</li>
<li>Added Monte Carlo tools</li>
<li>Added matrix-related functions (square root, symmetric Schur decomposition)</li>
<li>Added interpolation framework (linear and cubic spline interpolation implemented).</li>
</ul>
</li>
<li>Installation facilities:<ul>
<li>Added Win32 GUI installer for binaries</li>
</ul>
</li>
<li>Documentation:<ul>
<li>support for Doxygen 1.2.7</li>
<li>Added man documentation</li>
</ul>
</li>
</ul>
<p><b>Release 0.1.1 - November 21st, 2000</b></p>
<p>Initial release. </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
<!-- HTML footer for doxygen 1.8.9.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html">Doxygen</a>
1.8.20
</small></address>
</body>
</html>
|