pax_global_header00006660000000000000000000000064145530461440014520gustar00rootroot0000000000000052 comment=9b052b1fe3a1455aa56cc89d34d70e4732eb1191 QuantLib-1.33/000077500000000000000000000000001455304614400131655ustar00rootroot00000000000000QuantLib-1.33/.appveyor.yml000066400000000000000000000013061455304614400156330ustar00rootroot00000000000000image: - Visual Studio 2015 - Visual Studio 2022 platform: x64 configuration: Release version: ci.{build} build: parallel: false project: QuantLib.sln verbosity: normal for: - matrix: only: - image: Visual Studio 2015 before_build: - COPY .appveyor\VS2015.props .\Build.props test_script: - .\test-suite\bin\QuantLib-test-suite-x64-mt.exe --log_level=message --build_info=yes -- --faster - matrix: only: - image: Visual Studio 2022 before_build: - COPY .appveyor\VS2022.props .\Build.props - COPY .appveyor\Unity.props .\Directory.Build.props test_script: - .\test-suite\bin\QuantLib-test-suite-x64-mt.exe --log_level=message --build_info=yes QuantLib-1.33/.appveyor/000077500000000000000000000000001455304614400151105ustar00rootroot00000000000000QuantLib-1.33/.appveyor/Unity.props000066400000000000000000000002551455304614400173070ustar00rootroot00000000000000 true QuantLib-1.33/.appveyor/VS2015.props000066400000000000000000000011541455304614400170360ustar00rootroot00000000000000 C:\Libraries\boost_1_69_0;%(AdditionalIncludeDirectories) C:\Libraries\boost_1_69_0\lib64-msvc-14.0;%(AdditionalLibraryDirectories) QuantLib-1.33/.appveyor/VS2019.props000066400000000000000000000013561455304614400170460ustar00rootroot00000000000000 C:\Libraries\boost_1_73_0;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) true C:\Libraries\boost_1_73_0\lib64-msvc-14.2;%(AdditionalLibraryDirectories) QuantLib-1.33/.appveyor/VS2022.props000066400000000000000000000013561455304614400170400ustar00rootroot00000000000000 C:\Libraries\boost_1_83_0;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) true C:\Libraries\boost_1_83_0\lib64-msvc-14.3;%(AdditionalLibraryDirectories) QuantLib-1.33/.clang-format000066400000000000000000000021441455304614400155410ustar00rootroot00000000000000--- Language: Cpp Standard: c++14 # The following is close to the style we've been using all these years # without formalizing it. Formatting won't be enforced, but this file # can help if you want to use the general feel of the library. # General appearance: BasedOnStyle: LLVM IndentWidth: 4 ColumnLimit: 100 NamespaceIndentation: All MaxEmptyLinesToKeep: 2 FixNamespaceComments: false # Function declarations: BinPackParameters: false AllowShortFunctionsOnASingleLine: Inline AlwaysBreakTemplateDeclarations: true # T& x, not T &x: DerivePointerAlignment: false PointerAlignment: Left # QuantLib headers first, then Boost, then std SortIncludes: true IncludeBlocks: Merge IncludeCategories: - Regex: '^"' Priority: 1 - Regex: '^ -*, bugprone-*, -bugprone-assignment-in-if-condition, -bugprone-branch-clone, -bugprone-easily-swappable-parameters, -bugprone-empty-catch, -bugprone-implicit-widening-of-multiplication-result, -bugprone-macro-parentheses, -bugprone-narrowing-conversions, -bugprone-non-zero-enum-to-bool-conversion, -bugprone-suspicious-include, clang-analyzer-*, -clang-analyzer-core.UndefinedBinaryOperatorResult, -clang-analyzer-core.uninitialized.Assign, -clang-analyzer-optin.cplusplus.UninitializedObject, -clang-analyzer-optin.performance.Padding, -clang-analyzer-security.FloatLoopCounter, cppcoreguidelines-*, -cppcoreguidelines-avoid-c-arrays, -cppcoreguidelines-avoid-const-or-ref-data-members, -cppcoreguidelines-avoid-do-while, -cppcoreguidelines-avoid-goto, -cppcoreguidelines-avoid-magic-numbers, -cppcoreguidelines-avoid-non-const-global-variables, -cppcoreguidelines-init-variables, -cppcoreguidelines-macro-usage, -cppcoreguidelines-narrowing-conversions, -cppcoreguidelines-non-private-member-variables-in-classes, -cppcoreguidelines-owning-memory, -cppcoreguidelines-prefer-member-initializer, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-constant-array-index, -cppcoreguidelines-pro-bounds-pointer-arithmetic, -cppcoreguidelines-pro-type-const-cast, -cppcoreguidelines-pro-type-member-init, -cppcoreguidelines-pro-type-vararg, misc-*, -misc-confusable-identifiers, -misc-const-correctness, -misc-include-cleaner, -misc-no-recursion, -misc-non-private-member-variables-in-classes, -misc-use-anonymous-namespace, -misc-unused-parameters, modernize-*, -modernize-avoid-c-arrays, -modernize-macro-to-enum, -modernize-return-braced-init-list, -modernize-use-trailing-return-type, -modernize-use-using, performance-*, -performance-avoid-endl, -performance-enum-size, readability-*, -readability-braces-around-statements, -readability-const-return-type, -readability-convert-member-functions-to-static, -readability-else-after-return, -readability-function-cognitive-complexity, -readability-identifier-length, -readability-inconsistent-declaration-parameter-name, -readability-isolate-declaration, -readability-magic-numbers, -readability-make-member-function-const, -readability-named-parameter, -readability-redundant-declaration, -readability-simplify-boolean-expr, -readability-suspicious-call-argument, -readability-use-anyofallof, HeaderFilterRegex: '.*' FormatStyle: none CheckOptions: - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor value: 1 - key: modernize-make-shared.MakeSmartPtrFunction value: ext::make_shared - key: modernize-make-shared.MakeSmartPtrFunctionHeader value: - key: modernize-use-default-member-init.UseAssignment value: 1 ... QuantLib-1.33/.codecov.yml000066400000000000000000000015411455304614400154110ustar00rootroot00000000000000coverage: precision: 1 # We put red at 50 to have a chance at some non-red build. # I would be happy with 80 right now, so that's where the target is. range: 50...80 ignore: - "test-suite" - "Examples" # The process to get a correct report is a bit fiddly. # This worked in the past, and is added here for reference: # # - clone the repo and mount it in a recent quantlib-devenv image; # - run the following: # # apt update && apt install -y lcov curl git # mkdir build # cd build # CXXFLAGS='-O1 -fprofile-arcs -ftest-coverage' LDFLAGS='-lgcov' cmake .. # CXXFLAGS='-O1 -fprofile-arcs -ftest-coverage' LDFLAGS='-lgcov' make -j 4 # ./test-suite/quantlib-test-suite --log_level=message # bash <(curl -s https://codecov.io/bash) -t @cc_token # # where the file `cc_token` contains the Codecov upload token. QuantLib-1.33/.github/000077500000000000000000000000001455304614400145255ustar00rootroot00000000000000QuantLib-1.33/.github/boring-cyborg.yml000066400000000000000000000011451455304614400200140ustar00rootroot00000000000000 # Comment to be posted to welcome users when they open their first PR firstPRWelcomeComment: > Thanks for opening this pull request! It might take a while before we look at it, so don't worry if there seems to be no feedback. We'll get to it. # Comment to be posted to congratulate user on their first merged PR firstPRMergeComment: > Congratulations on your first merged pull request! # Comment to be posted to on first time issues firstIssueWelcomeComment: > Thanks for posting! It might take a while before we look at your issue, so don't worry if there seems to be no feedback. We'll get to it. QuantLib-1.33/.github/dependabot.yml000066400000000000000000000002611455304614400173540ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: "github-actions" directory: "/" schedule: # Check for updates to GitHub Actions every weekday interval: "weekly" QuantLib-1.33/.github/workflows/000077500000000000000000000000001455304614400165625ustar00rootroot00000000000000QuantLib-1.33/.github/workflows/cmake.yml000066400000000000000000000147411455304614400203740ustar00rootroot00000000000000name: CMake build on: [push, pull_request] jobs: cmake-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt update sudo apt install -y libboost-dev ccache ninja-build - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: cmake-linux-ci-build-${{ github.ref }} restore-keys: | cmake-linux-ci-build-${{ github.ref }} cmake-linux-ci-build-refs/heads/master cmake-linux-ci-build- - name: Compile run: | mkdir build cd build cmake .. -GNinja -DBOOST_ROOT=/usr -DCMAKE_BUILD_TYPE=Release -DQL_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -L cmake --build . --verbose sudo cmake --install . sudo ldconfig - name: Test run: | quantlib-test-suite --log_level=message cmake-linux-with-options: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt update sudo apt install -y libboost-all-dev ccache ninja-build - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: cmake-linux-ci-opts-${{ github.ref }} restore-keys: | cmake-linux-ci-opts-${{ github.ref }} cmake-linux-ci-opts-refs/heads/master cmake-linux-ci-opts- - name: Compile run: | cmake --preset linux-ci-build-with-nonstandard-options -L cd build/linux-ci-build-with-nonstandard-options cmake --build . --verbose sudo cmake --build . --target install - name: Test run: | quantlib-test-suite --log_level=message cmake-win: runs-on: windows-2022 steps: - uses: actions/checkout@v3 - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: cmake-windows-ci-build-${{ github.ref }} restore-keys: | cmake-windows-ci-build-${{ github.ref }} cmake-windows-ci-build-refs/heads/master cmake-windows-ci-build- variant: sccache - name: Setup run: | $Url = "https://boostorg.jfrog.io/artifactory/main/release/1.84.0/binaries/boost_1_84_0-msvc-14.3-64.exe" (New-Object System.Net.WebClient).DownloadFile($Url, "$RUNNER_TEMP\boost.exe") Start-Process -Wait -FilePath "$RUNNER_TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=C:\local\boost" choco install -y ninja - name: Compile env: BOOST_ROOT: C:\local\boost shell: cmd run: | mkdir build cd build call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Vc\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.3 || exit 1 cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DQL_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -L cmake --build . --verbose cmake --install . dir ql\*.lib - name: Test run: | & "C:\Program Files (x86)\QuantLib\bin\quantlib-test-suite" --log_level=message cmake-win-dynamic-runtime: runs-on: windows-2022 steps: - uses: actions/checkout@v3 - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: cmake-windows-ci-dyn-build-${{ github.ref }} restore-keys: | cmake-windows-ci-dyn-build-${{ github.ref }} cmake-windows-ci-dyn-build-refs/heads/master cmake-windows-ci-dyn-build- variant: sccache - name: Setup run: | $Url = "https://boostorg.jfrog.io/artifactory/main/release/1.84.0/binaries/boost_1_84_0-msvc-14.3-64.exe" (New-Object System.Net.WebClient).DownloadFile($Url, "$RUNNER_TEMP\boost.exe") Start-Process -Wait -FilePath "$RUNNER_TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=C:\local\boost" choco install -y ninja - name: Compile env: BOOST_ROOT: C:\local\boost shell: cmd run: | mkdir build cd build call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Vc\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.3 || exit 1 cmake .. -GNinja -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL -DCMAKE_BUILD_TYPE=Release -DQL_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -L cmake --build . --verbose cmake --install . dir ql\*.lib - name: Test run: | & "C:\Program Files (x86)\QuantLib\bin\quantlib-test-suite" --log_level=message cmake-win-with-options: runs-on: windows-2022 steps: - uses: actions/checkout@v3 - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: cmake-windows-ci-opts-${{ github.ref }} restore-keys: | cmake-windows-ci-opts-${{ github.ref }} cmake-windows-ci-opts-refs/heads/master cmake-windows-ci-opts- variant: sccache - name: Setup run: | $Url = "https://boostorg.jfrog.io/artifactory/main/release/1.84.0/binaries/boost_1_84_0-msvc-14.3-64.exe" (New-Object System.Net.WebClient).DownloadFile($Url, "$RUNNER_TEMP\boost.exe") Start-Process -Wait -FilePath "$RUNNER_TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=C:\local\boost" choco install -y ninja - name: Compile env: BOOST_ROOT: C:\local\boost shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Vc\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.3 || exit 1 cmake --preset windows-ci-build-with-nonstandard-options -L cd build/windows-ci-build-with-nonstandard-options cmake --build . --verbose cmake --build . --target install - name: Test run: | & "C:\Program Files (x86)\QuantLib\bin\quantlib-test-suite" --log_level=message cmake-macos: runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: Setup run: | brew install boost ccache ninja - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: cmake-macos-ci-${{ github.ref }} restore-keys: | cmake-macos-ci-${{ github.ref }} cmake-macos-ci-refs/heads/master cmake-macos-ci- - name: Compile run: | mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DQL_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -GNinja -L cmake --build . --verbose cmake --install . - name: Test run: | quantlib-test-suite --log_level=message QuantLib-1.33/.github/workflows/codeql-analysis.yml000066400000000000000000000026221455304614400223770ustar00rootroot00000000000000# For most projects, this workflow file will not need changing; you simply need # to commit it to your repository. # # You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic. name: "CodeQL" on: schedule: - cron: '0 0 * * 0' workflow_dispatch: jobs: analyze: name: CodeQL analysis runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: cpp # Set up build environment - name: Setup run: | sudo apt update sudo apt install -y libboost-dev # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # and modify them (or add more) to build your code if your project # uses a compiled language #- run: | # make bootstrap # make release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 QuantLib-1.33/.github/workflows/copyrights.yml000066400000000000000000000011501455304614400214750ustar00rootroot00000000000000name: Update copyright list on: push: branches: - '**' jobs: copyrights: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check run: | ./tools/check_copyrights.sh - uses: peter-evans/create-pull-request@v5 with: token: ${{ secrets.GITHUB_TOKEN }} branch: update-copyright-list-${{ github.ref_name }} delete-branch: true commit-message: 'Update copyright list in license' title: 'Update copyright list in license' author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> QuantLib-1.33/.github/workflows/coveralls.yml000066400000000000000000000024741455304614400213060ustar00rootroot00000000000000name: Coverage report on: push: branches: - master pull_request: jobs: coverage: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt update sudo apt install -y lcov libboost-dev - name: Compile run: | ./autogen.sh ./configure --disable-shared CXXFLAGS='-O1 -fprofile-arcs -ftest-coverage' LDFLAGS='-lgcov' make -j 4 - name: Capture baseline run: | mkdir -p coverage tmp lcov --no-external --capture --initial --directory . --output-file ./tmp/lcov_base.info - name: Run tests run: | ./test-suite/quantlib-test-suite --log_level=message - name: Run examples run: | make -C Examples check-examples - name: Capture coverage run: | lcov --no-external --capture --directory . --output-file ./tmp/lcov_run.info lcov --add-tracefile ./tmp/lcov_base.info --add-tracefile ./tmp/lcov_run.info --output-file ./tmp/lcov_total.info lcov --remove ./tmp/lcov_total.info "$PWD/Examples/*" "$PWD/test-suite/*" --output-file ./coverage/lcov.info - name: Upload coverage to Coveralls uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: ./coverage/lcov.info QuantLib-1.33/.github/workflows/devenv-images.yml000066400000000000000000000032661455304614400220460ustar00rootroot00000000000000name: Build quantlib-devenv Docker images on: workflow_dispatch: inputs: boostVersion: description: 'Boost version' required: true env: ROLLING: mantic jobs: docker-images: runs-on: ubuntu-latest strategy: matrix: tag: [lunar, mantic, noble] steps: - uses: actions/checkout@v3 - name: Build CI images working-directory: dockerfiles run: | docker build -f ci.Dockerfile \ --build-arg tag=${{ matrix.tag }} \ --build-arg boost_version=${{ github.event.inputs.boostVersion }} \ --build-arg boost_dir=boost_$(echo "${{ github.event.inputs.boostVersion }}" | sed "s/\./_/g") \ -t ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }} . docker tag ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }} ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }}-${{ github.event.inputs.boostVersion }} if test "${{ matrix.tag }}" = "$ROLLING" ; then docker tag ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }} ghcr.io/lballabio/quantlib-devenv:rolling fi - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GHCR_PAT }} - name: Push Docker images run: | docker push ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }}-${{ github.event.inputs.boostVersion }} docker push ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }} if test "${{ matrix.tag }}" = "$ROLLING" ; then docker push ghcr.io/lballabio/quantlib-devenv:rolling fi QuantLib-1.33/.github/workflows/doxygen.yml000066400000000000000000000011471455304614400207650ustar00rootroot00000000000000name: Check doc generation on: [push, pull_request] jobs: docs: runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: Setup env: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 run: | brew update brew install automake boost doxygen graphviz ./autogen.sh ./configure - name: Doxygen version run: | doxygen --version - name: Check run: | make docs header-docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check run: | ./tools/check_all_header_docs.sh QuantLib-1.33/.github/workflows/filelists.yml000066400000000000000000000006161455304614400213060ustar00rootroot00000000000000name: Check CMake file list and VC++ projects on: [push, pull_request] jobs: filelists: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt update sudo apt install -y libboost-dev - name: Configure run: | ./autogen.sh ./configure - name: Check run: | ./tools/check_filelists.sh QuantLib-1.33/.github/workflows/generated-headers.yml000066400000000000000000000015061455304614400226560ustar00rootroot00000000000000name: Update generated headers on: push: branches: - '**' jobs: filelists: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt update sudo apt install -y libboost-dev - name: Configure run: | ./autogen.sh ./configure - name: Update headers run: | find ql -name *.am | xargs touch make dist rm QuantLib-*.tar.gz - uses: peter-evans/create-pull-request@v5 with: token: ${{ secrets.GITHUB_TOKEN }} branch: update-generated-headers-${{ github.ref_name }} delete-branch: true commit-message: 'Update generated headers' title: 'Update generated headers' author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> QuantLib-1.33/.github/workflows/headers.yml000066400000000000000000000011321455304614400207150ustar00rootroot00000000000000name: Compile single headers on: [push, pull_request] jobs: headers: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt update sudo apt install -y libboost-dev ccache - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: single-headers-${{ github.ref }} restore-keys: | single-headers-${{ github.ref }} single-headers-refs/heads/master single-headers- - name: Check env: CXX: ccache g++ run: | ./tools/check_all_headers.sh QuantLib-1.33/.github/workflows/linux-full-tests.yml000066400000000000000000000155231455304614400225520ustar00rootroot00000000000000name: Linux build with full test matrix on: schedule: - cron: '0 0 * * 0' workflow_dispatch: jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: "gcc 5.4 (Boost 1.66)" shortname: gcc5 tag: xenial cc: gcc cxx: g++ - name: "gcc 6.3 (Boost 1.66)" shortname: gcc6 tag: zesty cc: gcc cxx: g++ - name: "gcc 7.4 (Boost 1.72)" shortname: gcc7 tag: bionic cc: gcc cxx: g++ - name: "gcc 8.3 (Boost 1.72)" shortname: gcc8 tag: cosmic cc: gcc cxx: g++ - name: "gcc 9.3 (Boost 1.78)" shortname: gcc9 tag: focal cc: gcc cxx: g++ - name: "gcc 10.3 (Boost 1.79)" shortname: gcc10 tag: hirsute cc: gcc cxx: g++ - name: "gcc 11.x (Boost 1.82)" shortname: gcc11 tag: jammy cc: gcc cxx: g++ - name: "gcc 12.x" shortname: gcc12 tag: lunar cc: gcc cxx: g++ - name: "gcc 13.x" shortname: gcc13 tag: mantic cc: gcc cxx: g++ - name: "Clang 6 (Boost 1.72)" shortname: clang6 tag: bionic cc: clang cxx: clang++ - name: "Clang 7 (Boost 1.72)" shortname: clang7 tag: cosmic cc: clang cxx: clang++ - name: "Clang 8 (Boost 1.72)" shortname: clang8 tag: disco cc: clang cxx: clang++ - name: "Clang 9 (Boost 1.74)" shortname: clang9 tag: eoan cc: clang cxx: clang++ - name: "Clang 10 (Boost 1.78)" shortname: clang10 tag: focal cc: clang cxx: clang++ - name: "Clang 11 (Boost 1.78)" shortname: clang11 tag: groovy cc: clang cxx: clang++ - name: "Clang 12 (Boost 1.79)" shortname: clang12 tag: hirsute cc: clang cxx: clang++ - name: "Clang 13 (Boost 1.79)" shortname: clang13 tag: impish cc: clang cxx: clang++ - name: "Clang 14 (Boost 1.82)" shortname: clang14 tag: jammy cc: clang cxx: clang++ - name: "Clang 15" shortname: clang15 tag: lunar cc: clang cxx: clang++ - name: "Clang 16" shortname: clang16 tag: mantic cc: clang cxx: clang++ - name: "Clang 17" shortname: clang17 tag: noble cc: clang cxx: clang++ - name: "C++14 mode" shortname: c++14 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++14" - name: "C++17 mode" shortname: c++17 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++17" - name: "C++20 mode" shortname: c++20 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++20" - name: "Unity build enabled" shortname: unity tag: rolling cc: gcc cxx: g++ configureflags: --enable-unity-build - name: "Intraday calculations enabled" shortname: intraday tag: rolling cc: gcc cxx: g++ configureflags: --enable-intraday - name: "Throwing in cycles enabled" shortname: cycles tag: rolling cc: gcc cxx: g++ configureflags: --enable-throwing-in-cycles --disable-faster-lazy-objects - name: "Indexed coupons enabled" shortname: indexed tag: rolling cc: gcc cxx: g++ configureflags: --enable-indexed-coupons - name: "Standard Library classes enabled/disabled" shortname: stdclasses tag: rolling cc: gcc cxx: g++ configureflags: --disable-std-function --disable-std-tuple --enable-std-pointers --enable-std-any --enable-std-optional - name: "Thread-safe observer enabled" shortname: threadsafe tag: rolling cc: gcc cxx: g++ configureflags: --enable-thread-safe-observer-pattern - name: "Sessions enabled" shortname: sessions tag: rolling cc: gcc cxx: g++ configureflags: --enable-sessions - name: "OpenMP enabled" shortname: openmp tag: rolling cc: gcc cxx: g++ configureflags: --enable-openmp - name: "Parallel unit-test runner" shortname: paralleltests tag: rolling cc: gcc cxx: g++ configureflags: --enable-parallel-unit-test-runner - name: "Null as function template" shortname: nullfunctions tag: rolling cc: gcc cxx: g++ configureflags: --enable-null-as-functions container: ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }} steps: - uses: actions/checkout@v3 - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: linux-ci-build-${{ matrix.shortname }}-${{ github.ref }} restore-keys: | linux-ci-build-${{ matrix.shortname }}-${{ github.ref }} linux-ci-build-${{ matrix.shortname }}-refs/heads/master linux-ci-build-${{ matrix.shortname }}- - name: Compiler version run: | ${{ matrix.cc }} --version - name: Build run: | ./autogen.sh ./configure --disable-static ${{ matrix.configureflags }} CC="ccache ${{ matrix.cc }}" CXX="ccache ${{ matrix.cxx }}" CXXFLAGS="-O2 -g0 -Wall -Wno-unknown-pragmas -Werror ${{ matrix.cxxflags }}" make -j 4 - name: Run tests run: | ./test-suite/quantlib-test-suite --log_level=message - name: Run examples run: | make check-examples - name: Check global header run: | echo "#include " > test1.cpp && echo "int main() { return 0; }" >> test1.cpp echo "#include " > test2.cpp make install ${{ matrix.cxx }} -O2 -g0 -Wall -Wno-unknown-pragmas -Werror ${{ matrix.cxxflags }} `quantlib-config --cflags` test1.cpp test2.cpp `quantlib-config --libs` QuantLib-1.33/.github/workflows/linux-nondefault.yml000066400000000000000000000127151455304614400226070ustar00rootroot00000000000000name: Linux build with non-default configuration on: schedule: - cron: '0 0 * * 0' workflow_dispatch: jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: "gcc 5.4 (Boost 1.66)" shortname: gcc5 tag: xenial cc: gcc cxx: g++ - name: "gcc 6.3 (Boost 1.66)" shortname: gcc6 tag: zesty cc: gcc cxx: g++ - name: "gcc 7.4 (Boost 1.72)" shortname: gcc7 tag: bionic cc: gcc cxx: g++ - name: "gcc 8.3 (Boost 1.72)" shortname: gcc8 tag: cosmic cc: gcc cxx: g++ - name: "gcc 9.3 (Boost 1.78)" shortname: gcc9 tag: focal cc: gcc cxx: g++ - name: "gcc 10.3 (Boost 1.79)" shortname: gcc10 tag: hirsute cc: gcc cxx: g++ - name: "gcc 11.x (Boost 1.82)" shortname: gcc11 tag: jammy cc: gcc cxx: g++ - name: "gcc 12.x" shortname: gcc12 tag: lunar cc: gcc cxx: g++ - name: "gcc 13.x" shortname: gcc13 tag: mantic cc: gcc cxx: g++ - name: "Clang 6 (Boost 1.72)" shortname: clang6 tag: bionic cc: clang cxx: clang++ - name: "Clang 7 (Boost 1.72)" shortname: clang7 tag: cosmic cc: clang cxx: clang++ - name: "Clang 8 (Boost 1.72)" shortname: clang8 tag: disco cc: clang cxx: clang++ - name: "Clang 9 (Boost 1.74)" shortname: clang9 tag: eoan cc: clang cxx: clang++ - name: "Clang 10 (Boost 1.78)" shortname: clang10 tag: focal cc: clang cxx: clang++ - name: "Clang 11 (Boost 1.78)" shortname: clang11 tag: groovy cc: clang cxx: clang++ - name: "Clang 12 (Boost 1.79)" shortname: clang12 tag: hirsute cc: clang cxx: clang++ - name: "Clang 13 (Boost 1.79)" shortname: clang13 tag: impish cc: clang cxx: clang++ - name: "Clang 14 (Boost 1.82)" shortname: clang14 tag: jammy cc: clang cxx: clang++ - name: "Clang 15" shortname: clang15 tag: lunar cc: clang cxx: clang++ - name: "Clang 16" shortname: clang16 tag: mantic cc: clang cxx: clang++ - name: "Clang 17" shortname: clang17 tag: noble cc: clang cxx: clang++ - name: "C++14 mode" shortname: c++14 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++14" - name: "C++17 mode" shortname: c++17 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++17" - name: "C++20 mode" shortname: c++20 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++20" - name: "Unity build enabled" shortname: unity tag: rolling cc: gcc cxx: g++ cxxflags: "-Wno-array-bounds" configureflags: --enable-unity-build - name: "Standard Library classes enabled/disabled" shortname: stdclasses tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++17 -Wno-array-bounds" configureflags: --disable-std-function --disable-std-tuple --enable-std-pointers --enable-std-any --enable-std-optional - name: "OpenMP enabled" shortname: openmp tag: rolling cc: gcc cxx: g++ configureflags: --enable-openmp container: ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }} steps: - uses: actions/checkout@v3 - name: Compiler version run: | ${{ matrix.cc }} --version - name: Build run: | ./autogen.sh ./configure --disable-static --enable-error-lines --enable-error-functions --enable-tracing --enable-indexed-coupons --enable-extra-safety-checks --enable-sessions --enable-thread-safe-observer-pattern --enable-intraday --disable-faster-lazy-objects --enable-throwing-in-cycles --enable-null-as-functions ${{ matrix.configureflags }} CC="${{ matrix.cc }}" CXX="${{ matrix.cxx }}" CXXFLAGS="-O2 -g0 -Wall -Wno-unknown-pragmas -Werror ${{ matrix.cxxflags }}" make -j 4 - name: Run tests run: | ./test-suite/quantlib-test-suite --log_level=message - name: Run examples run: | make check-examples - name: Check global header run: | echo "#include " > test1.cpp && echo "int main() { return 0; }" >> test1.cpp echo "#include " > test2.cpp make install ${{ matrix.cxx }} -O2 -g0 -Wall -Wno-unknown-pragmas -Werror ${{ matrix.cxxflags }} `quantlib-config --cflags` test1.cpp test2.cpp `quantlib-config --libs` QuantLib-1.33/.github/workflows/linux.yml000066400000000000000000000162531455304614400204530ustar00rootroot00000000000000name: Linux build on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - name: "gcc 5.4 (Boost 1.66)" shortname: gcc5 tag: xenial cc: gcc cxx: g++ - name: "gcc 6.3 (Boost 1.66)" shortname: gcc6 tag: zesty cc: gcc cxx: g++ - name: "gcc 7.4 (Boost 1.72)" shortname: gcc7 tag: bionic cc: gcc cxx: g++ - name: "gcc 8.3 (Boost 1.72)" shortname: gcc8 tag: cosmic cc: gcc cxx: g++ - name: "gcc 9.3 (Boost 1.78)" shortname: gcc9 tag: focal cc: gcc cxx: g++ - name: "gcc 10.3 (Boost 1.79)" shortname: gcc10 tag: hirsute cc: gcc cxx: g++ - name: "gcc 11.x (Boost 1.82)" shortname: gcc11 tag: jammy cc: gcc cxx: g++ - name: "gcc 12.x" shortname: gcc12 tag: lunar cc: gcc cxx: g++ tests: true - name: "gcc 13.x" shortname: gcc13 tag: mantic cc: gcc cxx: g++ tests: true - name: "Clang 6 (Boost 1.72)" shortname: clang6 tag: bionic cc: clang cxx: clang++ - name: "Clang 7 (Boost 1.72)" shortname: clang7 tag: cosmic cc: clang cxx: clang++ - name: "Clang 8 (Boost 1.72)" shortname: clang8 tag: disco cc: clang cxx: clang++ - name: "Clang 9 (Boost 1.74)" shortname: clang9 tag: eoan cc: clang cxx: clang++ - name: "Clang 10 (Boost 1.78)" shortname: clang10 tag: focal cc: clang cxx: clang++ - name: "Clang 11 (Boost 1.78)" shortname: clang11 tag: groovy cc: clang cxx: clang++ - name: "Clang 12 (Boost 1.79)" shortname: clang12 tag: hirsute cc: clang cxx: clang++ - name: "Clang 13 (Boost 1.79)" shortname: clang13 tag: impish cc: clang cxx: clang++ - name: "Clang 14 (Boost 1.82)" shortname: clang14 tag: jammy cc: clang cxx: clang++ - name: "Clang 15" shortname: clang15 tag: lunar cc: clang cxx: clang++ - name: "Clang 16" shortname: clang16 tag: mantic cc: clang cxx: clang++ tests: true - name: "Clang 17" shortname: clang17 tag: noble cc: clang cxx: clang++ tests: true - name: "C++14 mode" shortname: c++14 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++14" - name: "C++17 mode" shortname: c++17 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++17" - name: "C++20 mode" shortname: c++20 tag: rolling cc: gcc cxx: g++ cxxflags: "-std=c++20" - name: "Unity build enabled" shortname: unity tag: rolling cc: gcc cxx: g++ configureflags: --enable-unity-build - name: "Intraday calculations enabled" shortname: intraday tag: rolling cc: gcc cxx: g++ configureflags: --enable-intraday tests: true - name: "Throwing in cycles enabled" shortname: cycles tag: rolling cc: gcc cxx: g++ configureflags: --enable-throwing-in-cycles --disable-faster-lazy-objects tests: true - name: "Indexed coupons enabled" shortname: indexed tag: rolling cc: gcc cxx: g++ configureflags: --enable-indexed-coupons tests: true - name: "Standard Library classes enabled/disabled" shortname: stdclasses tag: rolling cc: gcc cxx: g++ configureflags: --disable-std-function --disable-std-tuple --enable-std-pointers --enable-std-any --enable-std-optional tests: true - name: "Thread-safe observer enabled" shortname: threadsafe tag: rolling cc: gcc cxx: g++ configureflags: --enable-thread-safe-observer-pattern tests: true - name: "Sessions enabled" shortname: sessions tag: rolling cc: gcc cxx: g++ configureflags: --enable-sessions tests: true - name: "OpenMP enabled" shortname: openmp tag: rolling cc: gcc cxx: g++ configureflags: --enable-openmp tests: true - name: "Parallel unit-test runner" shortname: paralleltests tag: rolling cc: gcc cxx: g++ configureflags: --enable-parallel-unit-test-runner tests: true - name: "Null as function template" shortname: nullfunctions tag: rolling cc: gcc cxx: g++ configureflags: --enable-null-as-functions tests: true container: ghcr.io/lballabio/quantlib-devenv:${{ matrix.tag }} steps: - uses: actions/checkout@v3 - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: linux-ci-build-${{ matrix.shortname }}-${{ github.ref }} restore-keys: | linux-ci-build-${{ matrix.shortname }}-${{ github.ref }} linux-ci-build-${{ matrix.shortname }}-refs/heads/master linux-ci-build-${{ matrix.shortname }}- - name: Compiler version run: | ${{ matrix.cc }} --version - name: Build run: | ./autogen.sh ./configure --disable-static ${{ matrix.configureflags }} CC="ccache ${{ matrix.cc }}" CXX="ccache ${{ matrix.cxx }}" CXXFLAGS="-O2 -g0 -Wall -Wno-unknown-pragmas -Werror ${{ matrix.cxxflags }}" make -j 4 - name: Run tests if: ${{ matrix.tests }} run: | ./test-suite/quantlib-test-suite --log_level=message - name: Run examples if: ${{ matrix.tests }} run: | make check-examples - name: Check global header if: ${{ matrix.tests }} run: | echo "#include " > test1.cpp && echo "int main() { return 0; }" >> test1.cpp echo "#include " > test2.cpp make install ${{ matrix.cxx }} -O2 -g0 -Wall -Wno-unknown-pragmas -Werror ${{ matrix.cxxflags }} `quantlib-config --cflags` test1.cpp test2.cpp `quantlib-config --libs` QuantLib-1.33/.github/workflows/macos-nondefault.yml000066400000000000000000000036301455304614400225460ustar00rootroot00000000000000name: Mac OS build with non-default configuration on: schedule: - cron: '0 0 * * 0' workflow_dispatch: jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: [macos-11] shortname: default-11 - os: [macos-11] shortname: stdclasses-11 cxxflags: "-std=c++17" configureflags: --disable-std-function --disable-std-tuple --enable-std-pointers --enable-std-optional --enable-std-any - os: [macos-12] shortname: default-12 - os: [macos-12] shortname: stdclasses-12 cxxflags: "-std=c++17" configureflags: --disable-std-function --disable-std-tuple --enable-std-pointers --enable-std-optional --enable-std-any - os: [macos-13] shortname: default-13 - os: [macos-13] shortname: stdclasses-13 cxxflags: "-std=c++17" configureflags: --disable-std-function --disable-std-tuple --enable-std-pointers --enable-std-optional --enable-std-any steps: - uses: actions/checkout@v3 - name: Setup run: | brew install automake boost - name: Compiler version run: | clang --version - name: Build run: | ./autogen.sh ./configure --disable-shared --enable-error-lines --enable-error-functions --enable-tracing --enable-indexed-coupons --enable-extra-safety-checks --enable-sessions --enable-thread-safe-observer-pattern --enable-intraday --disable-faster-lazy-objects --enable-throwing-in-cycles --enable-null-as-functions ${{ matrix.configureflags }} CC="clang" CXX="clang++" CXXFLAGS="-O2 -g0 -Wall -Werror ${{ matrix.cxxflags }}" make -j 3 - name: Run tests run: | ./test-suite/quantlib-test-suite --log_level=message - name: Run examples run: | make -C Examples check-examples QuantLib-1.33/.github/workflows/macos.yml000066400000000000000000000023771455304614400204200ustar00rootroot00000000000000name: Mac OS build on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: [macos-11] shortname: default-11 - os: [macos-12] shortname: default-12 - os: [macos-13] shortname: default-13 steps: - uses: actions/checkout@v3 - name: Setup run: | brew install automake boost ccache - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: macos-ci-build-${{ matrix.shortname }}-${{ github.ref }} restore-keys: | macos-ci-build-${{ matrix.shortname }}-${{ github.ref }} macos-ci-build-${{ matrix.shortname }}-refs/heads/master macos-ci-build-${{ matrix.shortname }}- - name: Compiler version run: | clang --version - name: Build run: | ./autogen.sh ./configure --disable-shared ${{ matrix.configureflags }} CC="ccache clang" CXX="ccache clang++" CXXFLAGS="-O2 -g0 -Wall -Werror ${{ matrix.cxxflags }}" make -j 3 - name: Run tests run: | ./test-suite/quantlib-test-suite --log_level=message - name: Run examples run: | make -C Examples check-examples QuantLib-1.33/.github/workflows/misspell.yml000066400000000000000000000010701455304614400211330ustar00rootroot00000000000000name: Misspell fixer on: push: branches: - '**' jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: sobolevn/misspell-fixer-action@master - uses: peter-evans/create-pull-request@v5 with: token: ${{ secrets.GITHUB_TOKEN }} branch: misspell-fixes-${{ github.ref_name }} delete-branch: true commit-message: 'Fixes by misspell-fixer' title: 'Typos fixed by misspell-fixer' author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> QuantLib-1.33/.github/workflows/msvc-analysis.yml000066400000000000000000000030571455304614400221030ustar00rootroot00000000000000name: Microsoft C++ Code Analysis on: schedule: - cron: '0 0 * * 0' workflow_dispatch: env: # Path to the CMake build directory. build: '${{ github.workspace }}/build' jobs: analyze: name: Analyze runs-on: windows-2022 steps: - name: Checkout repository uses: actions/checkout@v3 - name: Setup run: | $Url = "https://boostorg.jfrog.io/artifactory/main/release/1.84.0/binaries/boost_1_84_0-msvc-14.3-64.exe" (New-Object System.Net.WebClient).DownloadFile($Url, "$RUNNER_TEMP\boost.exe") Start-Process -Wait -FilePath "$RUNNER_TEMP\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=C:\local\boost" - name: Configure CMake env: BOOST_ROOT: C:\local\boost run: cmake -B ${{ env.build }} -DQL_USE_STD_CLASSES=ON - name: Run MSVC Code Analysis uses: microsoft/msvc-code-analysis-action@v0.1.1 # Provide a unique ID to access the sarif output path id: run-analysis env: CAExcludePath: C:\local\boost with: cmakeBuildDirectory: ${{ env.build }} buildConfiguration: Release ruleset: '${{ github.workspace }}/.msvc-analysis.ruleset' - name: Upload SARIF to GitHub uses: github/codeql-action/upload-sarif@v3 with: sarif_file: ${{ steps.run-analysis.outputs.sarif }} - name: Upload SARIF as an Artifact uses: actions/upload-artifact@v4 with: name: sarif-file path: ${{ steps.run-analysis.outputs.sarif }} QuantLib-1.33/.github/workflows/sanitizer.yml000066400000000000000000000026461455304614400213250ustar00rootroot00000000000000name: Linux build with address sanitizer enabled on: schedule: - cron: '0 0 * * 0' workflow_dispatch: jobs: sanitize-address-undefined: runs-on: ubuntu-latest container: ghcr.io/lballabio/quantlib-devenv:rolling steps: - uses: actions/checkout@v3 - name: Compiler version run: | gcc --version - name: Build run: | ./autogen.sh ./configure --disable-static CC="gcc" CXX="g++" CXXFLAGS="-O2 -g0 -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer -Wall -Wno-unknown-pragmas -Werror" make -j 4 - name: Run tests run: | LSAN_OPTIONS=suppressions=.lsan.txt ./test-suite/quantlib-test-suite --log_level=message - name: Run examples run: | make check-examples sanitize-thread: runs-on: ubuntu-latest container: ghcr.io/lballabio/quantlib-devenv:rolling steps: - uses: actions/checkout@v3 - name: Compiler version run: | gcc --version - name: Build run: | ./autogen.sh ./configure --disable-static --enable-sessions --enable-thread-safe-observer-pattern CC="gcc" CXX="g++" CXXFLAGS="-O2 -g0 -fsanitize=thread -fno-sanitize-recover=all -Wall -Wno-unknown-pragmas -Werror" make -j 4 - name: Run tests run: | ./test-suite/quantlib-test-suite --log_level=message - name: Run examples run: | make check-examples QuantLib-1.33/.github/workflows/stale.yml000066400000000000000000000022231455304614400204140ustar00rootroot00000000000000name: Close stale issues and PR on: schedule: - cron: '30 1 * * *' jobs: staleness-check: runs-on: ubuntu-latest steps: - uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: 'This issue was automatically marked as stale because it has been open 60 days with no activity. Remove stale label or comment, or this will be closed in two weeks.' close-issue-message: 'This issue was automatically closed because it has been stalled for two weeks with no further activity.' stale-pr-message: 'This PR was automatically marked as stale because it has been open 60 days with no activity. Remove stale label or comment, or this will be closed in two weeks.' close-pr-message: 'This PR was automatically closed because it has been stalled for two weeks with no further activity.' days-before-stale: 60 days-before-close: 14 stale-issue-label: 'stale' stale-pr-label: 'stale' exempt-issue-labels: 'help wanted,in progress' exempt-pr-labels: 'help wanted,in progress' exempt-all-milestones: true QuantLib-1.33/.github/workflows/test-times.yml000066400000000000000000000024471455304614400214120ustar00rootroot00000000000000name: Check test times on: [push, pull_request] jobs: check-test-times: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Cache uses: hendrikmuhs/ccache-action@v1.2 with: key: linux-ci-test-times-${{ github.ref }} restore-keys: | linux-ci-test-times-${{ github.ref }} linux-ci-test-times-refs/heads/master linux-ci-test-times- - name: Setup run: | sudo apt update sudo apt install -y libboost-dev autoconf automake libtool ccache - name: Build run: | ./autogen.sh ./configure --disable-static CC="ccache gcc" CXX="ccache g++" CXXFLAGS="-O2 -g0" make -j 4 - name: Run faster tests run: | ./test-suite/quantlib-test-suite --logger=JUNIT,warning,faster.xml:HRF,message -- --faster - name: Run fast tests run: | ./test-suite/quantlib-test-suite --logger=JUNIT,warning,fast.xml:HRF,message -- --fast - name: Run all tests run: | ./test-suite/quantlib-test-suite --logger=JUNIT,warning,all.xml:HRF,message - name: Save test times uses: actions/upload-artifact@v4 with: name: test-reports path: ./*.xml - name: Check test times run: | python ./tools/check_test_times.py QuantLib-1.33/.github/workflows/tidy.yml000066400000000000000000000020241455304614400202540ustar00rootroot00000000000000name: Apply clang-tidy fixes on: schedule: - cron: '0 0 * * 0' workflow_dispatch: jobs: check: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: Setup run: | sudo apt-get update sudo apt-get install -y clang-tidy-15 libboost-dev - name: Check run: | cmake --preset linux-ci-build-with-clang-tidy cd build/linux-ci-build-with-clang-tidy cmake --build . -j1 - uses: peter-evans/create-pull-request@v5 with: token: ${{ secrets.GITHUB_TOKEN }} branch: clang-tidy-fixes-${{ github.ref_name }} delete-branch: true commit-message: 'Automated fixes by clang-tidy' title: 'Automated fixes by clang-tidy' author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> body: | This is an automated PR generated by the [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action. Please review the changes before merging. QuantLib-1.33/.gitignore000066400000000000000000000036501455304614400151610ustar00rootroot00000000000000# Compilation artifacts configure quantlib-config libtool aclocal.m4 autom4te.cache config.log config.status config/* !config/Makefile.am m4/*.m4 ql/config.hpp ql/config.hpp.in ql/stamp-h1 elc-stamp quantlib.elc quantlib.pc QuantLib.spec CMakeCache.txt CMakeUserPresets.json Docs/.time-stamp Docs/.time-stamp-html Docs/.time-stamp-online Docs/.time-stamp-man Docs/LICENSE.TXT Docs/reference-*/ Docs/html/ Docs/man/ Examples/*/bin/ Examples/*/build/ Examples/*/*.trs build/ lib/ test-suite/bin/QuantLib-test-suite-*.manifest test-suite/build/ test-suite/*.trs # Build outputs **/x64/Debug **/x64/Release **/Debug **/Release **/bin/*.xml **/bin/*.manifest # Artifacts created in multiple directories Makefile Makefile.in unity.cpp unity_*.cpp testCaseCollection.xml .deps .libs *.la *.lo *.o *.so .build-stamp *.exe *.dll *.exp *.lib *.pdb *.ilk *~ *.ncb *.suo *.vcproj.*.user *.vcxproj.user *.VC.db *.VC.opendb *.log *.sdf *.opensdf *.pch *.idb *.ipch CMakeFiles *.cmake !cmake/*.cmake TAGS .dirstamp # Outputs Examples/BasketLosses/BasketLosses Examples/BermudanSwaption/BermudanSwaption Examples/Bonds/Bonds Examples/CallableBonds/CallableBonds Examples/CDS/CDS Examples/ConvertibleBonds/ConvertibleBonds Examples/CVAIRS/CVAIRS Examples/DiscreteHedging/DiscreteHedging Examples/EquityOption/EquityOption Examples/FittedBondCurve/FittedBondCurve Examples/FRA/FRA Examples/Gaussian1dModels/Gaussian1dModels Examples/GlobalOptimizer/GlobalOptimizer Examples/LatentModel/LatentModel Examples/MarketModels/MarketModels Examples/MultidimIntegral/MultidimIntegral Examples/MulticurveBootstrapping/MulticurveBootstrapping Examples/Replication/Replication Examples/Repo/Repo test-suite/quantlib-test-suite test-suite/quantlib-benchmark test-suite/bin/*.exp test-suite/bin/*.lib test-suite/bin/*.pdb test-suite/.unit_test_profile.txt # IDEs .vs .vscode .idea cmake-build-* nbproject .cproject # User customizations .dir-locals.el Build.props Directory.Build.props QuantLib-1.33/.lgtm.yml000066400000000000000000000002461455304614400147330ustar00rootroot00000000000000 path_classifiers: docs: - Docs - Examples test: - test-suite library: - tools queries: - exclude: cpp/fixme-comment QuantLib-1.33/.lsan.txt000066400000000000000000000000011455304614400147300ustar00rootroot00000000000000 QuantLib-1.33/.misspell-fixer.ignore000066400000000000000000000000221455304614400174050ustar00rootroot00000000000000^./ChangeLog.txt QuantLib-1.33/.msvc-analysis.ruleset000066400000000000000000000010041455304614400174340ustar00rootroot00000000000000 QuantLib-1.33/CITATION.cff000066400000000000000000000005551455304614400150640ustar00rootroot00000000000000cff-version: 1.2.0 message: If you use this software, please cite it using these metadata. title: "QuantLib: a free/open-source library for quantitative finance" authors: - name: "The QuantLib contributors" url: "https://www.quantlib.org/" type: software doi: 10.5281/zenodo.1440997 license: BSD-3-Clause repository-code: "https://github.com/lballabio/QuantLib" QuantLib-1.33/CMakeLists.txt000066400000000000000000000257631455304614400157420ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.15.0) # For MSVC RUNTIME LIBRARY, need CMP0091=NEW and cmake 3.15+ cmake_policy(SET CMP0091 NEW) # Version info set(QUANTLIB_VERSION_MAJOR 1) set(QUANTLIB_VERSION_MINOR 33) set(QUANTLIB_VERSION_PATCH 0) set(QUANTLIB_VERSION ${QUANTLIB_VERSION_MAJOR}.${QUANTLIB_VERSION_MINOR}.${QUANTLIB_VERSION_PATCH}) # Project Info set(PACKAGE_NAME "QuantLib") set(PACKAGE_VERSION "${QUANTLIB_VERSION}") set(PACKAGE_VERSION_HEX "0x013300f0") set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "https://github.com/lballabio/QuantLib/issues/") # Default build type for single-config generators (set this before project() command) # For multi-config generators, such as Visual Studio, use: cmake --build . --config= if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type for single-config generators" FORCE) endif() project(${PACKAGE_NAME} LANGUAGES CXX DESCRIPTION "The QuantLib C++ Library") # Path for package-local cmake modules set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) # Installation directories set(QL_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for executables") set(QL_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for libraries") set(QL_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation directory for headers") set(QL_INSTALL_EXAMPLESDIR "lib/QuantLib/examples" CACHE STRING "Installation directory for examples") set(QL_INSTALL_CMAKEDIR "lib/cmake/${PACKAGE_NAME}" CACHE STRING "Installation directory for CMake scripts") # Options option(QL_BUILD_BENCHMARK "Build benchmark" ON) option(QL_BUILD_EXAMPLES "Build examples" ON) option(QL_BUILD_TEST_SUITE "Build test suite" ON) option(QL_BUILD_FUZZ_TEST_SUITE "Build fuzz test suite" OFF) option(QL_ENABLE_OPENMP "Detect and use OpenMP" OFF) option(QL_ENABLE_PARALLEL_UNIT_TEST_RUNNER "Enable the parallel unit test runner" OFF) option(QL_ENABLE_SESSIONS "Singletons return different instances for different sessions" OFF) option(QL_ENABLE_THREAD_SAFE_OBSERVER_PATTERN "Enable the thread-safe observer pattern" OFF) option(QL_ENABLE_TRACING "Tracing messages should be allowed" OFF) option(QL_ENABLE_DEFAULT_WARNING_LEVEL "Enable the default warning level to pass the ci pipeline" ON) option(QL_COMPILE_WARNING_AS_ERROR "Specify whether to treat warnings on compile as errors." OFF) option(QL_ERROR_FUNCTIONS "Error messages should include current function information" OFF) option(QL_ERROR_LINES "Error messages should include file and line information" OFF) option(QL_EXTRA_SAFETY_CHECKS "Extra safety checks should be performed" OFF) option(QL_HIGH_RESOLUTION_DATE "Enable date resolution down to microseconds" OFF) option(QL_THROW_IN_CYCLES "Throw an exception when a notification loop is detected" OFF) option(QL_FASTER_LAZY_OBJECTS "Cause lazy objects to forward just the first notification instead of every one" ON) option(QL_NULL_AS_FUNCTIONS "Enable the implementation of Null as template functions" OFF) option(QL_INSTALL_BENCHMARK "Install benchmark" ON) option(QL_INSTALL_EXAMPLES "Install examples" ON) option(QL_INSTALL_TEST_SUITE "Install test suite" ON) option(QL_TAGGED_LAYOUT "Library names use layout tags" ${MSVC}) option(QL_USE_CLANG_TIDY "Use clang-tidy when building" OFF) option(QL_USE_INDEXED_COUPON "Use indexed coupons instead of par coupons" OFF) option(QL_USE_STD_ANY "Use std::any instead of boost::any" OFF) option(QL_USE_STD_CLASSES "Enable all QL_USE_STD_ options" OFF) option(QL_USE_STD_FUNCTION "Use std::function and std::bind instead of Boost ones" ON) option(QL_USE_STD_OPTIONAL "Use std::optional instead of boost::optional" OFF) option(QL_USE_STD_SHARED_PTR "Use standard smart pointers instead of Boost ones" OFF) option(QL_USE_STD_TUPLE "Use std::tuple instead of boost::tuple" ON) set(QL_EXTERNAL_SUBDIRECTORIES "" CACHE STRING "Optional list of external source directories to be added to the build (semicolon-separated)") set(QL_EXTRA_LINK_LIBRARIES "" CACHE STRING "Optional extra link libraries to add to QuantLib") # Require C++14 or higher if (NOT DEFINED CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 14) elseif(CMAKE_CXX_STANDARD LESS 14) message(FATAL_ERROR "Please specify CMAKE_CXX_STANDARD of 14 or higher") endif() if (NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED) set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() # Avoid use of compiler language extensions, i.e. -std=c++14 not -std=gnu++14 if (NOT DEFINED CMAKE_CXX_EXTENSIONS) set(CMAKE_CXX_EXTENSIONS FALSE) endif() # Convenience option to activate all STD options if (QL_USE_STD_CLASSES) if (CMAKE_CXX_STANDARD GREATER_EQUAL 17) set(QL_USE_STD_ANY ON) set(QL_USE_STD_OPTIONAL ON) endif() set(QL_USE_STD_FUNCTION ON) set(QL_USE_STD_SHARED_PTR ON) set(QL_USE_STD_TUPLE ON) endif() if (CMAKE_CXX_STANDARD LESS 17) if (QL_USE_STD_ANY) message(FATAL_ERROR "QL_USE_STD_ANY requires at least C++17") endif() if (QL_USE_STD_OPTIONAL) message(FATAL_ERROR "QL_USE_STD_OPTIONAL requires at least C++17") endif() endif () # Set the default warning level we use to pass the GitHub workflows if (QL_ENABLE_DEFAULT_WARNING_LEVEL) if (MSVC) # warning level 3 # There are also specific warnings disabled for MSCV in cmake/Platform.cmake. add_compile_options(-W3) elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") # lots of warnings add_compile_options(-Wall -Wno-unknown-pragmas) endif() endif() # Treat warnings on compile as errors if (QL_COMPILE_WARNING_AS_ERROR) # all compiler warnings as errors if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") # since v3.24 cmake can set all compiler warnings as errors itself set(CMAKE_COMPILE_WARNING_AS_ERROR ON) else() # or set them manually if (MSVC) add_compile_options(-WX) elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") add_compile_options(-Werror) endif() endif() endif() if (QL_USE_CLANG_TIDY) if (NOT DEFINED QL_CLANG_TIDY) set(QL_CLANG_TIDY clang-tidy) endif() if (NOT DEFINED QL_CLANG_TIDY_OPTIONS) set(QL_CLANG_TIDY_OPTIONS) endif() if (QL_CLANG_TIDY_OPTIONS) set(CMAKE_CXX_CLANG_TIDY "${QL_CLANG_TIDY};${QL_CLANG_TIDY_OPTIONS}") else() set(CMAKE_CXX_CLANG_TIDY "${QL_CLANG_TIDY}") endif() endif() # Project shared libs ON for UNIX if (NOT DEFINED BUILD_SHARED_LIBS) set(BUILD_SHARED_LIBS ${UNIX}) endif() # Boost static libs ON for MSVC if (NOT DEFINED Boost_USE_STATIC_LIBS) set(Boost_USE_STATIC_LIBS ${MSVC}) endif() # Boost static runtime ON for MSVC if (NOT DEFINED Boost_USE_STATIC_RUNTIME) set(Boost_USE_STATIC_RUNTIME ${MSVC}) endif() if (NOT DEFINED QL_BOOST_VERSION) # Boost 1.75.0 or greater required for compiling with C++20 if (CMAKE_CXX_STANDARD GREATER_EQUAL 20) set(QL_BOOST_VERSION 1.75.0) else() set(QL_BOOST_VERSION 1.58.0) endif() endif() if (CMAKE_CXX_COMPILER STREQUAL "icpx") find_package(IntelDPCPP REQUIRED) endif() find_package(Boost ${QL_BOOST_VERSION} REQUIRED) # Do not warn about Boost versions higher than 1.58.0 set(Boost_NO_WARN_NEW_VERSIONS ON) # Avoid using Boost auto-linking add_compile_definitions(BOOST_ALL_NO_LIB) if (QL_ENABLE_OPENMP) find_package(OpenMP REQUIRED) endif() # Prefer pthread flag as per https://cmake.org/cmake/help/latest/module/FindThreads.html if (NOT DEFINED THREADS_PREFER_PTHREAD_FLAG) set(THREADS_PREFER_PTHREAD_FLAG ON) endif() # Add Threads dependency when any of the threading features are enabled if (QL_ENABLE_PARALLEL_UNIT_TEST_RUNNER OR QL_ENABLE_SESSIONS OR QL_ENABLE_THREAD_SAFE_OBSERVER_PATTERN) find_package(Threads REQUIRED) # Parallel test runner needs library rt on *nix for shm_open, etc. if (QL_ENABLE_PARALLEL_UNIT_TEST_RUNNER AND UNIX AND NOT APPLE) find_library(RT_LIBRARY rt REQUIRED) set(QL_THREAD_LIBRARIES Threads::Threads ${RT_LIBRARY}) else() set(QL_THREAD_LIBRARIES Threads::Threads) endif() endif() # If available, use PIC for shared libs and PIE for executables if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE) set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() if (CMAKE_POSITION_INDEPENDENT_CODE) # cmake policy CMP0083: add PIE support if possible (need cmake 3.14) include(CheckPIESupported) check_pie_supported() endif() # Configure files set(QL_HAVE_CONFIG_H ON) set(QL_VERSION ${PACKAGE_VERSION}) set(QL_HEX_VERSION ${PACKAGE_VERSION_HEX}) configure_file(ql/config.hpp.cfg ql/config.hpp @ONLY) configure_file(ql/qldefines.hpp.cfg ql/qldefines.hpp @ONLY) # Generate quantlib-config # Define the variables to be substituted in the input file set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix "\${prefix}") set(includedir "\${prefix}/include") set(libdir "\${exec_prefix}/lib") configure_file(quantlib-config.in quantlib-config @ONLY) include(Platform) # Check for library name layout tagging if (QL_TAGGED_LAYOUT) if (${CMAKE_SIZEOF_VOID_P} EQUAL 8) set(DEBUG_POSTFIX "-x64") set(RELEASE_POSTFIX "-x64") endif() set(DEBUG_POSTFIX ${DEBUG_POSTFIX}-mt) set(RELEASE_POSTFIX ${RELEASE_POSTFIX}-mt) if (CMAKE_MSVC_RUNTIME_LIBRARY MATCHES ".*DLL$") set(DEBUG_POSTFIX ${DEBUG_POSTFIX}-gd) else() set(DEBUG_POSTFIX ${DEBUG_POSTFIX}-sgd) set(RELEASE_POSTFIX ${RELEASE_POSTFIX}-s) endif() set(CMAKE_DEBUG_POSTFIX ${DEBUG_POSTFIX}) set(CMAKE_RELEASE_POSTFIX ${RELEASE_POSTFIX}) set(CMAKE_RELWITHDEBINFO_POSTFIX ${RELEASE_POSTFIX}) set(CMAKE_MINSIZEREL_POSTFIX ${RELEASE_POSTFIX}) endif() include(CTest) # extension subdirectories if they exist (hook for external projects) foreach(extdir ${QL_EXTERNAL_SUBDIRECTORIES}) get_filename_component(name_without_dir "${extdir}" NAME) add_subdirectory(${extdir} ${name_without_dir}) endforeach() # Add subdirectories add_subdirectory(ql) if (QL_BUILD_EXAMPLES) add_subdirectory(Examples) endif() if (QL_BUILD_TEST_SUITE OR QL_BUILD_BENCHMARK) add_subdirectory(test-suite) endif() if ('${CMAKE_CXX_COMPILER_ID}' MATCHES 'Clang' AND QL_BUILD_FUZZ_TEST_SUITE) add_subdirectory(fuzz-test-suite) endif() # CPack support (make package, make package_source) set(CPACK_PACKAGE_VERSION_MAJOR ${QUANTLIB_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${QUANTLIB_VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${QUANTLIB_VERSION_PATCH}) set(CPACK_PACKAGE_FILE_NAME ${PACKAGE_NAME}-${PACKAGE_VERSION}) set(CPACK_GENERATOR "TGZ" "ZIP" "7Z") set(CPACK_SOURCE_PACKAGE_FILE_NAME ${PACKAGE_NAME}-${PACKAGE_VERSION}) set(CPACK_SOURCE_GENERATOR "TGZ" "ZIP" "7Z") set(CPACK_SOURCE_IGNORE_FILES "~$" "\\\\.swp$" "/[Bb]uild" "/\\\\.app" "/\\\\.cla" "/\\\\.cod" "/\\\\.git" "/\\\\.lgt" "/\\\\.mis") include(CPack) QuantLib-1.33/CMakePresets.json000066400000000000000000000201261455304614400164070ustar00rootroot00000000000000{ "version": 3, "configurePresets": [ { "name": "windows-base", "hidden": true, "binaryDir": "${sourceDir}/build/${presetName}", "architecture": { "value": "x64", "strategy": "external" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "windows-msvc-base", "hidden": true, "inherits": "windows-base", "cacheVariables": { "CMAKE_CXX_COMPILER": "cl.exe" }, "vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { "intelliSenseMode": "windows-msvc-x64" } } }, { "name": "windows-clang-base", "hidden": true, "inherits": "windows-base", "cacheVariables": { "CMAKE_CXX_COMPILER": "clang-cl.exe" }, "vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { "intelliSenseMode": "windows-clang-x64" } } }, { "name": "linux-base", "hidden": true, "binaryDir": "${sourceDir}/build/${presetName}", "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" }, "vendor": { "microsoft.com/VisualStudioRemoteSettings/CMake/1.0": { "sourceDir": "$env{HOME}/.vs/$ms{projectDirName}" }, "microsoft.com/VisualStudioSettings/CMake/1.0": { "intelliSenseMode": "linux-gcc-x64", "hostOS": [ "Linux" ] } } }, { "name": "linux-gcc-base", "hidden": true, "inherits": "linux-base", "cacheVariables": { "CMAKE_CXX_COMPILER": "g++" } }, { "name": "linux-clang-base", "hidden": true, "inherits": "linux-base", "cacheVariables": { "CMAKE_CXX_COMPILER": "clang++" } }, { "name": "apple-arm64-base", "hidden": true, "binaryDir": "${sourceDir}/build/${presetName}", "architecture": { "value": "arm64", "strategy": "external" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "ninja", "hidden": true, "generator": "Ninja" }, { "name": "make", "hidden": true, "generator": "Unix Makefiles" }, { "name": "_release", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" } }, { "name": "_debug", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } }, { "name": "_relwithdebinfo", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, { "name": "linux-clang-debug", "inherits": [ "linux-clang-base", "make", "_debug" ] }, { "name": "linux-clang-release", "inherits": [ "linux-clang-base", "make", "_release" ] }, { "name": "linux-clang-relwithdebinfo", "inherits": [ "linux-clang-base", "make", "_relwithdebinfo" ] }, { "name": "linux-gcc-debug", "inherits": [ "linux-gcc-base", "make", "_debug" ] }, { "name": "linux-gcc-release", "inherits": [ "linux-gcc-base", "make", "_release" ] }, { "name": "linux-gcc-relwithdebinfo", "inherits": [ "linux-gcc-base", "make", "_relwithdebinfo" ] }, { "name": "linux-clang-ninja-debug", "inherits": [ "ninja", "linux-clang-debug" ] }, { "name": "linux-clang-ninja-release", "inherits": [ "ninja", "linux-clang-release" ] }, { "name": "linux-clang-ninja-relwithdebinfo", "inherits": [ "ninja", "linux-clang-relwithdebinfo" ] }, { "name": "linux-gcc-ninja-debug", "inherits": [ "ninja", "linux-gcc-debug" ] }, { "name": "linux-gcc-ninja-release", "inherits": [ "ninja", "linux-gcc-release" ] }, { "name": "linux-gcc-ninja-relwithdebinfo", "inherits": [ "ninja", "linux-gcc-relwithdebinfo" ] }, { "name": "linux-gcc-debug-with-clang-tidy", "inherits": [ "linux-gcc-debug" ], "cacheVariables": { "QL_CLANG_TIDY_OPTIONS": "-warnings-as-errors=*", "QL_USE_CLANG_TIDY": "ON" } }, { "name": "windows-clang-release", "inherits": [ "windows-clang-base", "ninja", "_release" ] }, { "name": "windows-clang-debug", "inherits": [ "windows-clang-base", "ninja", "_debug" ] }, { "name": "windows-clang-relwithdebinfo", "inherits": [ "windows-clang-base", "ninja", "_relwithdebinfo" ] }, { "name": "windows-msvc-release", "inherits": [ "windows-msvc-base", "ninja", "_release" ] }, { "name": "windows-msvc-debug", "inherits": [ "windows-msvc-base", "ninja", "_debug" ] }, { "name": "windows-msvc-relwithdebinfo", "inherits": [ "windows-msvc-base", "ninja", "_relwithdebinfo" ] }, { "name": "linux-ci-build-with-clang-tidy", "inherits": [ "linux-gcc-debug" ], "cacheVariables": { "BOOST_ROOT": "/usr", "CMAKE_UNITY_BUILD": "ON", "QL_CLANG_TIDY": "clang-tidy-15", "QL_CLANG_TIDY_OPTIONS": "-quiet;-fix", "QL_USE_CLANG_TIDY": "ON", "QL_USE_STD_CLASSES": "ON" } }, { "name": "linux-ci-build-with-nonstandard-options", "inherits": [ "linux-gcc-ninja-release" ], "cacheVariables": { "BOOST_ROOT": "/usr", "BUILD_SHARED_LIBS": false, "CMAKE_CXX_STANDARD": "17", "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", "QL_ENABLE_SESSIONS": "ON", "QL_ENABLE_THREAD_SAFE_OBSERVER_PATTERN": "ON", "QL_HIGH_RESOLUTION_DATE": "ON", "QL_FASTER_LAZY_OBJECTS": "OFF", "QL_THROW_IN_CYCLES": "ON", "QL_NULL_AS_FUNCTIONS": "ON", "QL_USE_INDEXED_COUPON": "ON", "QL_USE_STD_SHARED_PTR": "ON", "QL_USE_STD_ANY": "ON", "QL_USE_STD_OPTIONAL": "ON", "QL_USE_STD_FUNCTION": "OFF", "QL_USE_STD_TUPLE": "OFF", "QL_COMPILE_WARNING_AS_ERROR": "ON" } }, { "name": "windows-ci-build-with-nonstandard-options", "inherits": [ "windows-msvc-release" ], "cacheVariables": { "CMAKE_CXX_STANDARD": "17", "CMAKE_UNITY_BUILD": "ON", "QL_ENABLE_SESSIONS": "ON", "QL_ENABLE_THREAD_SAFE_OBSERVER_PATTERN": "ON", "QL_HIGH_RESOLUTION_DATE": "ON", "QL_FASTER_LAZY_OBJECTS": "OFF", "QL_THROW_IN_CYCLES": "ON", "QL_NULL_AS_FUNCTIONS": "ON", "QL_USE_INDEXED_COUPON": "ON", "QL_USE_STD_SHARED_PTR": "ON", "QL_USE_STD_ANY": "ON", "QL_USE_STD_OPTIONAL": "ON", "QL_USE_STD_FUNCTION": "OFF", "QL_USE_STD_TUPLE": "OFF", "QL_COMPILE_WARNING_AS_ERROR": "ON", "CMAKE_CXX_COMPILER_LAUNCHER": "sccache" } }, { "name": "apple-arm64-ninja-debug", "description": "Apple M series preset Debug", "inherits": [ "apple-arm64-base", "ninja", "_debug" ] }, { "name": "apple-arm64-ninja-release", "description": "Apple M series preset Release", "inherits": [ "apple-arm64-base", "ninja", "_release" ] }, { "name": "apple-arm64-ninja-relwithdebinfo", "description": "Apple M series preset RelWithDebInfo", "inherits": [ "apple-arm64-base", "ninja", "_relwithdebinfo" ] } ] } QuantLib-1.33/CONTRIBUTING.md000066400000000000000000000036311455304614400154210ustar00rootroot00000000000000 # Contributing to QuantLib Thanks for considering a contribution! We're looking forward to it. The preferred way to contribute is through a pull request on GitHub. This gives us some convenient tooling to look at your changes and provide feedback; also, opening a pull request triggers automated building and testing of your code and often gives you feedback before a human has a chance to look at it (the time we can give to the project is, unfortunately, limited). So, in short: get a GitHub account if you don't have it already and clone the repository at with the "Fork" button in the top right corner of the page. Check out your clone to your machine, code away, push your changes to your clone and submit a pull request: links to more detailed instructions are at the end of this file. A note: a pull request will show any new changes committed and pushed to the corresponding branch. For this reason, we strongly advise you to use a feature branch for your changes, instead of your `master` branch. This gives you the freedom to add unrelated changes to your master, and also gives the maintainers the freedom to push further changes to the branch. It's likely that we won't merge your code right away, and we'll ask for some changes instead. Don't be discouraged! That's normal; the library is complex, and thus it might take some time to become familiar with it and to use it in an idiomatic way. Again, thanks — and welcome! We're looking forward to your contributions. #### Useful links Instructions for forking a cloning a repository are at . More detailed instructions for creating pull requests are at . Finally, a basic guide to GitHub is at . GitHub also provides interactive learning at . QuantLib-1.33/ChangeLog.txt000066400000000000000000007241221455304614400155650ustar00rootroot00000000000000commit 9b0ef744951aa69c4e6a8ed796282bfa622b795e Merge: a6f874bc0 c5f6ac108 Author: Luigi Ballabio Date: Sat, 20 Jan 2024 23:39:37 +0100 Fix building parallel test runner (#1889) commit a6f874bc034d48a67f507c20fedd7ae327a5193a Author: Luigi Ballabio Date: Fri, 19 Jan 2024 10:24:22 +0100 Update changelog ChangeLog.txt | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) commit 58a908d202289cc6da5a302e57d3a50421432017 Author: Luigi Ballabio Date: Mon, 12 Jul 2021 09:46:54 +0200 Set version to 1.33 final. CMakeLists.txt | 4 ++-- configure.ac | 2 +- ql/version.hpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit e9422af1e7d46379bc6c38df46dd0e3d071ab09d Author: Luigi Ballabio Date: Wed, 17 Jan 2024 21:23:39 +0100 Use all available cores on Action runners .github/workflows/coveralls.yml | 2 +- .github/workflows/linux-full-tests.yml | 2 +- .github/workflows/linux-nondefault.yml | 2 +- .github/workflows/linux.yml | 2 +- .github/workflows/sanitizer.yml | 4 ++-- .github/workflows/test-times.yml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) commit 69cc0ccf32bd56f78ca6434849eb11c0c349d1dc Author: Luigi Ballabio Date: Tue, 16 Jan 2024 14:54:10 +0100 Update news Docs/pages/history.docs | 14 +++++++++----- News.md | 19 +++++++++++++------ 2 files changed, 22 insertions(+), 11 deletions(-) commit 7fbbf5f892792952e1a24c29177eeab5a0ea0c45 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 09:14:27 +0000 Update copyright list in license LICENSE.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03e86a168a27db63d4d6d0281d7b563f98a501a1 Merge: 9d2c7b2b4 6582fad9c Author: Luigi Ballabio Date: Wed, 17 Jan 2024 10:15:18 +0100 Move calendar imports where they are used (#1885) commit 9d2c7b2b4e4167635919ff943d10f792e6dc4df9 Merge: f094be00f 014a9a2f0 Author: Luigi Ballabio Date: Wed, 17 Jan 2024 10:14:09 +0100 Add Inauguration Day to Mexican calendar (#1884) commit c5f6ac108231a8dbae462fb9b7a8f2c96910cc68 Author: Eugene Toder Date: Tue, 16 Jan 2024 21:15:30 -0500 Fix building parallel test runner We are missing #include of the config option to select parallel test runner, so we always end up with the standard one. test-suite/quantlibtestsuite.cpp | 2 ++ 1 file changed, 2 insertions(+) commit 6582fad9ca941417bf8bc361730c98df39d114b0 Author: Fredrik Gerdin Börjesson Date: Tue, 16 Jan 2024 18:48:09 +0100 Move calendar imports where they are used ql/indexes/ibor/thbfix.hpp | 3 --- ql/termstructures/yield/overnightindexfutureratehelper.cpp | 1 + ql/termstructures/yield/ratehelpers.cpp | 1 - ql/termstructures/yield/ratehelpers.hpp | 1 - test-suite/overnightindexedswap.cpp | 1 + 5 files changed, 2 insertions(+), 5 deletions(-) commit 014a9a2f0f34e7cd43aa932689cbef1e1c30f5c0 Author: Fredrik Gerdin Börjesson Date: Tue, 16 Jan 2024 18:46:48 +0100 Add Inauguration Day to Mexican calendar ql/time/calendars/mexico.cpp | 3 +++ ql/time/calendars/mexico.hpp | 2 ++ test-suite/calendars.cpp | 42 +++++++++++++++++++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 1 deletion(-) commit f094be00f7ea262aafa230f8b72485b180ed8b97 Merge: 32f57d05e 6909bfc1b Author: Luigi Ballabio Date: Fri, 12 Jan 2024 08:54:57 +0100 New Brazilian holiday (#1879) commit 32f57d05e8bf5555b446dfcd8addbf013b08ad81 Author: Luigi Ballabio Date: Wed, 10 Jan 2024 08:48:50 +0100 Back to Artifactory for Boost downloads This reverts commit 484e48af47ed6b8cf37be5a45e0962a572940a1f. .github/workflows/cmake.yml | 6 +++--- .github/workflows/msvc-analysis.yml | 2 +- dockerfiles/ci.Dockerfile | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 19c991861075efb195071b27447897932ec434c9 Author: Luigi Ballabio Date: Mon, 8 Jan 2024 17:33:23 +0100 Disable compile-time bound check in CI build .github/workflows/linux-nondefault.yml | 1 + 1 file changed, 1 insertion(+) commit a643b957415898a4587306d706d94af2b7d7f27e Merge: 2e5a77b20 d860bf0c3 Author: Luigi Ballabio Date: Tue, 9 Jan 2024 20:37:48 +0100 Fixes to maintain AAD compatibility (#1881) commit d860bf0c3f1710328d818438de1d9de146423757 Author: Auto Differentiation Dev Team Date: Tue, 9 Jan 2024 15:34:49 +0000 Consistently using QL_CHECK_XXX macros test-suite/americanoption.cpp | 18 +++++++++--------- test-suite/functions.cpp | 12 ++++++------ test-suite/hestonmodel.cpp | 10 +++++----- test-suite/integrals.cpp | 14 +++++++------- 4 files changed, 27 insertions(+), 27 deletions(-) commit bf4b0bec06f1fd8f2d020be4576e248e16e5fc17 Author: Auto Differentiation Dev Team Date: Tue, 9 Jan 2024 15:34:43 +0000 Adds utility test macro QL_CHECK_CLOSE_FRACTION, compatible to arbitrary Real types test-suite/utilities.hpp | 1 + 1 file changed, 1 insertion(+) commit 9c40fd424ede69457628bc679f4e0fd8309712ca Author: Auto Differentiation Dev Team Date: Tue, 9 Jan 2024 15:34:30 +0000 Defines constants as double type ql/math/integrals/exponentialintegrals.cpp | 4 ++-- ql/pricingengines/vanilla/analytichestonengine.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 2e5a77b20d9e83ad41c00aa6b5398a0846ce0f9b Author: Luigi Ballabio Date: Wed, 4 Oct 2023 11:52:15 +0200 Set version to 1.33-rc CMakeLists.txt | 4 ++-- configure.ac | 2 +- ql/version.hpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit c517b5eb7cf2f26314a6ca14455ba8761aa36a40 Author: Luigi Ballabio Date: Mon, 8 Jan 2024 12:59:39 +0100 Update news and changelog ChangeLog.txt | 6899 ++++++++++++++++++++++++++++++++++++----------- Contributors.txt | 4 + Docs/pages/history.docs | 76 +- News.md | 199 +- 4 files changed, 5543 insertions(+), 1635 deletions(-) commit 216e962f94454fda33f513783312d6bd8b8c40b9 Author: Luigi Ballabio Date: Mon, 8 Jan 2024 11:22:18 +0100 Remove redundant test and polish a few test messages test-suite/dates.cpp | 4 ++-- test-suite/period.cpp | 8 ++++---- test-suite/prices.cpp | 32 ++++---------------------------- test-suite/timeseries.cpp | 4 ++-- 4 files changed, 12 insertions(+), 36 deletions(-) commit 107483cb14607f94575957d40528e5f5cc71efc8 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 7 Jan 2024 01:30:54 +0000 Automated fixes by clang-tidy test-suite/quantlibbenchmark.cpp | 1 - 1 file changed, 1 deletion(-) commit 484e48af47ed6b8cf37be5a45e0962a572940a1f Author: Luigi Ballabio Date: Sun, 7 Jan 2024 21:18:13 +0100 Download boost binaries from Sourceforge. JFrog now requires authentication. .github/workflows/cmake.yml | 18 +++++++++--------- .github/workflows/msvc-analysis.yml | 6 +++--- dockerfiles/ci.Dockerfile | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) commit 6909bfc1b011d8bd9198e6cf98ac8fcb762dfda3 Author: Paul Date: Sun, 7 Jan 2024 14:46:57 +0100 fix unit test test-suite/amortizingbond.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d892b8d3b33e7bcf5198fcbcf30d2711e45ec899 Author: Paul Date: Sun, 7 Jan 2024 13:49:17 +0100 add Black Awarenedd Day holiday ql/time/calendars/brazil.cpp | 2 ++ ql/time/calendars/brazil.hpp | 1 + 2 files changed, 3 insertions(+) commit dee33df049a031fed50bb3690615c2116015eb84 Merge: 6aca59ed1 84d52647c Author: Luigi Ballabio Date: Fri, 5 Jan 2024 14:03:48 +0100 Added Dec. 31 NYE holiday to Chilean calendar in chile.cpp (#1846) commit 84d52647cc6eb60e409ed9a72d8b1bd78b6a2843 Author: Luigi Ballabio Date: Fri, 5 Jan 2024 11:11:06 +0100 Update chile.hpp ql/time/calendars/chile.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6aca59ed1607d0fe83b1560f22bc7d460d28161a Merge: 7ca3a94d3 4923b7996 Author: Luigi Ballabio Date: Fri, 5 Jan 2024 10:10:14 +0100 Binary search in times (#1876) commit 4923b7996d55b48ca617da5f698d0437b6133ed6 Author: Yi Jiang Date: Thu, 4 Jan 2024 19:15:18 -0500 Shouldn't subtract 1, what was I thinking? ql/models/parameter.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7ca3a94d3352dfc75bc241905c2baac11f5afd4a Merge: 72d410d55 07a972a10 Author: Luigi Ballabio Date: Thu, 4 Jan 2024 14:00:45 +0100 added china calendar for the year 2024 (#1873) commit 07a972a10e09e91d1553b0eb5ed39cd7e9409fff Author: Luigi Ballabio Date: Thu, 4 Jan 2024 10:35:14 +0100 std::set can be initialized directly ql/time/calendars/china.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 745516bcc9828413c1a1d842efc5f769964cffb9 Author: Yi Jiang Date: Wed, 3 Jan 2024 15:35:37 -0500 forgot std:: ql/models/parameter.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7fdddedaf09993365e91cdde98bf96b4aa4a72f5 Author: Yi Jiang Date: Wed, 3 Jan 2024 15:30:37 -0500 Binary search in times ql/models/parameter.hpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 72d410d55bd50a57792231b2ace8eacda4520dbb Author: Luigi Ballabio Date: Wed, 3 Jan 2024 09:10:39 +0100 Add clang 17 to CI build matrix .github/workflows/devenv-images.yml | 2 +- .github/workflows/linux-full-tests.yml | 5 +++++ .github/workflows/linux-nondefault.yml | 5 +++++ .github/workflows/linux.yml | 7 ++++++- 4 files changed, 17 insertions(+), 2 deletions(-) commit 970a5ac8086d6d4e3def6f32a41f64559741e2f9 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 31 Dec 2023 01:23:12 +0000 Automated fixes by clang-tidy ql/time/asx.cpp | 4 ++-- ql/time/ecb.cpp | 8 ++++---- test-suite/quantlibbenchmark.cpp | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) commit 3a044ac11eca4819cce94f1244fb6edc7d252b44 Author: wegamekinglc Date: Mon, 1 Jan 2024 17:47:00 +0800 added china calendar for the year 2024 ql/time/calendars/china.cpp | 21 ++++++++++++++++++--- test-suite/calendars.cpp | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 52 insertions(+), 5 deletions(-) commit 7dfe04c3797552f8853f0368eb8f7c07ef7051cd Merge: 9f29f971f cf68b4746 Author: Luigi Ballabio Date: Thu, 28 Dec 2023 15:01:59 +0100 ASX: simplified/improved implementation; completed test coverage (#1854) commit 9f29f971f9e28c6589352afcb6f8bf3cc6f4a453 Merge: 12f63d5c1 7c5fb9243 Author: Luigi Ballabio Date: Thu, 28 Dec 2023 14:51:38 +0100 ECB: updated hard-coded known dates; simplified/improved implementation; completed test coverage (#1865) commit 12f63d5c1101fbbb3a1d82d13df12f6544fcb5f3 Author: Luigi Ballabio Date: Thu, 28 Dec 2023 12:59:41 +0100 Move test to faster section test-suite/optimizers.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c5fb9243a282481c6c2683a7db8503f6a8465ba Author: Luigi Ballabio Date: Thu, 28 Dec 2023 12:16:50 +0100 Match format with variable signedness ql/time/ecb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea2cbd73d4928976059c336955898938237048f5 Author: Luigi Ballabio Date: Thu, 28 Dec 2023 12:09:10 +0100 Explicitly include required header ql/time/ecb.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 7eb870f7981495a66c1e7ddd6badb7f72a3c52b1 Merge: 5d4d4bbd0 f0e795df7 Author: Luigi Ballabio Date: Wed, 27 Dec 2023 17:58:05 +0100 Period: Complete unit tests (#1867) commit 5d4d4bbd072f93b46adf875d406b24da648a517c Author: Luigi Ballabio Date: Wed, 27 Dec 2023 17:24:10 +0100 Update Doxygen configuration Docs/quantlib.doxy | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 2bc581e8bf9356f7fcf98d9ad0fafb94215e5432 Author: Luigi Ballabio Date: Wed, 27 Dec 2023 16:09:38 +0100 Fix missing doc groups Docs/pages/engines.docs | 6 ++++++ Docs/pages/termstructures.docs | 13 ++++++++++++- ql/experimental/callablebonds/blackcallablebondengine.hpp | 4 ++-- ql/experimental/callablebonds/treecallablebondengine.hpp | 4 ++-- ql/experimental/credit/factorspreadedhazardratecurve.hpp | 2 +- ql/experimental/credit/lossdistribution.hpp | 12 ------------ ql/experimental/credit/riskyassetswapoption.hpp | 1 - ql/experimental/credit/spreadedhazardratecurve.hpp | 2 +- ql/experimental/credit/syntheticcdo.hpp | 2 -- ql/pricingengines/bond/binomialconvertibleengine.hpp | 2 +- ql/pricingengines/bond/discountingbondengine.hpp | 4 ++++ ql/pricingengines/swap/discountingswapengine.hpp | 4 ++++ ql/termstructures/globalbootstrap.hpp | 1 - 13 files changed, 33 insertions(+), 24 deletions(-) commit e5733c4e0c1fcf3272a69c80ad05a4a73ab6aa6c Author: Paul Date: Wed, 27 Dec 2023 14:45:06 +0100 iterate bimap correctly ql/time/ecb.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 850af05dfcab7bf6b40630e098e7d7ab370a0206 Author: Paul Date: Wed, 27 Dec 2023 14:25:38 +0100 case insensitive comparison ql/time/ecb.cpp | 52 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 16 deletions(-) commit d3e4b9c223632a78f51f63e011c10317197f6b06 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 24 Dec 2023 01:29:10 +0000 Automated fixes by clang-tidy ql/math/integrals/exponentialintegrals.cpp | 8 ++++---- ql/pricingengines/vanilla/analytichestonengine.cpp | 11 +++++------ ql/pricingengines/vanilla/analytichestonengine.hpp | 10 +++++----- test-suite/quantlibbenchmark.cpp | 4 ++-- 4 files changed, 16 insertions(+), 17 deletions(-) commit f0e795df79c9835e52e9c5172291e138bc65b3ac Author: Paul Date: Thu, 21 Dec 2023 16:13:26 +0100 test days(Period) test-suite/period.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 08d8a67384760a06d92d4087d43fc3729402ebe8 Author: Paul Date: Thu, 21 Dec 2023 16:10:31 +0100 test months(Period) test-suite/period.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c8c827b3e5faf997bfe13a93b36390be33d9a4f0 Author: Paul Date: Thu, 21 Dec 2023 16:09:43 +0100 test years(Period) test-suite/period.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit bfa4fab431015e1069f4f466ef9b448f9ef96637 Author: Paul Date: Thu, 21 Dec 2023 15:57:47 +0100 add tests for Period -= Period; Period *= Integer test-suite/period.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 7f6b127edec90945f658b7afa0da61d00f50419f Author: Paul Date: Thu, 21 Dec 2023 15:48:13 +0100 add tests for Period(Weeks) += Period(Days) test-suite/period.cpp | 5 +++++ 1 file changed, 5 insertions(+) commit 8d89c75608182be5e68fe24ab87d27ad135855d5 Author: Paul Date: Thu, 21 Dec 2023 15:36:28 +0100 test Period::frequency() test-suite/period.cpp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit c5deb51559525a0e0b6fd6ce3cc7d964abcbb763 Author: Paul Date: Sun, 24 Dec 2023 09:03:32 +0100 simplify month str to enum conversion ql/time/ecb.cpp | 51 ++++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 25 deletions(-) commit 900c02fe2e2c4664613a44fcdcba18211fb74f15 Author: Paul Date: Thu, 21 Dec 2023 15:21:23 +0100 out of bounds access ql/time/ecb.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 97c46ad51167f16efa6f3d6930a344a96170d3b1 Author: Paul Date: Wed, 20 Dec 2023 22:20:54 +0100 BOOST_TEST is slow test-suite/dates.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 9f8c5bb4e51f94cc7a68dd43bc2317f97108f6c7 Author: Paul Date: Wed, 20 Dec 2023 22:12:58 +0100 cleanup: unify code (call boost::to_upper_copy) ql/time/ecb.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 1e607e3f8f3a75e3166ec9790e7e40031f0c173d Author: Paul Date: Wed, 20 Dec 2023 22:03:48 +0100 add ecb maintainence dates (2018..2024) ql/time/ecb.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit cf68b47460fb8f66493b28906805a475668f17b0 Author: Paul Date: Wed, 20 Dec 2023 21:11:32 +0100 only evaluate test message for failure (performance regression otherwise) test-suite/dates.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit e4277c8d9f2732429c6ceacef280cf0fac103ffd Author: Paul Date: Wed, 20 Dec 2023 20:17:02 +0100 std::isdigit needs unsigned char instead of char ql/time/asx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42c3a24ff2eb23812bc45b8b95e0410a48853ae1 Merge: 7cd38086d c1acc8b1c Author: Luigi Ballabio Date: Wed, 20 Dec 2023 16:00:00 +0100 Heston Model: Support for Angled Contour Shift Integrals (#1826) commit c1acc8b1c3bccba222a237894dda23b7d6034053 Author: Luigi Ballabio Date: Wed, 20 Dec 2023 14:40:46 +0100 Remove executable bit from source file ql/pricingengines/vanilla/analytichestonengine.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) commit 7cd38086d663a53b89eaee1a76bbf625a9dfd593 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 15:29:18 +0000 Automated fixes by clang-tidy test-suite/prices.cpp | 4 ++-- test-suite/timegrid.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 0d0d23b9b4651943c835a4a17c47d17e008f6b79 Merge: 5d8a3a592 7dd751cdd Author: Luigi Ballabio Date: Tue, 19 Dec 2023 23:23:06 +0100 Migrated last test cases to automated registration (#1861) commit 57666f2bcbe47bd21db7c43f521f57d23603be88 Author: klaus spanderen Date: Tue, 19 Dec 2023 20:01:07 +0100 fixed QL_REQUIRE condition ql/pricingengines/vanilla/exponentialfittinghestonengine.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 7dd751cdd29d6e1870a73eb662f4b60843c0774b Author: Luigi Ballabio Date: Tue, 19 Dec 2023 15:48:39 +0100 Fix typo acinclude.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45d5750198a642e74f5e125da811d1873126e9c6 Author: Luigi Ballabio Date: Tue, 19 Dec 2023 09:20:49 +0100 Use autogenerated initializer function test-suite/CMakeLists.txt | 1 + test-suite/paralleltestrunner.hpp | 4 ++-- test-suite/quantlibtestsuite.cpp | 12 ++---------- test-suite/testsuite.vcxproj | 4 +++- 4 files changed, 8 insertions(+), 13 deletions(-) commit 5d8a3a59232219b245ce385066114aa05f7f8ea6 Author: Luigi Ballabio Date: Tue, 19 Dec 2023 09:25:57 +0100 Avoid false positives with clang-tidy Array iterators are implemented as pointers in clang (which triggers the rule) but not in all other compilers. test-suite/prices.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b5df4e0f57539423aa559412567e1dfdfab1489 Merge: 04391fcaa 91607179b Author: Luigi Ballabio Date: Tue, 19 Dec 2023 10:13:48 +0100 Stop moving Juneteenth to Friday if Saturday for US-Fed calendar (#1848) commit 04391fcaad910b35e5895018cf3532b982a6e80b Author: Luigi Ballabio Date: Mon, 18 Dec 2023 16:36:59 +0100 Move test to faster section test-suite/andreasenhugevolatilityinterpl.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 3fa1d1fc5063dda5b01befcf67bd9e4ca0470864 Author: Luigi Ballabio Date: Mon, 18 Dec 2023 23:35:02 +0100 Remove libUnitMain from test suite compilation acinclude.m4 | 40 ++++++++++++++++------------------------ test-suite/CMakeLists.txt | 18 ++---------------- test-suite/Makefile.am | 8 ++------ test-suite/main.cpp | 20 -------------------- 4 files changed, 20 insertions(+), 66 deletions(-) commit 6608ead619e2418a699cbe21fcf0102b7729c6f5 Author: moixastrikes Date: Mon, 18 Dec 2023 16:27:07 -0500 Added link to issue 1839 in chile.hpp ql/time/calendars/chile.hpp | 1 + 1 file changed, 1 insertion(+) commit 91607179b9c09a2163fc2c21fe4d77a4fbc3e28d Author: Fredrik Gerdin Börjesson Date: Mon, 18 Dec 2023 17:11:38 +0100 Add docstring with references for US-FED calendar ql/time/calendars/unitedstates.cpp | 3 ++- ql/time/calendars/unitedstates.hpp | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) commit 968a530d6a28ea26d14e886b7c38752c3999f2c7 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:09:43 +0000 Bump github/codeql-action from 2 to 3 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/msvc-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 7ec4fbb3e451cc85371d6fde3c73cfacfabf4965 Merge: 2e8231b2b 66de7b577 Author: Luigi Ballabio Date: Mon, 18 Dec 2023 15:23:41 +0100 Correct Thailand calendar for 2019-2024 (#1857) commit 2e8231b2b07ba04d1e231faf6babda70893b9a57 Merge: a33b3e002 79d1b1f91 Author: Luigi Ballabio Date: Mon, 18 Dec 2023 15:21:16 +0100 TimeSeries: Complete test coverage (#1849) commit a33b3e002b1b0a8c768c460eade7eba6040143e5 Merge: 350f69a61 3966f81d2 Author: Luigi Ballabio Date: Mon, 18 Dec 2023 15:10:12 +0100 Add TWSE holidays for 2024 to Taiwan calendar (#1847) commit 350f69a615f12766b691492a7d329e42474015fe Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:09:37 +0000 Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] .github/workflows/msvc-analysis.yml | 2 +- .github/workflows/test-times.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit c106e66d43033edcd493166137c813473661074f Author: klaus spanderen Date: Sun, 17 Dec 2023 23:20:12 +0100 merge fuzz-test-suite/CMakeLists.txt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 604308a763c4e78e45e2a2cc1357634a70e8a1ab Author: klaus spanderen Date: Sun, 17 Dec 2023 23:14:00 +0100 merge test-suite/CMakeLists.txt | 89 ++------------ test-suite/testsuite.vcxproj | 77 +----------- test-suite/testsuite.vcxproj.filters | 227 ++--------------------------------- 3 files changed, 24 insertions(+), 369 deletions(-) commit d98f85a9e94c292668193dbffe8250af2a900a61 Author: klaus spanderen Date: Sun, 17 Dec 2023 23:06:59 +0100 merge .github/workflows/cmake.yml | 6 +- .github/workflows/devenv-images.yml | 2 +- .github/workflows/msvc-analysis.yml | 2 +- .github/workflows/stale.yml | 2 +- LICENSE.TXT | 2 + fuzz-test-suite/amortizedbondsfuzzer.cpp | 80 + fuzz-test-suite/fuzzamericanoption.cpp | 131 + ql/currency.cpp | 39 +- ql/currency.hpp | 40 + ql/instruments/makeois.cpp | 110 +- ql/instruments/makeois.hpp | 14 +- ql/math/randomnumbers/sobolrsg.cpp | 77973 +++++++++---------- ql/math/randomnumbers/sobolrsg.hpp | 18 +- ql/math/solver1d.hpp | 2 +- ql/money.cpp | 168 +- ql/prices.hpp | 6 +- ql/pricingengines/swaption/blackswaptionengine.hpp | 7 +- ql/termstructures/globalbootstrap.hpp | 39 +- ql/termstructures/yield/oisratehelper.cpp | 33 +- ql/termstructures/yield/oisratehelper.hpp | 10 +- ql/time/date.hpp | 2 +- test-suite/Makefile.am | 88 +- test-suite/americanoption.cpp | 443 +- test-suite/amortizingbond.cpp | 4 +- test-suite/andreasenhugevolatilityinterpl.cpp | 481 +- test-suite/array.cpp | 16 +- test-suite/asianoptions.cpp | 155 +- test-suite/assetswap.cpp | 105 +- test-suite/autocovariances.cpp | 6 +- test-suite/barrieroption.cpp | 136 +- test-suite/basismodels.cpp | 324 +- test-suite/basisswapratehelpers.cpp | 323 +- test-suite/basketoption.cpp | 241 +- test-suite/batesmodel.cpp | 75 +- test-suite/bermudanswaption.cpp | 129 +- test-suite/binaryoption.cpp | 68 +- test-suite/blackdeltacalculator.cpp | 63 +- test-suite/blackformula.cpp | 6 +- test-suite/bondforward.cpp | 76 +- test-suite/bonds.cpp | 81 +- test-suite/brownianbridge.cpp | 47 +- test-suite/businessdayconventions.cpp | 46 +- test-suite/calendars.cpp | 6 +- test-suite/callablebonds.cpp | 91 +- test-suite/capfloor.cpp | 189 +- test-suite/capflooredcoupon.cpp | 260 +- test-suite/cashflows.cpp | 17 +- test-suite/catbonds.cpp | 65 +- test-suite/cdo.cpp | 113 +- test-suite/cdsoption.cpp | 6 +- test-suite/chooseroption.cpp | 10 +- test-suite/cliquetoption.cpp | 253 +- test-suite/cms.cpp | 293 +- test-suite/cms_normal.cpp | 295 +- test-suite/cmsspread.cpp | 17 +- test-suite/commodityunitofmeasure.cpp | 4 +- test-suite/compiledboostversion.cpp | 6 +- test-suite/compoundoption.cpp | 53 +- test-suite/convertiblebonds.cpp | 93 +- test-suite/covariance.cpp | 27 +- test-suite/creditdefaultswap.cpp | 6 +- test-suite/creditriskplus.cpp | 6 +- test-suite/crosscurrencyratehelpers.cpp | 340 +- test-suite/currency.cpp | 8 +- test-suite/curvestates.cpp | 169 +- test-suite/dates.cpp | 6 +- test-suite/daycounters.cpp | 139 +- test-suite/defaultprobabilitycurves.cpp | 221 +- test-suite/digitalcoupon.cpp | 79 +- test-suite/digitaloption.cpp | 37 +- test-suite/distributions.cpp | 342 +- test-suite/dividendoption.cpp | 454 +- test-suite/doublebarrieroption.cpp | 121 +- test-suite/doublebinaryoption.cpp | 38 +- test-suite/equitycashflow.cpp | 240 +- test-suite/equityindex.cpp | 84 +- test-suite/equitytotalreturnswap.cpp | 334 +- test-suite/europeanoption.cpp | 300 +- test-suite/everestoption.cpp | 6 +- test-suite/exchangerate.cpp | 6 +- test-suite/extendedtrees.cpp | 296 +- test-suite/extensibleoptions.cpp | 6 +- test-suite/fastfouriertransform.cpp | 6 +- test-suite/fdcev.cpp | 26 +- test-suite/fdcir.cpp | 4 +- test-suite/fdheston.cpp | 142 +- test-suite/fdmlinearop.cpp | 316 +- test-suite/fdsabr.cpp | 167 +- test-suite/fittedbonddiscountcurve.cpp | 6 +- test-suite/forwardoption.cpp | 289 +- test-suite/forwardrateagreement.cpp | 6 +- test-suite/functions.cpp | 4 +- test-suite/garch.cpp | 92 +- test-suite/gaussianquadratures.cpp | 209 +- test-suite/gjrgarchmodel.cpp | 24 +- test-suite/gsr.cpp | 6 +- test-suite/hestonmodel.cpp | 3 - test-suite/hestonslvmodel.cpp | 865 +- test-suite/himalayaoption.cpp | 6 +- test-suite/hybridhestonhullwhiteprocess.cpp | 248 +- test-suite/indexes.cpp | 6 +- test-suite/inflation.cpp | 310 +- test-suite/inflationcapfloor.cpp | 319 +- test-suite/inflationcapflooredcoupon.cpp | 444 +- test-suite/inflationcpibond.cpp | 203 +- test-suite/inflationcpicapfloor.cpp | 468 +- test-suite/inflationcpiswap.cpp | 360 +- test-suite/inflationvolatility.cpp | 430 +- test-suite/instruments.cpp | 6 +- test-suite/integrals.cpp | 227 +- test-suite/interestrates.cpp | 30 +- test-suite/interpolations.cpp | 310 +- test-suite/jumpdiffusion.cpp | 39 +- test-suite/lazyobject.cpp | 41 +- test-suite/libormarketmodel.cpp | 112 +- test-suite/libormarketmodelprocess.cpp | 105 +- test-suite/linearleastsquaresregression.cpp | 25 +- test-suite/lookbackoptions.cpp | 55 +- test-suite/lowdiscrepancysequences.cpp | 642 +- test-suite/margrabeoption.cpp | 104 +- test-suite/margrabeoption.hpp | 34 - test-suite/marketmodel.hpp | 2 +- test-suite/marketmodel_cms.cpp | 683 +- test-suite/marketmodel_cms.hpp | 37 - test-suite/marketmodel_smm.cpp | 681 +- test-suite/marketmodel_smm.hpp | 50 - .../marketmodel_smmcapletalphacalibration.cpp | 298 +- .../marketmodel_smmcapletalphacalibration.hpp | 34 - test-suite/marketmodel_smmcapletcalibration.cpp | 299 +- test-suite/marketmodel_smmcapletcalibration.hpp | 34 - .../marketmodel_smmcaplethomocalibration.cpp | 327 +- .../marketmodel_smmcaplethomocalibration.hpp | 36 - test-suite/markovfunctional.cpp | 1000 +- test-suite/markovfunctional.hpp | 40 - test-suite/matrices.cpp | 246 +- test-suite/matrices.hpp | 52 - test-suite/mclongstaffschwartzengine.cpp | 153 +- test-suite/mclongstaffschwartzengine.hpp | 37 - test-suite/mersennetwister.cpp | 16 +- test-suite/mersennetwister.hpp | 35 - test-suite/money.cpp | 187 +- test-suite/money.hpp | 37 - test-suite/noarbsabr.cpp | 21 +- test-suite/noarbsabr.hpp | 36 - test-suite/normalclvmodel.cpp | 66 +- test-suite/normalclvmodel.hpp | 37 - test-suite/nthorderderivativeop.cpp | 622 +- test-suite/nthorderderivativeop.hpp | 47 - test-suite/nthtodefault.cpp | 148 +- test-suite/nthtodefault.hpp | 36 - test-suite/numericaldifferentiation.cpp | 137 +- test-suite/numericaldifferentiation.hpp | 38 - test-suite/observable.cpp | 224 +- test-suite/observable.hpp | 41 - test-suite/ode.cpp | 86 +- test-suite/ode.hpp | 38 - test-suite/operators.cpp | 21 +- test-suite/operators.hpp | 38 - test-suite/optimizers.cpp | 540 +- test-suite/optimizers.hpp | 36 - test-suite/optionletstripper.cpp | 663 +- test-suite/optionletstripper.hpp | 42 - test-suite/overnightindexedcoupon.cpp | 154 +- test-suite/overnightindexedcoupon.hpp | 40 - test-suite/overnightindexedswap.cpp | 443 +- test-suite/overnightindexedswap.hpp | 46 - test-suite/pagodaoption.cpp | 16 +- test-suite/pagodaoption.hpp | 32 - test-suite/paralleltestrunner.hpp | 2 +- test-suite/partialtimebarrieroption.cpp | 33 +- test-suite/partialtimebarrieroption.hpp | 35 - test-suite/pathgenerator.cpp | 198 +- test-suite/pathgenerator.hpp | 36 - test-suite/period.cpp | 21 +- test-suite/period.hpp | 37 - test-suite/piecewiseyieldcurve.cpp | 1216 +- test-suite/piecewiseyieldcurve.hpp | 69 - test-suite/piecewisezerospreadedtermstructure.cpp | 147 +- test-suite/piecewisezerospreadedtermstructure.hpp | 43 - test-suite/{speedlevel.cpp => preconditions.cpp} | 9 +- test-suite/{speedlevel.hpp => preconditions.hpp} | 9 +- test-suite/prices.cpp | 213 + test-suite/quantlibglobalfixture.cpp | 22 +- test-suite/quantlibglobalfixture.hpp | 5 +- test-suite/quantlibtestsuite.cpp | 166 +- test-suite/quantooption.cpp | 339 +- test-suite/quantooption.hpp | 48 - test-suite/quotes.cpp | 46 +- test-suite/quotes.hpp | 39 - test-suite/rangeaccrual.cpp | 611 +- test-suite/rangeaccrual.hpp | 36 - test-suite/riskneutraldensitycalculator.cpp | 188 +- test-suite/riskneutraldensitycalculator.hpp | 42 - test-suite/riskstats.cpp | 16 +- test-suite/riskstats.hpp | 35 - test-suite/rngtraits.cpp | 26 +- test-suite/rngtraits.hpp | 39 - test-suite/rounding.cpp | 112 +- test-suite/rounding.hpp | 39 - test-suite/sampledcurve.cpp | 28 +- test-suite/sampledcurve.hpp | 35 - test-suite/schedule.cpp | 118 +- test-suite/schedule.hpp | 59 - test-suite/settings.cpp | 15 +- test-suite/settings.hpp | 35 - test-suite/shortratemodels.cpp | 50 +- test-suite/shortratemodels.hpp | 41 - test-suite/sofrfutures.cpp | 31 +- test-suite/sofrfutures.hpp | 32 - test-suite/solvers.cpp | 281 +- test-suite/solvers.hpp | 43 - test-suite/spreadoption.cpp | 17 +- test-suite/spreadoption.hpp | 35 - test-suite/squarerootclvmodel.cpp | 1026 +- test-suite/squarerootclvmodel.hpp | 34 - test-suite/stats.cpp | 493 +- test-suite/stats.hpp | 41 - test-suite/subperiodcoupons.cpp | 285 +- test-suite/subperiodcoupons.hpp | 42 - test-suite/svivolatility.cpp | 15 +- test-suite/svivolatility.hpp | 35 - test-suite/swap.cpp | 139 +- test-suite/swap.hpp | 41 - test-suite/swapforwardmappings.cpp | 419 +- test-suite/swapforwardmappings.hpp | 37 - test-suite/swaption.cpp | 213 +- test-suite/swaption.hpp | 46 - test-suite/swaptionvolatilitycube.cpp | 219 +- test-suite/swaptionvolatilitycube.hpp | 42 - test-suite/swaptionvolatilitymatrix.cpp | 396 +- test-suite/swaptionvolatilitymatrix.hpp | 36 - test-suite/swingoption.cpp | 144 +- test-suite/swingoption.hpp | 40 - test-suite/termstructures.cpp | 186 +- test-suite/termstructures.hpp | 45 - test-suite/timegrid.cpp | 75 +- test-suite/timegrid.hpp | 38 - test-suite/timeseries.cpp | 21 +- test-suite/timeseries.hpp | 38 - test-suite/tqreigendecomposition.cpp | 24 +- test-suite/tqreigendecomposition.hpp | 37 - test-suite/tracing.cpp | 86 +- test-suite/tracing.hpp | 35 - test-suite/transformedgrid.cpp | 15 +- test-suite/transformedgrid.hpp | 35 - test-suite/twoassetbarrieroption.cpp | 48 +- test-suite/twoassetbarrieroption.hpp | 35 - test-suite/twoassetcorrelationoption.cpp | 17 +- test-suite/twoassetcorrelationoption.hpp | 35 - test-suite/ultimateforwardtermstructure.cpp | 227 +- test-suite/ultimateforwardtermstructure.hpp | 41 - test-suite/variancegamma.cpp | 48 +- test-suite/variancegamma.hpp | 38 - test-suite/varianceoption.cpp | 16 +- test-suite/varianceoption.hpp | 35 - test-suite/varianceswaps.cpp | 95 +- test-suite/varianceswaps.hpp | 36 - test-suite/volatilitymodels.cpp | 15 +- test-suite/volatilitymodels.hpp | 35 - test-suite/vpp.cpp | 390 +- test-suite/vpp.hpp | 40 - test-suite/xoshiro256starstar.cpp | 27 +- test-suite/xoshiro256starstar.hpp | 34 - test-suite/zabr.cpp | 19 +- test-suite/zabr.hpp | 36 - test-suite/zerocouponswap.cpp | 332 +- test-suite/zerocouponswap.hpp | 37 - 267 files changed, 53943 insertions(+), 58024 deletions(-) commit 7b7553ad637dd6f27ff6f7287ecb97ea187796e1 Merge: 2dfb5b3bf f43052105 Author: klaus spanderen Date: Sun, 17 Dec 2023 22:46:45 +0100 merge commit 2dfb5b3bf2abcdff878bab5ee40eb6935ead80d6 Author: klaus spanderen Date: Sun, 17 Dec 2023 20:32:49 +0100 bring back deprecated function ql/pricingengines/vanilla/analytichestonengine.cpp | 98 +++++++++++++++++++++- ql/pricingengines/vanilla/analytichestonengine.hpp | 18 ++++ 2 files changed, 115 insertions(+), 1 deletion(-) commit 23b94c3f7680cad17cd067e36d18e1e06c8fb9e0 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:15:55 +0800 Migrated marketmodel.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/marketmodel.cpp | 1626 ++++++++++++++++------------------ test-suite/marketmodel.hpp | 61 -- test-suite/quantlibtestsuite.cpp | 10 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 760 insertions(+), 943 deletions(-) commit f43052105e8d003e00800e639f5125a20f3eb96e Merge: 119c2f61f 98822d7ba Author: Luigi Ballabio Date: Sun, 17 Dec 2023 19:50:35 +0100 Cleanup of automated tests (#1860) commit bc9ae0463dc637cbc57f412fc61607b366673758 Author: klaus spanderen Date: Sun, 17 Dec 2023 17:25:02 +0100 eliminate separate enum .../vanilla/exponentialfittinghestonengine.cpp | 18 +++++++----------- .../vanilla/exponentialfittinghestonengine.hpp | 20 +++----------------- test-suite/hestonmodel.cpp | 2 +- 3 files changed, 11 insertions(+), 29 deletions(-) commit 81c4add50fed5d769fdbbea9bde98a5fe66bd54b Author: Paul Date: Sun, 17 Dec 2023 15:33:43 +0100 cleanup: remove debug code test-suite/dates.cpp | 3 --- 1 file changed, 3 deletions(-) commit e5e01b7f2d69312de6f4f1768e84a07873443da7 Author: Paul Date: Sun, 17 Dec 2023 15:22:41 +0100 ECB::isECBcode(code string): no temp string heap allocations ql/time/ecb.cpp | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) commit 9b10957b5504121bb9dd9feeec4af005154558a4 Author: Paul Date: Sun, 17 Dec 2023 15:21:30 +0100 ECB::isECBcode(code string) tests test-suite/dates.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 119c2f61fefb4d8fdba198e8029a40290b0a6185 Author: Luigi Ballabio Date: Thu, 14 Dec 2023 18:33:53 +0100 Upgrade some CI builds to Boost 1.84.0 .github/workflows/cmake.yml | 6 +++--- .github/workflows/msvc-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 98822d7ba7c691f2972eb012d6e02b7b1516fc92 Author: Luigi Ballabio Date: Sun, 17 Dec 2023 10:02:24 +0100 Remove unnecessary anonymous namespaces test-suite/americanoption.cpp | 414 ++++---- test-suite/andreasenhugevolatilityinterpl.cpp | 431 +++++---- test-suite/array.cpp | 10 +- test-suite/asianoptions.cpp | 117 ++- test-suite/assetswap.cpp | 77 +- test-suite/barrieroption.cpp | 114 ++- test-suite/basismodels.cpp | 318 +++--- test-suite/basisswapratehelpers.cpp | 305 +++--- test-suite/basketoption.cpp | 221 +++-- test-suite/batesmodel.cpp | 67 +- test-suite/bermudanswaption.cpp | 113 ++- test-suite/binaryoption.cpp | 58 +- test-suite/blackdeltacalculator.cpp | 47 +- test-suite/bondforward.cpp | 64 +- test-suite/bonds.cpp | 49 +- test-suite/brownianbridge.cpp | 39 +- test-suite/businessdayconventions.cpp | 35 +- test-suite/callablebonds.cpp | 83 +- test-suite/capfloor.cpp | 163 ++-- test-suite/capflooredcoupon.cpp | 248 +++-- test-suite/catbonds.cpp | 43 +- test-suite/cdo.cpp | 85 +- test-suite/cliquetoption.cpp | 245 +++-- test-suite/cms.cpp | 279 +++--- test-suite/cms_normal.cpp | 281 +++--- test-suite/cmsspread.cpp | 9 +- test-suite/compoundoption.cpp | 39 +- test-suite/convertiblebonds.cpp | 81 +- test-suite/covariance.cpp | 17 +- test-suite/crosscurrencyratehelpers.cpp | 324 ++++--- test-suite/curvestates.cpp | 139 ++- test-suite/daycounters.cpp | 115 ++- test-suite/defaultprobabilitycurves.cpp | 215 ++--- test-suite/digitalcoupon.cpp | 53 +- test-suite/digitaloption.cpp | 27 +- test-suite/distributions.cpp | 328 ++++--- test-suite/dividendoption.cpp | 442 +++++---- test-suite/doublebarrieroption.cpp | 71 +- test-suite/doublebinaryoption.cpp | 30 +- test-suite/equitycashflow.cpp | 220 +++-- test-suite/equityindex.cpp | 54 +- test-suite/equitytotalreturnswap.cpp | 316 +++--- test-suite/europeanoption.cpp | 258 +++-- test-suite/extendedtrees.cpp | 272 +++--- test-suite/fdcev.cpp | 25 +- test-suite/fdheston.cpp | 98 +- test-suite/fdmlinearop.cpp | 238 +++-- test-suite/fdsabr.cpp | 153 ++- test-suite/forwardoption.cpp | 265 +++-- test-suite/garch.cpp | 80 +- test-suite/gaussianquadratures.cpp | 175 ++-- test-suite/hestonmodel.cpp | 266 +++-- test-suite/hestonslvmodel.cpp | 779 ++++++++------- test-suite/hybridhestonhullwhiteprocess.cpp | 200 ++-- test-suite/inflation.cpp | 294 +++--- test-suite/inflationcapfloor.cpp | 305 +++--- test-suite/inflationcapflooredcoupon.cpp | 430 +++++---- test-suite/inflationcpibond.cpp | 191 ++-- test-suite/inflationcpicapfloor.cpp | 454 +++++---- test-suite/inflationcpiswap.cpp | 344 ++++--- test-suite/inflationvolatility.cpp | 414 ++++---- test-suite/integrals.cpp | 152 ++- test-suite/interestrates.cpp | 24 +- test-suite/interpolations.cpp | 307 +++--- test-suite/jumpdiffusion.cpp | 29 +- test-suite/lazyobject.cpp | 25 +- test-suite/libormarketmodel.cpp | 65 +- test-suite/libormarketmodelprocess.cpp | 79 +- test-suite/linearleastsquaresregression.cpp | 17 +- test-suite/lookbackoptions.cpp | 37 +- test-suite/lowdiscrepancysequences.cpp | 629 ++++++------ test-suite/margrabeoption.cpp | 77 +- test-suite/marketmodel_cms.cpp | 631 ++++++------ test-suite/marketmodel_smm.cpp | 617 ++++++------ .../marketmodel_smmcapletalphacalibration.cpp | 277 +++--- test-suite/marketmodel_smmcapletcalibration.cpp | 277 +++--- .../marketmodel_smmcaplethomocalibration.cpp | 277 +++--- test-suite/markovfunctional.cpp | 696 +++++++------- test-suite/matrices.cpp | 165 ++-- test-suite/mclongstaffschwartzengine.cpp | 134 ++- test-suite/money.cpp | 21 +- test-suite/noarbsabr.cpp | 3 +- test-suite/normalclvmodel.cpp | 19 +- test-suite/nthorderderivativeop.cpp | 531 +++++----- test-suite/nthtodefault.cpp | 105 +- test-suite/numericaldifferentiation.cpp | 91 +- test-suite/observable.cpp | 148 ++- test-suite/ode.cpp | 67 +- test-suite/optimizers.cpp | 502 +++++----- test-suite/optionletstripper.cpp | 614 ++++++------ test-suite/overnightindexedcoupon.cpp | 88 +- test-suite/overnightindexedswap.cpp | 333 ++++--- test-suite/partialtimebarrieroption.cpp | 15 +- test-suite/pathgenerator.cpp | 179 ++-- test-suite/piecewiseyieldcurve.cpp | 1012 ++++++++++---------- test-suite/piecewisezerospreadedtermstructure.cpp | 77 +- test-suite/quantooption.cpp | 136 ++- test-suite/quotes.cpp | 15 +- test-suite/rangeaccrual.cpp | 577 ++++++----- test-suite/riskneutraldensitycalculator.cpp | 142 ++- test-suite/rounding.cpp | 69 +- test-suite/sampledcurve.cpp | 11 +- test-suite/schedule.cpp | 27 +- test-suite/shortratemodels.cpp | 13 +- test-suite/sofrfutures.cpp | 17 +- test-suite/solvers.cpp | 245 +++-- test-suite/squarerootclvmodel.cpp | 277 +++--- test-suite/stats.cpp | 452 +++++---- test-suite/subperiodcoupons.cpp | 236 +++-- test-suite/swap.cpp | 91 +- test-suite/swapforwardmappings.cpp | 217 ++--- test-suite/swaption.cpp | 126 ++- test-suite/swaptionvolatilitycube.cpp | 159 ++- test-suite/swaptionvolatilitymatrix.cpp | 367 ++++--- test-suite/swingoption.cpp | 75 +- test-suite/termstructures.cpp | 119 ++- test-suite/tracing.cpp | 71 +- test-suite/twoassetbarrieroption.cpp | 33 +- test-suite/ultimateforwardtermstructure.cpp | 180 ++-- test-suite/variancegamma.cpp | 32 +- test-suite/varianceswaps.cpp | 69 +- test-suite/vpp.cpp | 291 +++--- test-suite/zerocouponswap.cpp | 307 +++--- 123 files changed, 11946 insertions(+), 12355 deletions(-) commit 0e9eb9e965344240a72cea10476a9dbf75a0d943 Author: Paul Date: Sat, 16 Dec 2023 16:00:54 +0100 ECB::nextCode(code string): removed temp strings in implementation ql/time/ecb.cpp | 67 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 27 deletions(-) commit d41cc2ae585eae912a6f5f790c9c528053de0dd4 Author: Paul Date: Sat, 16 Dec 2023 15:22:44 +0100 ECB::nextCode(code string) tests test-suite/dates.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 319a750f33cd63d5d4d3e5fbb72c7941d2602be1 Author: Paul Date: Sat, 16 Dec 2023 15:16:25 +0100 ECB::code(date) simplification + no temp strings ql/time/ecb.cpp | 64 +++++++++++++-------------------------------------------- 1 file changed, 14 insertions(+), 50 deletions(-) commit d66e597f36d90987ad9fed6df209fa6e9c92ba5b Author: Paul Date: Sat, 16 Dec 2023 14:17:38 +0100 ECB::code(date) tests test-suite/dates.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7f690fc81073856bb21124ee14051fd26212ce04 Author: Paul Date: Sat, 16 Dec 2023 13:55:39 +0100 cleanup: move static object into anonymous ns ql/time/ecb.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit dfff9140712d729b83866df418ed0503c09076d5 Author: Paul Date: Sat, 16 Dec 2023 13:51:33 +0100 cleanup: format array of dates; include archive.org link to data ql/time/ecb.cpp | 73 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 31 deletions(-) commit f79a76bf59b72dc58fa934fe5fb589d99738fa10 Author: Paul Date: Wed, 13 Dec 2023 19:14:17 +0100 ECB::date(code) tests test-suite/dates.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit c56cac2c2ceb598741181628a13e5516773a8413 Author: Paul Date: Sat, 16 Dec 2023 13:07:38 +0100 boost::string_view::contains not available in older versions ql/time/asx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bedde48f5fa36c27702b5d1dfc2c209029ee16bc Merge: e03b7c383 c9b2ead68 Author: Luigi Ballabio Date: Fri, 15 Dec 2023 17:31:56 +0100 Fix typo (#1858) commit 6171c004459165cff3918fbf1f2b0af9513877ff Author: Luigi Ballabio Date: Thu, 14 Dec 2023 18:10:22 +0100 Use test-suite namespaces to avoid ambiguities. BOOST_AUTO_TEST_SUITE defines a namespace, so utilities in test files don't need to be in a namespace (anonymous or otherwise) to avoid ambiguities, even in unity builds. test-suite/americanoption.cpp | 10 +-- test-suite/amortizingbond.cpp | 4 +- test-suite/andreasenhugevolatilityinterpl.cpp | 30 ++------ test-suite/array.cpp | 12 ++- test-suite/asianoptions.cpp | 10 +-- test-suite/assetswap.cpp | 30 ++------ test-suite/autocovariances.cpp | 6 +- test-suite/barrieroption.cpp | 18 ++--- test-suite/basismodels.cpp | 8 +- test-suite/basisswapratehelpers.cpp | 20 ++--- test-suite/basketoption.cpp | 8 +- test-suite/batesmodel.cpp | 16 ++-- test-suite/bermudanswaption.cpp | 16 ++-- test-suite/binaryoption.cpp | 16 ++-- test-suite/blackdeltacalculator.cpp | 18 ++--- test-suite/blackformula.cpp | 6 +- test-suite/bondforward.cpp | 18 ++--- test-suite/bonds.cpp | 34 ++------- test-suite/brownianbridge.cpp | 10 +-- test-suite/businessdayconventions.cpp | 15 ++-- test-suite/calendars.cpp | 6 +- test-suite/callablebonds.cpp | 8 +- test-suite/capfloor.cpp | 32 ++------ test-suite/capflooredcoupon.cpp | 14 ++-- test-suite/cashflows.cpp | 6 +- test-suite/catbonds.cpp | 26 ++----- test-suite/cdo.cpp | 16 ++-- test-suite/cdsoption.cpp | 4 +- test-suite/chooseroption.cpp | 10 +-- test-suite/cliquetoption.cpp | 8 +- test-suite/cms.cpp | 18 ++--- test-suite/cms_normal.cpp | 18 ++--- test-suite/cmsspread.cpp | 8 +- test-suite/commodityunitofmeasure.cpp | 4 +- test-suite/compiledboostversion.cpp | 4 +- test-suite/compoundoption.cpp | 16 ++-- test-suite/convertiblebonds.cpp | 16 ++-- test-suite/covariance.cpp | 16 ++-- test-suite/creditdefaultswap.cpp | 6 +- test-suite/creditriskplus.cpp | 4 +- test-suite/crosscurrencyratehelpers.cpp | 18 ++--- test-suite/currency.cpp | 6 +- test-suite/curvestates.cpp | 34 ++------- test-suite/dates.cpp | 6 +- test-suite/daycounters.cpp | 28 +++---- test-suite/defaultprobabilitycurves.cpp | 6 +- test-suite/digitalcoupon.cpp | 28 ++----- test-suite/digitaloption.cpp | 10 +-- test-suite/distributions.cpp | 20 ++--- test-suite/dividendoption.cpp | 10 +-- test-suite/doublebarrieroption.cpp | 16 ++-- test-suite/doublebinaryoption.cpp | 10 +-- test-suite/equitycashflow.cpp | 28 ++----- test-suite/equityindex.cpp | 36 ++------- test-suite/equitytotalreturnswap.cpp | 22 ++---- test-suite/europeanoption.cpp | 56 ++------------ test-suite/everestoption.cpp | 4 +- test-suite/exchangerate.cpp | 6 +- test-suite/extendedtrees.cpp | 32 ++------ test-suite/extensibleoptions.cpp | 4 +- test-suite/fastfouriertransform.cpp | 6 +- test-suite/fdcev.cpp | 9 +-- test-suite/fdcir.cpp | 4 +- test-suite/fdheston.cpp | 16 ++-- test-suite/fdmlinearop.cpp | 14 ++-- test-suite/fdsabr.cpp | 10 +-- test-suite/fittedbonddiscountcurve.cpp | 6 +- test-suite/forwardoption.cpp | 10 +-- test-suite/forwardrateagreement.cpp | 6 +- test-suite/functions.cpp | 6 +- test-suite/garch.cpp | 16 ++-- test-suite/gaussianquadratures.cpp | 30 ++------ test-suite/gjrgarchmodel.cpp | 6 +- test-suite/gsr.cpp | 6 +- test-suite/hestonmodel.cpp | 8 +- test-suite/hestonslvmodel.cpp | 8 +- test-suite/himalayaoption.cpp | 6 +- test-suite/hybridhestonhullwhiteprocess.cpp | 16 ++-- test-suite/indexes.cpp | 6 +- test-suite/inflation.cpp | 18 ++--- test-suite/inflationcapfloor.cpp | 18 ++--- test-suite/inflationcapflooredcoupon.cpp | 16 ++-- test-suite/inflationcpibond.cpp | 16 ++-- test-suite/inflationcpicapfloor.cpp | 16 ++-- test-suite/inflationcpiswap.cpp | 20 ++--- test-suite/inflationvolatility.cpp | 16 ++-- test-suite/instruments.cpp | 6 +- test-suite/integrals.cpp | 87 +++++++-------------- test-suite/interestrates.cpp | 10 +-- test-suite/interpolations.cpp | 9 ++- test-suite/jumpdiffusion.cpp | 10 +-- test-suite/lazyobject.cpp | 22 +++--- test-suite/libormarketmodel.cpp | 20 ++--- test-suite/libormarketmodelprocess.cpp | 16 ++-- test-suite/linearleastsquaresregression.cpp | 10 +-- test-suite/lookbackoptions.cpp | 10 +-- test-suite/lowdiscrepancysequences.cpp | 4 +- test-suite/margrabeoption.cpp | 10 +-- test-suite/marketmodel_cms.cpp | 14 ++-- test-suite/marketmodel_smm.cpp | 14 ++-- .../marketmodel_smmcapletalphacalibration.cpp | 14 ++-- test-suite/marketmodel_smmcapletcalibration.cpp | 14 ++-- .../marketmodel_smmcaplethomocalibration.cpp | 16 ++-- test-suite/markovfunctional.cpp | 10 +-- test-suite/matrices.cpp | 30 ++------ test-suite/mclongstaffschwartzengine.cpp | 10 +-- test-suite/mersennetwister.cpp | 6 +- test-suite/money.cpp | 4 +- test-suite/noarbsabr.cpp | 8 +- test-suite/normalclvmodel.cpp | 8 +- test-suite/nthorderderivativeop.cpp | 6 +- test-suite/nthtodefault.cpp | 14 ++-- test-suite/numericaldifferentiation.cpp | 10 +-- test-suite/observable.cpp | 10 +-- test-suite/ode.cpp | 10 +-- test-suite/operators.cpp | 6 +- test-suite/optimizers.cpp | 10 +-- test-suite/optionletstripper.cpp | 26 ++----- test-suite/overnightindexedcoupon.cpp | 30 ++------ test-suite/overnightindexedswap.cpp | 34 +++------ test-suite/pagodaoption.cpp | 4 +- test-suite/paralleltestrunner.hpp | 2 +- test-suite/partialtimebarrieroption.cpp | 12 ++- test-suite/pathgenerator.cpp | 10 +-- test-suite/period.cpp | 6 +- test-suite/piecewiseyieldcurve.cpp | 48 ++---------- test-suite/piecewisezerospreadedtermstructure.cpp | 32 ++------ test-suite/prices.cpp | 4 +- test-suite/quantlibbenchmark.cpp | 89 +++++++++++----------- test-suite/quantooption.cpp | 8 +- test-suite/quotes.cpp | 16 ++-- test-suite/rangeaccrual.cpp | 19 ++--- test-suite/riskneutraldensitycalculator.cpp | 4 +- test-suite/riskstats.cpp | 6 +- test-suite/rngtraits.cpp | 6 +- test-suite/rounding.cpp | 22 ++---- test-suite/sampledcurve.cpp | 14 ++-- test-suite/schedule.cpp | 10 +-- test-suite/settings.cpp | 6 +- test-suite/shortratemodels.cpp | 18 ++--- test-suite/sofrfutures.cpp | 10 +-- test-suite/solvers.cpp | 10 +-- test-suite/spreadoption.cpp | 8 +- test-suite/squarerootclvmodel.cpp | 15 ++-- test-suite/stats.cpp | 10 +-- test-suite/subperiodcoupons.cpp | 18 ++--- test-suite/svivolatility.cpp | 4 +- test-suite/swap.cpp | 26 ++----- test-suite/swapforwardmappings.cpp | 10 +-- test-suite/swaption.cpp | 30 ++------ test-suite/swaptionvolatilitycube.cpp | 26 ++----- test-suite/swaptionvolatilitymatrix.cpp | 16 ++-- test-suite/swingoption.cpp | 17 +---- test-suite/termstructures.cpp | 32 ++------ test-suite/timegrid.cpp | 6 +- test-suite/timeseries.cpp | 6 +- test-suite/tqreigendecomposition.cpp | 6 +- test-suite/tracing.cpp | 10 +-- test-suite/transformedgrid.cpp | 10 +-- test-suite/twoassetbarrieroption.cpp | 8 +- test-suite/twoassetcorrelationoption.cpp | 4 +- test-suite/ultimateforwardtermstructure.cpp | 24 ++---- test-suite/variancegamma.cpp | 8 +- test-suite/varianceoption.cpp | 4 +- test-suite/varianceswaps.cpp | 10 +-- test-suite/volatilitymodels.cpp | 6 +- test-suite/vpp.cpp | 26 ++----- test-suite/xoshiro256starstar.cpp | 15 ++-- test-suite/zabr.cpp | 4 +- test-suite/zerocouponswap.cpp | 24 ++---- 170 files changed, 864 insertions(+), 1627 deletions(-) commit c9b2ead68840e46b15e61c6ffa978fbcbed11e8c Author: hoanggiapvu79116 Date: Fri, 15 Dec 2023 03:57:39 +1100 Fix typo ql/time/date.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66de7b5779441f5afcbcfefda95e0a6dd6311f88 Author: Fredrik Gerdin Börjesson Date: Thu, 14 Dec 2023 16:36:33 +0100 Add known BoT/Thailand holidays for 2022-2024 ql/time/calendars/thailand.cpp | 27 +++++++++++++++++++++++++++ ql/time/calendars/thailand.hpp | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) commit f0e2e84cf55b5777363359c83f969f9278cd6209 Author: Fredrik Gerdin Börjesson Date: Thu, 14 Dec 2023 16:35:43 +0100 Correct rules for Thailand holidays until 2021 ql/time/calendars/thailand.cpp | 13 ++++++------- ql/time/calendars/thailand.hpp | 5 +++-- 2 files changed, 9 insertions(+), 9 deletions(-) commit 7aa44c8fe92a80f23fdf48a3eb154de0f983a91c Author: Matthias Groncki Date: Fri, 18 Jun 2021 11:11:11 +0200 [touch:1720] Added Coronation Day and the H.M.Queen Suthida Bajrasudhabimalalakshana’s Birthday and the special and Lunar Calendar based holidays for 2019, 2020 and 2021 ql/time/calendars/thailand.cpp | 69 +++++++++++++++++++++++++++++++----------- 1 file changed, 51 insertions(+), 18 deletions(-) commit 540a5753655e5d6a3ca69cc556e533ff7c288cd0 Author: Luigi Ballabio Date: Thu, 14 Dec 2023 09:51:34 +0100 Remove separate "experimental" test suites. With manual registration, we could execute all main tests first and all experimental ones later. With automatic registration, that's no longer true so there's no point. test-suite/asianoptions.cpp | 6 +----- test-suite/barrieroption.cpp | 6 +----- test-suite/basismodels.cpp | 4 ++-- test-suite/basisswapratehelpers.cpp | 4 ++-- test-suite/blackdeltacalculator.cpp | 2 +- test-suite/callablebonds.cpp | 4 ++-- test-suite/catbonds.cpp | 4 ++-- test-suite/cdo.cpp | 2 +- test-suite/cdsoption.cpp | 4 ++-- test-suite/cmsspread.cpp | 4 ++-- test-suite/commodityunitofmeasure.cpp | 2 +- test-suite/compiledboostversion.cpp | 4 ++-- test-suite/creditriskplus.cpp | 4 ++-- test-suite/doublebarrieroption.cpp | 6 +----- test-suite/europeanoption.cpp | 6 +----- test-suite/everestoption.cpp | 4 ++-- test-suite/extendedtrees.cpp | 4 ++-- test-suite/extensibleoptions.cpp | 4 ++-- test-suite/gaussianquadratures.cpp | 6 +----- test-suite/hestonmodel.cpp | 4 ---- test-suite/inflationcpicapfloor.cpp | 4 ++-- test-suite/inflationvolatility.cpp | 4 ++-- test-suite/noarbsabr.cpp | 4 ++-- test-suite/normalclvmodel.cpp | 4 ++-- test-suite/nthtodefault.cpp | 4 ++-- test-suite/pagodaoption.cpp | 4 ++-- test-suite/partialtimebarrieroption.cpp | 4 ++-- test-suite/quantooption.cpp | 6 +----- test-suite/riskneutraldensitycalculator.cpp | 4 ++-- test-suite/spreadoption.cpp | 4 ++-- test-suite/squarerootclvmodel.cpp | 4 ++-- test-suite/svivolatility.cpp | 4 ++-- test-suite/swingoption.cpp | 4 ++-- test-suite/twoassetbarrieroption.cpp | 4 ++-- test-suite/twoassetcorrelationoption.cpp | 4 ++-- test-suite/variancegamma.cpp | 4 ++-- test-suite/varianceoption.cpp | 4 ++-- test-suite/vpp.cpp | 2 +- test-suite/zabr.cpp | 4 ++-- 39 files changed, 66 insertions(+), 94 deletions(-) commit 1ea299080155a4d9d4fa1ae459c4797c604ec1db Author: Paul Date: Wed, 13 Dec 2023 18:45:49 +0100 ECB::date(ecbCode) removed using std::string ql/time/ecb.cpp | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) commit 0ef2cfc3a08e4118796bf6c8962013cfe4acfd55 Author: Paul Date: Wed, 13 Dec 2023 18:56:14 +0100 unit test: cleanup test-suite/dates.cpp | 50 +++++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 27 deletions(-) commit 27c825a75e3b24cb01f3a3c7d050fe4192888d99 Author: Paul Date: Wed, 13 Dec 2023 18:05:21 +0100 typo test-suite/dates.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aec9a77e7d5c2cb855d357c5c1d129eb621a9681 Author: Paul Date: Wed, 13 Dec 2023 17:54:04 +0100 cleanup: remove unnecessary using statements ql/time/asx.cpp | 3 --- 1 file changed, 3 deletions(-) commit ced02765ce15acd961b490638ffea3a415365763 Author: Paul Date: Wed, 13 Dec 2023 17:52:42 +0100 ASX::date(): remove temporary mem allocation; simplify implementation ql/time/asx.cpp | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) commit 6ce309265755d9c3d4585343c2a6ec468686da7e Author: Paul Date: Wed, 13 Dec 2023 17:19:27 +0100 ASX::code(): simplify implementation ql/time/asx.cpp | 65 ++++++++++++++------------------------------------------- 1 file changed, 16 insertions(+), 49 deletions(-) commit e03b7c383eb054c7930a60ba60545a1801ce7d14 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:43:37 +0000 Update copyright list in license LICENSE.TXT | 2 ++ 1 file changed, 2 insertions(+) commit 2526321bda5185d35cc26d6ac4fe0f80ac3e10b3 Merge: edac8988a 9cfd2ab17 Author: Luigi Ballabio Date: Wed, 13 Dec 2023 16:43:17 +0100 fuzz: Add american option fuzzer (#1833) commit edac8988a31b71517129afcfeef2b965942a3335 Merge: 591e3d7fc 279b4d73a Author: Luigi Ballabio Date: Wed, 13 Dec 2023 14:42:26 +0100 GH-1791 add clarifying comment and unit test to confirm result caching (#1850) commit 591e3d7fc730b855e2aec2b5c4b92f8bf4dcc702 Merge: 55f945c5a 4faa88f2b Author: Luigi Ballabio Date: Wed, 13 Dec 2023 14:41:34 +0100 Unit test for prices.hpp (#1841) commit e2290d4f9dac0549495ae1ca7fbe6a1debbf2ea4 Author: Paul Date: Tue, 12 Dec 2023 17:49:18 +0100 isASXcode: reimplement without temporary mem allocs ql/time/asx.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 55f945c5a6e574f714f65ec9c9e160fe58a0536c Author: Luigi Ballabio Date: Wed, 13 Dec 2023 12:11:23 +0100 Fix typo fuzz-test-suite/amortizedbondsfuzzer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4faa88f2b1ed18c5cfe656884a76bdf437991214 Author: Luigi Ballabio Date: Wed, 13 Dec 2023 12:04:26 +0100 No need for an anonymous namespace test-suite/prices.cpp | 286 +++++++++++++++++++++++++------------------------- 1 file changed, 143 insertions(+), 143 deletions(-) commit 1cfefcfb1333cdd11fbcd9e5eb745a3b72ea58b2 Merge: 5611dec05 5cf6983f7 Author: Luigi Ballabio Date: Wed, 13 Dec 2023 11:42:19 +0100 fuzz: Add amortized-bonds fuzzer (#1832) commit 37db27162620961d79ca2e5c82155de3546a6d0c Author: Luigi Ballabio Date: Wed, 13 Dec 2023 11:40:51 +0100 Move process creation before engine creation fuzz-test-suite/fuzzamericanoption.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 279b4d73a04e746d65cf95fc09f785959dbd8d33 Author: Peter Caspers Date: Tue, 12 Dec 2023 19:33:20 +0100 GH-1791 add clarifying comment and unit test to confirm result caching ql/pricingengines/swaption/blackswaptionengine.hpp | 7 +++--- test-suite/swaption.cpp | 26 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) commit 5cf6983f70c4998d38fc5da7929de0ff7f06b4c9 Author: Nathaniel Brough Date: Wed, 15 Nov 2023 14:44:47 -0800 fuzz: Add amortized-bonds fuzzer fuzz-test-suite/CMakeLists.txt | 12 +++-- fuzz-test-suite/amortizedbondsfuzzer.cpp | 80 ++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 5 deletions(-) commit f5815856090725fce16e1995f8f2f39d3827086f Author: Nathaniel Brough Date: Wed, 15 Nov 2023 16:20:36 -0800 fuzz: Add american option fuzzer fuzz-test-suite/CMakeLists.txt | 11 ++- fuzz-test-suite/fuzzamericanoption.cpp | 130 +++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+), 4 deletions(-) commit e5133dad3d0e1f0762f2407c1cc40a07437a805e Author: Paul Date: Tue, 12 Dec 2023 17:32:26 +0100 test isASXdate, nextDate, nextCode test-suite/dates.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 5df997add0404e933cd91cbd871798d6bb1fa149 Author: Paul Date: Tue, 12 Dec 2023 16:31:57 +0100 cleanup unit test test-suite/dates.cpp | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) commit 79d1b1f9148315331ea41c3daada116216dcf40b Author: Paul Date: Tue, 12 Dec 2023 16:04:42 +0100 const correctness test-suite/timeseries.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fa81ccfbf95bdf9fcef108b21cd8491d8ce2cb39 Author: Fredrik Gerdin Börjesson Date: Tue, 12 Dec 2023 15:52:03 +0100 Stop moving Juneteenth to Friday if Saturday for Fed ql/time/calendars/unitedstates.cpp | 8 ++++---- test-suite/calendars.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) commit 3004b51520bc60753389782bffcb7be9c6b13a6c Author: Paul Date: Tue, 12 Dec 2023 14:07:24 +0100 test utilities: find, dates, values test-suite/timeseries.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit 3966f81d260e1dfd87b58917a3e1223d2415ed1b Author: Fredrik Gerdin Börjesson Date: Tue, 12 Dec 2023 15:06:22 +0100 Add TWSE holidays for 2024 to Taiwan calendar ql/time/calendars/taiwan.cpp | 20 ++++++++++++++++++++ ql/time/calendars/taiwan.hpp | 3 ++- 2 files changed, 22 insertions(+), 1 deletion(-) commit c2dcfd90bcfd6e7e94eab7efeef5e14c1ce776f4 Author: Paul Date: Sun, 10 Dec 2023 14:07:22 +0100 test inspectors: firstDate, size, empty test-suite/timeseries.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit ed051227cce85e6fdbcd27fa38f85e7bbe21945d Author: Paul Date: Sun, 10 Dec 2023 14:04:10 +0100 split up test test-suite/timeseries.cpp | 112 +++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 57 deletions(-) commit 8f7493900ee3e2058dc1a24c6b8dbdd6d0d02a71 Author: Paul Date: Tue, 12 Dec 2023 14:17:29 +0100 remove nested anonymous namespaces test-suite/prices.cpp | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) commit f8cbb3690b73da0bd15e3019129aa5b3a8c5e4e4 Author: Paul Date: Tue, 12 Dec 2023 14:17:02 +0100 fix copy-paste errors test-suite/prices.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit e3939ca436998d568e664d269f4cf4f0d0783cc6 Author: Paul Date: Tue, 12 Dec 2023 14:13:23 +0100 claim copyright test-suite/prices.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5611dec05f484abd5973519b5bc73b703b0fe696 Merge: 6304a211b 23e541c6e Author: Luigi Ballabio Date: Tue, 12 Dec 2023 10:34:06 +0100 TimeGrid: Complete the unit tests (#1844) commit 6304a211bbc1b4b4cc1c84c22c1553c218ef0509 Merge: aab8c6979 30e1ec114 Author: Luigi Ballabio Date: Tue, 12 Dec 2023 10:33:21 +0100 Clean up types in SobolRsg (#1843) commit aab8c69792a7d15447ebedce919431f53df0f1a2 Merge: c74153225 7d1c6b838 Author: Luigi Ballabio Date: Tue, 12 Dec 2023 00:21:24 +0100 Deprecate Currency::format (#1810) commit 3a4dcb0ab73d11d67388e80d5daccffd6a987f17 Author: moixastrikes Date: Mon, 11 Dec 2023 15:43:02 -0500 Added Dec. 31 NYE holiday to Chilean calendar in chile.cpp ql/time/calendars/chile.cpp | 2 ++ 1 file changed, 2 insertions(+) commit c74153225811f8d2701bddb4c5fb70ccb32d9789 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 11:45:45 +0000 Bump actions/stale from 8 to 9 Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7345a7d38b19e70c52fa1c84a0e475359deab6f7 Author: Luigi Ballabio Date: Mon, 11 Dec 2023 14:54:38 +0100 Fix typo in template argument name ql/money.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 86a8fa85552933a250ce66d75000522801e6e4a9 Merge: 1cb2dfc4a 1bc5f91c0 Author: Luigi Ballabio Date: Mon, 11 Dec 2023 13:41:01 +0100 Money: Implementation simplification and increased unit test coverage (#1840) commit 7d1c6b8386de79d5cd5c9095b0c97ee0e2058769 Author: Jonathan Sweemer Date: Tue, 10 Oct 2023 21:47:13 +0900 Deprecate Currency::format ql/currency.cpp | 39 ++++++++++++++++++++++++++++++++++++++- ql/currency.hpp | 40 ++++++++++++++++++++++++++++++++++++++++ ql/money.cpp | 11 +---------- test-suite/currency.cpp | 2 +- 4 files changed, 80 insertions(+), 12 deletions(-) commit 23e541c6ee64822f89eac5888e1865ff61ea8f54 Author: Paul Date: Sat, 9 Dec 2023 22:31:41 +0100 undo whitespace changes test-suite/timegrid.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 6abf054209bea0281d9ff41167c8cac8bc7a63a4 Author: Paul Date: Sat, 9 Dec 2023 22:25:50 +0100 better test message test-suite/timegrid.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 30e1ec114cf54bc4a911bc81860c8736eb3d268d Author: Peter Caspers Date: Sat, 9 Dec 2023 18:48:35 +0100 GH-1821 clean up types, remove bits_ and normalizationFactor_ as separate members ql/math/randomnumbers/sobolrsg.cpp | 77973 +++++++++++++++++------------------ ql/math/randomnumbers/sobolrsg.hpp | 18 +- 2 files changed, 38992 insertions(+), 38999 deletions(-) commit eff0c83ffa8a4a75d5ab8ed711cacac0521a3558 Author: Paul Date: Fri, 8 Dec 2023 23:01:35 +0100 full test coverage of timegrid test-suite/timegrid.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 1bc5f91c0f578c8fa3fc5cb58198d9149a350d09 Author: Paul Date: Wed, 6 Dec 2023 20:22:54 +0100 simplify generic compare/apply function ql/money.cpp | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit 2aabea04d51db05da98f034f65ca035a0bc85c68 Author: Paul Date: Fri, 1 Dec 2023 21:34:20 +0100 unit test: check comparisons test-suite/money.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++ test-suite/preconditions.hpp | 2 +- 2 files changed, 65 insertions(+), 1 deletion(-) commit 143a732f899aa8df0bb24204f259f785b1892876 Author: Paul Date: Wed, 6 Dec 2023 20:56:04 +0100 unit test: compare values with tolerance (+style changes) test-suite/money.cpp | 106 +++++++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 50 deletions(-) commit e79c868a648cbaee15cf9c35f21e829ef50acf64 Author: Paul Date: Tue, 28 Nov 2023 21:08:54 +0100 money: operator/ ql/money.cpp | 62 ++++++++++++++++++++++++++---------------------------------- 1 file changed, 27 insertions(+), 35 deletions(-) commit 70f47bb171e07a5c9f510254b666458970158430 Author: Paul Date: Tue, 28 Nov 2023 21:08:09 +0100 money: operator-= in terms of operator+= ql/money.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit 6f9f82640003e231f7b74df879f5acca1e3cd95c Author: Paul Date: Tue, 28 Nov 2023 20:53:56 +0100 money: unify comparison operators ql/money.cpp | 122 ++++++++++++++++++----------------------------------------- 1 file changed, 36 insertions(+), 86 deletions(-) commit 79df5df65a007425b56fd3b593a0af12477f7009 Author: Paul Date: Mon, 27 Nov 2023 20:32:23 +0100 add test for operator/(money, money) test-suite/money.cpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit 8fdf0fc3a51b0e9301ed375f58bf102ec54be91e Author: Paul Date: Tue, 5 Dec 2023 20:56:34 +0100 remove header from build files test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 4 files changed, 6 deletions(-) commit 8b2367a085e9f1f7749284d69e3447c6eb83e28b Author: Paul Date: Tue, 5 Dec 2023 20:54:00 +0100 use BOOST_FIXTURE_TEST_SUITE test-suite/prices.cpp | 66 ++++++++++++++++++++-------------------- test-suite/prices.hpp | 30 ------------------ test-suite/quantlibtestsuite.cpp | 2 -- 3 files changed, 33 insertions(+), 65 deletions(-) commit 12a9e3c339eb8b15b5e1447843a9810ae2d30adb Merge: 6fae6216b 3d6cec9f7 Author: Paul Date: Tue, 5 Dec 2023 20:37:22 +0100 rebase onto master + merge commit 6fae6216b1778dbf4ae99574cd90e8350b96b7c1 Author: Paul Date: Tue, 5 Dec 2023 20:19:35 +0100 revert for-loop to std::tranform change ql/prices.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 1cb2dfc4acccdfa78d0a24ca4898bc281e7235f7 Author: Luigi Ballabio Date: Tue, 5 Dec 2023 18:17:46 +0100 Remove spurious messages in test case test-suite/lowdiscrepancysequences.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 3d6cec9f79ac71379d8eadeb1fb369d3b6f9e8fe Merge: 261bbc101 1e071626f Author: Luigi Ballabio Date: Mon, 4 Dec 2023 10:39:57 +0100 Automated registration of Unit test using boost test (#1834) commit 261bbc101b01178270c40f5644de3cbd7d4ee669 Merge: 1b2fcf5bc 87e6e3c89 Author: Luigi Ballabio Date: Mon, 4 Dec 2023 10:30:01 +0100 Initialize bounds in Solver1D (#1842) commit 87e6e3c8936559d1c7c85bb53d0b0b626667bfea Author: Jonathan Sweemer Date: Sun, 3 Dec 2023 20:31:01 +0900 Initialize bounds ql/math/solver1d.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5491294438e23726bdd5e7421a978035a49e81a9 Author: Paul Date: Sat, 2 Dec 2023 22:46:17 +0100 include new files in vcxproj files test-suite/testsuite.vcxproj | 4 +++- test-suite/testsuite.vcxproj.filters | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit 6c6ffbbae56b725d1adc68eaf0687b9494f67b7c Author: Paul Date: Sat, 2 Dec 2023 19:30:27 +0100 remove maybe_unused attribute test-suite/prices.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit b0af6f153d9cef56e833e0007d44471342d4d2dc Author: Paul Date: Sat, 2 Dec 2023 17:39:06 +0100 use std::transform + style change ql/prices.cpp | 8 +++++--- ql/prices.hpp | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) commit 9e190c022724afe5c4f86f2809beeae700780965 Author: Paul Date: Sat, 2 Dec 2023 17:26:16 +0100 testing IntervalPrice::extractComponent() ql/prices.hpp | 2 +- test-suite/prices.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 2 deletions(-) commit d6c75be890139a25f83902b4fcda88c1314676be Author: Paul Date: Sat, 2 Dec 2023 16:55:30 +0100 testing IntervalPrice::extractValues ql/prices.hpp | 2 +- test-suite/prices.cpp | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) commit 039eefed059671a4de28af8c9209dfed7518c09a Author: Paul Date: Sat, 2 Dec 2023 16:45:03 +0100 extract timeSeries creation for testing test-suite/prices.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 245b51933049c7508c78851b3e4486f678589be3 Author: Paul Date: Sat, 2 Dec 2023 16:42:33 +0100 testing IntervalPrice::makeSeries() ql/prices.hpp | 2 +- test-suite/prices.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) commit 4ca57bdd3e9eceacec3ee3d59cea5b276b9953f3 Author: Paul Date: Sat, 2 Dec 2023 16:40:58 +0100 testing IntervalPrice::() ql/prices.hpp | 2 +- test-suite/prices.cpp | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) commit c5be5bc3af776ebefcfc98cadbebd66eed62809a Author: Paul Date: Sat, 2 Dec 2023 15:53:00 +0100 testing IntervalPrice:: ql/prices.hpp | 2 ++ test-suite/prices.cpp | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) commit 4498aad3327c3cc8f9014d10952abd9d6aff9184 Author: Paul Date: Sat, 2 Dec 2023 15:40:19 +0100 testing midSafe ql/prices.hpp | 1 + test-suite/prices.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+) commit 9cbaa30825c24cf61d0aede421a98fad3e462d75 Author: Paul Date: Sat, 2 Dec 2023 15:25:51 +0100 testing midEquivalent ql/prices.hpp | 1 + test-suite/prices.cpp | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit b067cd75897fd34132bba2874f8575c1fc423ec6 Author: Paul Date: Fri, 1 Dec 2023 22:09:00 +0100 empty setup for testing prices.hpp test-suite/CMakeLists.txt | 2 ++ test-suite/Makefile.am | 2 ++ test-suite/prices.cpp | 30 ++++++++++++++++++++++++++++++ test-suite/prices.hpp | 30 ++++++++++++++++++++++++++++++ test-suite/quantlibtestsuite.cpp | 2 ++ 5 files changed, 66 insertions(+) commit 1b2fcf5bcb63da3541890eb348545b05b930f2e8 Author: Luigi Ballabio Date: Fri, 1 Dec 2023 16:18:13 +0100 Move test to faster section test-suite/andreasenhugevolatilityinterpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7389c6640be13515e3f2eb349e6d6b9bf42893ea Author: Luigi Ballabio Date: Fri, 1 Dec 2023 11:40:27 +0100 Update rolling Ubuntu image for CI builds .github/workflows/devenv-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95775e1b45039bbb519b275aca64b2be942ed00f Merge: e0e8a080b fd2ca0863 Author: Luigi Ballabio Date: Fri, 1 Dec 2023 11:29:28 +0100 Allow different frequencies in MakeOIS and OISRateHelper (#1837) commit e0e8a080b8847c110289fec59d13164cf5298a6e Merge: 7ae8d53f5 3a00f8596 Author: Luigi Ballabio Date: Fri, 1 Dec 2023 11:22:09 +0100 Fix skipping expired additionalDates (#1838) commit fd23f186c75f6193dacd372e161d723c37ee4a15 Author: klaus spanderen Date: Sun, 26 Nov 2023 17:15:39 +0100 parameter fine-tuning ql/pricingengines/vanilla/analytichestonengine.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 95731b2d5576f5f7eea0a84ced96e06447c43da1 Author: klaus spanderen Date: Sat, 25 Nov 2023 22:01:57 +0100 use contour integral also for asymptotic control variate ql/pricingengines/vanilla/analytichestonengine.cpp | 53 +++++++++------------- .../vanilla/exponentialfittinghestonengine.cpp | 2 +- 2 files changed, 23 insertions(+), 32 deletions(-) commit 3a00f85968454a4dcd89fdd3ff385f0114c5b549 Author: Eugene Toder Date: Mon, 20 Nov 2023 20:09:14 -0500 Fix skipping expired additionalDates * Do not assume additionalDates are sorted. * Fix appending additionalDates to dates (2*firstAdditionalDate_ were skipped leading to an abort later). * Simplify the code. ql/termstructures/globalbootstrap.hpp | 39 ++++++++++++++++------------------- test-suite/piecewiseyieldcurve.cpp | 10 +++++++-- 2 files changed, 26 insertions(+), 23 deletions(-) commit 7ae8d53f57813122ce930d898b58567bac93de4a Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Nov 2023 01:41:52 +0000 Automated fixes by clang-tidy ql/math/randomnumbers/burley2020sobolrsg.cpp | 48 ++++++++++++++-------------- ql/math/randomnumbers/sobolrsg.cpp | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) commit 89a6948b496b6ba94e8a6aac9d55c851804fd904 Author: klaus spanderen Date: Sun, 19 Nov 2023 22:35:59 +0100 fixed parallel benchmark test-suite/quantlibbenchmark.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53863ae508cb287ffb865993d5f7954d819411ba Merge: b0be193bb 9ea78221a Author: klaus spanderen Date: Sun, 19 Nov 2023 18:59:11 +0100 merge with head commit fd2ca08638adfa74ac21792ea9434a0c5e99238a Author: Eugene Toder Date: Sat, 18 Nov 2023 04:25:40 -0500 Allow different calendars in MakeOIS and OISRateHelper ql/instruments/makeois.cpp | 42 +++++++++++++++++++------------ ql/instruments/makeois.hpp | 4 ++- ql/termstructures/yield/oisratehelper.cpp | 14 ++++++++--- ql/termstructures/yield/oisratehelper.hpp | 7 ++++-- 4 files changed, 45 insertions(+), 22 deletions(-) commit f99e73f33bce84cdaa9dbdbe60a6a478f1764ffd Author: Eugene Toder Date: Sat, 18 Nov 2023 00:48:24 -0500 Allow different frequencies in MakeOIS and OISRateHelper Allow setting different payment frequencies for fixed and overnight legs. ql/instruments/makeois.cpp | 74 ++++++++++++++++++++++++------- ql/instruments/makeois.hpp | 10 ++++- ql/termstructures/yield/oisratehelper.cpp | 25 +++++++---- ql/termstructures/yield/oisratehelper.hpp | 7 ++- 4 files changed, 88 insertions(+), 28 deletions(-) commit 9ea78221a2c0c0ce565358869c317c655ee254c0 Author: Luigi Ballabio Date: Fri, 17 Nov 2023 14:34:31 +0100 Move test to Fast section test-suite/hestonslvmodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e071626f5f1457a98f767d1f05414118c0a10da Merge: bf42eb401 77013dbc9 Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Fri, 17 Nov 2023 13:13:15 +0800 Merge pull request #14 from Sidsky/automated-test-registration Automated test registration commit 77013dbc9bf4d9e58f3cd1a5a6b874e4aaebfc75 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 11:18:30 +0800 Migrated zerocouponswap.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 3 +-- test-suite/quantlibtestsuite.cpp | 3 --- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/zerocouponswap.cpp | 31 +++++++++++++----------------- test-suite/zerocouponswap.hpp | 37 ------------------------------------ 7 files changed, 14 insertions(+), 65 deletions(-) commit 9ef8982cdb963bd04f26a9eab29dee522d768835 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 11:14:48 +0800 Migrated zabr.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 4 ---- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/zabr.cpp | 19 +++++++++---------- test-suite/zabr.hpp | 36 ------------------------------------ 7 files changed, 9 insertions(+), 56 deletions(-) commit 7d5a92635cd6ab676edf758e59ee31624bcbe833 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 11:12:16 +0800 Migrated xoshiro256starstar.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/xoshiro256starstar.cpp | 24 +++++++++++------------- test-suite/xoshiro256starstar.hpp | 34 ---------------------------------- 7 files changed, 11 insertions(+), 55 deletions(-) commit e44ea1c1218e172231390b1c312c00f496cc5d3d Author: siddharthmehrotra Date: Fri, 17 Nov 2023 11:09:25 +0800 Migrated vpp.cpp test-suite/CMakeLists.txt | 3 +- test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - test-suite/vpp.cpp | 329 ++++++++++++++++------------------- test-suite/vpp.hpp | 40 ----- 7 files changed, 155 insertions(+), 224 deletions(-) commit 14574fa01148951db237823f6a0e2838c75f5326 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 11:02:57 +0800 Migrated volatilitymodels.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/volatilitymodels.cpp | 15 ++++++++------- test-suite/volatilitymodels.hpp | 35 ----------------------------------- 7 files changed, 8 insertions(+), 50 deletions(-) commit 59e3321803e8fee840a9d122b13a7d48ca023166 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 11:01:23 +0800 Migrated varianceswaps.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 3 +-- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/varianceswaps.cpp | 20 ++++++++------------ test-suite/varianceswaps.hpp | 36 ------------------------------------ 7 files changed, 9 insertions(+), 56 deletions(-) commit e274e67df50aacc192b6dcec647955e361ceaa6d Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:59:30 +0800 Migrated varianceoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/varianceoption.cpp | 16 ++++++++-------- test-suite/varianceoption.hpp | 35 ----------------------------------- 7 files changed, 8 insertions(+), 51 deletions(-) commit a5e9b6821faa519f6fabae1836d16bb7ec8e3af1 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:52:52 +0800 Migrated variancegamma.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/variancegamma.cpp | 18 ++++++++--------- test-suite/variancegamma.hpp | 38 ------------------------------------ 7 files changed, 9 insertions(+), 57 deletions(-) commit 87c901402a8c0e8e0d91485fc894804bb2c430f7 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:50:16 +0800 Migrated ultimateforwardtermstructure.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/ultimateforwardtermstructure.cpp | 35 ++++++++++-------------- test-suite/ultimateforwardtermstructure.hpp | 41 ----------------------------- 7 files changed, 15 insertions(+), 71 deletions(-) commit 05768c6ce2478343f13ed88e9f4be555138fff2f Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:46:55 +0800 Migrated twoassetcorrelationoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/twoassetcorrelationoption.cpp | 17 ++++++++-------- test-suite/twoassetcorrelationoption.hpp | 35 -------------------------------- 7 files changed, 8 insertions(+), 52 deletions(-) commit b91df14c3878bbbde007f476200a3ea8e8a07b74 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:44:39 +0800 Migrated twoassetbarrieroption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/twoassetbarrieroption.cpp | 15 ++++++++------- test-suite/twoassetbarrieroption.hpp | 35 ----------------------------------- 7 files changed, 8 insertions(+), 50 deletions(-) commit 3bf645f33ad8c2d6528e827e1a30aafbf93fffc7 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:42:49 +0800 Migrated transformedgrid.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/transformedgrid.cpp | 15 ++++++++------- test-suite/transformedgrid.hpp | 35 ----------------------------------- 7 files changed, 8 insertions(+), 50 deletions(-) commit 4f6e268ef8660c37854b9470cca600261f3260b1 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:40:23 +0800 Migrated tracing.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/tracing.cpp | 15 +++++++-------- test-suite/tracing.hpp | 35 ----------------------------------- 7 files changed, 7 insertions(+), 51 deletions(-) commit 62ee49f5f3418c8923b080e21df33f1db84a34ca Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:38:28 +0800 Migrated tqreigendecomposition.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 3 --- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/tqreigendecomposition.cpp | 24 ++++++++++------------- test-suite/tqreigendecomposition.hpp | 37 ------------------------------------ 7 files changed, 10 insertions(+), 60 deletions(-) commit 40a7279f4bfb2df0bc0fe8880ff9ce45d079dd86 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:35:53 +0800 Migrated timeseries.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 1 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/timeseries.cpp | 21 ++++++++++---------- test-suite/timeseries.hpp | 38 ------------------------------------ 7 files changed, 10 insertions(+), 56 deletions(-) commit 542e05bc731af071021ab4d7562e61d5796af476 Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:33:59 +0800 Migrated timegrid.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- test-suite/timegrid.cpp | 39 ++++++++++++++---------------------- test-suite/timegrid.hpp | 38 ----------------------------------- 7 files changed, 15 insertions(+), 70 deletions(-) commit 155c1da0cf1de290f1fba7a3b81c92a31ac46e7f Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:30:46 +0800 Migrated termstructures.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/termstructures.cpp | 47 ++++++++++++++---------------------- test-suite/termstructures.hpp | 45 ---------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 18 insertions(+), 82 deletions(-) commit 9b8cb2b9d7121d8db826fa40d63174d6c841440a Author: siddharthmehrotra Date: Fri, 17 Nov 2023 10:27:13 +0800 Migrated swingoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 - test-suite/swingoption.cpp | 108 +++++++++++++++-------------------- test-suite/swingoption.hpp | 40 ------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 45 insertions(+), 111 deletions(-) commit bf42eb401f6d3e8e5d847bf8ee3d8c885b69281e Merge: 8b7eb9179 140c7f088 Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:48:36 +0800 Merge pull request #13 from lballabio/master cmake: Roll back cmake version change commit 140c7f088916d10863e85091b97657efa086fb34 Merge: a32bc1fdf 4a7773644 Author: Luigi Ballabio Date: Thu, 16 Nov 2023 18:54:47 +0100 cmake: Roll back cmake version change (#1831) commit b0be193bbc1002985b2027db24e0428e7650779d Author: klaus spanderen Date: Thu, 16 Nov 2023 18:12:33 +0100 update papi documentation and initialization test-suite/quantlibbenchmark.cpp | 105 ++++++++------------------------------- 1 file changed, 21 insertions(+), 84 deletions(-) commit 8b7eb91797965511fe85a3a31b1e1f8a4c92b7ac Author: siddharthmehrotra Date: Thu, 16 Nov 2023 15:08:57 +0800 comment unused function test-suite/swapforwardmappings.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit ba30da7bcb721855b3642d90c6caeedc3dc4d70e Author: siddharthmehrotra Date: Thu, 16 Nov 2023 11:48:28 +0800 Migrated swaptionvolatilitymatrix.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/swaptionvolatilitymatrix.cpp | 23 ++++++++------------- test-suite/swaptionvolatilitymatrix.hpp | 36 --------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 59 deletions(-) commit 5d79adab92b982dbb3ce4e0bd029272f4f71b4e9 Author: siddharthmehrotra Date: Thu, 16 Nov 2023 11:46:10 +0800 Migrated swaptionvolatilitycube.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/swaptionvolatilitycube.cpp | 46 ++++++++++++++--------------------- test-suite/swaptionvolatilitycube.hpp | 42 -------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 18 insertions(+), 78 deletions(-) commit f2a00b86e7b856cc80a426889d0e5d1a84e863ba Merge: 00e17d9e4 1f464d32f Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Thu, 16 Nov 2023 11:03:36 +0800 Merge pull request #11 from Sidsky/automated-test-registration Automated test registration commit 3b7f005309bdea63d2f9d69ac24e10f131cbb295 Author: siddharthmehrotra Date: Thu, 16 Nov 2023 10:42:01 +0800 Migrated swaption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/swaption.cpp | 47 ++++++++++++------------------------ test-suite/swaption.hpp | 46 ----------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 16 insertions(+), 85 deletions(-) commit 6276ee274204fa6a0a5fa6e2851ee66d3ca1ca5d Author: siddharthmehrotra Date: Thu, 16 Nov 2023 10:38:03 +0800 Migrated swapforwardmappings.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 - test-suite/swapforwardmappings.cpp | 174 +++++++++++++++++------------------ test-suite/swapforwardmappings.hpp | 37 -------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 82 insertions(+), 137 deletions(-) commit 066c50de2d1d38c434af8981960bf99e4782b407 Author: siddharthmehrotra Date: Thu, 16 Nov 2023 10:34:26 +0800 Migrated swap.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/swap.cpp | 32 ++++++++++++---------------- test-suite/swap.hpp | 41 ------------------------------------ test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 14 insertions(+), 69 deletions(-) commit 869b560898e5925211469ca585f58e8bbb8e5675 Author: siddharthmehrotra Date: Thu, 16 Nov 2023 10:31:36 +0800 Migrated svivolatility.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/svivolatility.cpp | 15 ++++++++------- test-suite/svivolatility.hpp | 35 ----------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 51 deletions(-) commit e3d520197a036e37125f971f134a21ce9cc793b2 Author: siddharthmehrotra Date: Thu, 16 Nov 2023 10:28:49 +0800 Migrated subperiodcoupons.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/subperiodcoupons.cpp | 43 ++++++++++++++---------------------- test-suite/subperiodcoupons.hpp | 42 ----------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 16 insertions(+), 77 deletions(-) commit 6b9c1bf6b3a8039b07364ce5033907955c12c3b7 Author: siddharthmehrotra Date: Thu, 16 Nov 2023 10:25:39 +0800 Migrated stats.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 - test-suite/stats.cpp | 73 ++++++++++++++---------------------- test-suite/stats.hpp | 41 -------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 29 insertions(+), 93 deletions(-) commit 4a7773644a0e523261ab3f8915ea21d6637ab4ff Author: Nathaniel Brough Date: Wed, 15 Nov 2023 10:43:22 -0800 cmake: Roll back cmake version change CMakeLists.txt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 3a4cd58ccf826fc8013def384909abc9e531dcf2 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 15:21:37 +0800 Migrated squarerootclvmodel.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 - test-suite/squarerootclvmodel.cpp | 756 +++++++++++++++++------------------ test-suite/squarerootclvmodel.hpp | 34 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 374 insertions(+), 424 deletions(-) commit 966f58c3e510da2bd36b2b992ade7cf0943a552b Author: siddharthmehrotra Date: Wed, 15 Nov 2023 15:16:35 +0800 Migrated spreadoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/spreadoption.cpp | 17 ++++++++--------- test-suite/spreadoption.hpp | 35 ----------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 52 deletions(-) commit 1f464d32f6ce918dc1787e008eca78b23b166f55 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 15:10:51 +0800 Migrated solvers.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/solvers.cpp | 36 ++++++++++++------------------ test-suite/solvers.hpp | 43 ------------------------------------ test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 14 insertions(+), 73 deletions(-) commit 3622f0d03ce200b3004bf168ac6b7c8d20e21e81 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 15:05:18 +0800 remove redundant header test-suite/shortratemodels.cpp | 1 - 1 file changed, 1 deletion(-) commit f3b201d2129afd5b3f7838c4d936423aea20beda Author: siddharthmehrotra Date: Wed, 15 Nov 2023 15:02:38 +0800 Migrated sofrfutures.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/sofrfutures.cpp | 16 +++++++--------- test-suite/sofrfutures.hpp | 32 -------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 7 insertions(+), 49 deletions(-) commit 5040d98edcc52a51f87ebd98fafac5161979981e Author: siddharthmehrotra Date: Wed, 15 Nov 2023 14:57:05 +0800 Migrated shortratemodels.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 2 -- test-suite/quantlibbenchmark.cpp | 8 +++++-- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/shortratemodels.cpp | 34 ++++++++++++------------------ test-suite/shortratemodels.hpp | 41 ------------------------------------ test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 20 insertions(+), 74 deletions(-) commit ac1b5599571a29346896e64cc4d9f40ef6e79400 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 14:48:32 +0800 Migrated settings.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/settings.cpp | 15 ++++++++------- test-suite/settings.hpp | 35 ----------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 50 deletions(-) commit 0edee520c9b92df6a594c2dd497f5b327e0853aa Author: siddharthmehrotra Date: Wed, 15 Nov 2023 14:43:50 +0800 Migrated schedule.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 - test-suite/schedule.cpp | 93 +++++++++++++----------------------- test-suite/schedule.hpp | 59 ----------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 32 insertions(+), 128 deletions(-) commit e13073925b1eec895ec5f1a5f22285b806441919 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 14:37:44 +0800 Migrated sampledcurve.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/sampledcurve.cpp | 15 ++++++++------- test-suite/sampledcurve.hpp | 35 ----------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 50 deletions(-) commit afea3c8ef403fdb06117bc919b0d1119dfa00504 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 14:09:34 +0800 Migrated rounding.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/rounding.cpp | 27 ++++++++++--------------- test-suite/rounding.hpp | 39 ------------------------------------ test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 11 insertions(+), 63 deletions(-) commit 78196198f03d7e0b1ade08d43e7ff17bded95806 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 14:07:17 +0800 Migrated rngtraits.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/rngtraits.cpp | 26 ++++++++++-------------- test-suite/rngtraits.hpp | 39 ------------------------------------ test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 11 insertions(+), 62 deletions(-) commit 1dae1e7dade6c063d8c1646f63b4e85c60049efa Author: siddharthmehrotra Date: Wed, 15 Nov 2023 13:58:39 +0800 Update the header from speedlevel.cpp to preconditions.cpp test-suite/lowdiscrepancysequences.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e51483a97225f00839fba4c28c0a6f67fac3da0 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 12:00:46 +0800 Migrated riskstats.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 2 -- test-suite/quantlibbenchmark.cpp | 7 ++++++- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/riskstats.cpp | 16 ++++++++-------- test-suite/riskstats.hpp | 35 ----------------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 15 insertions(+), 54 deletions(-) commit 8fc0a0059ebf5ff3e19a0034cc0522aba7dcf29d Author: siddharthmehrotra Date: Wed, 15 Nov 2023 11:56:16 +0800 Migrated riskneutraldensitycalculator.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/riskneutraldensitycalculator.cpp | 46 ++++++++++------------------- test-suite/riskneutraldensitycalculator.hpp | 42 -------------------------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 15 insertions(+), 81 deletions(-) commit 737ffecaabedddd8fe77c20d2dfd1010941a0055 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 11:47:03 +0800 Migrated rangeaccrual.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/rangeaccrual.cpp | 27 +++++++++++---------------- test-suite/rangeaccrual.hpp | 36 ------------------------------------ test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 11 insertions(+), 60 deletions(-) commit 778b758dc0a95459188e7290982b28935327ffd2 Author: siddharthmehrotra Date: Wed, 15 Nov 2023 11:42:32 +0800 Migrated quotes.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 2 -- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/quotes.cpp | 29 ++++++++++----------------- test-suite/quotes.hpp | 39 ------------------------------------ test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 11 insertions(+), 66 deletions(-) commit 480538b57cff87ee6f42f4fd50dcb8e72e3a2e6d Author: siddharthmehrotra Date: Wed, 15 Nov 2023 10:22:35 +0800 Refactored speedlevel.cpp to preconditions.cpp to group preconditions test-suite/CMakeLists.txt | 8 +-- test-suite/Makefile.am | 8 +-- test-suite/americanoption.cpp | 19 +++-- test-suite/andreasenhugevolatilityinterpl.cpp | 20 +++--- test-suite/asianoptions.cpp | 24 +++---- test-suite/basketoption.cpp | 16 ++--- test-suite/bermudanswaption.cpp | 2 +- test-suite/cashflows.cpp | 11 +-- test-suite/cdo.cpp | 16 ++--- test-suite/dividendoption.cpp | 2 +- test-suite/doublebarrieroption.cpp | 30 ++++---- test-suite/fdheston.cpp | 30 ++++---- test-suite/fdmlinearop.cpp | 76 ++++++++++---------- test-suite/fdsabr.cpp | 4 +- test-suite/forwardoption.cpp | 16 ++--- test-suite/gjrgarchmodel.cpp | 18 ++--- test-suite/hestonmodel.cpp | 4 +- test-suite/hestonslvmodel.cpp | 88 ++++++++++++------------ test-suite/hybridhestonhullwhiteprocess.cpp | 36 +++++----- test-suite/interpolations.cpp | 2 +- test-suite/libormarketmodel.cpp | 33 +++++---- test-suite/libormarketmodelprocess.cpp | 16 ++--- test-suite/lookbackoptions.cpp | 12 ++-- test-suite/marketmodel.hpp | 2 +- test-suite/marketmodel_cms.cpp | 30 ++++---- test-suite/marketmodel_smm.cpp | 42 +++++------ test-suite/markovfunctional.cpp | 48 ++++++------- test-suite/mclongstaffschwartzengine.cpp | 2 +- test-suite/normalclvmodel.cpp | 6 +- test-suite/nthorderderivativeop.cpp | 15 ++-- test-suite/nthtodefault.cpp | 12 ++-- test-suite/optimizers.cpp | 12 ++-- test-suite/optionletstripper.cpp | 16 ++--- test-suite/piecewiseyieldcurve.cpp | 11 +-- test-suite/{speedlevel.cpp => preconditions.cpp} | 27 ++------ test-suite/{speedlevel.hpp => preconditions.hpp} | 10 +-- test-suite/quantlibglobalfixture.cpp | 20 ++++++ test-suite/quantlibglobalfixture.hpp | 4 +- test-suite/quantlibtestsuite.cpp | 2 +- test-suite/riskneutraldensitycalculator.hpp | 2 +- test-suite/shortratemodels.hpp | 2 +- test-suite/swaption.hpp | 2 +- test-suite/swingoption.hpp | 2 +- test-suite/testsuite.vcxproj | 4 +- test-suite/testsuite.vcxproj.filters | 12 ++-- test-suite/vpp.hpp | 2 +- test-suite/zabr.hpp | 2 +- 47 files changed, 382 insertions(+), 396 deletions(-) commit 75cdbfd81b2734234e8fb071038076d305802404 Author: siddharthmehrotra Date: Tue, 14 Nov 2023 18:27:54 +0800 Migrated quantooption.cpp test-suite/CMakeLists.txt | 5 +- test-suite/Makefile.am | 1 - test-suite/quantlibbenchmark.cpp | 8 +- test-suite/quantlibtestsuite.cpp | 3 - test-suite/quantooption.cpp | 201 ++++++++++++++++------------------- test-suite/quantooption.hpp | 48 --------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 100 insertions(+), 170 deletions(-) commit 893234b5e2940f5db2eb47693fc85d60b4b65bbb Author: siddharthmehrotra Date: Tue, 14 Nov 2023 18:15:06 +0800 Migrated piecewisezerospreadedtermstructure.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/piecewisezerospreadedtermstructure.cpp | 50 ++++++++--------------- test-suite/piecewisezerospreadedtermstructure.hpp | 43 ------------------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 17 insertions(+), 84 deletions(-) commit bd35efc876c829c4064c96f05ad45f5a5dc375d0 Author: siddharthmehrotra Date: Tue, 14 Nov 2023 18:11:24 +0800 Migrated piecewiseyieldcurve.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/piecewiseyieldcurve.cpp | 181 +++++++++++++++-------------------- test-suite/piecewiseyieldcurve.hpp | 69 ------------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 75 insertions(+), 183 deletions(-) commit ba8dc3f166aa329f4dd8c5ca39a419323452f801 Author: siddharthmehrotra Date: Mon, 13 Nov 2023 22:30:36 +0800 Migrated period.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/period.cpp | 21 ++++++++++---------- test-suite/period.hpp | 37 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 56 deletions(-) commit ec42d8bbd6d1079e774143e0eb6334b2f5cd8390 Author: siddharthmehrotra Date: Mon, 13 Nov 2023 22:27:47 +0800 Migrated pathgenerator.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/pathgenerator.cpp | 19 ++++++++----------- test-suite/pathgenerator.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 55 deletions(-) commit abfb7663ccd2de2504c16b4634e38fd2807ee3dc Author: siddharthmehrotra Date: Mon, 13 Nov 2023 14:02:05 +0800 refactored speed_level function into speedlevel.cpp test-suite/quantlibglobalfixture.cpp | 20 -------------------- test-suite/quantlibglobalfixture.hpp | 1 - test-suite/quantlibtestsuite.cpp | 21 --------------------- test-suite/speedlevel.cpp | 20 ++++++++++++++++++++ test-suite/speedlevel.hpp | 3 ++- 5 files changed, 22 insertions(+), 43 deletions(-) commit e4e8216d7a2a8260b8acf5b19af0d220e4e7c78a Author: siddharthmehrotra Date: Mon, 13 Nov 2023 13:42:00 +0800 Migrated partialtimebarrieroption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/partialtimebarrieroption.cpp | 18 ++++++++--------- test-suite/partialtimebarrieroption.hpp | 35 --------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 53 deletions(-) commit 138413ed526f2a3bc03d8f6ddfd1011c1dcb4c53 Author: siddharthmehrotra Date: Mon, 13 Nov 2023 13:39:11 +0800 Migrated pagodaoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/pagodaoption.cpp | 16 ++++++++-------- test-suite/pagodaoption.hpp | 32 -------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 48 deletions(-) commit c867824c684eaec5a6a820f29bd83d89fbdc743e Author: siddharthmehrotra Date: Mon, 13 Nov 2023 11:35:57 +0800 Fixed namespace errors test-suite/observable.cpp | 137 +++++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 69 deletions(-) commit 32355174624b49a82ee04a29ade52864284a47ab Author: siddharthmehrotra Date: Wed, 8 Nov 2023 17:14:30 +0800 Revert "Migrated marketmodel.cpp" This reverts commit 0e012fe1 test-suite/CMakeLists.txt | 1 + test-suite/Makefile.am | 1 + test-suite/marketmodel.cpp | 189 +++++++++++++++++++---------------- test-suite/marketmodel.hpp | 61 +++++++++++ test-suite/quantlibtestsuite.cpp | 2 + test-suite/testsuite.vcxproj | 1 + test-suite/testsuite.vcxproj.filters | 3 + 7 files changed, 172 insertions(+), 86 deletions(-) commit 33d30c8aec6bcaae6781edb6a1cfa76cb475abf0 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 16:16:41 +0800 Migrated overnightindexedswap.cpp + bug fix test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/nthorderderivativeop.cpp | 2 +- test-suite/overnightindexedswap.cpp | 196 ++++++++++++++++------------------- test-suite/overnightindexedswap.hpp | 46 -------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 91 insertions(+), 161 deletions(-) commit a86f85d5ed3e1b3318fc91db189071321e38d41b Author: siddharthmehrotra Date: Wed, 8 Nov 2023 16:11:26 +0800 Migrated overnightindexedcoupon.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/overnightindexedcoupon.cpp | 48 +++++++++++++++-------------------- test-suite/overnightindexedcoupon.hpp | 40 ----------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 20 insertions(+), 76 deletions(-) commit 5ba4269e8709ef93615fef0554e1a1c27298d735 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 16:06:38 +0800 Migrated optionletstripper.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/optionletstripper.cpp | 35 +++++++++++++----------------- test-suite/optionletstripper.hpp | 42 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 15 insertions(+), 70 deletions(-) commit 0449cd225f9b4f2608756a3d05402cde93dcbf5f Author: siddharthmehrotra Date: Wed, 8 Nov 2023 16:02:23 +0800 Migrated optimizers.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/optimizers.cpp | 28 ++++++++++------------------ test-suite/optimizers.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 62 deletions(-) commit 7e1345c61ba69770d67fdbfb4f4242c3f34075ef Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:57:05 +0800 Migrated operators.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/operators.cpp | 21 +++++++++----------- test-suite/operators.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 58 deletions(-) commit 1b5862db33e07a1dad7e06eb36945438d34d844b Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:54:58 +0800 Migrated ode.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/ode.cpp | 23 +++++++++++----------- test-suite/ode.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 11 insertions(+), 58 deletions(-) commit ef72eb0d2d3a3aa0205e014ff29a39b02dc2ab72 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:52:18 +0800 Migrated observable.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/observable.cpp | 39 ++++++++++++---------------------- test-suite/observable.hpp | 41 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 13 insertions(+), 75 deletions(-) commit 54394ab21037fb0373e3fdb5f4b681519a779996 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:48:10 +0800 Migrated numericaldifferentiation.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/numericaldifferentiation.cpp | 48 ++++++++++----------------------- test-suite/numericaldifferentiation.hpp | 38 -------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 14 insertions(+), 80 deletions(-) commit d3d75ed9f70cff3400b051fe7d178e121bb0009a Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:41:04 +0800 Migrated nthtodefault.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/nthtodefault.cpp | 33 +++++++++++++++------------------ test-suite/nthtodefault.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 15 insertions(+), 62 deletions(-) commit a04f2305d35bf9d9f39ab96a8cb8e0a81bcc17b5 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:34:18 +0800 Migrated nthorderderivativeop.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/nthorderderivativeop.cpp | 76 +++++++++++------------------------- test-suite/nthorderderivativeop.hpp | 47 ---------------------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 22 insertions(+), 109 deletions(-) commit 2237aebcabb9b7d791126d97c95bdaf621654940 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:29:22 +0800 Migrated normalclvmodel.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/normalclvmodel.cpp | 41 ++++++++++++------------------------ test-suite/normalclvmodel.hpp | 37 -------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 13 insertions(+), 73 deletions(-) commit c33f85bd7c2762045428a13005748a8598549fb7 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:25:56 +0800 Migrated noarbsabr.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/noarbsabr.cpp | 18 +++++++++--------- test-suite/noarbsabr.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 53 deletions(-) commit 808c87befaed2c37d19f5687ebca9113ab54d251 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:23:36 +0800 Migrated money.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/money.cpp | 23 ++++++++++------------ test-suite/money.hpp | 37 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 58 deletions(-) commit 8097320ecc35003fdecd03587ed7612431abb7ca Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:21:20 +0800 Migrated mersennetwister.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/mersennetwister.cpp | 16 ++++++++-------- test-suite/mersennetwister.hpp | 35 ----------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 51 deletions(-) commit 0baf421d8b3fb9a767ff8479449101fce5c1fce2 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 15:18:29 +0800 Migrated mclongstaffschwartzengine.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/mclongstaffschwartzengine.cpp | 23 ++++++++------------ test-suite/mclongstaffschwartzengine.hpp | 37 -------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 59 deletions(-) commit bf46253891d11cd4b09f2b1a23733d6ddd48784a Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:51:02 +0800 Migrated matrices.cpp and markovfunctional.cpp test-suite/CMakeLists.txt | 2 - test-suite/Makefile.am | 2 - test-suite/markovfunctional.cpp | 270 +++++++++++++++++------------------ test-suite/markovfunctional.hpp | 40 ------ test-suite/matrices.cpp | 89 +++++------- test-suite/matrices.hpp | 52 ------- test-suite/quantlibtestsuite.cpp | 4 - test-suite/testsuite.vcxproj | 2 - test-suite/testsuite.vcxproj.filters | 6 - 9 files changed, 165 insertions(+), 302 deletions(-) commit 2dd13f8838333aafda5e3276e951da2904d623d3 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:44:15 +0800 Migrated marketmodel_smmcaplethomocalibration.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - .../marketmodel_smmcaplethomocalibration.cpp | 42 +++++----------------- .../marketmodel_smmcaplethomocalibration.hpp | 36 ------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 8 insertions(+), 78 deletions(-) commit 466e1802813c860cc27b610167049b940e5ae6c3 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:38:15 +0800 Migrated marketmodel_smmcapletcalibration.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/marketmodel_smmcapletcalibration.cpp | 16 +++++------- test-suite/marketmodel_smmcapletcalibration.hpp | 34 ------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 6 insertions(+), 52 deletions(-) commit 0ac5f2bd563efa7232314cae7ca25a6129b3ca50 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:35:13 +0800 Migrated marketmodel_smmcapletalphacalibration.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - .../marketmodel_smmcapletalphacalibration.cpp | 17 +++++------ .../marketmodel_smmcapletalphacalibration.hpp | 34 ---------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 7 insertions(+), 52 deletions(-) commit d25e4805788eb10a0e8918db41680a0728a56984 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:30:35 +0800 Migrated marketmodel_smm.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 2 -- test-suite/marketmodel_smm.cpp | 22 ++++++---------- test-suite/marketmodel_smm.hpp | 50 ------------------------------------ test-suite/quantlibbenchmark.cpp | 13 +++++----- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 16 insertions(+), 80 deletions(-) commit 7f307673db861c42e8d7a3afd68876c31a0811bc Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:23:14 +0800 Migrated marketmodel_cms.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 2 -- test-suite/marketmodel_cms.cpp | 22 ++++++++------------- test-suite/marketmodel_cms.hpp | 37 ------------------------------------ test-suite/quantlibbenchmark.cpp | 8 +++++++- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 16 insertions(+), 62 deletions(-) commit 6fed27833da813eae39d5289ebe44e19777c26b3 Author: siddharthmehrotra Date: Wed, 8 Nov 2023 13:15:55 +0800 Migrated marketmodel.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/marketmodel.cpp | 189 ++++++++++++++++------------------- test-suite/marketmodel.hpp | 61 ----------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 86 insertions(+), 172 deletions(-) commit 292aea8849805628c067171bf67f547136a2cf68 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 17:40:26 +0800 Migrated margrabeoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/margrabeoption.cpp | 23 ++++++++++------------- test-suite/margrabeoption.hpp | 34 ---------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 55 deletions(-) commit a32bc1fdf31e289cf8d3396fc45bc95583ebaf3a Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:32:34 +0000 Update generated headers ql/math/randomnumbers/all.hpp | 1 + 1 file changed, 1 insertion(+) commit 00e17d9e4a9317fe4d5fd359411a69e23c8b61d6 Merge: 6fa6932a2 f94815da5 Author: Luigi Ballabio Date: Tue, 14 Nov 2023 17:30:18 +0100 add Burley 2020 scrambled Sobol sequence generator (#1828) commit f94815da5fa18fabf57afaf8db4706c23498c9b5 Author: Peter Caspers Date: Mon, 13 Nov 2023 18:43:04 +0100 add clarifying comment ql/math/randomnumbers/sobolrsg.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 6fa6932a27bc2f35115e2125c098d4f2b21e34e9 Author: Luigi Ballabio Date: Mon, 13 Nov 2023 16:55:48 +0100 Apply clang-tidy suggestions, avoid errors test-suite/quantlibbenchmark.cpp | 38 ++++++++++++++++++------------------ test-suite/quantlibglobalfixture.hpp | 2 +- test-suite/toplevelfixture.hpp | 4 ++-- 3 files changed, 22 insertions(+), 22 deletions(-) commit 265b60bbfd94b3cc50c3c234a70407448aeb84f9 Author: Peter Caspers Date: Sun, 12 Nov 2023 11:20:43 +0100 add check whether sequence length is exhausted ql/math/randomnumbers/burley2020sobolrsg.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0f621e7b845425e1659764f9d7a6aa40dcb5905d Author: Peter Caspers Date: Sat, 11 Nov 2023 17:58:52 +0100 make ctors explicit .../browniangenerators/sobolbrowniangenerator.hpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 8dd19ca5d3915655048d7a90972cb331b51aa055 Author: Peter Caspers Date: Sat, 11 Nov 2023 17:58:31 +0100 move to slow tests, formatting test-suite/lowdiscrepancysequences.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 5213e5235034d82bc299fb84e56d6f659f928d23 Author: Peter Caspers Date: Sat, 11 Nov 2023 16:32:09 +0100 hardcode hash function, since it seems to have a different implementation on windows ql/math/randomnumbers/burley2020sobolrsg.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit 13c5dcf6370e14d7a454b695eafe072d4bdc6965 Author: Peter Caspers Date: Sat, 11 Nov 2023 13:25:04 +0100 fixes ql/math/randomnumbers/burley2020sobolrsg.hpp | 2 +- ql/math/randomnumbers/sobolrsg.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit d0b22ae6e81f97895b547d2d6fd1973811b061ae Author: Peter Caspers Date: Sat, 11 Nov 2023 13:06:32 +0100 missing include test-suite/lowdiscrepancysequences.cpp | 1 + 1 file changed, 1 insertion(+) commit e53829966d4384b34f8c21c87355a034eec3f026 Author: Peter Caspers Date: Fri, 10 Nov 2023 20:27:16 +0100 add Burley 2020 scrambled Sobol sequence generator QuantLib.vcxproj | 2 + QuantLib.vcxproj.filters | 6 + ql/CMakeLists.txt | 2 + ql/math/randomnumbers/Makefile.am | 6 +- ql/math/randomnumbers/burley2020sobolrsg.cpp | 139 +++++++++++++++++++++ ql/math/randomnumbers/burley2020sobolrsg.hpp | 64 ++++++++++ ql/math/randomnumbers/sobolbrownianbridgersg.cpp | 64 +++++++--- ql/math/randomnumbers/sobolbrownianbridgersg.hpp | 22 +++- ql/math/randomnumbers/sobolrsg.cpp | 65 +++++++--- ql/math/randomnumbers/sobolrsg.hpp | 6 +- .../browniangenerators/sobolbrowniangenerator.cpp | 62 ++++++--- .../browniangenerators/sobolbrowniangenerator.hpp | 58 +++++++-- test-suite/lowdiscrepancysequences.cpp | 69 +++++++++- 13 files changed, 502 insertions(+), 63 deletions(-) commit 77418dc33abba30c23afbea012864f9e7baa158b Merge: 2e39334c7 a040dee70 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 18:23:26 +0100 Automated registration of Unit test using boost test (#1811) commit a040dee70adae560822cc558b2785c0ec4bbfbb7 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 17:05:05 +0100 Group parametric tests in sub-suite to allow precondition test-suite/basketoption.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ef04c9b313fcff46fa11605e7f77d497a70edec2 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 15:42:49 +0100 Add a few missing disclaimers test-suite/quantlibglobalfixture.cpp | 6 +++--- test-suite/quantlibglobalfixture.hpp | 22 +++++++++++++++++++++- test-suite/speedlevel.cpp | 21 ++++++++++++++++++++- test-suite/speedlevel.hpp | 1 + test-suite/toplevelfixture.hpp | 23 ++++++++++++++++++++++- 5 files changed, 67 insertions(+), 6 deletions(-) commit 390a8a8aa7366e23a0fb84a09881b0aa881254c7 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 15:37:41 +0100 Fix check on test times tools/check_test_times.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2e39334c7a4d2277776d043a4320b4c81b43a654 Merge: 09969e168 0cdb45d06 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 14:58:49 +0100 fixing compilation issue: value usage of fwd declared struct (#1823) commit 09969e1681c07aa523325c5e050cbf6ad96dc32e Merge: e16a22f6a d8a885ec7 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 11:54:40 +0100 CMake presets: Obey ordering rule (#1825) commit e16a22f6a0cfc73e35b6a3427f99c37456f83d50 Merge: ef331f567 acbea4922 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 11:54:14 +0100 testing: Add basic fuzz test harnesses (#1807) commit ef331f5672f3340e8dddc496ca883aa787a899a4 Author: Luigi Ballabio Date: Wed, 8 Nov 2023 09:34:41 +0100 Moved a few tests in a different section test-suite/andreasenhugevolatilityinterpl.cpp | 3 --- test-suite/hestonmodel.cpp | 3 --- test-suite/hestonslvmodel.cpp | 2 +- 3 files changed, 1 insertion(+), 7 deletions(-) commit 2a9b4af15692dc377d46c99e58863f60f4d4907b Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Wed, 8 Nov 2023 09:25:35 +0800 Update test-suite/dividendoption.cpp Co-authored-by: Luigi Ballabio test-suite/dividendoption.cpp | 1 + 1 file changed, 1 insertion(+) commit 0cdb45d06b067d65e7a98f08314a6a01636a6e3e Author: Paul Date: Tue, 7 Nov 2023 19:58:12 +0100 fixing compilation issue: value usage of fwd declared struct test-suite/optimizers.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit d8a885ec72e5c690fe86a613d5fd24e608fae6e9 Author: Paul Date: Mon, 6 Nov 2023 20:20:50 +0100 cleanup presets: make use previous presets for inheritance CMakePresets.json | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 08c0571647ee882f84bb5ae7b900492f2732f444 Author: Paul Date: Tue, 7 Nov 2023 19:54:22 +0100 cmake presets ordering important aka fix ninja builds CMakePresets.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit acbea4922056601cd8df9b32e4b1cad87e885552 Author: Nathaniel Brough Date: Tue, 7 Nov 2023 08:52:48 -0800 Disable fuzz-test builds by default CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 15e33c5fd02d8d2b8e59a0c615c653db636b99e3 Merge: 589b56c6e 120170f08 Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Tue, 7 Nov 2023 17:28:20 +0800 Merge pull request #9 from Sidsky/automated-test-registration Automated test registration commit 120170f08337c62def377b16fd01af5704131c30 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 15:54:57 +0800 Migrated lowdiscrepancysequences.cpp test-suite/CMakeLists.txt | 5 +- test-suite/Makefile.am | 2 - test-suite/lowdiscrepancysequences.cpp | 90 +++++++++------------------------- test-suite/lowdiscrepancysequences.hpp | 58 ---------------------- test-suite/quantlibbenchmark.cpp | 8 ++- test-suite/quantlibtestsuite.cpp | 8 --- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 8 files changed, 32 insertions(+), 143 deletions(-) commit 7ef6b4a36fe1ed17ecec83d143d3de5575619189 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 15:50:54 +0800 Migrated lookbackoptions.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/lookbackoptions.cpp | 34 +++++++++++------------------- test-suite/lookbackoptions.hpp | 40 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 12 insertions(+), 70 deletions(-) commit 4ce79390ac722167111e04212969722e7bc3b2ef Author: siddharthmehrotra Date: Tue, 7 Nov 2023 15:43:35 +0800 Migrated linearleastsquaresregression.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/linearleastsquaresregression.cpp | 25 ++++++++----------- test-suite/linearleastsquaresregression.hpp | 37 ----------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 60 deletions(-) commit c459079e7c967e9881317c210132ac9207c01ee4 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 15:38:28 +0800 Migrated libormarketmodelprocess.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/libormarketmodel.cpp | 2 +- test-suite/libormarketmodelprocess.cpp | 29 +++++++++---------------- test-suite/libormarketmodelprocess.hpp | 39 ---------------------------------- test-suite/quantlibtestsuite.cpp | 5 ----- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 11 insertions(+), 70 deletions(-) commit 115d889ffb63f7d613b84a85ca5bf899686c0654 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 15:32:49 +0800 Migrated libormarketmodel.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/libormarketmodel.cpp | 37 ++++++++++----------------------- test-suite/libormarketmodel.hpp | 40 ------------------------------------ test-suite/quantlibtestsuite.cpp | 1 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 11 insertions(+), 73 deletions(-) commit 423708e98972599bea6d06ab029a758c89f579d9 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 15:24:51 +0800 Migrated lazyobject.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 2 -- test-suite/lazyobject.cpp | 30 ++++++++++++--------------- test-suite/lazyobject.hpp | 39 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 13 insertions(+), 65 deletions(-) commit 4d0533877e75a22e1187be5130117dc640213abf Author: siddharthmehrotra Date: Tue, 7 Nov 2023 15:18:01 +0800 Migrated jumpdiffusion.cpp test-suite/CMakeLists.txt | 5 ++--- test-suite/Makefile.am | 1 - test-suite/jumpdiffusion.cpp | 17 ++++++++--------- test-suite/jumpdiffusion.hpp | 36 ------------------------------------ test-suite/quantlibbenchmark.cpp | 8 ++++++-- test-suite/quantlibglobalfixture.cpp | 2 +- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 9 files changed, 17 insertions(+), 58 deletions(-) commit 7887436361efd146ef871c95735769bdcf3b7991 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:48:09 +0800 Migrated interpolations.cpp test-suite/CMakeLists.txt | 5 +- test-suite/Makefile.am | 2 - test-suite/interpolations.cpp | 210 +++++++++++++---------------------- test-suite/interpolations.hpp | 75 ------------- test-suite/quantlibbenchmark.cpp | 8 +- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 85 insertions(+), 221 deletions(-) commit 726887e4447bb3c7aa49a745b916e5f04513c77d Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:31:52 +0800 Migrated interestrates.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/interestrates.cpp | 14 +++++++------- test-suite/interestrates.hpp | 35 ----------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 7 insertions(+), 50 deletions(-) commit ac967c1badc6fb6d5a98a27c6ca9fc8e0446c834 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:27:49 +0800 Migrated integrals.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/integrals.cpp | 187 ++++++++++++++--------------------- test-suite/integrals.hpp | 52 ---------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 75 insertions(+), 172 deletions(-) commit dc9c14d5aaafc805ab2ed46397ff8826756caed0 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:18:57 +0800 Migrated inflationvolatility.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/inflationvolatility.cpp | 30 ++++++++------------------ test-suite/inflationvolatility.hpp | 41 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 70 deletions(-) commit fe7483416d2916e804b7efdf820c731ce69b46d0 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:15:05 +0800 Migrated inflationcpiswap.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/inflationcpiswap.cpp | 25 ++++++++--------------- test-suite/inflationcpiswap.hpp | 39 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 64 deletions(-) commit 6cb7a082eb5b444859f1821c11f098c4925f853b Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:12:22 +0800 Migrated inflationcpicapfloor.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/inflationcpicapfloor.cpp | 24 ++++++-------------- test-suite/inflationcpicapfloor.hpp | 43 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 7 insertions(+), 68 deletions(-) commit a7ee503cbfced70ab8c3e2c154155f183e7cbc60 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:09:55 +0800 Migrated inflationcpibond.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/inflationcpibond.cpp | 19 ++++++++----------- test-suite/inflationcpibond.hpp | 34 ---------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 53 deletions(-) commit 92d9aedd99114863fc6097d5dc426a97f62b8418 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:07:16 +0800 Migrated inflationcapflooredcoupon.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/inflationcapflooredcoupon.cpp | 20 ++++++----------- test-suite/inflationcapflooredcoupon.hpp | 38 -------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 7 insertions(+), 59 deletions(-) commit 53796970c7b43986e6183a0de4173da862eb3e24 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 14:03:54 +0800 Migrated inflationcapfloor.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/inflationcapfloor.cpp | 25 ++++++++------------- test-suite/inflationcapfloor.hpp | 37 -------------------------------- test-suite/inflationcapflooredcoupon.cpp | 1 - test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 9 insertions(+), 62 deletions(-) commit 0e19a66d858b74cc05c1e112e086fb4c61ab55ab Author: siddharthmehrotra Date: Tue, 7 Nov 2023 13:36:42 +0800 Moving headers from quantlibglobalfixture.hpp back to quantlibtestsuite.cpp test-suite/quantlibglobalfixture.cpp | 4 ++++ test-suite/quantlibglobalfixture.hpp | 20 -------------------- test-suite/quantlibtestsuite.cpp | 4 ++++ 3 files changed, 8 insertions(+), 20 deletions(-) commit 6be0974d82b1aadd3310724c59a173066d45032d Author: siddharthmehrotra Date: Tue, 7 Nov 2023 13:18:29 +0800 Migrated inflation.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/inflation.cpp | 346 ++++++++++++++++------------------- test-suite/inflation.hpp | 48 ----- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 160 insertions(+), 242 deletions(-) commit ac72122461ec46a63d39c16d25c807a038029740 Author: siddharthmehrotra Date: Tue, 7 Nov 2023 10:54:28 +0800 Migrated indexes.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/indexes.cpp | 22 ++++++++++----------- test-suite/indexes.hpp | 37 ------------------------------------ test-suite/quantlibglobalfixture.cpp | 22 --------------------- test-suite/quantlibglobalfixture.hpp | 21 ++++++++++++++++++++ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/speedlevel.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 10 files changed, 32 insertions(+), 80 deletions(-) commit 2de91c2fdc9f15502067a6d061713860b656d240 Author: klaus spanderen Date: Mon, 6 Nov 2023 22:33:14 +0100 fixed explicit constructor ql/math/integrals/expsinhintegral.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3b708e97dd3713cf682e70bed09131232cda80c0 Author: klaus spanderen Date: Mon, 6 Nov 2023 22:32:37 +0100 moved test to fast section ql/pricingengines/vanilla/analytichestonengine.cpp | 7 ++----- ql/pricingengines/vanilla/analytichestonengine.hpp | 3 --- test-suite/andreasenhugevolatilityinterpl.cpp | 3 --- 3 files changed, 2 insertions(+), 11 deletions(-) commit 078e5defcb4d65808d325b2b6d4cde6ff7ea154b Author: klaus spanderen Date: Mon, 6 Nov 2023 21:18:49 +0100 removed commented out code ql/pricingengines/vanilla/analytichestonengine.cpp | 8 -------- 1 file changed, 8 deletions(-) commit 0c6cfb1cd7d7c8ab69610890685672c9f3882e42 Author: klaus spanderen Date: Mon, 6 Nov 2023 21:14:23 +0100 removed useless includes ql/math/integrals/exponentialintegrals.cpp | 2 -- ql/pricingengines/vanilla/analytichestonengine.cpp | 2 -- ql/pricingengines/vanilla/exponentialfittinghestonengine.cpp | 2 -- 3 files changed, 6 deletions(-) commit d09386c1b7af05c2afef77001c4347104e9bbba2 Author: klaus spanderen Date: Mon, 6 Nov 2023 19:16:17 +0100 . ql/math/all.hpp | 1 + 1 file changed, 1 insertion(+) commit c6ade2c14d3f2a6c4fa5cc49f9b0e62642805341 Author: siddharthmehrotra Date: Mon, 6 Nov 2023 17:10:51 +0800 Migrated hybridhestonhullwhiteprocess.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/hestonslvmodel.cpp | 194 ++++++++++++++-------------- test-suite/hybridhestonhullwhiteprocess.cpp | 76 +++-------- test-suite/hybridhestonhullwhiteprocess.hpp | 48 ------- test-suite/quantlibtestsuite.cpp | 4 +- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 119 insertions(+), 209 deletions(-) commit 9f940fd4929832354b60780b4479fc80067408c0 Author: siddharthmehrotra Date: Mon, 6 Nov 2023 17:04:41 +0800 Migrated himalayaoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/himalayaoption.cpp | 16 ++++++++-------- test-suite/himalayaoption.hpp | 32 -------------------------------- test-suite/quantlibtestsuite.cpp | 8 +------- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 53 deletions(-) commit cb3d9f7ca9d3841c3d97824306b9ef471335cd67 Author: siddharthmehrotra Date: Mon, 6 Nov 2023 16:54:11 +0800 Migrated hestonslvmodel.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/hestonslvmodel.cpp | 2373 +++++++++++++++++----------------- test-suite/hestonslvmodel.hpp | 56 - test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 1161 insertions(+), 1276 deletions(-) commit 603340ae6f3b132af559e3aa5f7ade4146708549 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 17:49:03 +0800 Skip unity build for quantlibbenchmark.cpp test-suite/CMakeLists.txt | 1 + test-suite/Makefile.am | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit 445c6dd41baedb18cb3a78fba2c392735467bd39 Author: klaus spanderen Date: Sun, 5 Nov 2023 12:57:59 +0100 change default to angled contour integration ql/pricingengines/vanilla/analytichestonengine.cpp | 17 ++++++++++------- .../vanilla/analytichestonhullwhiteengine.cpp | 9 +++++++-- ql/pricingengines/vanilla/batesengine.cpp | 18 ++++++++++++++---- test-suite/hestonmodel.cpp | 8 ++++---- 4 files changed, 35 insertions(+), 17 deletions(-) commit 62c0f14f252bf06ea5f277717216cc3ffe7cac38 Merge: 428bdd40e 3a4285e8a Author: Luigi Ballabio Date: Fri, 3 Nov 2023 12:09:21 +0100 Add 2023-12-15 as South African public holiday (#1819) commit 44665e64799c2b63715ff39d6f7b7ba53f011c58 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 17:38:17 +0800 Migrated hestonmodel.cpp test-suite/CMakeLists.txt | 3 +- test-suite/Makefile.am | 2 - test-suite/hestonmodel.cpp | 536 ++++++++++++++++------------------- test-suite/hestonmodel.hpp | 75 ----- test-suite/quantlibbenchmark.cpp | 8 +- test-suite/quantlibtestsuite.cpp | 3 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 244 insertions(+), 387 deletions(-) commit 3a4285e8a115aab6f0f1163ab8f5ae97b771c686 Author: Francois Botha Date: Fri, 3 Nov 2023 11:38:12 +0200 Add 2023-12-15 as South African public holiday ql/time/calendars/southafrica.cpp | 2 ++ 1 file changed, 2 insertions(+) commit 6f61bd00b1fe4780c6dd373912b4bbf66eab9da4 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 17:11:44 +0800 Migrated gsr.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/gsr.cpp | 19 +++++++++--------- test-suite/gsr.hpp | 37 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 54 deletions(-) commit 342fa6409a265472594697ad5644a852619741f1 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 17:09:08 +0800 Migrated gjrgarchmodel.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/gjrgarchmodel.cpp | 26 ++++++++++--------------- test-suite/gjrgarchmodel.hpp | 37 ------------------------------------ test-suite/quantlibtestsuite.cpp | 5 ----- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 64 deletions(-) commit 2a225615d5a4bc82a729124a3e2462902840f3e1 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 16:58:57 +0800 Migrated gaussianquadratures.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/gaussianquadratures.cpp | 192 ++++++++++++++++------------------- test-suite/gaussianquadratures.hpp | 45 -------- test-suite/quantlibtestsuite.cpp | 1 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 86 insertions(+), 158 deletions(-) commit 9826b9d84348af0a34078308df3007398716b1d6 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 16:52:53 +0800 Migrated garch.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/garch.cpp | 69 +++++++++++++++++------------------- test-suite/garch.hpp | 33 ----------------- test-suite/quantlibtestsuite.cpp | 1 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 33 insertions(+), 76 deletions(-) commit b71ec470101a1a1a78c183b42e99d2b87c53be40 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 16:48:04 +0800 Migrated functions.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/functions.cpp | 29 +++++++++++--------------- test-suite/functions.hpp | 40 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 12 insertions(+), 65 deletions(-) commit 455b1dd38fb2f5fc2de892b6bf4e64977b171eb9 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 16:45:43 +0800 Migrated forwardrateagreement.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/forwardrateagreement.cpp | 16 +++++++++------- test-suite/forwardrateagreement.hpp | 34 ---------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 49 deletions(-) commit 1d2da6b5d365cbe6cf4ef6fb3c53a023080c48b4 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 16:42:37 +0800 Migrated forwardoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/forwardoption.cpp | 293 ++++++++++++++++------------------- test-suite/forwardoption.hpp | 43 ----- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 134 insertions(+), 210 deletions(-) commit 5fc4c7fa7dc9d69d18a127532e9d54c7c3e3933b Author: siddharthmehrotra Date: Fri, 3 Nov 2023 16:37:32 +0800 Migrated fittedbonddiscountcurve.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/fittedbonddiscountcurve.cpp | 18 ++++++++--------- test-suite/fittedbonddiscountcurve.hpp | 36 ---------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 53 deletions(-) commit 68e0e4e904bd4bc6dcfcc3c56946eea59b7ba027 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 15:37:36 +0800 Migrated fdsabr.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/fdsabr.cpp | 103 ++++++++++++++++------------------- test-suite/fdsabr.hpp | 40 -------------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 46 insertions(+), 105 deletions(-) commit 3a38262e18fb4e556ea97fa45c341adb30bc1825 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 15:32:45 +0800 Migrated fdmlinearop.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/fdmlinearop.cpp | 360 ++++++++++++++++------------------- test-suite/fdmlinearop.hpp | 56 ------ test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 162 insertions(+), 262 deletions(-) commit 3e2498c32b00275894b779d24c5ffd46a151b040 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 15:21:51 +0800 Migrated fdheston.cpp test-suite/CMakeLists.txt | 5 +- test-suite/Makefile.am | 2 - test-suite/fdcir.cpp | 1 - test-suite/fdheston.cpp | 90 ++++++++++++++---------------------- test-suite/fdheston.hpp | 48 ------------------- test-suite/quantlibbenchmark.cpp | 8 +++- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 9 files changed, 42 insertions(+), 118 deletions(-) commit 43511ea9556076b2791f2c4ba32dda760b171310 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 15:10:35 +0800 Migrated fdcir.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/fdcir.cpp | 16 ++++++++-------- test-suite/fdcir.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 52 deletions(-) commit 21b75a911b94144c8d040c916e351a87432eb95b Author: siddharthmehrotra Date: Fri, 3 Nov 2023 15:07:36 +0800 Migrated fdcev.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/fdcev.cpp | 21 +++++++++----------- test-suite/fdcev.hpp | 37 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 57 deletions(-) commit 589b56c6e13d14d4be237218b80b24fb05a9acb5 Merge: 879652233 3c3230f46 Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Fri, 3 Nov 2023 14:23:26 +0800 Merge pull request #8 automated-test-registration commit 3c3230f4602446326f52d0cb4e562cf300977888 Author: siddharthmehrotra Date: Fri, 3 Nov 2023 14:21:23 +0800 Removed conditions for unity build test-suite/quantlibbenchmark.cpp | 31 ------------------------------- 1 file changed, 31 deletions(-) commit 97fd015f640ce9fb0e3aad7a3d92d2e28a19fcd1 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 16:30:07 +0800 Added conditions for unity build test-suite/quantlibbenchmark.cpp | 4 ++-- test-suite/quantlibglobalfixture.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit acec033066a8a63779e29c6607eeb3ab5fa82a99 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 15:51:57 +0800 Migrated fastfouriertransform.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/fastfouriertransform.cpp | 20 +++++++++---------- test-suite/fastfouriertransform.hpp | 37 ------------------------------------ test-suite/quantlibbenchmark.cpp | 3 ++- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 11 insertions(+), 57 deletions(-) commit d057548ea7b62fac84114a2510f19207081fa39f Author: siddharthmehrotra Date: Thu, 2 Nov 2023 15:48:17 +0800 Migrated extensibleoptions.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/extensibleoptions.cpp | 22 +++++++++------------- test-suite/extensibleoptions.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 57 deletions(-) commit ec5525f6f619648dae79905d5615a032de434693 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 15:45:55 +0800 Migrated extendedtrees.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/extendedtrees.cpp | 34 ++++++++++++------------------ test-suite/extendedtrees.hpp | 41 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 13 insertions(+), 70 deletions(-) commit 7bd925125a43e2d9b967ce6dab7f5d6ad6c379fc Author: siddharthmehrotra Date: Thu, 2 Nov 2023 15:30:56 +0800 Added condition for unity builds in quantlibbenchmark.cpp test-suite/quantlibbenchmark.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 2355b5b369a683864bce3ac76daf0f75ae148de7 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 13:40:36 +0800 Migrated exchangerate.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/exchangerate.cpp | 27 +++++++++++-------------- test-suite/exchangerate.hpp | 39 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 12 insertions(+), 62 deletions(-) commit 896f012c3380576d8d0b356aa1126171f47452d8 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 13:37:23 +0800 Migrated everestoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/everestoption.cpp | 16 ++++++++-------- test-suite/everestoption.hpp | 32 -------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 48 deletions(-) commit e4d320edf0df7a265b3b4aa9308b8f636d16e0b9 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 13:23:24 +0800 removed boost test no main redefinition test-suite/quantlibglobalfixture.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bc67995f572877c77ea388ae6923db4c73a3b6f6 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 11:25:18 +0800 Migrated europeanoption.cpp test-suite/CMakeLists.txt | 3 +- test-suite/Makefile.am | 2 - test-suite/europeanoption.cpp | 317 ++++++++++++++++------------------- test-suite/europeanoption.hpp | 61 ------- test-suite/quantlibbenchmark.cpp | 18 +- test-suite/quantlibtestsuite.cpp | 3 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 157 insertions(+), 251 deletions(-) commit 985aaebff17f054c32e5a27b50cc8a29aa731d09 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 10:56:51 +0800 Migrated equitytotalreturnswap.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/basketoption.cpp | 2 -- test-suite/equitytotalreturnswap.cpp | 28 ++++++++++++---------------- test-suite/equitytotalreturnswap.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 12 insertions(+), 62 deletions(-) commit a6781ed7aff3925a710f61c86033b24f5ea846e9 Author: siddharthmehrotra Date: Thu, 2 Nov 2023 10:55:42 +0800 Added auto test case template in cdo.cpp test-suite/basketoption.cpp | 4 - test-suite/cdo.cpp | 498 ++++++++++++++++++++++---------------------- 2 files changed, 253 insertions(+), 249 deletions(-) commit d3e3e040d612f1c275c366e74156c8150fbec3ff Author: siddharthmehrotra Date: Thu, 2 Nov 2023 10:05:16 +0800 Added auto test case template in basketoption.cpp test-suite/basketoption.cpp | 135 ++++++++++++++++-------------- test-suite/dividendoption.cpp | 190 +++++++++++++++++++++--------------------- 2 files changed, 168 insertions(+), 157 deletions(-) commit eb6f83cd7109a659945bcb43ceeff1359088e9c3 Author: siddharthmehrotra Date: Wed, 1 Nov 2023 11:19:00 +0800 Migrated equityindex.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/equityindex.cpp | 52 ++++++++++++++---------------------- test-suite/equityindex.hpp | 43 ----------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 20 insertions(+), 83 deletions(-) commit b355809d14651eb5e129325068200b2c86ce5ec1 Author: siddharthmehrotra Date: Wed, 1 Nov 2023 11:10:17 +0800 Migrated equitycashflow.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/equitycashflow.cpp | 38 ++++++++++++++--------------------- test-suite/equitycashflow.hpp | 39 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 15 insertions(+), 70 deletions(-) commit 83a36bf533e78a6e19e6db5eb66543699c74a540 Author: siddharthmehrotra Date: Fri, 27 Oct 2023 15:42:15 +0800 Reviewed changes test-suite/quantlibtestsuite.cpp | 20 ++++++++++++++++++++ test-suite/testsuite.vcxproj | 2 +- test-suite/testsuite.vcxproj.filters | 4 ++-- 3 files changed, 23 insertions(+), 3 deletions(-) commit 27a696f7ba8a34939d57904faff923bdf8644c8a Author: siddharthmehrotra Date: Fri, 27 Oct 2023 15:35:01 +0800 Migrated doublebinaryoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/doublebinaryoption.cpp | 17 ++++++++--------- test-suite/doublebinaryoption.hpp | 36 ------------------------------------ test-suite/quantlibbenchmark.cpp | 7 +++++-- test-suite/quantlibtestsuite.cpp | 4 ---- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 13 insertions(+), 57 deletions(-) commit fe4c3de6157d52d1a61f1c423c4c12e6b109fa4a Author: siddharthmehrotra Date: Fri, 27 Oct 2023 15:21:20 +0800 Migrated doublebarrieroption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/doublebarrieroption.cpp | 34 +++++++++++++------------------ test-suite/doublebarrieroption.hpp | 39 ------------------------------------ test-suite/quantlibtestsuite.cpp | 1 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 14 insertions(+), 66 deletions(-) commit a6988e2839c1f2cd1e718e4236b5b5528254cc88 Author: siddharthmehrotra Date: Fri, 27 Oct 2023 15:03:36 +0800 Migrated dividendoption.cpp test-suite/CMakeLists.txt | 3 +- test-suite/Makefile.am | 3 -- test-suite/dividendoption.cpp | 67 ++++++++++++------------------------ test-suite/dividendoption.hpp | 50 --------------------------- test-suite/quantlibbenchmark.cpp | 8 +++-- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 8 files changed, 29 insertions(+), 108 deletions(-) commit 59f991c8ab6a6a7309aaab8888a47f28e5a71fdc Author: siddharthmehrotra Date: Fri, 27 Oct 2023 14:55:16 +0800 Migrated distributions.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/distributions.cpp | 69 ++++++++++++++---------------------- test-suite/distributions.hpp | 46 ------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 27 insertions(+), 96 deletions(-) commit 0c4d276b563699203e593fd4f8806dff4cdf06b4 Author: siddharthmehrotra Date: Fri, 27 Oct 2023 14:48:39 +0800 Migrated digitaloption.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 2 -- test-suite/digitaloption.cpp | 47 ++++++++++++------------------------ test-suite/digitaloption.hpp | 44 --------------------------------- test-suite/quantlibbenchmark.cpp | 8 ++++-- test-suite/quantlibtestsuite.cpp | 3 --- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 22 insertions(+), 89 deletions(-) commit 819bb231982faa8732653eca3e752f5d91bf068c Author: siddharthmehrotra Date: Fri, 27 Oct 2023 14:30:48 +0800 Migrated digitalcoupon.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/digitalcoupon.cpp | 36 ++++++++++++------------------ test-suite/digitalcoupon.hpp | 43 ------------------------------------ test-suite/quantlibtestsuite.cpp | 3 +-- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 15 insertions(+), 73 deletions(-) commit 73d2a6e4fead1b69a6b24e6980e720bd006aa6ac Author: siddharthmehrotra Date: Fri, 27 Oct 2023 14:27:45 +0800 Migrated defaultprobabilitycurves.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/defaultprobabilitycurves.cpp | 50 +++++++++++---------------------- test-suite/defaultprobabilitycurves.hpp | 44 ----------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 17 insertions(+), 85 deletions(-) commit 6bf0b5f4aa920da31daf9a7f60fb507ad95f1e6a Author: siddharthmehrotra Date: Fri, 27 Oct 2023 14:21:12 +0800 Migrated daycounters.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/daycounters.cpp | 85 ++++++++++++------------------------ test-suite/daycounters.hpp | 54 ----------------------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 27 insertions(+), 120 deletions(-) commit f9912e49b3ae16dbf3ea6f0419fa5b921223b2a4 Author: siddharthmehrotra Date: Fri, 27 Oct 2023 14:12:31 +0800 Migrated dates.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/dates.cpp | 46 ++++++++++++++---------------------- test-suite/dates.hpp | 45 ----------------------------------- test-suite/quantlibglobalfixture.cpp | 4 +++- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 21 insertions(+), 82 deletions(-) commit b056daba30432be1a1582b976dcaf89ece323bcf Author: siddharthmehrotra Date: Fri, 27 Oct 2023 11:23:36 +0800 defined boost_test_no_main in global fixture if parallel processing is enabled test-suite/quantlibglobalfixture.cpp | 1 + 1 file changed, 1 insertion(+) commit 87965223342b48510627f64d919586e29048b37f Merge: 301a0e416 ec1fb3fc7 Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Fri, 27 Oct 2023 10:18:25 +0800 Merge pull request #7 automated-test-registration commit ec1fb3fc79a4db1e9ce0471c0cb948c55842cec5 Author: siddharthmehrotra Date: Fri, 27 Oct 2023 09:39:27 +0800 Bug fix test-suite/cdo.cpp | 2 +- test-suite/quantlibglobalfixture.cpp | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) commit 428bdd40eea7b0ae1efa0c730b97c4a8967e55bf Merge: 6441d1b63 90028ed50 Author: Luigi Ballabio Date: Thu, 26 Oct 2023 17:50:03 +0200 Changed paymentLag type to Integer (#1818) commit 5370fbd96530362541a2a18d9b82036ae35a0108 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:47:48 +0800 Migrated curvestates.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/curvestates.cpp | 49 ++++++++++++++++++------------------ test-suite/curvestates.hpp | 38 ---------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 24 insertions(+), 71 deletions(-) commit d470e02b1d672358c478eb337f95fde05e03bbe6 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:39:55 +0800 Migrated currency.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/currency.cpp | 16 ++++++++-------- test-suite/currency.hpp | 32 -------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 48 deletions(-) commit 07496962a2510beb42af4d19b588c9ec0000eaa6 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:37:52 +0800 Migrated creditriskplus.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/creditriskplus.cpp | 16 +++++++++------- test-suite/creditriskplus.hpp | 34 ---------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 49 deletions(-) commit 42d394066596388bc593cf780323e6844eb2b4ac Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:35:39 +0800 Migrated creditdefaultswap.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/creditdefaultswap.cpp | 45 ++++++++++++++---------------------- test-suite/creditdefaultswap.hpp | 43 ---------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 17 insertions(+), 79 deletions(-) commit efd50993a7dafa603db128483c0a8e0c5d508308 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:31:45 +0800 Migrated crosscurrencyratehelpers.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/crosscurrencyratehelpers.cpp | 59 ++++++++++----------------------- test-suite/crosscurrencyratehelpers.hpp | 45 ------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 17 insertions(+), 95 deletions(-) commit 9be368b8fd1302795c4dc50bc1bfb7fd952a0b3a Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:19:36 +0800 Migrated covariance.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/covariance.cpp | 24 +++++++++-------------- test-suite/covariance.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 61 deletions(-) commit ce04ccaab04ec2700bc8337257ef48949d69ff3d Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:16:09 +0800 Migrated convertiblebonds.cpp test-suite/CMakeLists.txt | 3 +-- test-suite/Makefile.am | 2 -- test-suite/convertiblebonds.cpp | 22 +++++++++------------ test-suite/convertiblebonds.hpp | 37 ------------------------------------ test-suite/quantlibbenchmark.cpp | 8 ++++++-- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 16 insertions(+), 62 deletions(-) commit 43384a1d418d871e8a4e3c3c255551da4e84cce5 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:09:51 +0800 Migrated compoundoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/compoundoption.cpp | 21 ++++++++------------- test-suite/compoundoption.hpp | 35 ----------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 56 deletions(-) commit b3473d9e288dd4503a422b8e7a79343354416955 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:07:00 +0800 Migrated compiledboostversion.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/compiledboostversion.cpp | 16 ++++++++-------- test-suite/compiledboostversion.hpp | 33 --------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 49 deletions(-) commit f770d36c17051330549194f50db7401237169027 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:03:51 +0800 Migrated commodityunitofmeasure.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/commodityunitofmeasure.cpp | 15 ++++++++------- test-suite/commodityunitofmeasure.hpp | 35 ----------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 50 deletions(-) commit d2f2ff5dffb5ca55198df016fd074442316d3f31 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 17:01:15 +0800 Migrated cmsspread.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/cmsspread.cpp | 20 ++++++++++---------- test-suite/cmsspread.hpp | 35 ----------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 53 deletions(-) commit bc26486aa419b536decd19c8d9009e2f05b2c7c2 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 16:58:18 +0800 Migrated cms_normal.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/cms_normal.cpp | 21 ++++++++++----------- test-suite/cms_normal.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 55 deletions(-) commit 298d38eb7d7917f76a70af92e89a9a878ee19eb7 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 16:55:11 +0800 Migrated cms.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/cms.cpp | 21 ++++++++++----------- test-suite/cms.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 55 deletions(-) commit cdcf9b3931eecb1634c371456326228b0cb5b161 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 16:52:31 +0800 Migrated cliquetoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/cliquetoption.cpp | 27 ++++++++++--------------- test-suite/cliquetoption.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 63 deletions(-) commit dde5d43b63916d2643530a9e9a8e784eb7369384 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 16:49:40 +0800 Migrated chooseroption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/chooseroption.cpp | 21 ++++++++------------- test-suite/chooseroption.hpp | 32 -------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 53 deletions(-) commit da5627f687af4bd895d30be512b67789600d4d83 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 16:05:51 +0800 Migrated cdsoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/cdsoption.cpp | 15 ++++++++------- test-suite/cdsoption.hpp | 35 ----------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 50 deletions(-) commit d46936e509cb4443acd715ba67cbccd9c216aec5 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 15:59:11 +0800 Migrated cdo.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/cdo.cpp | 534 +++++++++++++++++------------------ test-suite/cdo.hpp | 36 --- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 254 insertions(+), 324 deletions(-) commit 2eab08d6ee47b0f17e0f50abcdb88a9e6f4c43cf Author: siddharthmehrotra Date: Thu, 26 Oct 2023 15:44:20 +0800 Migrated catbonds.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/catbonds.cpp | 80 +++++++++++++++--------------------- test-suite/catbonds.hpp | 39 ------------------ test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 32 insertions(+), 95 deletions(-) commit b6dc49b55395dd162bff974801051e4e638ba0b4 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 15:35:24 +0800 Migrated cashflows.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/cashflows.cpp | 52 ++++++++++++++++++------------------ test-suite/cashflows.hpp | 40 --------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 26 insertions(+), 74 deletions(-) commit 6268784b4a5a1a4dc3ed9b62d11a5d931c7e1090 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 14:12:47 +0800 Migrated capflooredcoupon.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/capflooredcoupon.cpp | 18 +++++++++--------- test-suite/capflooredcoupon.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 53 deletions(-) commit ab99be273605fc1d3939283a65d370613b2f3c30 Author: siddharthmehrotra Date: Thu, 26 Oct 2023 10:28:36 +0800 Migrated capfloor.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/capfloor.cpp | 42 +++++++++++++------------------- test-suite/capfloor.hpp | 46 ------------------------------------ test-suite/quantlibbenchmark.cpp | 6 +++++ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 22 insertions(+), 80 deletions(-) commit 4c0e4ca6d075967d23129023d88bebed7f25bc8a Author: siddharthmehrotra Date: Thu, 26 Oct 2023 10:10:12 +0800 Migrated callablebonds.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/callablebonds.cpp | 43 ++++++++++++++---------------------- test-suite/callablebonds.hpp | 41 ---------------------------------- test-suite/quantlibglobalfixture.cpp | 3 +++ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 19 insertions(+), 76 deletions(-) commit 90028ed50544a11f97bc58574fe21b2304cd8bc0 Author: Stoozy Date: Wed, 25 Oct 2023 20:02:27 -0400 –Changed paymentLag type to Integer ql/cashflows/cashflowvectors.hpp | 2 +- ql/cashflows/fixedratecoupon.cpp | 2 +- ql/cashflows/fixedratecoupon.hpp | 4 ++-- ql/cashflows/iborcoupon.cpp | 2 +- ql/cashflows/iborcoupon.hpp | 4 ++-- ql/cashflows/overnightindexedcoupon.cpp | 2 +- ql/cashflows/overnightindexedcoupon.hpp | 4 ++-- ql/cashflows/subperiodcoupon.cpp | 2 +- ql/cashflows/subperiodcoupon.hpp | 4 ++-- ql/instruments/bonds/amortizingfixedratebond.cpp | 2 +- ql/instruments/bonds/amortizingfixedratebond.hpp | 2 +- ql/instruments/bonds/amortizingfloatingratebond.cpp | 2 +- ql/instruments/bonds/amortizingfloatingratebond.hpp | 2 +- ql/instruments/fixedvsfloatingswap.cpp | 2 +- ql/instruments/fixedvsfloatingswap.hpp | 2 +- ql/instruments/makeois.cpp | 2 +- ql/instruments/makeois.hpp | 4 ++-- ql/instruments/overnightindexedswap.cpp | 8 ++++---- ql/instruments/overnightindexedswap.hpp | 8 ++++---- ql/termstructures/yield/oisratehelper.cpp | 4 ++-- ql/termstructures/yield/oisratehelper.hpp | 6 +++--- test-suite/overnightindexedswap.cpp | 4 ++-- 22 files changed, 37 insertions(+), 37 deletions(-) commit 65effc2467ea82e340639e1fb127e7a485044c01 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 18:07:35 +0800 Update Makefile.am test-suite/Makefile.am | 3 --- 1 file changed, 3 deletions(-) commit 83ffcb79675741ae60373c1986a17b8ff2d11a72 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 17:59:12 +0800 Migrated calendars.cpp test-suite/CMakeLists.txt | 3 +- test-suite/Makefile.am | 1 - test-suite/calendars.cpp | 112 +++++++++++------------------------ test-suite/calendars.hpp | 72 ---------------------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 7 files changed, 36 insertions(+), 158 deletions(-) commit 7ccba120ecf4faa38505f21e95ea21d3adde12f1 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 17:40:30 +0800 Migrated businessdayconventions.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/businessdayconventions.cpp | 17 ++++++++--------- test-suite/businessdayconventions.hpp | 33 --------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 50 deletions(-) commit f8cbaa6a5f98ee8eddebefee017d180c8b9eacfe Author: siddharthmehrotra Date: Wed, 25 Oct 2023 17:36:34 +0800 Migrated brownianbridge.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/brownianbridge.cpp | 18 ++++++++---------- test-suite/brownianbridge.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 8 insertions(+), 54 deletions(-) commit 8dd1862e13324df6e934abe650b338d1ca83d4ff Author: siddharthmehrotra Date: Wed, 25 Oct 2023 17:27:12 +0800 Migrated bonds.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/bonds.cpp | 71 ++++++++++++------------------------ test-suite/bonds.hpp | 50 ------------------------- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 23 insertions(+), 106 deletions(-) commit 36ed3071b6eb89f7917dc5a9e53aa6a14f314f5e Author: siddharthmehrotra Date: Wed, 25 Oct 2023 17:13:32 +0800 Migrated bondforward.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/bondforward.cpp | 22 ++++++++++----------- test-suite/bondforward.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 58 deletions(-) commit 0c2ac52606df204eb2e46edabaaa3f9434960f36 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 17:08:22 +0800 Migrated blackformula.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/blackformula.cpp | 54 ++++++++++++------------------------ test-suite/blackformula.hpp | 46 ------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 -- 7 files changed, 17 insertions(+), 91 deletions(-) commit 852cf902f22350bb863049ba02f2ab24577bea7f Author: siddharthmehrotra Date: Wed, 25 Oct 2023 16:59:57 +0800 Migrated blackdeltacalculator.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/blackdeltacalculator.cpp | 27 ++++++++++--------------- test-suite/blackdeltacalculator.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 63 deletions(-) commit 05430d63c9edb6665ddd1e818c82ed8d31e9e5ac Author: siddharthmehrotra Date: Wed, 25 Oct 2023 16:52:41 +0800 Combines namespace members into one in batesmodel.cpp. Updates testsuite.vcxproj.filters file test-suite/batesmodel.cpp | 53 +++++++++++++++++------------------- test-suite/testsuite.vcxproj.filters | 2 +- 2 files changed, 26 insertions(+), 29 deletions(-) commit d21cfa78b38bd26a9cfa0f372eed77847bfefe05 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 15:28:16 +0800 Migrated binaryoption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/binaryoption.cpp | 18 +++++++++--------- test-suite/binaryoption.hpp | 36 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 53 deletions(-) commit 11144ff6acd9d0b38c0831ee99baad18c9c58acd Author: siddharthmehrotra Date: Wed, 25 Oct 2023 15:24:21 +0800 Migrated bermudanswaption.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/bermudanswaption.cpp | 25 +++++++++-------------- test-suite/bermudanswaption.hpp | 39 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 62 deletions(-) commit 8088cdd931245f3e4f132d952b46907f41359974 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 15:09:49 +0800 Migrated batesmodel.cpp test-suite/CMakeLists.txt | 5 ++--- test-suite/Makefile.am | 1 - test-suite/batesmodel.cpp | 27 ++++++++++++------------- test-suite/batesmodel.hpp | 38 ------------------------------------ test-suite/quantlibbenchmark.cpp | 25 ++++++++++++++++-------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 8 files changed, 31 insertions(+), 71 deletions(-) commit ffffa1784dd3bd68f3f79233d034399868e5e3c3 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 14:40:09 +0800 Removed redundant qualification from TopLevelFixture test-suite/americanoption.cpp | 2 +- test-suite/amortizingbond.cpp | 2 +- test-suite/andreasenhugevolatilityinterpl.cpp | 2 +- test-suite/array.cpp | 2 +- test-suite/asianoptions.cpp | 2 +- test-suite/assetswap.cpp | 2 +- test-suite/autocovariances.cpp | 2 +- test-suite/barrieroption.cpp | 2 +- test-suite/basismodels.cpp | 2 +- test-suite/basisswapratehelpers.cpp | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) commit d325e5cacd55584152a48938c6634fa3c1b205d7 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 14:35:54 +0800 Migrated basketoption.cpp test-suite/CMakeLists.txt | 3 +- test-suite/Makefile.am | 1 - test-suite/basketoption.cpp | 248 ++++++++++++++++------------------- test-suite/basketoption.hpp | 43 ------ test-suite/quantlibbenchmark.cpp | 12 +- test-suite/quantlibtestsuite.cpp | 2 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 124 insertions(+), 189 deletions(-) commit 636d7bc69af69490fe4b91ab422a18dec0c90667 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 12:30:22 +0800 Migrated basisswapratehelpers.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/basisswapratehelpers.cpp | 25 ++++++++++-------------- test-suite/basisswapratehelpers.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 61 deletions(-) commit 231f93c1ac51a834305acbbca526181b9d3b7349 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 12:20:31 +0800 Migrated basismodels.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/basismodels.cpp | 23 ++++++++++------------ test-suite/basismodels.hpp | 38 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 10 insertions(+), 59 deletions(-) commit b1d6d3c27910a71f568b6db9cd4427fb176a1e6f Author: siddharthmehrotra Date: Wed, 25 Oct 2023 11:36:37 +0800 Migrated barrieroption.cpp test-suite/CMakeLists.txt | 3 +- test-suite/Makefile.am | 1 - test-suite/barrieroption.cpp | 814 +++++++++++++++++------------------ test-suite/barrieroption.hpp | 50 --- test-suite/quantlibbenchmark.cpp | 6 +- test-suite/quantlibtestsuite.cpp | 3 - test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 - 8 files changed, 405 insertions(+), 476 deletions(-) commit 37c23d2ef5ed65eb6328694d11c7e6b5aaf02b6e Author: siddharthmehrotra Date: Wed, 25 Oct 2023 11:12:57 +0800 Migrated autocovariances.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 3 +-- test-suite/autocovariances.cpp | 21 ++++++++++---------- test-suite/autocovariances.hpp | 37 ------------------------------------ test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 11 insertions(+), 57 deletions(-) commit f29da129989f313ad2d5701d03d2cbafc69da5cc Author: siddharthmehrotra Date: Wed, 25 Oct 2023 11:06:35 +0800 Migrated assetswap.cpp test-suite/CMakeLists.txt | 1 - test-suite/Makefile.am | 1 - test-suite/assetswap.cpp | 45 ++++++++++++++---------------------- test-suite/assetswap.hpp | 43 ---------------------------------- test-suite/quantlibtestsuite.cpp | 2 -- test-suite/testsuite.vcxproj | 1 - test-suite/testsuite.vcxproj.filters | 3 --- 7 files changed, 17 insertions(+), 79 deletions(-) commit 6f5ac277eeba435b55a22c389ac29ff91f0ee4b6 Author: siddharthmehrotra Date: Wed, 25 Oct 2023 10:48:52 +0800 Migrated functions from quantlibtestsuite.cpp to quantlibglobalfixture.cpp test-suite/quantlibbenchmark.cpp | 4 +- test-suite/quantlibglobalfixture.cpp | 129 +++++++++++++++++++++++++++++++++-- test-suite/quantlibtestsuite.cpp | 106 ---------------------------- 3 files changed, 127 insertions(+), 112 deletions(-) commit 301a0e416005eed2e2e9ee6a1c01743de7f24c23 Merge: c4249d694 8be12adad Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Wed, 25 Oct 2023 09:22:16 +0800 Merge pull request #6 from Sidsky/automated-test-registration Migrated asianoptions.cpp, array.cpp, andreasenhugevolatilityinterpl.… commit 6441d1b63bdc5da112fec297c8e16fac84cbbb2a Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 22 Oct 2023 02:02:29 +0000 Automated fixes by clang-tidy ql/instruments/cpicapfloor.cpp | 4 ++-- ql/instruments/cpicapfloor.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 0a745faa2e891a33136ac40a4cbf60138798218d Merge: 23156dbeb 24bbaaa53 Author: Luigi Ballabio Date: Fri, 20 Oct 2023 19:21:34 +0200 Remove features deprecated in version 1.28 (#1815) commit 23156dbeb6b2d390e45b1474d8161588e539507a Merge: e5bef2ed6 332380544 Author: Luigi Ballabio Date: Fri, 20 Oct 2023 11:47:59 +0200 Fix parameter name (#1814) commit e5bef2ed6e02e589837bc874df54ae8a44a418aa Merge: 3a9fd6039 c7a31049c Author: Luigi Ballabio Date: Fri, 20 Oct 2023 11:47:37 +0200 minor improvements for the thread safe observer pattern (#1808) commit 3a9fd603925e26e7743a1353e1c310e6d4c241bb Merge: ff5be2798 20eb0e1fe Author: Luigi Ballabio Date: Fri, 20 Oct 2023 11:46:14 +0200 Feature/add apple m series to presets (#1809) commit 24bbaaa53d6f5ef5ba98ee14f7bbba6c1f75a0ea Author: Luigi Ballabio Date: Fri, 20 Oct 2023 11:43:50 +0200 Remove features deprecated in version 1.28 QuantLib.vcxproj | 4 - QuantLib.vcxproj.filters | 15 --- cmake/GenerateHeaders.cmake | 9 +- configure.ac | 1 - ql/CMakeLists.txt | 4 - ql/experimental/Makefile.am | 2 +- ql/experimental/all.hpp | 1 - ql/experimental/amortizingbonds/Makefile.am | 22 ----- ql/experimental/amortizingbonds/all.hpp | 4 - .../amortizingbonds/amortizingcmsratebond.hpp | 23 ----- .../amortizingbonds/amortizingfixedratebond.hpp | 23 ----- .../amortizingbonds/amortizingfloatingratebond.hpp | 23 ----- ql/experimental/callablebonds/callablebond.cpp | 15 --- ql/experimental/callablebonds/callablebond.hpp | 14 --- ql/instruments/bonds/amortizingfixedratebond.cpp | 68 ------------- ql/instruments/bonds/amortizingfixedratebond.hpp | 33 ------- ql/instruments/bonds/fixedratebond.cpp | 107 --------------------- ql/instruments/bonds/fixedratebond.hpp | 47 +-------- ql/instruments/bonds/floatingratebond.cpp | 75 --------------- ql/instruments/bonds/floatingratebond.hpp | 30 ------ ql/instruments/cpicapfloor.cpp | 41 +------- ql/instruments/cpicapfloor.hpp | 49 ---------- ql/termstructures/volatility/sabrsmilesection.cpp | 11 --- ql/termstructures/volatility/sabrsmilesection.hpp | 10 -- test-suite/callablebonds.cpp | 24 ----- 25 files changed, 7 insertions(+), 648 deletions(-) commit 8be12adadb57fd743e3fb3af9a2268ddeacb47e5 Author: siddharthmehrotra Date: Fri, 20 Oct 2023 14:52:59 +0800 Migrated asianoptions.cpp, array.cpp, andreasenhugevolatilityinterpl.cpp and amortizingbond.cpp test-suite/CMakeLists.txt | 6 +- test-suite/Makefile.am | 5 - test-suite/amortizingbond.cpp | 22 +- test-suite/amortizingbond.hpp | 33 - test-suite/andreasenhugevolatilityinterpl.cpp | 147 ++-- test-suite/andreasenhugevolatilityinterpl.hpp | 49 -- test-suite/array.cpp | 25 +- test-suite/array.hpp | 38 - test-suite/asianoptions.cpp | 968 ++++++++++++-------------- test-suite/asianoptions.hpp | 58 -- test-suite/quantlibbenchmark.cpp | 6 +- test-suite/quantlibtestsuite.cpp | 13 - test-suite/testsuite.vcxproj | 4 - test-suite/testsuite.vcxproj.filters | 12 - 14 files changed, 548 insertions(+), 838 deletions(-) commit ff5be279837e01f379387c9ca4676fdb9f108590 Author: Luigi Ballabio Date: Thu, 15 Apr 2021 16:25:45 +0200 Set version to 1.33-dev. CMakeLists.txt | 6 +++--- configure.ac | 2 +- ql/version.hpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit c4249d6947ea6086d98b2b4c120fd902781cd267 Merge: d5dfa3356 849d213bd Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Fri, 20 Oct 2023 14:07:16 +0800 Merge pull request #5 from klausspanderen/test_reg declare benchmark test cases and add cpp to Makefile.am and CMakeLists.txt commit 849d213bd7b4a1f270ea95e228303b5fe5ace767 Author: klaus spanderen Date: Thu, 19 Oct 2023 20:30:48 +0200 declare benchmark tests test-suite/CMakeLists.txt | 4 ++-- test-suite/Makefile.am | 5 +++++ test-suite/quantlibbenchmark.cpp | 19 ++++++++----------- 3 files changed, 15 insertions(+), 13 deletions(-) commit d5dfa3356d918b89f202a02e13918c6e9fae17f0 Merge: 65ec85e66 583aafd5e Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:25:43 +0800 Merge pull request #4 from Sidsky/automated-test-registration adds test case in quantlibbenchmark.cpp using std::bind commit 332380544deccc5ab1dc12f9625c459a38afb836 Author: Francois Botha Date: Thu, 19 Oct 2023 10:06:52 +0200 Fix parameter name ql/instruments/bond.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 583aafd5e313e086572ad1c085e69be8ee37cf81 Author: siddharthmehrotra Date: Wed, 18 Oct 2023 17:20:45 +0800 adds test case in quantlibbenchmark.cpp using std::bind test-suite/CMakeLists.txt | 5 +++-- test-suite/quantlibbenchmark.cpp | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) commit 65ec85e66b7336eeb7970e737ab239533b0ae6c5 Merge: 82f71c2b2 677a73e42 Author: Sidsky <61586290+Sidsky@users.noreply.github.com> Date: Thu, 12 Oct 2023 15:02:03 +0800 Merge pull request #3 from Sidsky/automated-test-registration Updates to use automated registration commit a90a17dd7951f0d13eee384ec7c5ebc7f0ec0f89 Author: siddharthmehrotra Date: Thu, 14 Sep 2023 17:29:38 +0800 Updates to use automated registration test-suite/CMakeLists.txt | 8 +-- test-suite/Makefile.am | 8 +-- test-suite/americanoption.cpp | 101 +++++++++++------------------------ test-suite/americanoption.hpp | 62 --------------------- test-suite/instruments.cpp | 31 +++++------ test-suite/instruments.hpp | 37 ------------- test-suite/paralleltestrunner.hpp | 3 +- test-suite/quantlibbenchmark.cpp | 4 +- test-suite/quantlibglobalfixture.cpp | 66 +++++++++++++++++++++++ test-suite/quantlibglobalfixture.hpp | 19 +++++++ test-suite/quantlibtestsuite.cpp | 64 ++++++---------------- test-suite/speedlevel.cpp | 15 ++++++ test-suite/speedlevel.hpp | 9 ++++ test-suite/testsuite.vcxproj | 6 ++- test-suite/testsuite.vcxproj.filters | 18 ++++--- test-suite/toplevelfixture.hpp | 34 ++++++++++++ tools/check_test_times.py | 11 ++-- 17 files changed, 242 insertions(+), 254 deletions(-) commit f66acb57a6b253f884584f82a1d901ce94800679 Author: klaus spanderen Date: Wed, 11 Oct 2023 22:19:32 +0200 . test-suite/testsuite.vcxproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 306fff10314be81ebef3d382d682f89c894c4e26 Author: klaus spanderen Date: Wed, 11 Oct 2023 21:38:12 +0200 numbers are alright for order 64 ql/pricingengines/vanilla/exponentialfittinghestonengine.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 74b6f3dd1b0120353e4294bf24154af2447c4a01 Author: klaus spanderen Date: Wed, 11 Oct 2023 21:00:29 +0200 fixed test case test-suite/integrals.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit b89e3c0677a0dc42105266e2cfee87a1ca196d85 Author: klaus spanderen Date: Wed, 11 Oct 2023 00:28:33 +0200 fixed test case test-suite/integrals.cpp | 2 ++ 1 file changed, 2 insertions(+) commit 1070869816fc349c22316583135e80778db5369d Author: klaus spanderen Date: Tue, 10 Oct 2023 23:09:50 +0200 fixed windows build QuantLib.vcxproj | 1 + QuantLib.vcxproj.filters | 3 +++ ql/math/integrals/expsinhintegral.hpp | 14 +++++++------- ql/math/integrals/tanhsinhintegral.hpp | 5 +++-- test-suite/riskneutraldensitycalculator.cpp | 5 ++--- 5 files changed, 16 insertions(+), 12 deletions(-) commit 333c79cc2bbc15377b0f3015e4cdef1b3b360f9f Author: Nathaniel Brough Date: Fri, 6 Oct 2023 14:02:27 -0700 testing: Add basic fuzz test harnesses CMakeLists.txt | 9 ++++++++- fuzz-test-suite/CMakeLists.txt | 21 +++++++++++++++++++++ fuzz-test-suite/dateparserfuzzer.cpp | 24 ++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) commit 20eb0e1feec6db5645d0588e369a7cb1c3565e29 Author: Christian Köhnenkamp Date: Mon, 9 Oct 2023 10:22:06 +0200 Fix naming of M series family to arm64 CMakePresets.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit b8b45927aed31b2145cdf7f96d7c50d547acdf76 Author: Christian Köhnenkamp Date: Mon, 9 Oct 2023 09:49:49 +0200 Adding release and relWithDebInfo CMakePresets.json | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit 1a215aa1872cb611e218dee04e9b33628d1d7b90 Author: Christian Köhnenkamp Date: Sat, 7 Oct 2023 11:16:30 +0200 Tests build by default CMakePresets.json | 1 - 1 file changed, 1 deletion(-) commit c7a31049ce7298aa1061ab58d42d4bb06526fa21 Author: klaus spanderen Date: Fri, 6 Oct 2023 23:43:02 +0200 avoid includes ql/patterns/observable.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) commit 32b0cbb41ce1cc64610c35d2c741f1a5cda1b019 Author: klaus spanderen Date: Fri, 6 Oct 2023 21:58:51 +0200 secure observer list ql/patterns/observable.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8a39407e8c69e4d6df586d3bb73efd05d05ee3c5 Author: klaus spanderen Date: Fri, 6 Oct 2023 21:43:44 +0200 avoid potential double notifications ql/patterns/observable.cpp | 25 +++++++++++++------------ ql/patterns/observable.hpp | 4 ++-- 2 files changed, 15 insertions(+), 14 deletions(-) commit d5e33372c95c27ff4d71176ffc0d603eadba148b Author: Christian Köhnenkamp Date: Fri, 6 Oct 2023 20:25:03 +0200 Add Apple M1 preset CMakePresets.json | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit a85fec373831765576c28aba58a8698b839ae036 Author: klaus spanderen Date: Fri, 6 Oct 2023 20:14:36 +0200 improve Hestson integration ql/CMakeLists.txt | 1 + ql/math/integrals/Makefile.am | 1 + ql/math/integrals/all.hpp | 1 + ql/math/integrals/expsinhintegral.hpp | 104 +++++++++++++++++++++ ql/math/integrals/simpsonintegral.hpp | 3 + ql/math/integrals/tanhsinhintegral.hpp | 11 ++- ql/math/integrals/trapezoidintegral.hpp | 2 + ql/pricingengines/vanilla/analytichestonengine.cpp | 35 ++++--- ql/pricingengines/vanilla/analytichestonengine.hpp | 7 +- test-suite/hestonmodel.cpp | 10 ++ test-suite/integrals.cpp | 19 ++++ test-suite/integrals.hpp | 1 + 12 files changed, 177 insertions(+), 18 deletions(-) commit f12e6a6e96e281a6d23eb68efa4e81f45f70f784 Author: klaus spanderen Date: Thu, 21 Sep 2023 20:28:16 +0200 fixed test case on mac os ql/pricingengines/vanilla/analytichestonengine.cpp | 7 +------ test-suite/riskneutraldensitycalculator.cpp | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) commit 360f8da5193d4c3eb8d79c2924c367c7457d4409 Author: klaus spanderen Date: Wed, 20 Sep 2023 22:27:14 +0200 make alpha optional ql/pricingengines/vanilla/analytichestonengine.cpp | 25 ++++++++++------------ ql/pricingengines/vanilla/analytichestonengine.hpp | 5 +++-- 2 files changed, 14 insertions(+), 16 deletions(-) commit 7f04a4982da2b6abe2aca8bc136a7dc7ffcd02bf Author: klaus spanderen Date: Wed, 20 Sep 2023 22:19:36 +0200 finish work on optimal alpha ql/pricingengines/vanilla/analytichestonengine.cpp | 88 ++++++++++++++-------- ql/pricingengines/vanilla/analytichestonengine.hpp | 6 +- .../vanilla/exponentialfittinghestonengine.cpp | 23 +++--- .../vanilla/exponentialfittinghestonengine.hpp | 5 +- test-suite/hestonmodel.cpp | 9 ++- test-suite/riskneutraldensitycalculator.cpp | 5 +- 6 files changed, 81 insertions(+), 55 deletions(-) commit 490c96354cd4d74f201a9fe3c888650c4e405e4b Author: klaus spanderen Date: Thu, 10 Aug 2023 22:21:11 +0200 secure state ql/pricingengines/vanilla/analytichestonengine.cpp | 11 +++++------ ql/pricingengines/vanilla/exponentialfittinghestonengine.cpp | 3 ++- 2 files changed, 7 insertions(+), 7 deletions(-) commit 018df35316d5c8cb0ea5bba15cfbb37a91836c20 Author: klaus spanderen Date: Thu, 10 Aug 2023 22:17:13 +0200 secure state ql/math/integrals/gausslobattointegral.cpp | 4 +- ql/pricingengines/vanilla/analytichestonengine.cpp | 160 ++++++++++++--------- ql/pricingengines/vanilla/analytichestonengine.hpp | 57 ++++---- .../vanilla/exponentialfittinghestonengine.cpp | 12 +- .../vanilla/exponentialfittinghestonengine.hpp | 2 + test-suite/hestonmodel.cpp | 23 ++- 6 files changed, 160 insertions(+), 98 deletions(-) commit 2dbd08b0eedf7e4843238f60ee6e3aaf9388202a Author: klaus spanderen Date: Mon, 3 Jul 2023 18:45:22 +0200 refactoring: removed unused Fp_Helper constructors ql/math/integrals/exponentialintegrals.cpp | 2 +- ql/pricingengines/vanilla/analytichestonengine.cpp | 81 ++-------------------- ql/pricingengines/vanilla/analytichestonengine.hpp | 2 + test-suite/testsuite.vcxproj | 8 +-- 4 files changed, 13 insertions(+), 80 deletions(-) commit 33fc781cb4feca9dbd1f9b60df8bf5ddf17a1f0c Author: klaus spanderen Date: Mon, 3 Jul 2023 18:16:39 +0200 refactoring: removed doCalculation from AnalyticHestonEngine ql/math/integrals/exponentialintegrals.cpp | 2 +- ql/pricingengines/vanilla/analytichestonengine.cpp | 169 +++++---------------- ql/pricingengines/vanilla/analytichestonengine.hpp | 35 ++--- .../volatility/equityfx/hestonblackvolsurface.cpp | 45 +++--- .../volatility/equityfx/hestonblackvolsurface.hpp | 5 +- test-suite/integrals.cpp | 2 - test-suite/marketmodel.cpp | 34 ++--- test-suite/normalclvmodel.cpp | 9 +- 8 files changed, 97 insertions(+), 204 deletions(-) commit cb4c3aac42fbac5b70c19263674f47a9cc4f400d Author: klaus spanderen Date: Mon, 3 Jul 2023 17:05:46 +0200 improve windows build ql/math/integrals/exponentialintegrals.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f516ebde63674684368bc05ea6f453750521104a Author: klaus spanderen Date: Mon, 3 Jul 2023 16:17:55 +0200 added missing file to project definition QuantLib.vcxproj | 2 + QuantLib.vcxproj.filters | 6 ++ ql/math/Makefile.am | 2 + ql/pricingengines/vanilla/analytichestonengine.cpp | 67 ++++++++++++---------- ql/pricingengines/vanilla/analytichestonengine.hpp | 3 + 5 files changed, 51 insertions(+), 29 deletions(-) commit 46011bd3ce86e95ee0c30e0f1b8cd8ee0520901b Author: klaus spanderen Date: Mon, 3 Jul 2023 13:12:15 +0200 first light from Heston update ql/math/integrals/exponentialintegrals.cpp | 131 +++++-- ql/math/integrals/exponentialintegrals.hpp | 24 +- ql/pricingengines/vanilla/analytichestonengine.cpp | 421 ++++++++++++++++++--- ql/pricingengines/vanilla/analytichestonengine.hpp | 78 ++-- .../vanilla/exponentialfittinghestonengine.cpp | 6 +- .../vanilla/exponentialfittinghestonengine.hpp | 2 + 6 files changed, 537 insertions(+), 125 deletions(-) commit c7efbd69c1ed0996301c316e2190f2ff6b6909e0 Author: klaus spanderen Date: Mon, 3 Jul 2023 13:11:22 +0200 first light from Heston update ql/CMakeLists.txt | 2 + ql/math/expm1.cpp | 54 +++++++++ ql/math/expm1.hpp | 35 ++++++ test-suite/functions.cpp | 31 +++++ test-suite/functions.hpp | 3 + test-suite/hestonmodel.cpp | 157 ++++++++++++++++++++++++-- test-suite/hestonmodel.hpp | 3 +- test-suite/integrals.cpp | 276 ++++++++++++++++++++++++++++----------------- test-suite/integrals.hpp | 1 + 9 files changed, 448 insertions(+), 114 deletions(-) QuantLib-1.33/Contributors.txt000066400000000000000000000116601455304614400164270ustar00rootroot00000000000000We gratefully acknowledge contributions from (in alphabetical order): Nathan Abbott, Samad Abdessadki, Kakhkhor Abdijalilov, Xavier Abulker, Toyin Akin, Marius Akre, Mario Aleppo, Ferdinando Ametrano, Tom Anderson, Grzegorz Andruszkiewicz, Ignacio Anguita, Fanis Antoniou, Driss Aouad, Jose Aparicio, Leonardo Arcari, Sercan Atalik, F. Eugene Aumson, Ahmed Ayadi, Lluis Pujol Bajador, Gerardo Ballabio, Luigi Ballabio, Jonathan Barber, Nabila Barkati, Riccardo Barone, Clément Barret, Christopher Baus, Thomas Becker, Michaël Benguigui, Adolfo Benin, Hachemi Benyahia, Luca Berardi, Nicholas Bertocchi, Sylvain Bertrand, Manas Bhatt, Marco Bianchetti, David Binderman, Theo Boafo, Francois Botha, Delphine Bouthier, Fakher Braham, Nathaniel Brough, Ole Bueker, Joe Byers, Xavier Caron, Marine Casanova, Peter Caspers, Antoine Cellerier, Yee Man Chan, Aurelien Chanudet, Yiping Chen, Yanice Cherrak, Gualtiero Chiaia, Meryem Chibo, Warren Chou, Scott Condit, Marco Craveiro, Jon Davidson, Daniele De Francesco, Frédéric Degraeve, Piero Del Boca, Mike DelMedico, Barry Devlin, Nicolas Di Césaré, Piter Dias, Binrui Dong, Michael von den Driesch, Francis Duffy, Cristina Duminuco, Jan Ladislav Dussek, Dirk Eddelbuettel, Faycal El Karaa, Joshua Engelman, Bernd Engelmann, Giorgio Facchinetti, Matt Fair, Paul Farrington, Lorella Fatone, Luca Ferraro, Neil Firth, Stefano Fondi, Chiara Fornarola, Silvia Frasson, Rémy Frèrebeau, Andreas Gaida, Matteo Gallivanoni, Jose Garcia, Lakshay Garg, Fredrik Gerdin Börjesson, Riccardo Ghetta, Hoang Giap Vu, Jack Gillett, Paul Giltinan, Roman Gitlin, Nick Glass, Marek Glowacki, Richard Gomes, Johannes Göttker-Schnetmann, Henri Gough, Richard Gould, Florent Grenier, Matthias Groncki, Sebastien Gurrieri, Tawanda Gwena, Cavit Hafizoglu, Lew Wei Hao, Joshua Hayes, Michael Heckl, Jake Heke, Andres Hernandez, Chris Higgs, Laurent Hoffmann, Xiangyu Hong, Guillaume Horel, Benoît Houzelle, Frank Hövermann, Daniel Hrabovcak, Shen Hui, Charles Chongseok Hyun, Simon Ibbotson, Alexey Indiryakov, Norbert Irmer, Mike Jake, Nicola Jean, Joseph Jeisman, Yi Jiang, Rahul Kanchi, Roland Kapl, Andrey Karpov, Michal Kaut, Tomoya Kawanishi, Gary Kennedy, Chris Kenyon, Oleksandr Khomenko, Joel King, Kevin Kirchhoff, Matt Knox, Matthew Kolbe, Andrew Kolesnikov, Ralf Konrad, Nijaz Kovacevic, Philip Kovacs, Silakhdar Krikeb, Pradeep Krishnamurthy, Nathan Kruck, Yan Kuang, Werner Kuerzinger, Oleg Kulkov, Allen Kuo, Christian Köhnenkamp, Mickael Anas Laaouini, Paul Laderoute, Yasmine Lahlou, Alix Lassauzet, Fabien Le Floc'h, Fabrice Lecuyer, James Lee, Jonghee Lee, Jacob Lee-Howes, Samuel Lerouge, Bernd Lewerenz, Patrick Lewis, Cheng Li, Gang Liang, Roland Lichters, Hank Liu, Robert Lopez, André Louw, Benson Luk, Matthias Lungwitz, Jasen Mackie, Trent Maetzold, Andrea Maffezzoli, Joao Paulo Magalhaes, Jose Magana, Andrea Maggiulli, John Maiden, Katiuscia Manzoni, Marco Marchioro, Francesca Mariani, Slava Mazur, Paolo Mazzocchi, Siddharth Mehrotra, Magnus Mencke, Enrico Michelotti, Andre Miemiec, Raso Mirko, Radu Mondescu, Bryte Morio, Bart Mosley, Tiziano Müller, Prince Nanda, Dmitri Nesteruk, Billy Ng, Bojan Nikolic, Jean Nkeng, Robin Northcott, Konstantin Novitsky, Nikolai Nowaczyk, Adrian O'Neill, Andrea Odetti, Cay Oest, Anubhav Pandey, Mike Parker, Giorgio Pazmandi, Guillaume Pealat, Gilbert Peffer, Andrea Pellegatta, Walter Penschke, Francesco Perissin, Robert Philipp, Marcello Pietrobon, Adrien Pinatton, Gianni Piolanti, Sebastian Poloczek, Berat Postalcioglu, Nolan Potier, Mario Pucci, Ian Qsong, Paul Rädle, Alexandre Radicchi, J. Erik Radmall, Ilyas Rahbaoui, Fabio Ramponi, Hristo Raykov, Maria Cristina Recchioni, Simon Rees, Dimitri Reiswich, Sadruddin Rejeb, Martin Ross, Alessandro Roveda, Ryan Russell, Marcin Rybacki, Mohamed Amine Sadaoui, Amine Samani, David Sansom, Alpha Sanou Toure, Tamas Sashalmi, Sebastian Schlenkrich, Peter Schmitteckert, Ralph Schreyer, Leander Schulten, David Schwartz, Benjamin Schwendinger, Henning Segger, Carlos Fidel Selva Ochoa, Giacomo Sergio, Simon Shakeshaft, Michael Sharpe, Kirill Shemyakin, Eugene Shevkoplyas, Mohammad Shojatalab, Anastasiia Shumyk, Piotr Siejda, Matthias Siemering, Adityakumar Sinha, Gyan Sinha, Enrico Sirola, Leon Sit, Wojciech Slusarski, Andrew Smith, Dale Smith, Tim Smith, Maxim Sokolov, Prasad Somwanshi, Niels Elken Sønderby, Klaus Spanderen, Andreas Spengler, Roland Stamm, Weston Steimel, Philip Stephens, Kai Striega, Jonathan Sweemer, Edouard Tallent, Eisuke Tani, Marco Tarenghi, Ryan Taylor, Yue Tian, Eugene Toder, Steven Van Haren, Jayanth R. Varma, François du Vignaud, Joseph Wang, Qingxiao Wang, Charles Whitmore, Tomass Wilson, Stephen Wong, Krzysztof Wos, Bernd Johannes Wuebben, Sun Xiuxin, Frank Xue, Jeff Yu, Maddalena Zanzi, Li Zhong, Francesco Zirilli, and Roy Zywina. QuantLib includes code taken from Peter Jäckel's book "Monte Carlo Methods in Finance". QuantLib includes software developed by the University of Chicago, as Operator of Argonne National Laboratory. QuantLib-1.33/Docs/000077500000000000000000000000001455304614400140555ustar00rootroot00000000000000QuantLib-1.33/Docs/Makefile.am000066400000000000000000000020631455304614400161120ustar00rootroot00000000000000 EXTRA_DIST = \ quantlib.doxy \ quantlibextra.css \ quantlibfooter.html \ quantlibheader.html DOXYGEN_CONFIG := quantlib.doxy DOXYGEN_CUSTOM := quantlibextra.css quantlibheader.html quantlibfooter.html DOXYGEN_INPUT := $(shell find ${top_srcdir} -name *.hpp) \ $(wildcard pages/*.docs) BASEPATH = $(shell cd @abs_top_srcdir@ && pwd) .PHONY: docs docs-clean dist-hook: mkdir -p $(distdir)/pages $(distdir)/images cp -p $(srcdir)/pages/*.docs $(distdir)/pages cp -p $(srcdir)/images/*.jpg \ $(srcdir)/images/*.ico \ $(distdir)/images docs: .time-stamp clean-local: rm -Rf html rm -f .time-stamp .time-stamp: $(DOXYGEN_CONFIG) $(DOXYGEN_CUSTOM) $(DOXYGEN_INPUT) ../LICENSE.TXT cp -p ${top_srcdir}/LICENSE.TXT ${top_srcdir}/Contributors.txt . $(SED) -e "s|ql_basepath|${BASEPATH}/|" \ -e "s|ql_version|$(VERSION)|" \ ${srcdir}/quantlib.doxy > .quantlib.doxy $(DOXYGEN) .quantlib.doxy rm -f .quantlib.doxy rm -f html/*.md5 rm -f html/*.map touch .time-stamp QuantLib-1.33/Docs/images/000077500000000000000000000000001455304614400153225ustar00rootroot00000000000000QuantLib-1.33/Docs/images/QL-title.jpg000066400000000000000000000277711455304614400174750ustar00rootroot00000000000000JFIFHH XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmCC2" =  !#89x"Qv12ATWw3!"#21$36ABt%QSq ?3ϔ²Ec='[LM斀%꭯J4r{[F~WkioT]cr{U+)w`ܰ3Yi\gebBYKɟ3%l܂wqckNt*s4;M{˦CմhFJ'8YYj=dN?1핀/R媓`ĉ*gMDwIg ō{驮ںYRbxm1 VR*f5͈/-3`Q^K#‹[v VIk*՚j\,ԕA4K|ș B=''`^q2 w_0Sna I}A&(rs4Ŷ1"p.ƣDG,=Ƕvݹu:ݵ8\AH^jMPfMervHKLqEWG∶l¬``"w=ź -8V?BT*Ov,*I`$Z?HYaG}v nd9ƧC[ludl$Y{eϾ ߊ͟xyaQ-,`vs7GDF&%'2VO4Oܫf%jhFT$҅Muv*f@^__GTYQý\7%|/*h k`֍ѵIR )09wYqVh]J:jГ߸~oxG8NME^IP2r\j ;!%^~Bl[0YmfVl:|1kBZik@ґ1 >O:EЁ{Β&vvaOY[ށ8GjȓT_5gpʆj ؂.ĖOZrؾbLxdsSmcBn kVrNJ#tRN5WxfP[ZdUd~GK}s/ 05؜#l-,zeouf]iTg5 = S>UX8Qd7þ5('ygNÑWmKE}tl3韮1n6_w|tp3r8=6 1wok??kÕf|(ǣPLa >>=vQv"Q՘FFRZP*eMܷm.+leQYO5yojJ$8`^@CDX-+{Z1GRme/9ig)/rC@ä6# P10#t"̹CVvZ0,^>n@VffiD"6rRvtg$J=#.TwQ|n^Ek1Dqi91gNkGug0[ȼFLK[jZrWξ Y34IxrЦ D#߾(x"@=* c D_wk!a,6Ms75Msb渵omƘ?]/t{b(fz'6 N.1^""WK5٦8pq?'9lmgY]2aG:y4 P'o2D9N[*)jʂo*{=87.ɸKؼDĿRF3}e1xK+3PC `  혼Bd4j'dt :$՗8e iکD5 T~i:&bѬZ7`͈H@8[2k 6t5u'ky8{]d{l嗤9]IZ+y_g+*xˤIe#T9ZOD]mM@[h氩t;!:4W]>hd[vOI Ux?s;k {Rɑ&p)'׫s=m_`C]Hg GәBUV#e@r'qԲ! {pk1HN Yt\&`8"/J|c%İ3Lu]&1Ylq lQ} 6~~p5QR}r&9Ů9oɢ3v||!Q\> k_ A7 2)$_r ҵI"{u!Ca4᳽Ƌ !E j|N/6Hoa <^iN3fuhA'-K,SHd|UJ?Khgd)XXZ>2Y+Tf Z2BNFlvRWQΝx1x1GeQHcjK< .Ǘ PZ 0w 0YVQ'*$|}H3nЫKuOV6*|z'>\ַɜsqYg9AAı.Fi4}3|'7ITM7Z_"^Pp(!HDOF;XPFEכ>ER+LY 4o xl,؅reh4SN|c¬M9$ŜZ wa17_I`!u\=ۃd2b<20.#%VEbT҅,Q_ݗP.!݁wHC(v5ù[أ2vyc"|rijgnVeU+8sÐJGriJ ֫M5 }Cr}]rs)J3 tm-ْ]f,9,ctUC O3OyW0[:eTQS^;~ԨPoQCEp [*(i_}ր?RaFBe'â%Pq|=k0EfV:ȂJhħAH]2)㢲aIt>l600(_9ny=`m$q ޳,N3 Nt4I3h/s[7_xoE8_ۗlV(TUW[(axO߮خw'թv[H0x(38V ]|mzR$ѦOIM:A=}W5HrqJj]WQFˍ++MM n"e)p=UM:ׂIrJ7(ci_??cEzQZgޏ8DRFLPŰ WNHҢjG ,䦇XF#.E=KOvr-G:Gq?_"ev$}r24^yrZpQF>K:-p< `:Nm̭K,?Qm2j("=|)У^ءq;5s.7y(XnZgKZN3f (be˜5!}chɢIgTvµlul~$c0[z'/IHI#Z8<ڢ`QP4xDhypG o N )qð0L&R#5Xl-?ePE"صt;G6u)sr/&)w?TZӱ9鬥şEk;ӗ> t 6ED>tgsUV!0bO d@)I6l%Srсjΰ?fL.(qWj'7kOns8&Ćf,Z,ݒMXapO *Y4Dlj _LM=4dT-;qW2@Kf-?l31V1W EDž7S]sC z LjWDr? % 0>03AO^ç%p _z<^*jd6諈$ r#|їZ#~@fPUfDWOn֭/0ijf߫^VBШ9ZOzcv$eV|ei<):03‚ xtKxDwbY>;46.4n2BO $;cY"m"xF)2mPG4g3=N|/ե+-{x^ra+"?ƽ4m4&'ofnFSw&(U(+RIkNi\enc gyUVsY'u]C3M4C6 >M LJxx#_c=/g~ZV޽.4[ʼ%F,V`fĐQf;'vҢ^hX?W*(~ESGYQE&vyp%nJK&+L1n Q*#t3yVy9GyŞ[w#8b+S;v]'4i(•4T$B7MýzP/fr{?+SzpLXNMBϠ+UkqXQpmkN`E@E#Cۺ3Nتӎ8 r_Ii:mjХK ' f؝vO%_O]jv?LqժԄ~?B.*XN@(%Q믰+gZymV#Wa& B0IaD=գwhAnuI 'UwNq괤]rSUC )/T[PxxȨ x'[:Z$i1btQFHO>ט}?)/jT @>(Xv-7+&Je} eRIo U 0 "&QR9WFb}f**V6i]l1;/FтqfTQ4w`o-]TnܾõxxAqyb%,CG*BD`{wz>_?%jv$%NmmOKݹ,K~_f#[B)F(suⳔDCT_Tgteheq*D:ԭAmU߈hqӘS#4Og$~H3r\p4Uy[_ImZTi]!ZQG >ʌW.nrܖFMQxNW2h33ͷ QuE$omt{sM}'Ti؛jMuPu;~%,ѕ"Se-!J!3tu嵳̽{Ur8^u9 tٸ,6둓Vhɴbm*HKSkȅ2b'ф<<΂Q͞C><:2xeURZ:Љ4D\;ڵ?)sfZ,CQff$+~mc:mVq1gggƸƺ11c?ٌcc>Gz<<<<=Gz<<<<=GQuantLib-1.33/Docs/images/favicon.ico000066400000000000000000000020661455304614400174470ustar00rootroot00000000000000BM66(   FFFTTTLLL qqq)))fff!!!;;;~~~111444(((mmmBBB AAAwwwQuantLib-1.33/Docs/pages/000077500000000000000000000000001455304614400151545ustar00rootroot00000000000000QuantLib-1.33/Docs/pages/authors.docs000066400000000000000000000015061455304614400175150ustar00rootroot00000000000000 /* Copyright (C) 2003 Ferdinando Ametrano Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \page group Contributors \htmlinclude Contributors.txt */ QuantLib-1.33/Docs/pages/config.docs000066400000000000000000000142211455304614400172730ustar00rootroot00000000000000 /* Copyright (C) 2004, 2005 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \page config User configuration A number of macros is provided for user configuration. Defining or undefining such macros triggers variations in some library functionality. When using CMake, they can be set to `ON` or `OFF` as properties. Under a Linux/Unix system, they are (un)set by `configure`; run \code ./configure --help \endcode for a list of corresponding command-line options. Under a Windows system, they must be (un)defined by editing the file `` and commenting or uncommenting the relevant lines. Such macros include: \code #define QL_ERROR_FUNCTIONS \endcode If defined, function information is added to the error messages thrown by the library. Undefined by default. \code #define QL_ERROR_LINES \endcode If defined, file and line information is added to the error messages thrown by the library. Undefined by default. \code #define QL_ENABLE_TRACING \endcode If enabled, tracing messages might be emitted by the library depending on run-time settings. Enabling this option can degrade performance. Undefined by default. \code #define QL_EXTRA_SAFETY_CHECKS \endcode If defined, extra run-time checks are added to a few functions. This can prevent their inlining and degrade performance. Undefined by default. \code #define QL_USE_INDEXED_COUPON \endcode If defined, indexed coupons (see the documentation) are used in floating legs. If undefined (the default), par coupons are used. \code #define QL_ENABLE_SESSIONS \endcode If defined, singletons will return different instances for different threads; in particular, this means that the evaluation date, the stored index fixings and any other settings will be per-thread. Undefined by default. \code #define QL_ENABLE_THREAD_SAFE_OBSERVER_PATTERN \endcode If defined, a thread-safe (but less performant) version of the observer pattern is used. You should define it if you want to use %QuantLib via the SWIG layer within the JVM or .NET eco system or any environment with an async garbage collector. Undefined by default. If defined together with `QL_USE_STD_SHARED_PTR`, it requires at least C++17. \code #define QL_HIGH_RESOLUTION_DATE \endcode If defined, date objects support an intraday datetime resolution down to microseconds. Strictly monotone daycounters (`Actual360`, `Actual365Fixed` and `ActualActual`) will take the additional information into account and allow for accurate intraday pricing. If undefined (the default) the smallest resolution of date objects is a single day. Intraday datetime resolution is experimental. \code #define QL_THROW_IN_CYCLES \endcode If defined, lazy objects will raise an exception when they detect a notification cycle which would result in an infinite recursion loop. If undefined (the default), they will break the recursion without throwing. Enabling this option is recommended but might cause existing code to throw. \code #define QL_FASTER_LAZY_OBJECTS \endcode If defined (the default), lazy objects will forward the first notification received, and discard the others until recalculated; the rationale is that observers were already notified, and don't need further notifications until they recalculate, at which point this object would be recalculated too. After recalculation, this object would again forward the first notification received. Although not always correct, this behavior is a lot faster and thus is the current default. \code #define QL_USE_STD_SHARED_PTR \endcode If defined, `std::shared_ptr` and related classes and functions are used instead of `boost::shared_ptr`. If disabled (the default) the Boost facilities are used. Note that `std::shared_ptr` does not check access and can cause segmentation faults. \code #define QL_USE_STD_FUNCTION \endcode If defined (the default), `std::function`, `std::bind` and related classes and functions are used. If disabled, the corresponding Boost facilities are used instead. \code #define QL_USE_STD_TUPLE \endcode If defined (the default), `std::tuple` and related classes and functions are used. If disabled, the corresponding Boost facilities are used instead.. \code #define QL_USE_STD_ANY \endcode If enabled, `std::any` and related classes and functions will be used instead of `boost::any`. This requires C++17. If disabled (the default) the Boost facilities are used. \code #define QL_USE_STD_OPTIONAL \endcode If enabled, `std::optional` and related classes and functions will be used instead of `boost::optional`. This requires C++17. If disabled (the default) the Boost facilities are used. \code #define QL_NULL_AS_FUNCTIONS \endcode If defined, `Null` will be implemented as a set of template functions. This allows the code to work with user-defined `Real` types but was reported to cause internal compiler errors with Visual C++ 2022 in some cases. If disabled (the default) `Null` will be implemented as a class template, as in previous releases. \code #define QL_ENABLE_PARALLEL_UNIT_TEST_RUNNER \endcode Define this to enable the parallel unit test runner. Undefined by default. */ QuantLib-1.33/Docs/pages/coreclasses.docs000066400000000000000000000015551455304614400203420ustar00rootroot00000000000000 /* Copyright (C) 2000-2004 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup types Numeric types A number of numeric types are defined in order to add clarity to function and method declarations. */ QuantLib-1.33/Docs/pages/currencies.docs000066400000000000000000000014171455304614400201730ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup currencies Currencies and FX rates */ QuantLib-1.33/Docs/pages/datetime.docs000066400000000000000000000040571455304614400176300ustar00rootroot00000000000000 /* Copyright (C) 2004 Ferdinando Ametrano Copyright (C) 2000-2004 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup datetime Date and time calculations The concrete class QuantLib::Date implements the concept of date. Its functionalities include: - providing basic information such as weekday, day of the month, day of the year, month, and year; - comparing two dates to determine whether they are equal, or which one is the earlier or later, or the difference between them expressed in days; - incrementing or decrementing a date of a given number of days, or of a given period expressed in weeks, months, or years. @{ */ /*! \defgroup calendars Calendars The class QuantLib::Calendar provides the interface for determining whether a date is a business day or a holiday for a given exchange or a given country, and for incrementing/decrementing a date of a given number of business days. A number of calendars is contained in the ql/time/calendars directory. */ /*! \defgroup daycounters Day counters The class QuantLib::DayCounter provides more advanced means of measuring the distance between two dates according to a given market convention, both as number of days of fraction of year. A number of such conventions is contained in the ql/time/daycounters directory. */ /*! @} */ QuantLib-1.33/Docs/pages/engines.docs000066400000000000000000000026561455304614400174670ustar00rootroot00000000000000 /* Copyright (C) 2004 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup engines Pricing engines @{ */ /*! \defgroup asianengines Asian option engines */ /*! \defgroup barrierengines Barrier option engines */ /*! \defgroup basketengines Basket option engines */ /*! \defgroup bondengines Basket option engines */ /*! \defgroup capfloorengines Cap/floor engines */ /*! \defgroup cliquetengines Cliquet option engines */ /*! \defgroup forwardengines Forward option engines */ /*! \defgroup inflationcapfloorengines Inflation cap/floor engines */ /*! \defgroup lookbackengines Lookback option engines */ /*! \defgroup quantoengines Quanto option engines */ /*! \defgroup swaptionengines Swaption engines */ /*! \defgroup vanillaengines Vanilla option engines */ /*! @} */ QuantLib-1.33/Docs/pages/examples.docs000066400000000000000000000123031455304614400176430ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \example BasketLosses.cpp This example shows how to model losses across correlated assets. \example BermudanSwaption.cpp This example prices a bermudan swaption using different models calibrated to market swaptions. The calibration examples include Hull and White's using both an analytic formula as well as numerically, and Black and Karasinski's model. Using these three calibrations, Bermudan swaptions are priced for at-the-money, out-of-the-money and in-the-money volatilities. \example Bonds.cpp This example shows how to set up a term structure and then price some simple bonds. The last part is dedicated to peripherical computations such as yield-to-price or price-to-yield. \example CallableBonds.cpp This example prices a number of callable bonds and compares the results to known good data. \example CDS.cpp This example bootstraps a default-probability curve over a number of CDS and reprices them. \example ConvertibleBonds.cpp For a given set of option parameters, this example computes the value of a convertible bond with an embedded put option for two different equity options types (with european and american exercise features) using the Tsiveriotis-Fernandes method with different implied tree algorithms. The tree types are Jarrow-Rudd, Cox-Ross-Rubinstein, Additive equiprobabilities, Trigeorgis, Tian and Leisen-Reimer. \example CVAIRS.cpp This example shows how to calculate credit value adjustment for an interest rate swap. \example DiscreteHedging.cpp This example computes profit and loss of a discrete interval hedging strategy and compares with the outcome with the results of Derman and Kamal's Goldman Sachs Equity Derivatives Research Note "When You Cannot Hedge Continuously: The Corrections to Black-Scholes". It shows the use of the Monte Carlo framework. \example EquityOption.cpp For a given set of option parameters, this example computes the value of three different equity options types (with european, bermudan and american exercise features) using different valuation algorithms. The calculation methods are Black-Scholes (for european options only), Barone-Adesi/Whaley (american-only), Bjerksund/Stensland (american), Integral (european), finite differences, binomial trees, crude Monte Carlo (european-only) and Sobol-sequence Monte Carlo (european-only). \example FittedBondCurve.cpp For a given set of coupons and terms to maturity, this example computes the value of a bond by fitting the yields to a curve using different methods. The fitting methods are exponential splines, simple polynomials, Nelson-Siegel, and cubic B-splines. It then shifts the evaluation date into the future to compute implied forward par rates. It also computes yields after small price shifts. \example FRA.cpp This example values a forward-rate agreement (FRA) at different forward dates under two yield curve assumptions. It thereby illustrates how set up a term structure, and to use it to price a simple forward-rate agreement. \example Gaussian1dModels.cpp This example shows the use of Gaussian short rate model for interest rate derivatives. \example GlobalOptimizer.cpp This example shows the use of several different optimizers: firefly algorithm, hybrid simulated annealing, particle swarm optimization, simulated annealing, and differential evolution. \example LatentModel.cpp This example shows the calculation of correlated defaults. \example MarketModels.cpp This example shows the use of interest-rate market models. \example MulticurveBootstrapping.cpp This example prices an interest rate swap over a term structure and calculates its fair fixed rate and floating spread. \example MultidimIntegral.cpp This example shows multi-dimensional numerical integration. \example Replication.cpp This example uses the CompositeInstrument class to statically replicate a down-and-out barrier options. \example Repo.cpp This example values a fixed-coupon bond repurchase (repo). The repurchase agreement example is set up to use the repo rate to do all discounting (including the underlying bond income). Forward delivery price is also obtained using this repo rate. All this is done by supplying the FixedCouponBondForward constructor with a flat repo YieldTermStructure. */ QuantLib-1.33/Docs/pages/findiff.docs000066400000000000000000000017561455304614400174440ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup findiff Finite-differences framework This framework (corresponding to the ql/methods/finitedifferences directory) contains basic building blocks for the numerical solution of partial differential equations by means of finite-difference methods. */ QuantLib-1.33/Docs/pages/fixedincome.docs000066400000000000000000000077151455304614400203320ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 Sadruddin Rejeb This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup shortrate Short-rate modelling framework This framework (corresponding to the ql/models/shortrate directory) implements some single-factor and two-factor short rate models. The models implemented in this library are widely used by practitioners. For the moment, the ShortRateModel class defines the short-rate dynamics with stochastic equations of the type \f[ dx_i = \mu(t,x_i) dt + \sigma(t,x_i) dW_t \f] where \f$ r = f(t,x) \f$. If the model is affine (i.e. derived from the QuantLib::AffineModel class), analytical formulas for discount bonds and discount bond options are given (useful for calibration). \section singlefactormodels Single-factor models \par The Hull & White model \f[ dr_t = (\theta(t) - \alpha(t) r_t)dt + \sigma(t) dW_t \f] When \f$ \alpha \f$ and \f$ \sigma \f$ are constants, this model has analytical formulas for discount bonds and discount bond options. \par The Black-Karasinski model \f[ d\ln{r_t} = (\theta(t) - \alpha \ln{r_t})dt + \sigma dW_t \f] No analytical tractability here. \par The extended Cox-Ingersoll-Ross model \f[ dr_t = (\theta(t) - k r_t)dt + \sigma \sqrt{r_t} dW_t \f] There are analytical formulas for discount bonds (and soon for discount bond options). \section calibration Calibration The class CalibrationHelper is a base class that facilitates the instantiation of market instruments used for calibration. It has a method marketValue() that gives the market price using a Black formula, and a modelValue() method that gives the price according to a model Derived classed are QuantLib::CapHelper and QuantLib::SwaptionHelper. For the calibration itself, you must choose an optimization method that will find constant parameters such that the value: \f[ V = \sqrt{\sum_{i=1}^{n} \frac{(T_i - M_i)^2}{M_i}}, \f] where \f$ T_i \f$ is the price given by the model and \f$ M_i \f$ is the market price, is minimized. A few optimization methods are available in the ql/Optimization directory. \section twofactormodels Two-factor models \section pricers Pricers \par Analytical pricers If the model is affine, i.e. discount bond options formulas exist, caps are easily priced since they are a portfolio of discount bond options. Such a pricer is implemented in QuantLib::AnalyticalCapFloor. In the case of single-factor affine models, swaptions can be priced using the Jamshidian decomposition, implemented in QuantLib::JamshidianSwaption. \par Using Trees Each model derived from the single-factor model class has the ability to return a trinomial tree. For yield-curve consistent models, the fitting parameter can be determined either analytically (when possible) or numerically. When a tree is built, it is then pretty straightforward to implement a pricer for any path-independent derivative. Just implement a class derived from NumericalDerivative (see QuantLib::NumericalSwaption for example) and roll it back until the present time... Just look at QuantLib::TreeCapFloor and QuantLib::TreeSwaption for working pricers. */ QuantLib-1.33/Docs/pages/history.docs000066400000000000000000005771271455304614400175520ustar00rootroot00000000000000/* Copyright (C) 2000-2018 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \page history Version history Release 1.33 - January 2024 PORTABILITY - **Future end of support:** as announced in release 1.32, we're targeting the future release 1.35 as the last to support Visual C++ 2015, g++ up to version 6.x, and clang up to version 4; support for those compilers will be dropped in release 1.36, about nine months from now. From that point onwards, this will allows us to enable the use of C++17 in the code base. - **Future end of support:** at the same time as the above, we'll also remove the configure switch that allows to use `boost::tuple`, `boost::function` and `boost::bind` instead of their `std` counterparts; the `std` classes are already the default since release 1.32. - Added CMake presets for Apple; thanks to Christian Köhnenkamp. DATES AND CALENDARS - Added New Year's Eve as a holiday to the Chilean calendar; thanks to GitHub user MoixaStrikes. - Added Black Awareness Day as a holiday to the Brazilian calendar starting from 2024; thanks to GitHub user PaulXiCao. - Added Inauguration Day as a holiday to the Mexican calendar starting from 2024; thanks to Fredrik Gerdin Börjesson. - Added Chinese holidays for 2024; thanks to Cheng Li. - Updated list of known ECB dates; thanks to GitHub user PaulXiCao. - Added Thailandese and Taiwanese holidays up to 2024; thanks to Fredrik Gerdin Börjesson. - Added a one-time holiday to the South African calendar; thanks to Francois Botha. MODELS - Added support for angled contour shift integrals to Heston model; thanks to Klaus Spanderen. INSTRUMENTS - Allow different calendars and frequencies for different legs in `MakeOIS` and `OISRateHelper`; thanks to Eugene Toder. - Enabled negative payment lag in swap legs; thanks to GitHub user Stoozy. RANDOM NUMBERS - Added Burley 2020 scrambled Sobol sequence generator; thanks to Peter Caspers. TESTS - Use automated registration of unit tests; thanks to Siddharth Mehrotra. - Added a few fuzzing tests; thanks to Nathaniel Brough. - Improved test coverage for a few classes; thanks to GitHub user PaulXiCao. DEPRECATED FEATURES - **Removed** features deprecated in version 1.28: - The overload of `CallableBond::impliedVolatility` taking an NPV as target. - The constructor of `AmortizingFixedRateBond` taking a sinking frequency. - The constructor of `AmortizingFixedRateBond` taking a vector of `InterestRate` instances. - The constructor of `FixedRateBond` taking start date, maturity date etc. instead of a schedule. - The constructor of `FixedRateBond` taking a vector of `InterestRate` instances. - The constructor of `FloatingRateBond` taking start date, maturity date etc. instead of a schedule. - The constructor of `CPICapFloor` taking a handle to an interest-rate index. - The `CPICapFloor::inflationIndex` method. - The `infIndex` data member of the `CPICapFloor::arguments` class. - A redundant constructor of `SabrSmileSection`. - The empty headers `ql/experimental/amortizingbonds/amortizingcmsratebond.hpp`, `ql/experimental/amortizingbonds/amortizingfixedratebond.hpp` and `ql/experimental/amortizingbonds/amortizingfloatingratebond.hpp`. - Deprecated the constructor of `Currency` and `Currency::Data` taking a format string, and the `Currency::format` method. Thanks go also to Yi Jiang, Hoang Giap Vu, Jonathan Sweemer and the XAD team for smaller fixes and improvements. Release 1.32 - October 20th, 2023 PORTABILITY - **Possibly breaking change:** the protected `evaluationDate_` data member of the `SwaptionVolatilityDiscrete` class was renamed to `cachedReferenceDate_`. - **Future end of support:** we're targeting the future release 1.35 as the last to support Visual C++ 2015, g++ up to version 6.x, and clang up to version 4; support for those compilers will be dropped in release 1.36, about one year from now. From that point onwards, this will allows us to enable the use of C++17 in the code base. - **Future end of support:** at the same time as the above, we'll also remove the configure switch that allows to use `boost::tuple`, `boost::function` and `boost::bind` instead of their `std` counterparts; starting from this release, the `std` classes are already the default. - Reorganized the CMake presets; thanks to the XAD team. CASH FLOWS - All cash flows are now lazy; thanks to Peter Caspers. INSTRUMENTS - Overnight-indexed swaps can now have different schedules and nominals on the two legs; thanks to Tom Anderson. - Margrabe options, compound options and chooser options were moved from experimental to core. - Introduced common base class `FixedVsFloatingSwap` for vanilla swap and overnight-indexed swaps; this will be used in the future to help a few existing swap engines support OIS. - Added optional `redemptions` argument to amortizing bond constructors. This allows them to be used for pools of loans where a certain proportion of the underlying loans are subject to defaults and losses. Thanks to Gyan Sinha. - It is now possible to manually prune the notification tree for swaps and bonds if one knows that the cashflows won't change pricer; thanks to Peter Caspers. MODELS - Fixed the algorithm to add instruments to the calibration set of the Markov model; thanks to Peter Caspers for the fix and Giuseppe Trapani for the heads-up. TERM STRUCTURES - Time-to-date conversion in some swaption volatility classes could return the wrong date before the first exercise date; this is now fixed, thanks to Peter Caspers. - It's now possible to specify the maximum number of iteration for the solver inside a bootstrapped term structure; thanks to Jonathan Sweemer for the change and Daniel Ángeles Ortiz for the heads-up. - Reduced the number of notifications for bootstrap helpers; thanks to Peter Caspers. RANDOM NUMBERS - Added the xoshiro265** random-number generator; thanks to Ralf Konrad. It is faster than the Mersenne Twister and might be used as default in the future. EXAMPLES - The code of the examples has been modernized a bit; thanks to Jonathan Sweemer. PATTERNS - Avoided a possible crash when using observables in a multi-threaded setting; thanks to Peter Caspers. DEPRECATED FEATURES - **Removed** features deprecated in version 1.27: - The `QL_NULL_INTEGER`, `QL_NULL_REAL`, `QL_NOEXCEPT`, `QL_CONSTEXPR` and `QL_USE_STD_UNIQUE_PTR` macros. - The `MultiCurveSensitivities` class. - The `constant`, `identity`, `square`, `cube`, `fourth_power`, `add`, `subtract`, `subtract_from`, `multiply_by`, `divide`, `divide_by`, `less_than`, `greater_than`, `greater_or_equal_to`, `not_zero`, `not_null`, `everywhere`, `nowhere`, `equal_within`, `clipped_function`, `clip`, `composed_function`, `compose`, `binary_compose3_function` and `compose3` functors. - The `PdeShortRate`, `ShoutCondition`, `FDShoutCondition`, `FDStepConditionEngine` and `FDEngineAdapter` classes from the old finite-differences framework. - The `dsd::inner_product` function. - The `FDDividendEngineBase`, `FDDividendEngineMerton73`, `FDDividendEngineShiftScale` and `FDDividendEngine` pricing engines. - The empty headers `ql/auto_ptr.hpp`, `ql/math/initializers.hpp`, `ql/methods/finitedifferences/americancondition.hpp`, `ql/methods/finitedifferences/onefactoroperator.hpp`, `ql/pricingengines/vanilla/fddividendshoutengine.hpp`, `ql/pricingengines/vanilla/fdshoutengine.hpp` and `ql/utilities/disposable.hpp`. - Deprecated the `StandardFiniteDifferenceModel`, `StandardSystemFiniteDifferenceModel` and `StandardStepCondition` typedefs; define your own typedefs if needed. - Deprecated the `FDVanillaEngine`, `FDMultiPeriodEngine`, `StepConditionSet`, `ParallelEvolverTraits`, `ParallelEvolver` and `SampledCurve`classes and the `BSMTermOperator` and `SampledCurveSet` typedefs; use the new finite-differences framework instead. - Deprecated the `QL_NULL_FUNCTION` macro; to check if a function is empty, use it in a bool context instead. - Deprecated the now empty headers `ql/experimental/exoticoptions/margrabeoption.hpp`, `ql/experimental/exoticoptions/analyticcomplexchooserengine.hpp`, `ql/experimental/exoticoptions/analyticeuropeanmargrabeengine.hpp`, `ql/experimental/exoticoptions/analyticcompoundoptionengine.hpp`, `ql/experimental/exoticoptions/simplechooseroption.hpp`, `ql/experimental/exoticoptions/compoundoption.hpp`, `ql/experimental/exoticoptions/analyticamericanmargrabeengine.hpp`, `ql/experimental/exoticoptions/analyticsimplechooserengine.hpp`, `ql/experimental/exoticoptions/complexchooseroption.hpp`, `ql/experimental/termstructures/multicurvesensitivities.hpp`, `ql/methods/finitedifferences/shoutcondition.hpp`, `ql/methods/finitedifferences/pdeshortrate.hpp`, `ql/pricingengines/vanilla/fddividendengine.hpp`, `ql/pricingengines/vanilla/fdstepconditionengine.hpp`, `ql/pricingengines/vanilla/fdconditions.hpp` and `ql/models/marketmodels/duffsdeviceinnerproduct.hpp`. Thanks go also to Jonathan Sweemer, Ralf Konrad, Klaus Spanderen, Peter Caspers, Tom Anderson, Fredrik Gerdin Börjesson, Guillaume Horel and the XAD team for a number of smaller fixes and improvements. Release 1.31.1 - July 24th, 2023 QuantLib 1.31.1 is a bug-fix release for QuantLib 1.31. It fixes a regression that could cause a segmentation fault when bootstrapping an interest-rate curve using OIS rates. Release 1.31 - July 18th, 2023 PORTABILITY - **Future end of support:** as announced in the notes for the previous release, after this release using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while; but we do suggest you start using `ext::tuple` etc. in the meantime. - The cmake build now creates (but doesn't install) a `quantlib-config` script that can be used to retrieve flags for compiling QuantLib-dependent projects; thanks to Christian Köhnenkamp. - A number of Boost classes and functions only used internally were replaced by their standard-library equivalent; thanks to Jonathan Sweemer. PATTERNS - **Optional change of behavior:** by default, the `LazyObject` class forwards only one notification after recalculating and silently ignores the others. In some edge cases, this could lead to objects not being updated. It's now possible to enable a different behavior where all notifications are forwarded; the new behavior can be chosen at compile time via the configure option `--disable-faster-lazy-objects` (or disabling `QL_FASTER_LAZY_OBJECTS` in cmake or `userconfig.hpp`) or at run time by calling `LazyObject::Defaults::instance().alwaysForwardNotifications()`. This might cause a slow down, so you're invited to try it out and report on the mailing list. If there are no problems, the new behavior might become the default in future releases. Also, a new configure option `--enable-throwing-in-cycles` (`QL_THROW_IN_CYCLES` in cmake or `userconfig.hpp`) is optionally available; when both this option and the new behavior are enabled, notifications cycles involving a lazy object will throw an exception. It is suggested to try enabling the option and removing such loops, if any. Thanks to Peter Caspers for the change and to Ralf Konrad, Jonathan Sweemer and GitHub user `djkrystul` for feedback. DATE/TIME - **Change of behavior:** when the end-of-month option is true, the constructor of a schedule no longer adjust to the end of their month the effective date and the termination date if they were passed explicitly. Thanks to Hristo Raykov. - Added separate US SOFR calendar to manage days that are business days for the US government bond market but in which SOFR doesn't fix; for instance, Good Friday 2023. Thanks to Tom Anderson for reporting the issue. - Fixed some rolling rules for South Korean calendar; thanks to Jonghee Lee. - Fixed incorrect 2023 holidays for Hong Kong calendar; thanks to Fredrik Gerdin Börjesson. - Added Hong Kong holidays for 2021-2024; thanks to Rémy Frèrebeau and Binrui Dong. - Added Singapore holidays for 2019-2023; thanks to Rémy Frèrebeau. - Added Indian holidays for 2021-2025; thanks to Fredrik Gerdin Börjesson. - Added Taiwanese holidays for 2020-2023; thanks to GitHub user `jsmx`. - Added a few election days for South African and South Korean calendar; thanks to Fredrik Gerdin Börjesson. - Updated Danish calendar; starting in 2024, General Prayer Day will no longer be a holiday. Thanks to Fredrik Gerdin Börjesson. - Fixed a few holidays in Finland and Singapore calendars; Thanks to Fredrik Gerdin Börjesson. - More day counters (Act/364, Act/365.25, Act/366) now take into account intraday resolution when enabled; thanks to Klaus Spanderen. CASH FLOWS - The accrued amount for CPI coupons is now correctly based on the index ratio at settlement date. An inspector for retrieving the index ratio at a given date was also added. - Enabled the use of normal volatilities in Hagan pricer for CMS coupons; thanks to Andre Miemiec. - Floating-rate coupons are now lazy; thanks to Peter Caspers. INDEXES - When passed a tenor of 7 or 14 business days, interest-rate indexes would wrongly convert it to 1 or 2 weeks. This is now fixed. Thanks to Eugene Toder for reporting the issue. - Added DESTR and SWESTR indexes; thanks to Fredrik Gerdin Börjesson. - Added CORRA index; thanks to GitHub user `AND2797`. - When an YoY inflation index is calculated as a ratio, the underlying inflation index is available through an inspector and its fixings are used to calculate the fixing of the YoY index. INSTRUMENTS - Instruments now register automatically with the global evaluation date and are notified when it changes. This makes sense in general (if the evaluation date changes, you probably want to recalculate) and can also help avoid some edge cases when lazy objects only forward their first notification. - Allowed passing a schedule without a regular tenor to callable fixed-rate bonds; thanks to Hristo Raykov for the fix and to GitHub user `OleBueker` for reporting the issue. - Reorganized the constructors of FRA instruments; thanks to Jake Heke. TERM STRUCTURES - Ensures that upfront CDS helpers update correctly when the global evaluation date changes; thanks to Andrea Pellegatta for the fix and to GitHub user `bkhoor` for reporting the issue. - Allow more maturities for SOFR quarterly contract in SOFR futures rate helper; thanks to Jake Heke. - Added constructor for date-dependent strikes to StrippedOptionlet; thanks to Peter Caspers. TEST SUITE - Global settings (such as the evaluation date) are now restored and index fixings are now cleaned automatically at the end of each test case, making it unnecessary to clean them up manually. Thanks to Eugene Toder. - The parallel unit-test runner now passes the `--run_test=` option down to the underlying Boost.Test implementation. Thanks to Eugene Toder. DEPRECATED FEATURES - **Removed** features deprecated in version 1.26: - The `CPICoupon` constructor taking a number of fixing days and its `indexObservation`, `adjustedFixing` and `indexFixing(date)` methods. - The `CPICashFlow` constructor taking a fixing date. - The `withFixingDays` methods of `CPILeg`. - The `ZeroInflationCashFlow` constructor taking a calendar and business-day convention. - The `LsmBasisSystem::PolynomType` typedef and the `MakeMCAmericanEngine::withPolynomOrder` method. - The `Observer::set_type` and `Observable::set_type` typedefs. - The `Curve` class. - The `LexicographicalView` class. - The `Composite` class. - The `DriftTermStructure` class. - Deprecated the various `time_iterator` and `value_iterator` types in `TimeSeries`, as well as methods returning them. The more general `const_iterator` and `const_reverse_iterator` types can be used instead. - Deprecated the constructors of `CPICoupon` taking a spread, as well as its `spread` method, its protected `spread_` data member, and the `withSpreads` methods of `CPILeg`. - Deprecated the `adjustedFixing` method and the protected `spread_` data member of `CPICouponPricer`. - Renamed `BlackVanillaOptionPricer` to `MarketQuotedOptionPricer` and deprecated the old name. - Deprecated a couple of constructors of `ForwardRateAgreement`. - Deprecated the constructor of `YoYInflationIndex` taking a `ratio`. Also, deprecated explicit classes for YoY ratio indexes `YYGenericCPIr`, `YYAUCPIr`, `YYEUHICPr`, `YYFRHICPr`, `YYUKRPIr`, `YYUSCPIr` and `YYZACPIr`. - Deprecated the `base`, `increment`, `decrement`, `advance` and `distance_to` methods of the `step_iterator` class. Thanks go also to Jonathan Sweemer, Jose Garcia, Jake Heke, Eugene Toder, Binrui Dong, the Xcelerit Dev Team, Ralf Konrad, Tom Anderson and Fredrik Gerdin Börjesson for a number of smaller fixes and improvements. Release 1.30 - April 19th, 2023 PORTABILITY - **Future end of support:** as announced in the notes for the previous release, after this release and the next, using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while; but we do suggest you start using `ext::tuple` etc. in the meantime. - CMake builds now use a stricter warning level by default; thanks to Ralf Konrad. - Is it now possible to use `std::any` and `std::optional` (and the related `std::any_cast` and `std::nullopt`) instead of their `boost` counterparts by setting new compilation switches; thanks to Jonathan Sweemer. Using the `std` classes requires C++17. We expect the `boost` classes to remain the default for a while, but in the meantime we encourage to start using `ext::any` and `ext::optional` in preparation for a new default. DATE/TIME - Good Friday 2023 is now a business day for the US government bond calendar; thanks to Anastasiia Shumyk. - Added specialized Australian calendar for ASX; thanks to Trent Maetzold. - Fixed Turkish holidays between 2019 and 2023; thanks to Fredrik Gerdin Börjesson. - Added a few missing holidays to Danish calendar; thanks to Fredrik Gerdin Börjesson. - Added the Matariki holiday to the New Zealand calendar; thanks to Jake Heke. CASHFLOWS - Added a new equity cash flow class to model equity legs in total return swaps; thanks to Marcin Rybacki. Quanto pricing is also supported. - Added an overloaded constructor for CPI coupons that allows to specify a base date instead of a base CPI value; thanks to Matthias Groncki. INSTRUMENTS - Added a new total-return swap; thanks to Marcin Rybacki. An equity-index class was also added to support this instrument. - The analytic engine for barrier options would return NaN for low values of volatility; this is now fixed. - The `VanillaOption` and `BarrierOption` classes can now be used to model vanilla and barrier options with discrete dividends; the future dividends (not being part of the terms and conditions of the contract) should be passed to the pricing engine instead. - Added analytical Greeks to Bjerksund-Stensland engine; thanks to Klaus Spanderen. INDEXES - Added UKHICP inflation index; thanks to Fredrik Gerdin Börjesson. TERM STRUCTURES - Renamed `SwaptionVolCube1`, `SwaptionVolCube1x`, `SwaptionVolCube1a` and `SwaptionVolCube2` to `SabrSwaptionVolatilityCube`, `XabrSwaptionVolatilityCube`, `NoArbSabrSwaptionVolatilityCube` and `InterpolatedSwaptionVolatilityCube`, respectively; thanks to Ignacio Anguita. The old names are deprecated but still available for a few releases. - Ensure that inflation curves are re-bootstrapped correctly when seasonality is added. MODELS - Moved the Heston SLV model from experimental to main; thanks to Klaus Spanderen. MATH - Added a few overloads to Array and Matrix operators taking rvalue references for increased speed; thanks to Jonathan Sweemer. DEPRECATED FEATURES - **Removed** features deprecated in version 1.24: - the protected `spreadLegValue_` data member of `BlackIborCouponPricer`; - the `WulinYongDoubleBarrierEngine` alias for `SuoWangDoubleBarrierEngine`; - the `settlementDate`, `incomeDiscountCurve`, `spotIncome`, `spotValue`, `impliedYield` and `forwardValue` methods of `ForwardRateAgreement`, as well as its protected `underlyingIncome_`, `underlyingSpotValue_`, `settlementDays_`, `payoff_` and `incomeDiscountCurve_` data members; - constructors for `InflationTermStructure`, `ZeroInflationTermStructure`, `InterpolatedZeroInflationCurve`, `PiecewiseZeroInflationCurve` taking an `indexIsInterpolated` parameter; - the `indexIsInterpolated` method of `InflationTermStructure` and its protected `indexIsInterpolated_` data member; - some overloaded constructors of `SofrFutureRateHelper`. - Deprecated the `DividendVanillaOption` and `DividendBarrierOption` classes; use `VanillaOption` and `BarrierOption` instead (see above). - Deprecated the constructor of `AnalyticDividendEuropeanEngine` that takes no dividend information; use the other overload instead. - Deprecated the names `SwaptionVolCube1`, `SwaptionVolCube1x`, `SwaptionVolCube1a` and `SwaptionVolCube2` (see above). - Deprecated the protected `setCommon` method of `CappedFlooredYoYInflationCoupon`. Thanks go also to Jonathan Sweemer, the Xcelerit Dev Team, Fredrik Gerdin Börjesson, Klaus Spanderen and Peter Caspers for a number of smaller fixes and improvements, and to Matthias Groncki and GitHub user `lukey8767` for raising issues. Release 1.29 - January 17th, 2023 PORTABILITY - End of support: as announced in the notes for the previous release, this release no longer manages thread-local singletons via a user-provided `sessionId` function, and therefore the latter is no longer needed. Instead, the code now uses the built-in language support for thread-local variables. Thanks go to Peter Caspers. - **Future end of support:** as announced in the notes for the previous release, after the next couple of releases, using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while; but we do suggest you start using `ext::tuple` etc. in the meantime. - Replaced internal usage of `boost::thread` with `std::thread`; thanks to Jonathan Sweemer. This removed our last dependency on Boost binaries and makes it possible to compile QuantLib using a header-only Boost installation. - On Windows, it is now possible to use the MSVC dynamic runtime when using cmake by passing `-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL` on the command line; thanks to Jonathan Sweemer. The static runtime remains the default. - It is now possible to build QuantLib with Intel's `icpx` compiler using cmake; thanks to Jonathan Sweemer. Note that in order to get all the unit tests passing, `-fp-model=precise` must be added to `CMAKE_CXX_FLAGS`. DATE/TIME - Updated Chinese holidays for 2023; thanks to Cheng Li. - Added in-lieu holiday for Christmas 2022 to South-African calendar; thanks to Joshua Hayes. - Added King Charles III coronation holiday to UK calendar; thanks to Fredrik Gerdin Börjesson. - Added holiday for National Day of Mourning to Australian calendar; thanks to Fredrik Gerdin Börjesson. INSTRUMENTS - Added high performance/precision American engine based on fixed-point iteration for the exercise boundary; thanks to Klaus Spanderen. - Bonds with draw-down (i.e., increasing notionals) are now allowed; thanks to Oleg Kulkov. - Added `withIndexedCoupons` and `withAtParCoupons` methods to `MakeSwaption` for easier initialization; thanks to Ralf Konrad. - It is now possible to use the same pricing engine for vanilla and dividend vanilla options, or for barrier and dividend barrier options. INDEXES - Creating a zero inflation index as "interpolated" is now deprecated; thanks to Ralf Konrad. The index should only return monthly fixings. Interpolation is now the responsibility of inflation-based coupons. TERM STRUCTURES - The `ConstantCPIVolatility` constructor can now take a handle to a volatility quote, instead of just an immutable number. DEPRECATED FEATURES - Removed features deprecated in version 1.24: - the `createAtParCoupons`, `createIndexedCoupons` and `usingAtParCoupons` methods of `IborCoupon`; - the `RiskyBond` class and its subclasses `RiskyFixedBond` and `RiskyFloatingBond`; - the `CrossCurrencyBasisSwapRateHelper` typedef; - the `termStructure_` data member of `BlackCalibrationHelper`; - the static `baseCurrency` and `conversionType` data members of `Money`; - the `nominalTermStructure` method and the `nominalTermStructure_` data member of `InflationTermStructure`; - the constructor of the `UnitedStates` calendar not taking an explicit market. - Deprecated the `argument_type`, `first_argument_type`, `second_argument_type` and `result_type` typedefs in a number of classes; use `auto` or `decltype` instead. - Deprecated the constructors of `InflationIndex`, `ZeroInflationIndex`, `FRHICP`, `ZACPI`, `UKRPI`, `EUHICP`, `EUHICPXT`, `USCPI`, `AUCPI` and `GenericCPI` taking an `interpolated` parameter; use another constructor. - Deprecated the `interpolated` method and the `interpolated_` data member of `InflationIndex`. - Deprecated the `ThreadKey` typedef. It was used in the signature of `sessionId`, which is no longer needed after the changes in the `Singleton` implementation. - Deprecated the `rateCurve_` data member of the `InflationCouponPricer` base class. If you need it, provide it in your derived class. - Deprecated the `npvbps` function taking NPV and BPS as references. Use the overload returning a pair of `Real`s. Thanks go also to Matthias Groncki, Jonathan Sweemer and Nijaz Kovacevic for a number of smaller fixes and improvements, to the Xcelerit Dev Team for improvements to the automated CI builds, and to Vincenzo Ferrazzanno and GitHub users alienbrett, xuruilong100 and philippb90 for raising issues. Release 1.28 - October 25th, 2022 PORTABILITY - New language standard: as announced in the notes for the previous release, this release started using some C++14 syntax. This should be supported by most compilers released in the past several years. - End of support: as announced in the notes for the previous release, this release is the last to manage thread-local singletons via a user-provided `sessionId` function. Future releases will use the built-in language support for thread-local variables. - Future end of support: after the next two or three releases, using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while. DATE/TIME - Added Act/366 and Act/365.25 day counters; thanks to Ignacio Anguita. - Added H.M. the Queen's funeral to the UK calendars; thanks to Tomass Wilson. INSTRUMENTS - Amortizing bonds were moved out of the experimental folder. Also, a couple of utility functions were provided to calculate amortization schedules and notionals. PRICING ENGINES - Fixed results from `COSHestonEngine` in the case of an option with short time to expiration and deep ITM or deep OTM strike prices; thanks to Ignacio Anguita. - The ISDA engine for CDS could calculate the fair upfront with the wrong sign; this is now fixed, thanks to Gualtiero Chiaia. TERM STRUCTURES - The constructor for `OISRateHelper` now allows to specify the `endOfMonth` parameter; thanks to Guillaume Horel. FINITE DIFFERENCES - Fixed computation of cds boundaries in `LocalVolRNDCalculator`; thanks to GitHub user mdotlic. EXPERIMENTAL FOLDER The `ql/experimental` 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. - Breaking change: the constructor of the `CPICapFloorTermPriceSurface` class now also takes an explicit interpolation type. - Possibly breaking: the protected constructor for `CallableBond` changes its arguments. If you inherited from this class, you'll need to update your code. If you're using the existing derived bond classes, the change will be transparent. - Pricing engines for callable bonds worked incorrectly when the face amount was not 100. This is now fixed. - The `impliedVolatility` method for callable bonds was taking a target NPV, not a price. This implementation is now deprecated, and a new overload was added taking a price in base 100. DEPRECATED FEATURES - Removed features deprecated in version 1.23: - the constructors of `ZeroCouponInflationSwap` and `ZeroCouponInflationSwapHelper` missing an explicit CPI interpolation type; - the constructors of `ActualActual` and `Thirty360` missing an explicit choice of convention, and the constructor of `Thirty360` passing an `isLastPeriod` boolean flag. - Deprecated the constructors of `FixedRateBond` taking an `InterestRate` instance or not taking a `Schedule` instance. - Deprecated the constructor of `FloatingRateBond` not taking a `Schedule` instance. - Deprecated the constructors of `AmortizingFixedRateBond` taking a sinking frequency or a vector of `InterestRate` instances. - Deprecated the constructor of `CPICapFloor` taking a `Handle` to an inflation index, and its `inflationIndex` method returning a `Handle`. New versions of both were added using `shared_ptr` instead. - Deprecated one of the constructors of `SabrSmileSection`; a new version was added also taking an optional reference date. - Deprecated the old `impliedVolatility` method for callable bonds; see above. Thanks go also to Konstantin Novitsky, Peter Caspers, Klaus Spanderen, Fredrik Gerdin Börjesson and Dirk Eddelbuettel for a number of smaller fixes, and to Jonathan Sweemer for various improvements to the automated CI builds. Release 1.27.1 - August 30th, 2022 QuantLib 1.27.1 is a bug-fix release. It restores the old implementation of `Null` which was replaced in version 1.27 with a new one; the latter was reported to cause an internal compiler error under Visual C++ 2022 for some client code. The new version (which avoids some problems when replacing `Real` with some AAD-enabled types) is still available; depending on how you compile QuantLib, it can be enabled through the `--enable-null-as-functions` configure flag, the cmake variable `QL_NULL_AS_FUNCTIONS`, or the define with the same name in the `ql/userconfig.hpp` header. Release 1.27 - July 22nd, 2022 PORTABILITY - Removed support: as announced in the notes for the previous release, support for Visual Studio 2013 was dropped. - End of support: as announced in the notes for the previous release, this release will be the last to avoid C++14 syntax. Allowing the newer (but still oldish) standard should still support most compilers released in the past several years. - Future end of support: this release and the next will be the last to manage thread-local singletons via a user-provided `sessionId` function. Future releases will use the built-in language support for thread-local variables. - The `Real` type is now used consistently throughout the codebase, thanks to the Xcelerit dev team. This, along with other changes, allows its default definition to `double` to be replaced with one of the available third-party AAD types. - The test suite is now built using the header-only version of Boost.Test, thanks to Jonathan Sweemer. This might simplify Boost installation for some users, since in the default configuration QuantLib now only needs the Boost headers. - Replaced some Boost facilities with the corresponding C++11 counterparts; thanks to Klaus Spanderen and Jonathan Sweemer. DATE/TIME - Fixed the behavior of a couple of Australian holidays; thanks to Pradeep Krishnamurthy and Fredrik Gerdin Börjesson. INSTRUMENTS - Added the Turnbull-Wakeman engine for discrete Asian options; thanks to Fredrik Gerdin Börjesson for the main engine code and to Jack Gillett for the Greeks. - Added more validation to barrier options; thanks to Jonathan Sweemer. MODELS - Fixed the start date of the underlying swap in swaption calibration helpers; thanks to Peter Caspers. - Fixed parameter checks in SVI volatility smiles; thanks to Fredrik Gerdin Börjesson. PATTERNS - Avoid possible iterator invalidation while notifying observers; thanks to Klaus Spanderen. DEPRECATED FEATURES - Removed the `--enable-disposable` and `--enable-std-unique-ptr` configure switches. - Removed features deprecated in version 1.22: - the unused `AmericanCondition` and `FDAmericanCondition` classes; - the old-style FD shout and dividend shout engines; - the unused `OneFactorOperator` class; - the `io::to_integer` function; - the `ArrayProxy` and `MatrixProxy` classes. - Deprecated the `QL_NOEXCEPT` and `QL_CONSTEXPR` macros. - Deprecated the `QL_NULL_INTEGER` and `QL_NULL_REAL` macros. - Deprecated some unused parts of the old-style FD framework: - the `PdeShortRate` class; - the `ShoutCondition` and `FDShoutCondition` classes; - the `FDDividendEngineBase`, `FDDividendEngineMerton73`, `FDDividendEngineShiftScale` and `FDDividendEngine` classes; - the `FDStepConditionEngine` and `FDEngineAdapter` classes. - Deprecated a number of function objects in the `ql/math/functional.hpp` header. - Deprecated the unused `MultiCurveSensitivities` class. - Deprecated the unused `inner_product` function. Thanks go also to Ryan Russell for documentation fixes. Release 1.26 - April 20th, 2022 PORTABILITY - End of support: as announced in the notes for the previous release, this release is the last to support Visual Studio 2013. - End of support: this release is the last to support the long-deprecated configure switches `--enable-disposable` and `--enable-std-unique-ptr`. From the next release, `Disposable` will always be disabled (and eventually removed) and `std::unique_ptr` will always be used instead of `std::auto_ptr`. This has already been the default in the last few releases. - Future end of support: this release and the next will be the last to avoid C++14 syntax. This should still support most compilers released in the past several years (except for Visual Studio 2013, which we're already dropping in this release). - If tagged libraries are specified, as is the default on Windows, CMake now gives the built libraries the same names as the Visual Studio solution (for instance, `QuantLib-x64-mt-s` instead of `QuantLib-mt-s-x64`) so that the pragma in `ql/auto_link.hpp` works. - QuantLib can now also be built as a subproject in a larger CMake build (thanks to Peter Caspers). DATE/TIME - When printed, `Period` instances now display transparently what their units and length are, instead of doing more fancy formatting (e.g., "16 months" is now displayed instead of "1 year 4 months"). Also, `Period` instances that compare as equal now return the same period from their `normalize` method. INDEXES - Added Tona (Tokyo overnight average) index (thanks to Jonghee Lee). - Added static `laggedFixing` method to `CPI` structure which provides interpolation of inflation index fixings. CASH FLOWS - The `CPICoupon` and `CPICashFlow` classes now take into account the correct dates and observation lag for interpolation. INSTRUMENTS - Added a `BondForward` class that generalizes the existing `FixedRateBondForward` to any kind of bond (thanks to Marcin Rybacki). - Avoided unexpected jumps in callable bond OAS (thanks to Ralf Konrad). - Fixed `TreeSwaptionEngine` mispricing when adjusting the instrument schedule to a near exercise date (thanks to Ralf Konrad). - the `ForwardRateAgreement` class now works correctly without an explicit discount curve. TERM STRUCTURES - Dates explicitly passed to `InterpolatedZeroInflationCurve` are no longer adjusted automatically to the beginning of their inflation period. DEPRECATED FEATURES - Removed the `MCDiscreteAveragingAsianEngine` class, deprecated in version 1.21. - Deprecated the `LsmBasisSystem::PolynomType` typedef, now renamed to `PolynomialType`; `MakeMCAmericanEngine::withPolynomOrder` was also deprecated and renamed to `withPolynomialOrder`. - Deprecated the `ZeroInflationCashFlow` constructor taking an unused calendar and business-day convention. - Deprecated the `CPICoupon` constructor taking a number of fixing days, as well as the `CPICoupon::indexObservation`, `CPICoupon::adjustedFixing` and `CPICoupon::indexFixing` methods and the `CPILeg::withFixingDays` method. - Deprecated the `CPICashFlow` constructor taking a precalculated fixing date and a frequency. - Deprecated the `Observer::set_type` and `Observable::set_type` typedefs. - Deprecated the unused `Curve` class. - Deprecated the unused `LexicographicalView` class. - Deprecated the unused `Composite` class. - Deprecated the unused `DriftTermStructure` class. Thanks go also to Matthias Groncki, Jonathan Sweemer and Li Zhong for smaller fixes, enhancements and bug reports. Release 1.25 - January 18th, 2022 PORTABILITY - End of support: this release and the next will be the last two to support Visual Studio 2013. - Added a few CMake presets for building the library (thanks to Jonathan Sweemer). - When built and installed through CMake, the library now installs a `QuantLibConfig.cmake` file that allows other CMake projects to find and use QuantLib (thanks to Jonathan Sweemer). CASHFLOWS - Fixed the accrual calculation in overnight-indexed coupons (thanks to Mohammad Shojatalab). - Fixed fixing-days usage in `SubPeriodsCoupon` class (thanks to Marcin Rybacki). - IBOR coupons fixed in the past no longer need a forecast curve to return their amount. INDEXES - Important change: inflation indexes inherited from the `ZeroInflationIndex` class no longer rely on their forecast curve for interpolation. For coupons that already took care of interpolation (as in the case of `CPICoupon` and `ZeroInflationCashFlow`) this should not change the results. In other cases, figures will change but should be more correct as the interpolation is now performed according to market conventions. Also, most inflation curves now assume that the index is not implemented. Year-on-year inflation indexes and curves are not affected. INSTRUMENTS - Breaking change: convertible bonds were moved out of the `ql/experimental` folder. Also, being market values and not part of the contract, dividends and credit spread were moved from the bond to the `BinomialConvertibleEngine` class (thanks to Lew Wei Hao). - The `ForwardRateAgreement` no longer inherits from `Forward`. This also made it possible to implement the `amount` method returning the expected cash settlement (thanks to Lew Wei Hao). The methods from `Forward` were kept available but deprecated so code using them won't break. Client code might break if it performed casts to `Forward`. MODELS - Fixed formula for discount bond option in CIR++ model (thanks to Magnus Mencke). TERM STRUCTURES - It is now possible to use normal volatilities in SABR smile sections, and thus in the `SabrSwaptionVolatilityCube` class (thanks to Lew Wei Hao). DATE/TIME - Added Chinese holidays for 2022 (thanks to Cheng Li). CURRENCIES - Added a number of African, American, Asian and European currencies from Quaternion's `QuantExt` project (thanks to Ole Bueker). EXPERIMENTAL FOLDER The `ql/experimental` 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. - Added experimental rate helpers for LIBOR-LIBOR and Overnight-LIBOR basis swaps. - Renamed `WulinYongDoubleBarrierEngine` to `SuoWangDoubleBarrierEngine` (thanks to Adityakumar Sinha for the fix and Ruilong Xu for the heads-up). DEPRECATED FEATURES - Deprecated the constructors of zero-coupon inflation term structures taking an `indexIsInterpolated` boolean argument. - Deprecated a number of methods in the `ForwardRateAgreement` class that used to be inherited from `Forward`. - Deprecated a couple of constructors in the `SofrFutureRateHelper` class. - Deprecated the `WulinYongDoubleBarrierEngine` alias for `SuoWangDoubleBarrierEngine`. - Deprecated the protected `spreadLegValue_` data member in the `BlackIborCouponPricer` class. Thanks go also to Tom Anderson, Francois Botha, Matthew Kolbe, Benson Luk, Marcin Rybacki, Henning Segger, Klaus Spanderen, and GitHub users jxcv0 and azsrz for smaller fixes, enhancements and bug reports. Release 1.24 - October 2021 PORTABILITY - Overhauled the CMake build system (thanks to Philip Kovacs). Among other things, it now allows to specify the available configuration options from the `cmake` invocation and adds the required Boost libraries accordingly. INSTRUMENTS - Avoid callable-bond mispricing when a call date is close but not equal to a coupon date (thanks to Ralf Konrad for the fix and to GitHub user aichao for the analysis). See for details. - A new `RiskyBondEngine` is available for bonds (thanks to Lew Wei Hao). It prices bonds based on a risk-free discount cure and a default-probability curve used to assess the probability of each coupon payment. It makes accessible to all bonds the calculations previously available in the experimental `RiskyBond` class. CASHFLOWS - The choice between par and indexed coupons was moved to `IborCouponPricer` (thanks to Peter Caspers). This also made it possible to override the choice locally when building a `VanillaSwap` or a `SwapRateHelper`, so that coupons with both behaviors can now be used at the same time. TERM STRUCTURES - Cross-currency basis swap rate helpers now support both constant-notional and marked-to-market swaps (thanks to Marcin Rybacki). DATE/TIME - Added Chilean calendar (thanks to Anubhav Pandey). - Added new `ThirdWednesdayInclusive` date-generation rule that also adjusts start and end dates (thanks to Lew Wei Hao). PATTERNS - Overhauled `Singleton` implementation (thanks to Peter Caspers). Singletons are now initialized in a thread-safe way when sessions are enabled, global singletons (that is, independent of sessions) were made available, and static initialization was made safer. TEST SUITE - Sped up some of the longer-running tests (thanks to Mohammad Shojatalab). DEPRECATED FEATURES - Deprecated default constructor for the U.S. calendar; the desired market should now be passed explicitly. - Deprecated the `nominalTermStructure` method and the corresponding data member in inflation term structures. Any object needing the nominal term structure should have it passed explicitly. - Deprecated the `termStructure_` data member in `BlackCalibrationHelper`. It you're inheriting from `BlackCalibrationHelper` and need it, declare it in your derived class. - Deprecated the `createAtParCoupons`, `createIndexedCoupons` and `usingAtParCoupons` methods of `IborCoupon`, now moved to a new `IborCoupon::Settings` singleton (thanks to Philip Kovacs). - Deprecated the `conversionType` and `baseCurrency` static data members of `Money`, now moved to a new `Money::Settings` singleton (thanks to Philip Kovacs). - Removed features deprecated in version 1.19: the `BMAIndex` constructor taking a calendar, the `AmericanCondition` and `ShoutCondition` constructors taking an option type and strike, the `CurveDependentStepCondition` class and the `StandardCurveDependentStepCondition` typedef, the `BlackCalibrationHelper` constructor taking a yield term structure, the various inflation term structure constructors taking a yield term structure, the various yield term constructors taking a vector of jumps but not specifying a reference date. Thanks go also to Mickael Anas Laaouini, Jack Gillett, Bojan Nikolic and Klaus Spanderen for smaller fixes, enhancements and bug reports. Release 1.23 - July 14th, 2021 PORTABILITY - On Mac OS, the `-std=c++11` flag is now added automatically when needed. This applies to both `configure` and `cmake` (thanks to Leander Schulten). - We now assume that the compiler supports Boost::uBLAS and no longer check for it in configure. (The check was originally introduced for versions of gcc before 4.x, which don't support C++ anyway.) Please let us know if this causes problems on some systems. - The `Period`, `InterestRate` and `InterestRateIndex` classes are now visualized more clearly in the Visual Studio debugger (thanks to Francois Botha). CASHFLOWS - Year-on-year and CPI legs are now set a default coupon pricer. In most cases, this removes the need for setting it explicitly. - Add new `ZeroInflationCashFlow` class, used in zero-coupon inflation swaps (thanks to Ralf Konrad). CURRENCIES - Added custom constructor that allows to create bespoke currencies not already included in the library (thanks to Marcin Rybacki). DATE/TIME - Fixed implementation of U.S. 30/360 convention (the old one is still available as 30/360 NASD). - The 30/360 ISDA convention can now take the termination date as a constructor argument and use it to adjust the calculation properly. - Added the 30/360 ISMA convention; the Bond-Basis convention is now an alias to the former. - The 30/360 German convention was renamed to ISDA; "German" remains as an alias. - Added new Canadian holiday (National Day for Truth and Reconciliation) established in 2021 (thanks to GitHub user `qiubill` for the heads-up). - Added new U.S. holiday (Juneteenth) established in 2021. - Added new Platinum Jubilee U.K. holiday for 2022 (thanks to Ioannis Rigopoulos for the heads-up.) - Added missing Christmas Eve holiday to Norwegian calendar (thanks to Prince Nanda). INDEXES - Added ESTR index (thanks to Magnus Mencke). INSTRUMENTS - Added zero-coupon swap (thanks to Marcin Rybacki). - The `Type` enumeration defined in several swap classes was moved to their base `Swap` class. - Fixed sign of theta in experimental Kirk engine for spread options (thanks to Xu Ruilong for the heads-up). PROCESSES - Improved discretization of Cox-Ingersoll-Ross process to avoid occasional divergence (thanks to Magnus Mencke). DEPRECATED FEATURES - Deprecated default constructor for actual/actual and 30/360 day counters; the desired convention should now be passed explicitly. - Removed features deprecated in version 1.18: the `CalibrationHelperBase` typedef (now `CalibrationHelper`), some overloads of the `CalibratedModel::calibrate` and `CalibratedModel::value` methods, the constructors of `PiecewiseYieldCurve` and `PiecewiseDefaultCurve` taking an `accuracy` parameter, the constructors of `BondHelper`, `FixedRateBondHelper` and `CPIBondHelper` taking a boolean `useCleanPrice` parameter, the `BondHelper::useCleanPrice()` method, and the non-static `Calendar::holidayList` method. Thanks go also to Francis Duffy, Kevin Kirchhoff, Magnus Mencke and Klaus Spanderen for smaller fixes, enhancements and bug reports. Release 1.22 - April 15th, 2021 PORTABILITY - As previously announced, this release drops support for Visual C++ 2012. VC++ 2013 or later is now required. - The `Date` and `Array` classes are now visualized more clearly in the Visual Studio debugger (thanks to Francois Botha). LANGUAGE STANDARD - QuantLib now uses the C++11 standard and no longer compiles in C++03 mode. As before, it can be compiled with later versions of the standard. For details on the C++11 features used, see the pull requests marked "C++11 modernization" at the above link; for information on possible problems, see . CASHFLOWS - Revised and tested the `SubPeriodCoupon` class (thanks to Marcin Rybacki). The class was moved out of the `ql/experimental` folder and its interface can now be considered stable. - Add simple averaging to overnight-index coupons in addition to the existing compound averaging (thanks to Marcin Rybacki). - Fixed accrual calculation for inflation coupon when trading ex-coupon (thanks to GitHub user `bachhani`). CURRENCIES - Added the Nigerian Naira (thanks to Bryte Morio). DATE/TIME - Fixed actual/actual (ISMA) day counter calculation for long/short final periods (thanks to Francois Botha). - Updated a couple of changed rules for New Zealand calendar (thanks to Paul Giltinan). INDEXES - Added `hasHistoricalFixing` inspector to `Index` class to check if the fixing for a given past date is available (thanks to Ralf Konrad). INSTRUMENTS - Added new-style finite-difference engine for shout options (thanks to Klaus Spanderen). In the case of dividend shout options, an escrowed dividend model is used. - Revised the `OvernightIndexFutures` class. The class was moved out of the `ql/experimental` folder and its interface can now be considered stable. - Added an overloaded constructor for Asian options that takes all past fixings and thus allows to reprice them correctly when the evaluation date changes (thanks to Jack Gillett). - Added support for seasoned geometric Asian options to the Heston engine (thanks to Jack Gillett). PATTERNS - Faster implementation of the `Observable` class in the thread-safe case (thanks to Klaus Spanderen). TERM STRUCTURES - Added experimental rate helper for constant-notional cross-currency basis swaps (thanks to Marcin Rybacki). - Added volatility type and displacements to year-on-year inflation volatility surfaces (thanks to Peter Caspers). DEPRECATED FEATURES - Removed features deprecated in version 1.17: the `Callability::Type` typedef (now `Bond::Price`), the `FdmOrnsteinUhlenbackOp` typedef (now correctly spelled as `FdmOrnsteinUhlenbeckOp`, and a number of old-style finite-difference engines (`FDAmericanEngine`, `FDBermudanEngine`, `FDDividendAmericanEngine` and its variants, `FDDividendEuropeanEngine` and its variants, and `FDEuropeanEngine`) all replaced by the `FdBlackScholesVanillaEngine` class. - Deprecated the old-style finite difference engines for shout options; they are now replaced by the new `FDDividendShoutEngine` class. - Deprecated a few unused parts of the old-style finite-differences framework: the `AmericanCondition` class, the `OneFactorOperator` typedef, and the `FDAmericanCondition` class. TEST SUITE - Reduced the run time for the longest-running test cases. Thanks go also to Francis Duffy and Cay Oest for smaller fixes, enhancements and bug reports. Release 1.21 - January 20th, 2021 PORTABILITY - As previously announced, this is the last release to support Visual C++ 2012. Starting from next release, VC++ 2013 or later will be required in order to enable use of C++11 features. INSTRUMENTS - Improve date generation for CDS schedules under the post-big-bang rules (thanks to Francis Duffy). - Amortizing fixed-rate bonds can now use a generic `InterestRate` object (thanks to Piter Dias). - Added Monte Carlo pricer for discrete-average arithmetic Asian options under the Heston model (thanks to Jack Gillett). - Added analytic and Monte Carlo pricers for discrete-average geometric Asian options under the Heston model (thanks to Jack Gillett). Together, they can also be used as a control variate in Monte Carlo models for arithmetic Asian options. - Added analytic pricer for continuous-average geometric Asian options under the Heston model (thanks to Jack Gillett). - Added analytic pricer for forward options under the Heston model (thanks to Jack Gillett). - Added Monte Carlo pricers for forward options under the Black-Scholes and the Heston models (thanks to Jack Gillett). TERM STRUCTURES - Added Dutch regulatory term structure, a.k.a. ultimate forward term structure (thanks to Marcin Rybacki). - Generalized exponential spline fitting to an arbitrary number of parameters; it is now also possible to fix kappa (thanks to David Sansom). - Fixed averaging period for 1-month SOFR futures rate helper (thanks to Eisuke Tani). DATE/TIME - Fixed a bug and added 2017 holidays in Thailand calendar (thanks to GitHub user `phil-zxx` for the heads-up). - Updated Chinese calendar for 2021 (thanks to Cheng Li). - Updated Japanese calendar for 2021 (thanks to Eisuke Tani). Thanks go also to Francois Botha, Peter Caspers, Ralf Konrad, Matthias Siemering, Klaus Spanderen and Joseph Wang for smaller fixes, enhancements and bug reports. Release 1.20 - October 26th, 2020 PORTABILITY - 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. - It is now possible to opt into using `std::tuple` instead of `boost::tuple` when the compiler allows it. The default is still to use the Boost implementation. The feature can be enabled by uncommenting the `QL_USE_STD_TUPLE` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-std-tuple` switch to `./configure` on other systems. The `--enable-std-tuple` switch is also implied by `--enable-std-classes`. (Thanks to Joseph Wang.) INSTRUMENTS - Added mixing-factor parameter to Heston finite-differences barrier, rebate and double-barrier engines (thanks to GitHub user `jackgillett101`). - Added a few additional results to Black swaption engine and to analytic European option engine (thanks to Peter Caspers and Marcin Rybacki). - Improved calculation of spot date for vanilla swap around holidays (thanks to Paul Giltinan). - Added ex-coupon feature to amortizing bonds, callable bonds and convertible bonds. - Added optional first-coupon day counter to fixed-rate bonds (thanks to Jacob Lee-Howes). MATH - Added convenience classes `LogCubic` and `LogMixedLinearCubic` hiding a few default parameters (thanks to Andrea Maffezzoli). MODELS - Added control variate based on asymptotic expansion for the Heston model (thanks to Klaus Spanderen). DATE/TIME - Added missing Hong Kong holiday (thanks to GitHub user `CarrieMY`). - Added a couple of one-off closing days to the Romanian calendar. - Added a one-off holiday to South Korean calendar (thanks to GitHub user `fayce66`). - Added a missing holiday to Turkish calendar (thanks to Berat Postalcioglu). DOCUMENTATION - Added basic documentation to optimization methods (thanks to GitHub user `martinbrose`). DEPRECATED FEATURES - Features deprecate in version 1.16 were removed: a constructor of the `FdmOrnsteinUhlenbeckOp` class and a constructor of the `SwaptionVolatilityMatrix` class. Release 1.19 - July 20th, 2020 PORTABILITY - 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. - Avoided use in Makefiles of functions only available to GNU Make (thanks to GitHub user `UnitedMarsupials` for the heads-up). BUILD - 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. TERM STRUCTURES - Added options for iterative bootstrap to widen the search domain or to keep the best result upon failure (thanks to Francis Duffy). - Added flat-extrapolation option to fitted bond curves (thanks to Peter Caspers). INSTRUMENTS - Added finite-difference pricing engine for equity options under the Cox-Ingersoll-Ross process (thanks to Lew Wei Hao). - Added Heston engine based on exponentially-fitted Laguerre quadrature rule (thanks to Klaus Spanderen). - Added Monte Carlo pricing engines for lookback options (thanks to Lew Wei Hao). - Added Monte Carlo pricing engine for double-barrier options (thanks to Lew Wei Hao). - Added analytic pricing engine for equity options under the Vasicek model (thanks to Lew Wei Hao). - The `Bond::yield` method can now specify a guess and whether the passed price is clean or dirty (thanks to Francois Botha). MODELS - Improved grid scaling for FDM Heston SLV calibration, and fixed drift and diffusion for Heston SLV process (thanks to Klaus Spanderen and Peter Caspers). - Added mixing factor to Heston SLV process (thanks to Lew Wei Hao). MATH - Improved nodes/weights for the exponentially fitted Laguerre quadrature rule and added sine and cosine quadratures (thanks to Klaus Spanderen). DATE/TIME - Improved performance of the Calendar class (thanks to Leonardo Arcari). - Updated holidays for Indian and Russian calendars (thanks to Alexey Indiryakov). - Added missing All Souls Day holiday to Mexican calendar (thanks to GitHub user `phil-zxx` for the heads-up). - Restored New Year's Eve holiday to Eurex calendar (thanks to Joshua Engelman). DEPRECATED FEATURES - 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. - The constructor of `BMAIndex` taking a calendar was deprecated. - The constructors of several interest-rate term structures taking jumps without a reference date were deprecated. - The `CurveDependentStepCondition` class and related typedefs were deprecated. - The constructor of `BlackCalibrationHelper` taking an interest-rate structure was deprecated. - The constructors of several inflation curves taking a nominal curve were deprecated. The nominal curve should now be passed to the used coupon pricers. Release 1.18 - March 23rd, 2020 PORTABILITY - 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. BUILD - Cmake now installs headers with the correct folder hierarchy (thanks to Cheng Li). - The `--enable-unity-build` flag passed to configure now also causes the test suite to be built as a single source file. - The Visual Studio projects now allow enabling unity builds as described at TERM STRUCTURES - A new `GlobalBootstrap` class can now be used with `PiecewiseYieldCurve` and other bootstrapped curves (thanks to Peter Caspers). It allows to produce curves close to Bloomberg's. - The experimental `SofrFutureRateHelper` class and its parent `OvernightIndexFutureRateHelper` 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 `tani3010`). - The `FraRateHelper` class has new constructors that take IMM start / end offsets (thanks to Peter Caspers). - It is now possible to pass explicit minimum and maximum values to the `IterativeBootstrap` class. The accuracy parameter was also moved to the same class; passing it to the curve constructor is now deprecated. INSTRUMENTS - It is now possible to build fixed-rate bonds with an arbitrary schedule, even without a regular tenor (thanks to Steven Van Haren). MODELS - It is now possible to use normal volatilities to calibrate a short-rate model over caps. DATE/TIME - The Austrian calendar was added (thanks to Benjamin Schwendinger). - The German calendar incorrectly listed December 31st as a holiday; this is now fixed (thanks to Prasad Somwanshi). - Chinese holidays were updated for 2020 and the coronavirus event (thanks to Cheng Li). - South Korea holidays were updated for 2016-2020 (thanks to GitHub user `fayce66`). - In the calendar class, `holidayList` is now an instance method; the static version is deprecated. The `businessDayList` method was also added. (Thanks to Piotr Siejda.) - A bug in the 30/360 German day counter was fixed (thanks to Kobe Young for the heads-up). OPTIMIZERS - The differential evolution optimizer was updated (thanks to Peter Caspers). CURRENCIES - Added Kazakstani Tenge to currencies (thanks to Jonathan Barber). DEPRECATED FEATURES - Features deprecate in version 1.14 were removed: one of the constructors of the `BSMOperator` class, the whole `OperatorFactory` class, and the typedef `CalibrationHelper` which was used to alias the `BlackCalibrationHelper` class. - The `CalibrationHelperBase` class is now called `CalibrationHelper`. The old name remains as a typedef but is deprecated. - The overload of `CalibratedModel::calibrate` and `CalibratedModel::value` taking a vector of `BlackCalibrationHelper`s are deprecated in favor of the ones taking a vector of `CalibrationHelper`s. - The static method `Calendar::holidayList` is deprecated in favor of the instance method by the same name. - The constructors of `PiecewiseDefaultCurve` and `PiecewiseYieldCurve` taking an accuracy parameter are deprecated in favor of passing the parameter to an instance of the bootstrap class. - The constructors of `BondHelper` and derived classes taking a boolean flag to choose between clean and dirty price are deprecated in favor of the ones taking a `Bond::Price::Type` argument. The `useCleanPrice` method is also deprecated in favor of `priceType`. Release 1.17 - December 3rd, 2019 PORTABILITY - 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. CONFIGURATION - A new function `compiledBoostVersion()` is available, (thanks to Andrew Smith). It returns the version of Boost used to compile the library, as reported by the `BOOST_VERSION` macro. This can help avoid linking the library with user code compiled with a different Boost version (which can result in erratic behavior). - 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 `IborCoupon::createAtParCoupons` or `IborCoupon::createIndexedCoupons` to specify your preference. For the time being, the methods above must necessarily be called before creating any instance of `IborCoupon` or of its derived classes. BUILD - 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). INSTRUMENTS - Added ex-coupon functionality to floating-rate bonds (thanks to Steven Van Haren). - The inner structure `Callability::Price` was moved to the class `Bond` and can now be used to specify what kind of price was passed to the `BondFunctions::yield` method (thanks to Francois Botha). - It is now possible to use a par-coupon approximation for FRAs like the one used in Ibor coupons (thanks to Peter Caspers). PRICING ENGINES - Added escrowed dividend model to the new-style FD engine for `DividendVanillaOption` (thanks to Klaus Spanderen). - Black cap/floor engine now also returns caplet deltas (thanks to Wojciech Slusarski). TERM STRUCTURES - 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.) - Instances of the `FittedBondDiscountCurve` class now behave as simple evaluators (that is, they use the given parameters without performing root-solving) when the `maxIterations` parameter is set to 0. (Thanks to Nick Firoozye for the heads-up.) DATE/TIME - Added a few special closing days to the US government bond calendar (thanks to Mike DelMedico). - Fixed an incorrect 2019 holiday in Chinese calendar (thanks to Cheng Li). - Added missing holiday to Swedish calendar (thanks to GitHub users `periculus` and `tonyzhipengzhou`). DEPRECATED FEATURES - The classes `FDEuropeanEngine`, `FDAmericanEngine`, `FDBermudanEngine`, `FDDividendEuropeanEngine`, `FDDividendEuropeanEngineShiftScale`, `FDDividendAmericanEngine`, `FDDividendAmericanEngineShiftScale` are now deprecated. They are superseded by `FdBlackScholesVanillaEngine`. Release 1.16 - August 5th, 2019 PORTABILITY - Added support for Visual Studio 2019 (thanks to Paul Giltinan). CONFIGURATION - As announced in past release, the compile-time switch to force non-negative rates was removed. PRICING ENGINES - Added constant elasticity of variance (CEV) pricing engines for vanilla options. Analytic, FD and SABR engines are available (thanks to Klaus Spanderen). - Added quanto pricing functionality to a couple of FD engines for DividendVanillaOption (thanks to Klaus Spanderen). CASH FLOWS - Digital coupons can now optionally return the value of the naked option (thanks to Peter Caspers). DATE/TIME - Updated Taiwan holidays for 2019 (thanks to Hank Liu). - Added two newly announced holidays to Chinese calendar (thanks to Cheng Li). - Updated Japan calendar (thanks to Eisuke Tani). - Fixed New Year's day adjustment for Canadian calendar (thanks to Roy Zywina). - Added a couple of exceptions for UK bank holidays (thanks to GitHub user Vililikku for the heads-up). - Added French calendar (thanks to GitHub user NJeanray). - Added public methods to expose a calendar's added and removed holidays (thanks to Francois Botha). - Allow the stub date of a schedule to equal the maturity. DEPRECATED FEATURES - Deprecated a constructor of the SwaptionVolatilityMatrix class that didn't take a calendar. - Removed typedefs GammaDistribution, ChiSquareDistribution, NonCentralChiSquareDistribution and InverseNonCentralChiSquareDistribution, deprecated in version 1.12. Use CumulativeGammaDistribution, CumulativeChiSquareDistribution, NonCentralCumulativeChiSquareDistribution and InverseNonCentralCumulativeChiSquareDistribution instead. - Removed Actual365NoLeap class, deprecated in version 1.11. It was folded into Actual365Fixed. TERM STRUCTURES - Take payment days into account when calculating the nodes of a bootstrapped curve based on overnight swaps. Release 1.15 - February 19th, 2019 PORTABILITY - This release drops support for Boost version 1.43 to 1.47; the minimum required version is now Boost 1.48, released in 2011. - Added a `.clang-format` 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. - `boost::function`, `boost::bind` and a few related classes and functions were imported into the new namespace `QuantLib::ext`. This allows them to be conditionally replaced with their `std::` versions (see the "opt-in features" section below). The default is still to use the Boost implementation. Client code using the `boost` namespace explicitly doesn't need to be updated. MODELS - Added an experimental volatility basis model for caplet and swaptions (thanks to Sebastian Schlenkrich). PRICING ENGINES - It is now possible to specify polynomial order and type when creating a `MCAmericanBasketEngine` instance (thanks to Klaus Spanderen). TERM STRUCTURES - 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). - Added experimental helpers to bootstrap an interest-rate curve on SOFR futures (thanks to Roy Zywina). INDEXES - It is now possible to choose the fixing calendar for the BMA index (thanks to Jan Ladislav Dussek). CASH FLOWS - Fixed broken observability in CMS-spread coupon pricer (thanks to Peter Caspers). DATE/TIME - Fix implementation of Actual/Actual (ISMA) day counter in case a schedule is provided (thanks to Philip Stephens). - Fix implementation of `Calendar::businessDaysBetween` method when the initial and final date are the same (thanks to Weston Steimel). - Added day of mourning for G.H.W. Bush to the list of United States holidays (thanks to Joshua Engelman). - Updated list of Chinese holidays for 2019 (thanks to Cheng Li). - Added basic unit tests for the `TimeGrid` class (thanks to Kai Striega). MATH - Prevent solver failure in Richardson extrapolation (thanks to Klaus Spanderen). EXAMPLES - Added multi-curve bootstrapping example (thanks to Jose Garcia). This examples supersedes the old swap-valuation example, that was therefore removed. NEW OPT-IN FEATURES - It is now possible to use `std::function`, `std::bind` and their related classes instead of `boost::function` and `boost::bind`. The feature can be enabled by uncommenting the `QL_USE_STD_FUNCTION` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-std-function` to `./configure` on other systems. This requires using at least the C++11 standard during compilation. - A new `./configure` switch, `--enable-std-classes`, was added as a shortcut for `--enable-std-pointers` `--enable-std-unique-ptr` `--enable-std-function`. Release 1.14 - October 1st, 2018 PORTABILITY - In April 2018, Microsoft ended its support for Microsoft Visual C++ 2008. As previously announced, this release drops support for it. - Fixed generation of RPM from QuantLib.spec (thanks to Simon Rees). - Avoided uses of some features removed in C++17 so that the library can be compiled under the latest standard if needed. - `boost::shared_ptr` and a few related classes and functions were imported into the new namespace `QuantLib::ext`. This allows them to be conditionally replaced with their `std::` versions (see the "opt-in features" section below). The default is still to use the boost implementation. Client code using the `boost` namespace explicitly doesn't need to be updated. - Fixed build and tests on FreeBSD-11 (thanks to Klaus Spanderen and to Mikhail Teterin for the heads-up). - Fixed tests with the `-ffast-math` compilation flag enabled (thanks to Klaus Spanderen and to Jon Davies for the heads-up). INSTRUMENTS AND PRICING ENGINES - Add different settlement methods for swaptions (thanks to Peter Caspers). - Take into account distinct day-count conventions for different curves in the analytic barrier-option engine (thanks to GitHub user cosplay-raven). - 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). CASH FLOWS AND INTEREST RATES - Added Bibor and THBFIX indices (thanks to Matthias Lungwitz). MODELS - Added a hook for using a custom smile model in the Markov functional model (thanks to Peter Caspers). - Added a base class CalibrationHelperBase to the hierarchy of calibration helpers in order to allow for helpers not using the Black model. - Return underlying dynamics from Black-Karasinski model (thanks to Fanis Antoniou). FINITE DIFFERENCES - Added higher-order spatial operators (thanks to Klaus Spanderen). - Added TR-BDF2 finite-difference scheme (thanks to Klaus Spanderen). TERM STRUCTURES - Allow swap helpers to specify end-of-month convention (thanks to Matthias Lungwitz). DATE/TIME - Prevented division by zero in Actual/365 Canadian day counter (thanks to Ioannis Rigopoulos for the heads-up). - Added Children's Day to the list of Romanian holidays (thanks to Matthias Lungwitz). - Added new calendar for Thailand (thanks to Matthias Lungwitz). - Added 30/360 German day counter (thanks to Peter Caspers and Alexey Indiryakov). MATH - Fixed bug in convex-monotone interpolation (thanks to Peter Caspers for the fix and to Tom Anderson for finding the bug). NEW OPT-IN FEATURES - It is now possible to use `std::shared_ptr` and its related classes instead of `boost::shared_ptr`. Note that, unlike its boost counterpart, `std::shared_ptr` doesn't check for null pointers before access; this can lead to crashes. The feature can be enabled by uncommenting the `QL_USE_STD_SHARED_PTR` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-std-pointers` to `./configure` on other systems. This requires using at least the C++11 standard during compilation. - It is now possible to use `std::unique_ptr` instead of `std::auto_ptr`; 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 `QL_USE_STD_UNIQUE_PTR` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-std-unique-ptr` to `./configure` on other systems. Thanks go also to Sam Danbury, Barry Devlin, Roland Kapl, and GitHub user todatamining for smaller fixes, enhancements, and bug reports. Release 1.13 - May 24th, 2018 PORTABILITY - 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. - Fixed build on Solaris 12.5 in C++11 mode (thanks to Nick Glass). INSTRUMENTS AND PRICING ENGINES - Fix CDS calculation when the start date falls during the week-end (thanks to Guillaume Horel). - Allow construction of a `ForwardRateAgreement` instance even if the interest-rate curve is not yet linked (thanks to Tom Anderson). CASH FLOWS AND INTEREST RATES - Added Mosprime, Pribor, Robor and Wibor indices (thanks to Matthias Lungwitz). - Improved performance of Black pricer for LIBOR coupons (thanks to Peter Caspers). - Fixed experimental quanto coupon pricer (thanks to Peter Caspers). - Revised experimental CMS-spread coupon pricer (thanks to Peter Caspers). MODELS - Improvements for the experimental generalized Hull-White model (thanks to Roy Zywina). - Fixed drift in GSR process (thanks to Peter Caspers for the fix and to Seung Beom Bang for the heads up). - Fixed an out-of-bound access in the TwoFactorModel::ShortRateDynamics::process method (thanks to Weston Steimel). FINITE DIFFERENCES - Improved Black-Scholes mesher for low volatilities and high discrete dividends (thanks to Klaus Spanderen). - Added method-of-lines scheme (thanks to Klaus Spanderen). DATE/TIME - Schedule::until can now be used with schedules built from vectors of dates (thanks to GitHub user Grant6899). - Added Good Friday to the list of Hungarian and Czech holidays (thanks to Matthias Lungwitz). - Updated the list of Turkish holidays after 2014 (thanks to Matthias Lungwitz). MATH - Added convenience operators to initialize array and matrices (thanks to Peter Caspers). TEST SUITE - Added test case for CIR++ model (thanks to Klaus Spanderen). Thanks go also to Jose Aparicio, Roland Kapl and GitHub user lab4quant for smaller fixes and enhancements. Release 1.12.1 - April 16th, 2018 %QuantLib 1.12.1 is a bug-fix release for version 1.12. 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. The library code is unchanged from version 1.12. Release 1.12 - February 1st, 2018 PORTABILITY - As announced in the previous release, support for the Dev-C++ IDE was removed. - In April 2018, Microsoft will end its support for Microsoft Visual C++ 2008. Therefore, this is the last version of QuantLib to support it with maintained project files. - It is now possible to build a usable library with CMake on Windows (thanks to Javier G. Sogo). - Fix autotools build outside the source tree (thanks to Joshua Ulrich). INSTRUMENTS AND PRICING ENGINES - Added OAS calculation to experimental callable bonds (thanks to Bojan Nikolic). - Avoided infinite loop for some sets of parameters in experimental variance-gamma engine (thanks to Roy Zywina). CASH FLOWS - It is now possible to build a cash-flow leg from a schedule created from a precalculated vector of dates (thanks to Peter Caspers). MODELS - Affine models can now be used to bootstrap a default-probability curve (thanks to Jose Aparicio). - Added Andreasen-Huge volatility interpolation and local volatility calibration (thanks to Klaus Spanderen). - Added Rannacher smoothing steps for Heston stochastic local volatility calibration (thanks to Klaus Spanderen). TERM STRUCTURES - Added L2 penalty to fitted parameters of fitted bond discount curve (thanks to Robin Northcott). - 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). - Fixed inconsistent treatment of strike in experimental CPI cap/floor term price surface (thanks to Francis Duffy). - Correctly handled the case of overlapping strike regions for caps and floors in experimental CPI cap/floor term price surface (thanks to Peter Caspers). - Fixed calculation of seasonality correction for interpolated inflation indexes (thanks to Francis Duffy). - Implemented composite zero-yield curve as combination of two existing curves via a given binary function (thanks to Francois Botha). - Fixed interpolation of shift in swaption volatility matrix (thanks to Peter Caspers). DATE/TIME - Updated Chinese calendar for 2018 (thanks to Cheng Li). - Added Botswana calendar (thanks to Francois Botha). - Fixed a few problems with US calendars (thanks to Mike DelMedico and to GitHub user ittegrat). - 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). MATH - 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). DEPRECATED FEATURES - 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. 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. Release 1.11 - October 2nd, 2017 PORTABILITY - This is the last version of QuantLib to support the now obsolete Dev-C++ IDE with a maintained project file. The project will be removed in next release. INSTRUMENTS AND PRICING ENGINES - Added ISDA pricing engine for credit default swaps (thanks to Guillaume Horel, Jose Aparicio and Peter Caspers). - Added Andersen-Piterbarg engine for the Heston model (thanks to Klaus Spanderen). - Improved experimental vanna-volga engine for double-barrier knock-in options (thanks to Giorgio Pazmandi). - Added theta calculation to experimental Kirk spread-option engine (thanks to Krzysztof Wos). CASH FLOWS - Added optional payment lag to fixed, floating and OIS legs (thanks to Fabrice Lecuyer and Joseph Jeisman). - Fixed yield calculation with 30/360 US day count convention and settlement on the 31st of the month (thanks to Frank Xue). MODELS - Added adaptive successive over-relaxation method for implied volatility calculation (thanks to Klaus Spanderen). INDEXES - Fixed day-count convention and spot lag for CAD LIBOR (thanks to Oleg Kulkov). TERM STRUCTURES - Optionally optimize setting up OIS helpers (thanks to Peter Caspers). DATE/TIME - Added Actual/365 Canadian day count convention (thanks to Andrea Maggiulli). MATH - Added GMRES iterative solver for large linear systems (thanks to Klaus Spanderen). - Updated Hong Kong calendar up to 2020 (thanks to Nicholas Bertocchi and Alix Lassauzet). BUILD - Added configure switch to enable unity build. TEST SUITE - 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. DEPRECATED FEATURES - Remove the HestonExpansionEngine::numberOfEvaluations method (deprecated in version 1.9). - Remove the MixedLinearCubicInterpolation and MixedLinearCubic constructors not specifying the behavior of the mixed interpolation (deprecated in version 1.8). - Remove deprecated overloads of the Swaption::impliedVolatility and CapFloor::impliedVolatility methods (deprecated in version 1.9). - Remove NoArbSabrModel::checkAbsorptionMatrix method (deprecated in version 1.8.1). Release 1.10.1 - August 31st, 2017 %QuantLib 1.10.1 is a bug-fix release for version 1.10. - Prevented a name clash when using the newly-released Boost 1.65.0 with g++ 6.3. - Added a few missing function declarations in the SwaptionVolatilityStructure class (thanks to Peter Caspers). Release 1.10 - May 16th, 2017 PORTABILITY - Added support for the recently released Visual Studio 2017. - Unified Visual Studio solution file. The provided QuantLib.sln file works for all versions from 2010 to 2017. - Added support for the recently released Boost 1.64.0 (thanks to Klaus Spanderen). - 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). - 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. INSTRUMENTS AND PRICING ENGINES - Added Heston pricing engine based on Fourier-Cosine series expansion (thanks to Klaus Spanderen). - Added cash annuity model in Black swaption engine (thanks to Peter Caspers, Werner Kuerzinger and Paul Giltinan). - Add an optional exogenous discount curve to analytic Black European option engine (thanks to Paul Giltinan). MODELS - Added collocating local-volatility model (thanks to Klaus Spanderen). - Optionally disable Feller constraint in Cox-Ingersoll-Ross model (thanks to Oleksandr Khomenko). INTEREST RATES - Allow using an arbitrary solver to calculate yield (thanks to Daniel Hrabovcak). - Update handling of July 4th for US LIBOR fixings (thanks to Oleg Kulkov). - Added CompoundingThenSimple convention (thanks to Martin Ross). INFLATION - Use the lagged reference period to interpolate inflation fixings (thanks to Francois Botha). VOLATILITY - Reduce the memory footprint of OptionletStripper1 (thanks to Matthias Lungwitz) DATE/TIME - Updated Chinese calendar for 2017 (thanks to Cheng Li). - Added CDS2015 date-generation rule with the correct semiannual frequency (thanks to Guillaume Horel). - 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). - Fixed bug that prevented correct calculation of an ECB date on the first day of a month (thanks to Nicholas Bertocchi). - Fixed bug in Schedule that ignored end-of-month convention when calculating reference dates for irregular coupons (thanks to Ryan Taylor). - Allow passing a schedule to Actual/Actual day counter for correct calculation of reference dates (thanks to Ryan Taylor). MATH - Added harmonic spline interpolation (thanks to Nicholas Bertocchi). EXAMPLES - Added examples for global optimizers (thanks to Andres Hernandez). DEPRECATED FEATURES - Removed the SwaptionHelper constructors not taking an explicit volatility type (deprecated in version 1.8). - Removed the SwaptionVolatilityMatrix constructors not taking an explicit volatility type (deprecated in version 1.8). - Removed the BlackSwaptionEngine constructor overriding the displacement from the given volatility structure (deprecated in version 1.8). - Removed the FlatSmileSection and InterpolatedSmileSection constructors not taking an explicit volatility type (deprecated in version 1.8). - Removed the RiskyAssetSwapOption constructor taking a side (deprecated in version 1.8). POSSIBLY BREAKING CHANGES - 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. \code Handle forecast_curve; Euribor6M index = forecast_curve; \endcode Release 1.9.2 - February 27th, 2017 %QuantLib 1.9.2 is a bug-fix release for version 1.9.1. - Prevented errors in yield-curve bootstrapping tests due to an incorrect test setup (thanks to Peter Caspers for the heads-up). Release 1.9.1 - January 5th, 2017 %QuantLib 1.9.1 is a bug-fix release for version 1.9. - Prevented a linking error when multiple compilation units included the global ql/quantlib.hpp header (thanks to Dirk Eddelbuettel). - Prevented a compilation error with gcc 4.4 on RedHat (thanks to GitHub user aloupos for the heads-up). - Prevented a compilation error with the parallel unit runner and the recently released Boost 1.63.0. Release 1.9 - November 8th, 2016 PORTABILITY - Dropped support for Visual C++ 8 (2005). As of April 2016, the compiler is no longer supported by Microsoft. - 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). INTEREST RATES - 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). - Added BBSW and Aonia indexes from Australia and BKBM and NZOCR indexes from New Zealand (thanks to Fabrice Lecuyer). VOLATILITY - Added normal implied-volatility calculation to caps/floors (thanks to Paolo Mazzocchi). INSTRUMENTS - Fix a scenario in which a `CompositeInstrument` instance would stop receiving notifications (thanks to Peter Caspers for the heads-up). - Added a few safety checks to the CVA swap engine (thanks to Andrea Maggiulli). - Auto-deactivate Boyle-Lau optimization for barrier options when not using a CRR tree (thanks to Riccardo Ghetta). DATE/TIME - Changed data type for `Date` serial numbers to `int_fast_32t` to improve performance of date calculations (thanks to Peter Caspers). - Added ECB maintenance period dates for 2017 (thanks to Paolo Mazzocchi). - Fixed rule for the Japanese Mountain Day holiday (thanks to Eisuke Tani). - Fixed United States holidays before 1971 (thanks to Nick Glass for the heads-up). - Added a missing Chinese holiday (thanks to Cheng Li). - Ensure correct formatting when outputting dates (thanks to Peter Caspers). NEW OPT-IN FEATURES These features are disabled by default and can be enabled by defining a macro or passing a flag to `./configure`. Feedback is appreciated. - Enable thread-safe singleton initialization (thanks to GitHub user sdgit). The feature can be enabled by uncommenting the `QL_ENABLE_SINGLETON_THREAD_SAFE_INIT` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-thread-safe-singleton-init` to `./configure` on other systems. EXPERIMENTAL FOLDER The `ql/experimental` 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. Changes and new contributions for this release were: - OIS with arithmetic average (thanks to Stefano Fondi). A corresponding bootstrap helpers is also available. - a function to calculate multi-curve sensitivities (thanks to Michael von den Driesch). Release 1.8.1 - September 23rd, 2016 %QuantLib 1.8.1 is a bug-fix release for version 1.8. - 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). - A test failure with the upcoming Boost 1.62 was avoided. A QuantLib test was checking for the stored value of a hash whose value changed in Boost 1.62. - Miscellaneous fixes for the g1d swaption engine and instrument (thanks to Peter Caspers). - Whit Monday was no longer a holiday in Sweden since 2005 (thanks to Stefano Fondi). - A new holiday for election day 2016 was added to the South African calendar (thanks to Jasen Mackie). - A few missing CMakeLists were added to the distributed release (thanks to izavyalov for the heads-up). - An irregular last period in a schedule was not reported as such (thanks to Schmidt for the heads-up). Release 1.8 - May 18th, 2016 PORTABILITY - 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). - Added initial CMake support (thanks to Dmitri Nesteruk). This makes it possible to compile %QuantLib on CLion and other CMake-based tools. - The build now generates and installs pkg-config file on Linux systems (thanks to GitHub user njwhite). INTEREST RATES - Fixed links to documentation for LIBOR indexes (thanks to Jose Magana). VOLATILITY - 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). - 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). - Caplet strike is correctly recomputed during stripping (thanks to Michael von den Driesch). INSTRUMENTS - Added basic CVA IRS pricing engine (stand alone, no portfolio; no WWR, no collateral). Thanks to Jose Aparicio. MODELS - Black-Scholes processes now return the closed-formula expectation, standard deviation and variance over long periods (thanks to Peter Caspers). CURRENCIES - Added Ukrainian hryvnia (thanks to GitHub user maksym-studenets). MONTE CARLO - Use different random-number generators for calibration and pricing in Longstaff-Schwartz engine (thanks to Peter Caspers). DATE/TIME - Added forecast dates for moving holidays to Saudi Arabia calendar up to 2022 (thanks to Jayanth R. Varma). - Added new Ukrainian holiday, Defender's Day (thanks to GitHub user maksym-studenets). - Added a few more holidays for South Korea (thanks to Faycal El Karaa). MATH - Added mixed log interpolation (thanks to GitHub user sfondi). - Avoid mixing different types while bit-shifting in fast Fourier transform on 64-bit systems (thanks to Nikolai Nowaczyk). DEPRECATED FEATURES - Removed `DateParser::split` method (deprecated in version 1.6). TEST SUITE - 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: \code quantlib-test-suite -- --date=today \endcode or \code quantlib-test-suite -- --date=2016-02-08 \endcode (Thanks to Peter Caspers.) NEW OPT-IN FEATURES - 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 `QL_ENABLE_PARALLEL_UNIT_TEST_RUNNER` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-parallel-unit-test-runner` to `./configure` on other systems. EXPERIMENTAL FOLDER - 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. - Laplace interpolation (thanks to Peter Caspers). - Global optimizers: Hybrid Simulated Annealing, Particle Swarm Optimization, Firefly Algorithm, and Differential Evolution (thanks to Andres Hernandez). - A SVD-based calculation of the Moore-Penrose inverse matrix (thanks to Peter Caspers). Release 1.7.1 - January 18th, 2016 %QuantLib 1.7.1 is a bug-fix release for version 1.7. - an unneeded dependency on the Boost.Thread library had slipped into version 1.7. It is now removed (thanks to GitHub user MattPD). - 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). - 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). - Chinese holidays for 2016 were updated (thanks to Cheng Li). - The correct curve is now used when calculating the at-the-money swap rate while building swaptions (thanks to Peter Caspers). Release 1.7 - November 23rd, 2015 INTEREST RATES - 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. - 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. - 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). INFLATION - Added Kerkhof seasonality model (thanks to Bernd Lewerenz). - 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. VOLATILITY - Improve consistency between caplet stripping and pricing (thanks to Michael von den Driesch) INSTRUMENTS - Fixed usage of dividend yield in double-barrier formula (Thanks to Dean Raf for the heads-up). - Fixed perturbation formula for barrier options. MODELS - Refine update behavior of GSR model. Depending on the market change, only the appropriate recalculations are performed (thanks to Peter Caspers). - Improve calibration of Heston model (thanks to Peter Caspers). MONTE CARLO - Added the possibility to return the estimated exercise probability from a Longstaff-Schwartz engine (thanks to Giorgio Pazmandi). SETTINGS - Added the possibility to temporarily disable notifications to observers (thanks to Chris Higgs). When re-enabled, any pending notifications are sent. DATE/TIME - Added Romanian and Israelian calendars (thanks to Riccardo Barone). - Added ECB reserve maintenance periods for 2016 (thanks to Paolo Mazzocchi). - Updated South Korean calendar until the end of 2032 (thanks to Paolo Mazzocchi and Faycal El Karaa). - Added new Mountain Day holiday for Japan (thanks to Aaron Stephanic for the heads-up). - Remove MLK day from list of US holidays before 1983 (thanks to John Orford for the heads-up). - Added Christmas Eve to BOVESPA holidays (thanks to Daniel Beren for the heads-up). MATH - Added polynomial and abcd functions. - Added Pascal triangle coefficients. - Replaced home-grown implementation of incremental statistics with Boost implementation (thanks to Peter Caspers). - Added Goldstein line-search method (thanks to Cheng Li). NEW OPT-IN FEATURES - 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 `QL_HIGH_RESOLUTION_DATE` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-intraday` flag to `./configure` on other systems. - 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 `QL_ENABLE_THREAD_SAFE_OBSERVER_PATTERN` macro in `ql/userconfig.hpp` on Visual C++ or by passing the `--enable-thread-safe-observer-pattern` to `./configure` on other systems. Release 1.6.2 - September 2015 %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. The library code did not change. Release 1.6.1 - August 3rd, 2015 %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. Release 1.6 - June 23rd, 2015 PORTABILITY - Enable successful compilation with Boost 1.58 and either gcc or clang. - Enable multi-processor compilation on Visual C++ as a project switch (thanks to Giorgio Pazmandi). DATE/TIME - Added Moscow Exchange calendar (thanks to Dmitri Nesteruk). - Added 70th anniversary of anti-Japanese day to Chinese calendar (thanks to Cheng Li). - Fixed Chinese New Year date for 2010 (thanks to Cheng Li). - Added nearest-trading-day business day convention (thanks to Francois Botha). - Prevented normalization of a 7-days period to a 1-week period, since this doesn't apply to business days (thanks to Paolo Mazzocchi). - 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). - Added support for Australian Security Exchange (ASX) dates (thanks to Maddalena Zanzi). - Added ECB dates for April and June 2016 (thanks to Paolo Mazzocchi). INSTRUMENTS - Extended digital American options to handle knock-off case (thanks to Riccardo Ghetta). - Extended barrier options to handle KIKO/KOKI barriers (thanks to Riccardo Ghetta). - Added Ikeda/Kunitomo engine, binomial engine and binary/digital engine for double-barrier option (thanks to Riccardo Ghetta). - Added Bachelier engine for caps/floors based on normal volatility (thanks to Michael von den Driesch). - Allowed non strike/type payoffs in finite-differences engine for vanilla options (thanks to Joseph Wang). - Fixed settlement days of BTP bonds. - Fixed generation of schedule for OIS and vanilla swaps. - Added support for ASX dates to futures rate helper (thanks to Maddalena Zanzi). MODELS - 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). CASH FLOWS - Added CMS-spread coupons, including digital (thanks to Peter Caspers). INDEXES - Added CMS-spread index (thanks to Peter Caspers). - Fixed day-count convention for Fed Funds rate. TERM STRUCTURES - Fixed bug where a valid previous curve state could be a bad guess for the next and lead to a bootstrap failure. - Allow negative adjustment for futures rate helpers (thanks to Paolo Mazzocchi). VOLATILITY - Added support for normal and displaced lognormal volatility to optionlet stripper (thanks to Michael von den Driesch). - Allowed calibration of the alpha of the SABR model to the ATM point while keeping beta, nu and rho fixed (thanks to Peter Caspers). - Added Chambers-Nawalkha implied-volatility approximation (thanks to Peter Caspers). - Added displaced lognormal swaption volatilities (thanks to Peter Caspers). - Allowed the optionlet boostrap to continue if one caplet can no be matched (thanks to Peter Caspers). - Added flat-extrapolation option to swaption ATM volatility matrix (thanks to Peter Caspers). - Implied swaption volatility cube for Gaussian 1-D model (thanks to Peter Caspers). MATH - Allowed user-defined Jacobian in optimization (thanks to Peter Caspers). MISCELLANEA - Added IDR, MYR, RUB and VND currencies (thanks to Lucy King). DEPRECATED FEATURES - Removed deprecated methods and constructors from the BlackVarianceTermStructure, BlackVolTermStructure, CapFloorTermVolatilityStructure, DateParser, FittedBondDiscountCurve, GeneralLinearLeastSquares, Handle, LocalVolTermStructure, OptionletVolatilityStructure, Settings, SwaptionVolatilityStructure and VolatilityTermStructure classes. EXPERIMENTAL FOLDER - Finite-difference meshers based on multi-dimensional integrals (thanks to Klaus Spanderen). - SVI interpolation and a corresponding smile section (thanks to Peter Caspers). - ZABR volatility model (thanks to Peter Caspers). Release 1.5 - February 10th, 2015 PORTABILITY - Unified project files for Visual Studio 10 and above. Different solutions are still provided for Visual Studio 10, 11 and 12. DATE/TIME - Added China Inter-Bank calendar (thanks to Cheng Li). - Added half-month modified following convention (thanks to Paolo Mazzocchi). - Added a few more historical closings for NYSE. - Updated the Hong Kong and China calendar for 2015. - Updated list of ECB dates up to the first two dates for 2016 (thanks to Paolo Mazzocchi). INSTRUMENTS - Improved Storage and Swing engine (thanks to Klaus Spanderen). - Fixed behavior of the Bjerksund Stensland engine for very small volatilities (thanks to Klaus Spanderen). - Add Heston expansion engine for European options (thanks to Fabien Le Floc'h). - Caps, floors and swaptions can use a displacement in implied-volatility calculation. - Added partial-time fixed and floating strike lookback options (thanks to Francois Botha). - Added binary barrier options (thanks to Riccardo Ghetta). - Added binomial engine for barrier options (thanks to Riccardo Ghetta). - Added Vecer engine for continuous-averaging Asian options (thanks to Bernd Lewerenz). CASH FLOWS - Added ex-coupon feature to fixed-rate bonds, CPI bonds and bond helpers (thanks to Francois Botha). - Fix calculation of sinking notionals when the coupon rate is very near 0 (thanks to Cheng Li). INDEXES - Added Shanghai Inter-bank Offering Rate index (thanks to Cheng Li). - Added Fed Fund index. - Added South-African CPI (thanks to Francois Botha). TERM STRUCTURES - Improvement to CMS market calibration: enabled use of general coupon pricers, added calibration to a term structure of betas (thanks to Peter Caspers). - InterpolatedZeroCurve can be passed rates with any compounding convention and frequency (thanks to Alexandre Radicchi). - Bond helpers can now use quotes for either clean or dirty prices (thanks to Francois Botha). - Added CPI bond helper (thanks to Francois Botha). - Better handling in rate helpers of evaluation dates which are not business dates. - Spreaded curves allow extrapolation if their underlying curve does (thanks to Peter Caspers). - Fixed inflation-rate interpolation (thanks to Amine Ifri). MATH - Added generation of student-t distributed random numbers (thanks to Jose Aparicio). - Added Folin's integration methods (thanks to Klaus Spanderen). - Added mixed backward-flat/linear interpolation (thanks to Peter Caspers). - Improved performance of matrix multiplication (thanks to Peter Caspers). - Fixed wrong primitive calculation in mixed interpolation (thanks to Peter Caspers). - Fixed corner case for finite-difference Newton solver leading to infinite derivative (thanks to Peter Caspers). - Added Maddock's cumulative normal distribution (thanks to Klaus Spanderen). - Added bivariate cumulative student t distribution (thanks to Michal Kaut). LATTICES - Calculate option delta/gamma on binomial trees using Hull formulas (thanks to Riccardo Ghetta). MISCELLANEA - A number of small performance improvements (thanks to Michael Sharpe). EXAMPLES - Added example for Gaussian 1-D models (thanks to Peter Caspers). - Added examples for latent models and basket losses (thanks to Jose Aparicio). - Added example for multi-dimensional integral (thanks to Jose Aparicio). DEPRECATED CLASSES - Removed deprecated Domain and Surface classes. EXPERIMENTAL FOLDER - Extended credit risk plus model (thanks to Peter Caspers). - No-arbitrage Sabr model with corresponding volatility-cube, smile section and interpolation classes (thanks to Peter Caspers). - A number of latent models for basket losses (thanks to Jose Aparicio). - Complex chooser option (thanks to Nathan Kruck, Ahmed Ayadi and Nolan Potier from the IMAFA program at Polytech'Nice Sophia). - Holder-extensible option (thanks to Nathan Kruck, Ahmed Ayadi and Nolan Potier from the IMAFA program at Polytech'Nice Sophia). - Partial-time barrier option (thanks to Nathan Kruck, Ahmed Ayadi and Nolan Potier from the IMAFA program at Polytech'Nice Sophia). - Two-asset correlation option (thanks to Ilyas Rahbaoui and Driss Aouad from the IMAFA program at Polytech'Nice Sophia). Release 1.4.1 - November 17th, 2014 %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. If you are not using Clang, you don't need to upgrade from %QuantLib 1.4 to 1.4.1. Release 1.4 - February 26th, 2014 PORTABILITY - 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. - 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. - 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. - Fixed Clang warnings. - 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. - Allow singletons to work under Visual C++ when CLR is enabled (thanks to Simon Shakeshaft). - Fixed compilation errors when using STLport (thanks to Marcello Pietrobon for the heads-up). CONFIGURATION - 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. DATE/TIME - Added Diamond Jubilee bank holiday to UK calendar. - Added Royal Wedding bank holiday to UK calendar (thanks to Whit Armstrong for the heads-up). - 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. - Added Actual/365 (No Leap) day counter (thanks to Nick Glass). - Updated most moving holidays for 2014. - 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). INSTRUMENTS - Fixed Delta and Gamma calculation in Ju quadratic engine (thanks to Fabien Le Floc'h). - Improved calculation in finite-differences Asian options when the running average is much greater than the forward value (thanks to Klaus Spanderen). - Fixed Theta issue for some American FDM engines (thanks to Klaus Spanderen). - Fix annuity computation for CMS coupons (thanks to Peter Caspers). - Enabled case r=0 in Barone-Adesi/Whaley approximation engine (thanks to Klaus Spanderen). - When building a swaption with MakeSwaption, use the fixed tenor of the underlying swap index if none is given explicitly. MODELS - 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.) - Allow recalculation of exercise and end dates in swaption and cap helpers when the evaluation date changes (thanks to Peter Caspers). - Allowed negative strikes in BlackFormula, as long as the strike plus the displacement is still positive (thanks to Peter Caspers). - Added calculation of implied volatility from Bachelier price in BlackFormula (thanks to Gary Kennedy). - Added Broadie-Kaya exact simulation schema to Heston model (thanks to Klaus Spanderen). - Fixed upper/lower bound calculation for internal constraint in calibrated model (thanks to Peter Caspers). CASH FLOWS - Added support for ex-coupon dates to cashflow calculations (thanks to Nick Glass). Currently, ex-coupons dates can be specified for fixed rate bonds. - Fixed calculation of duration and convexity when using Act/Act(ISMA) (thanks to Nick Glass). INDEXES - 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). - Add a clone() method to SwapIndex which allows to change the tenor (thanks to Peter Caspers). - Ignore inflation-index fixings stored at dates later than the evaluation date. - Added utility class for creating custom Region instances to be passed to inflation indexes. TERM STRUCTURES - 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.) - Fix interpolation of option dates in SwaptionVolatilityDiscrete and derived classes when evaluation date changes (thanks to Shen Hui). - Piecewise-spreaded curve can now choose interpolation (thanks to Mario Aleppo). MATH - Extended Sobol direction numbers up to 21200 dimensions with Joe Kuo 6 searching rule (thanks to Cheng Li). - Added class for two-dimensional integration (thanks to Klaus Spanderen). - Added Maddock inverse-cumulative normal distribution from Boost (thanks to Klaus Spanderen). - Added modified Bessel functions (thanks to Klaus Spanderen). EXPERIMENTAL FOLDER - Deprecated features were removed from experimental code. - Added initial implementation of catastrophe bond (thanks to Grzegorz Andruszkiewicz). - 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). - Added Hagan pricing engine for irregular swaptions (thanks to Andre Miemiec). - Added simulated-annealing optimizer (thanks to Peter Caspers). - Added rebated exercise class (thanks to Peter Caspers). - Added pricing engine for arbitrary European payoffs under the Heston model (thanks to Klaus Spanderen). - Added linear terminal swap rate model pricer for CMS coupons (thanks to Peter Caspers). - 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.) - 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.) - Convertible bond now updates correctly when any of its observables changes. - 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. Release 1.3 - July 24th, 2013 PORTABILITY - Enabled g++ compilation in C++11 mode. - Added VC++11 projects (thanks to Edouard Tallent). - Added x64 target to VC++10 and VC++11 projects (thanks to Johannes Göttker-Schnetmann). - Removed most level-4 warnings in VC++ (thanks to Michael Sharpe). - Removed warnings in VC++ when compiling for the x64 platform (thanks to Johannes Göttker-Schnetmann). DATE/TIME - Fixed holiday for Japanese calendar (thanks to Sebastien Gurrieri). - Added Epiphany (introduced in 2011) to Polish calendar (thanks to katastrofa). - Updated South-Korean calendar for 2013 (thanks to Faycal El Karaa). - Updated Chinese calendar for 2012 (thanks to Cheng Li). - Updated calendar for 2013 for China, Hong Kong, India, Indonesia, Singapore, Taiwan and Turkey. - Fixed a few Mexican holidays. - Prevented out-of-bound access to degenerate schedule. INSTRUMENTS - Finite-difference Bermudan swaption engines for the G2++ and the Hull-White models (thanks to Klaus Spanderen). - Added analytic Heston-Hull-White pricing engine for vanilla option using the H1HW approximation (thanks to Klaus Spanderen). - Managed underlying start delay in Jamshidian swaption engine (thanks to Peter Caspers). MODELS - Added calibration to GARCH model (thanks to Slava Mazur). - Fixed forward-looking bias in Garch11 calculation (thanks to Slava Mazur). CASH FLOWS - Use correct default for evaluation date in a few CashFlows methods (thanks to Peter Caspers). - 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). - Fixed start and end dates for convexity adjustment of in-arrears floating-rate coupon (thanks to Peter Caspers). INDEXES - Added inspector for the joint calendar used by Libor indexes. - Added method to clone a swap index with a different discount curve (thanks to Peter Caspers). TERM STRUCTURES - Fixed degenerate case for ABCD volatility (thanks to Peter Caspers). - 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). - Pass correct ATM forward rate to smile section of InterpolatedSwaptionVolatilityCube (thanks to Peter Caspers). - Added exogenous discount to OptionletStripper1 (thanks to Peter Caspers). MATH - Added Sobol brownian-bridge random sequence generator (thanks to Klaus Spanderen). - Added Richardson-extrapolation utility for numerical methods (thanks to Klaus Spanderen). - Added differential evolution optimizer (thanks to Ralph Schreyer and Mateusz Kapturski). - 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). - Fixed Gamma distribution tail (thanks to Ian Qsong). - Ensure that the last function call inside a solver is passed the root (thanks to Francis Duffy). - Implemented Lagrange boundary condition for cubic interpolation (thanks to Peter Caspers). - Increased precision in tail of West's bivariate cumulative normal (thanks to Fabien Le Floc'h). - Improved calibration of SABR interpolation by allowing different starting points (thanks to Peter Caspers). - Moved FFT and autocovariance implementations from experimental folder to core library. FINITE DIFFERENCES - Added time-dependent Dirichlet boundary condition (thanks to Peter Caspers). UTILITIES - Implicit conversions of shared_ptr to bool are now explicit; they have been removed in C++11 (thanks to Scott Condit). EXPERIMENTAL FOLDER 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. New contributions for this release were: - Two-asset barrier option and related engine (thanks to IMAFA/Polytech'Nice students Qingxiao Wang and Nabila Barkati). - ODE solver (thanks to Peter Caspers). - Markov functional model (thanks to Peter Caspers). Release 1.2.1 - September 10th, 2012 Bug-fix release. Release 1.2 - March 6th, 2012 PORTABILITY - Microsoft Visual C++ 2010 no longer needs to disable uBlas code. - %QuantLib now ships with an updated specification file for building RPMs (thanks to Matt Fair). DATE/TIME - 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. - 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). - Added method to return truncated schedule. - Fixed Swedish Midsummer Eve's date (thanks to Gary Kennedy). - Added South Korea holidays for 2011/2012 (thanks to Charles Chongseok Hyun and Faycal El Karaa). - Added holidays for 2011 to China, Hong Kong, India, Indonesia, Saudi Arabia, and Taiwan calendars. - Added ECB maintenance dates for 2012 and 2013. - 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. INSTRUMENTS - The AssetSwap instrument now supports non-par repayment. - Added specialized class for Italian CCTEU (certificato di credito del tesoro). - Added CPI-linked swaps, bonds, and cap/floors. CASH FLOWS - Added CashFlows::npvbps() method to calculate NPV and BPS in a single loop to improve performance. INDEXES - 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. TERM STRUCTURES - Vastly improved the performance of piecewise yield curve bootstrap. Anchoring the evaluation date (see below) provides a further improvement. - Moved CPI-volatility interface from experimental folder to the core library. MATH - Added Newton 1-D solver with finite difference derivatives. - Improved interface for linear least-square regression (thanks to Slava Mazur). FINITE DIFFERENCES - Added TR-BDF2 scheme (thanks to Fabien Le Floc'h). - Moved stable parts of 2D finite-difference framework from the experimental folder to the core library. UTILITIES - 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. PATTERNS - 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. EXPERIMENTAL FOLDER 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. New contributions for this release were: - Spread option and related engine (thanks to IMAFA/Polytech'Nice students Meryem Chibo and Samad Abdessadki). - Writer-extensible option and related engine (thanks to IMAFA/Polytech'Nice students Delphine Bouthier, Marine Casanova, and Xavier Caron). - Levy engine for continuous-averaging Asian options (thanks to IMAFA/Polytech'Nice students Yasmine Lahlou and Amine Samani). - Simple Virtual Power Plant and related finite-difference (FD) engine (thanks to Klaus Spanderen). - FD solver and vanilla spread engine for Kluge-Ornstein-Uhlenbeck process (thanks to Klaus Spanderen). - Added generic n-dimensional FD solver (thanks to Klaus Spanderen). - Added FD pricing engine for a simple storage option based on an exponential Ornstein Uhlenbeck process (thanks to Klaus Spanderen). - Added vanilla and swing option FD pricer for Kluge model (thanks to Klaus Spanderen). - Added FD pricing engine for a simple swing option based on the Black-Scholes model (thanks to Klaus Spanderen). Release 1.1 - May 23rd, 2011 PORTABILITY - Added support for Microsoft Visual C++ 2010. - Fixed m4 macro for %QuantLib detection. It now works also when asked for versions such as 1.1 (as opposed to 1.1.0). DATE/TIME - Added Russian calendar. - 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. INSTRUMENTS - Added a few inspectors to zero-coupon inflation swaps. - Added Kirk approximation for two-asset spread options. - Added specialized BTP class (Italian government bonds) and related RendistatoCalculator class to help instantiation of this type of FixedRateBond. - Added analytic pricing engine for the piecewise-constant time-dependent Heston model. - Added paymentCalendar to FixedRateBond, possibly different than the one used for accrual-date calculation. PROCESSES - Added Quadratic Exponential discretization scheme for the Heston process, including martingale correction. INDEXES - Added inspector for discounting curve to swap index (thanks to Peter Caspers.) - Added exogenous discounting to all swap indexes. - Added SONIA index. - Added HICPXT indexes. TERM STRUCTURES - Added time-based interface to inflation curves. - Piecewise zero-spreaded term structure can now manage spread with any compounding (thanks to Robert Philipp.) - FittedBondDiscountCurve now works with any BondHelpers, not only FixedRateBondHelpers. - Added Svensson curve-fitting method (thanks to Alessandro Roveda.) MATH - Added Ziggurat random-number generator (thanks to Kakhkhor Abdijalilov.) - Added experimental copula-based random-number generators (thanks to Hachemi Benyahia.) - More performant implementation of inverse cumulative distribution (thanks to Kakhkhor Abdijalilov.) - More performant mt19937 implementation (thanks to Kakhkhor Abdijalilov.) - Added more copulas (thanks to Hachemi Benyahia.) The new formulas are for Ali-Mikhail-Haq copula, Galambos copula, Husler-Reiss copula, and Plackett copula. - Added autocovariance calculation (thanks to Slava Mazur.) MONTE CARLO - Improved LSM basis system (thanks to Kakhkhor Abdijalilov.) UTILITIES - 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. EXPERIMENTAL FOLDER 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. New contributions for this release were: - 2D finite-difference Bates engine based on the partial integro differential equation. - 2D finite-difference engine for Black-Scholes processes (including local volatility.) - Black-Scholes process with support for vega stress test (thanks to Michael Heckl.) - Extended Ornstein-Uhlenbeck process. - Margrabe option (thanks to IMAFA/Polytech'Nice students Marius Akre, Michael Benguigui, and Yanice Cherrak.) - Simple chooser option (thanks to IMAFA/Polytech'Nice students Clement Barret, Fakher Braham, and Mohamed Amine Sadaoui.) - 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. - 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. - 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. - Delta calculator for FX options (thanks to Dimitri Reiswich.) Release 1.0.1 - September 17th, 2010 Bug-fix release. Release 1.0 - February 24th, 2010 PORTABILITY - Fixes for x64 Visual Studio compilation (thanks to Craig Miller.) - Enabled language extensions in Visual Studio projects. - Prevented make errors with older shells (thanks to Walter Eaves.) DATE/TIME - 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.) - Added new date-generation rule for CDS (thanks to Jose Aparicio.) - 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. INSTRUMENTS - Fixed discounting of dividends on convertible-bond grid (thanks to Benoit Houzelle and Samuel Lerouge.) CASH FLOWS - A number of CashFlows methods now return a meaningful result even if the passed leg is empty. PROCESSES - Changed default discretization for Heston process. The new default (giving a better performance) is quadratic exponential with Martingale correction. TERM STRUCTURES - Removed ambiguous parRate member functions from YieldTermStructure interface. EXAMPLES - Added market-model example. EXPERIMENTAL FOLDER 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. New contributions for this release were: - Longstaff-Schwartz algorithm for basket products including coupon payments (thanks to Andrea Odetti;) - added sparse incomplete LU preconditioner for 2D finite-difference models (thanks to Ralph Schreyer.) Release 0.9.9 - November 2009 PORTABILITY - Fixes for 64-bit compilation. - Fixes for Sun Solaris compilation (thanks to Andreas Spengler.) CASH FLOWS - Added overnight-index coupon. - Added inflation coupons. - Parameterized CashFlows functions with explicit flag specifying whether to include settlement-date cash flows. - 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. DATE/TIME - Added EUWAX calendar. - Updated 2009 holidays for China, Hong Kong, India, Indonesia, Singapore, and Taiwan. - Removed Easter Monday from Canadian holidays (thanks to Matt Knox.) - Added weekend-only calendar. INDEXES - Added EONIA index. - Added French HICP and Australian CPI inflation indexes. INSTRUMENTS - Added overnight-index swaps (including helper for yield-curve bootstrap.) - Added inflation cap/floors (including interface for inflation cap/floor volatility structures.) - Added inspectors for previous and next coupon dates to Bond class. - Added implied z-spread calculation for bonds (thanks to Nathan Abbott.) - Added inspector to see whether a bond is still tradable (as opposed to not expired.) - Added constructor for fixed-rate bonds taking a generic InterestRate instance (thanks to Piter Dias.) - Added upfront to credit default swaps, including application to CDS helpers (thanks to Jose Aparicio.) - Added conventional CDS spread calculation (thanks to Jose Aparicio.) - Enabled non-spot inflation swaps. - Migrated asset swaps to pricing-engine framework. - Migrated inflation swaps to pricing-engine framework. - Migrated old average-strike Asian option pricer to pricing-engine framework (thanks to IMAFA students Jean Nkeng, Adrien Pinatton, and Alpha Sanou Toure.) PRICING ENGINES - Added builders for a few Monte Carlo engines. - Most Monte Carlo engines can now specify either relative or absolute target tolerance. - Some Monte Carlo engines can now specify either an absolute number of time steps or a number of time steps per year. - Added choice of evolver scheme to finite-difference vanilla engines. MATH - Implemented Parabolic and Fritsch-Butland cubic interpolations. - Added BFGS optimizer (thanks to Frederic Degraeve.) - Added 1D and 2D kernel interpolation (thanks to Dimitri Reiswich.) - Added Akima and overshooting-minimization spline algorithms (thanks to Sylvain Bertrand.) - Added FFT implementation (thanks to Slava Mazur.) RANDOM NUMBERS - Added Luescher's luxury random number generator (a proxy for Boost implementation.) TERM STRUCTURES - Added hook to swap-rate helpers for external discounting term structure (thanks to Roland Lichters.) - Added seasonality to inflation term structures (thanks to Piero Del Boca and Chris Kenyon.) EXPERIMENTAL FOLDER New contributions for this release were: - risky bonds and asset-swap options (thanks to Roland Lichters;) - spreaded hazard-rate curves (thanks to Roland Lichters;) - compound options (thanks to Dimitri Reiswich;) - refactored CDS options (thanks to Jose Aparicio;) - finite-differences solver for the hybrid Heston Hull-White model, including calibration (thanks to Klaus Spanderen;) - finite-differences Asian-option engines (thanks to Ralph Schreyer;) - machinery for default-event specification (thanks to Jose Aparicio;) - recursive CDO engine (thanks to Jose Aparicio.) Release 0.9.7 - November 18th, 2008 PORTABILITY - 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. - Fixes for Solaris build. BONDS - Added bond example (thanks to Florent Grenier.) - Added support for amortizing bonds (thanks to Simon Ibbotson.) CASH FLOWS - Added two more cashflow analysis functions (thanks to Toyin Akin.) DATE/TIME - Added bespoke calendar. INDEXES - Added GBP/USD/CHF/JPY swap-rate indexes. - Fixed USD LIBOR calendar (settlement, not NYSE.) MARKET MODELS - Added first displaced-diffusion stochastic-volatility evolver. PRICING ENGINES - Monte Carlo average-price options now uses past fixings correctly. QUOTES - added LastFixingQuote, a Quote adapter for the last available fixing of a given index. EXPERIMENTAL FOLDER New contributions for this release were: - time-dependent binomial trees (thanks to John Maiden.) - 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.) - implementations of Black-variance curve and surface taking a set of quotes as input (thanks to Frank Hövermann.) - synthetic CDO engines (thanks to Roland Lichters.) - variance options, together with a Heston-process engine (thanks to Lorella Fatone, Francesca Mariani, Maria Cristina Recchioni, and Francesco Zirilli.) - a commodity framework, including instruments such as energy futures and energy swaps (thanks to J. Erik Radmall.) - quanto-barrier options (thanks to Paul Farrington.) - amortizing bonds (thanks to Simon Ibbotson.) - a perturbative engine for barrier options (thanks to Lorella Fatone, Maria Cristina Recchioni, and Francesco Zirilli.) Release 0.9.6 - August 6th, 2008 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. Release 0.9.5 - July 30th, 2008 CREDIT FRAMEWORK New credit framework due to the joint efforts of StatPro Italia, Roland Lichters, Chris Kenyon, and Jose Aparicio. The framework currently include: - Interface for default-probability term structure and adapters for hazard-rate and default-density structures. - Flat hazard-rate curve. - Interpolated hazard-rate and default-density curves. - Credit-default swaps (mid-point and integral engines.) - Bootstrapped piecewise default-probability curve. - CDS example. PORTABILITY - Added support for Microsoft Visual C++ 2008 (Boost 1.35 is required for this compiler.) - Fixes for Cygwin build. EXPERIMENTAL FOLDER 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: - Generic MC basket option (thanks to Andrea Odetti.) - CDS option (thanks to Roland Stamm.) - Nth-to-default swap (thanks to Roland Lichters.) - Extended Black-Scholes-Merton process (thanks to Frank Hövermann.) - Quanto-adjusted coupons and averaged coupons (thanks to Toyin Akin.) - Callable bonds (thanks to Allen Kuo.) - New framework for volatility term structures. - Sensitivity analysis functions. CALENDARS - Added 2008 holidays for China, India, Indonesia, Singapore, and Taiwan. - Added one-off holiday (President Reagan's and Ford's funerals) to NYSE calendar. - Fixed South Korea calendar (thanks to Charles Chongseok Hyun.) CURRENCIES - Added Peruvian currency. DATES - Added date-generation rules for CDS schedules (i.e., rolling to the 20th of the month.) INDEXES - Added SEK LIBOR index. INSTRUMENTS - 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.) MATH - Added matrix determinant. - Added QR matrix decomposition. - Added a number of copulas (thanks to Marek Glowacki.) - Added constrained cubic spline. - Implemented derivative and second derivative of log-interpolations. - Added Gauss-Lobatto integration. - Added student-t distribution (thanks to Roland Lichters.) MODELS - Added calibrated GJR-GARCH model (thanks to Yee Man Chan.) - Added Feller constraint to Heston model. PRICING ENGINES - Refactored variance-swap engines (the underlying stochastic process is now passed to the pricing engine.) - Added GJR-GARCH pricing engines for vanilla options (thanks to Yee Man Chan.) PROCESSES - Added Euler end-point discretization (thanks to Frank Hövermann.) - Added GJR-GARCH process (thanks to Yee Man Chan.) - Added Bates process. TERM STRUCTURES - Added turn-of-year effect to yield-curve bootstrapping (generalized to multiple jumps at arbitrary dates.) - Added local bootstrap of forward rates (thanks to Simon Ibbotson.) - Disabled copies of interpolated curves (the existing behavior was incorrect. A fix to re-enable copying will be included in a future release.) VOLATILITY - Added constant cap/floor term volatility structure. - Added stripped optionlet. Release 0.9.0 - December 24th, 2007 PORTABILITY - Fixes for MSYS and Cygwin build. - Fixes for VC++ build with CLR support enabled. - Dropped MetroWerks CodeWarrior support. CALENDARS - Fix for business-days calculation (thanks to Piter Dias.) - Updated Hong Kong's holidays for 2008 and China's for 2007. - Added new holiday to Canadian calendars (thanks to Matt Knox.) - Fixed joint-calendar specification (thanks to Jay Walters.) - Split Canadian calendar into settlement and TSX (thanks to Matt Knox.) - Added Brazilian exchange calendar (thanks to Richard Gomes.) - Fixes for the Brazilian calendars (thanks to Piter Dias.) CASH FLOWS - Added average-BMA coupon (thanks to Roland Lichters.) - Fixed-rate coupons can now accept an InterestRate instance (thanks to Piter Dias.) - implemented cash-flow vector builders as helper classes to ease skipping default parameters and single/multiple inputs. DATES - Extended date range up to year 2199. - Fixed period comparison (thanks to Chris Kenyon.) - Fixed short date formatting (thanks to Robert Lopez.) - Enhanced period algebra. INDEXES - Added BMA index (thanks to Roland Lichters.) - Added inflation indexes (thanks to Chris Kenyon.) - Added historical interest-rate index analysis. INSTRUMENTS - Added BMA swaps (thanks to Roland Lichters.) - Added year-on-year and zero-coupon inflation swaps (thanks to Chris Kenyon.) - Fixed stub-date management and backward date generation for fixed-rate bonds (thanks to Toyin Akin.) - Added clean/dirty bond-price calculation from Z-spread. LATTICES - Fixed Tsiveriotis-Fernandes tree initialization (thanks to John Maiden.) MATH - Added multi-dimensional cost function for least-square problems (thanks to Guillaume Pealat.) - Added histogram class (thanks to Gang Liang.) - Added log-cubic interpolation. - Fixed conjugate-gradient bug. - Fixed nested Levenberg-Marquardt bug. PRICING ENGINES - Refactored option engines (the underlying stochastic process is now passed to the pricing engine.) - Refactored bond, cap/floor, swap, and swaption engines (the discount curve is now passed to the pricing engine.) - Added Heston/Hull-White analytic and Monte Carlo engines for vanilla options. - Fixed bug in blackFormulaCashItmProbability in case of non null displacement. PROCESSES - Added hybrid Heston/Hull-White process. - Fixed joint-process bug. QUOTES - Added forward-swap quote. RANDOM NUMBERS - Fixed ordering of primitive polynomials for Sobol/Levitan and Sobol/Levitan/Lemieux methods. - Added JoeKuoD5, JoeKuoD6 and JoeKuoD7 direction integers for Sobol generator. - Added Kuo, Kuo2 and Kuo3 direction integers for Sobol generator. - Added class to generate low-discrepancy sequences using a lattice rule. TERM STRUCTURES - Added discount curve fitted on bond prices (thanks to Allen Kuo.) - Added BMA-swap rate helper (thanks to Roland Lichters.) - Made SwapRateHelper forward-start enabled. - Added universal term-structure bootstrapper (thanks to Chris Kenyon.) - Added abstract inflation term structures (thanks to Chris Kenyon.) - Added piecewise inflation curves (thanks to Chris Kenyon.) Release 0.8.1 - June 4th, 2007 PORTABILITY - 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. Release 0.8.0 - May 30th, 2007 PORTABILITY - 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. SOURCE TREE - Files and folders in the source tree have been reorganized (hopefully for th ebetter.) If you only included , 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. CALENDARS - Added 2007 holidays for Indonesia, Saudi Arabia, and South Korea calendars. CASH FLOWS - Added floater range-accrual coupons. INDEXES - Added EuriborSwapFixB family. INSTRUMENTS - Added capped/floored floating-rate bond. It can also be used for reverse floaters. - Added delta, gamma and theta to binomial option engines (thanks to Steve Cook.) - Refactored basket engines to allow for more payoffs. LIBOR MARKET MODEL - 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. MATH - Adaptive Gauss-Kronrod integration added. - Added Higham's nearest correlation matrix method (thanks to Neil Firth) - Refactored optimization framework. PROCESSES - Added new discretization schema to Heston process. UTILITIES - 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. Release 0.4.0 - February 20th, 2007 PORTABILITY - 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. CALENDARS - Added 2007 holidays for Hong Kong, India, Singapore, and Taiwan exchanges. LIBOR MARKET MODEL - 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. INSTRUMENTS - Added helper classes to make it easier to instantiate swaps, caps/floors, and CMS instruments. INTEREST RATES - Added capped/floored floating-rate coupons (including convexity adjustment.) MATH - Curve, domain and surface interfaces added. PROCESSES - Added reversion level to Ornstein-Uhlenbeck process (thanks to Roland Lichters.) VOLATILITY TERM STRUCTURES - Added stripping of caplet-volatility term structure from cap quotes. - Improved SABR interpolation and calibration. Release 0.3.14 - November 6th, 2006 PORTABILITY - 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. LIBOR MARKET MODEL - 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. CURRENCIES - Added Romanian new lev. DATES, CALENDARS, AND DAY COUNTERS - Added all serial 3M IMM futures (thanks to Toyin Akin.) - Reworked the Schedule class so that it follows market conventions more closely. - Added business/252 day-count convention (thanks to Piter Dias.) INTEREST RATES - Added base swap-rate class and a number of actual swap rates. - Added constant-maturity swap coupons (including convexity adjustment.) INSTRUMENTS - Added asset swaps. - Added face amount to bonds (defaulting to 100.) MATH - Added hypersphere and lower-diagonal salvaging algorithms (thanks to Yiping Chen.) PRICING ENGINES - Added Longstaff-Schwartz Monte-Carlo algorithm for American/Bermudan equity options with deterministic interest rates. TERM STRUCTURE - Added piecewise-spreaded yield curve (thanks to Roland Lichters.) Release 0.3.13 - July 31st, 2006 CALENDARS - Added NERC calendar (thanks to Joe Byers.) INSTRUMENTS AND PRICING ENGINES - Added continuous fixed and floating lookback options (thanks to Warren Chou.) - Added FRA and forward fixed-coupon bonds; examples provided (thanks to Allen Kuo.) - Added variance swaps (thanks to Warren Chou.) - Added composite instrument; example provided. - Added cash-settled swaption pricing in Black swaption engine; test provided. - Added discrete dividends and soft callability to convertible bonds. INTEREST RATES - Fixed business-day conventions for Euribor and LIBOR indices (following below one month, month-end from one month onwards.) MODELS - Added more complex market parameterizations and performance improvements for Libor market model (thanks to Klaus Spanderen.) PROCESSES - Renamed BlackScholedProcess to GeneralizedBlackScholedProcess; specialized classes added for Black-Scholes, Merton, Black and Garman-Kohlhagen processes. - Added Hull-White and G2 processes for Monte Carlo simulation (thanks to Banca Profilo.) RANDOM NUMBERS - Added possibility to skip directly to the n-th item in a Sobol sequence (thanks to Richard Gould.) MATH - Added SABR interpolation for volatilities. - Added general linear least-squares regression (thanks to Klaus Spanderen.) Release 0.3.12 - March 27th, 2006 CALENDARS - Added Brazilian calendar (thanks to Piter Dias.) - Added Argentinian, Icelandic, Indonesian, Mexican, and Ukrainian calendars. INSTRUMENTS AND PRICING ENGINES - Added convertible bonds (thanks to Theo Boafo.) - The cash flows returned by the Bond::cashflows method now include the redemption. - SimpleSwap can now be set an engine. If none is set, the old cash-flow-based calculation is used. - Generalized McVanillaEngine so that it can manage n-dimensional processes; it now subsumes McHestonEngine. - Added pricing of Bermudan options on binomial trees (thanks to Enrico Michelotti.) - Separated accrual and payment conventions for bonds. - 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.) MODELS - Added weights to short-rate model calibration (thanks to Enrico Michelotti.) - Added Libor market model (thanks to Klaus Spanderen.) OPTIMIZATION - Added Levenberg-Marquardt optimization method (thanks to Klaus Spanderen.) EXAMPLES - Merged American and European option examples; added Bermudan option. - Added convertible-bond example (thanks to Theo Boafo.) Release 0.3.11 - October 20th, 2005 GLOBAL FEATURES - Added configuration option for adding current function information to error messages. - Added hook for multiple sessions to Singleton. CALENDARS - Added Bombay and Taipei calendars. CURRENCIES - Added new Turkish lira. INDEXES - More accurate LIBOR calendars (thanks to Daniele de Francesco.) - Added DKKLibor, EURLibor, and NZDLibor indexes. - Added TRLibor index (thanks to Sercan Atalik.) PRICING ENGINES - Added Bates stochastic-volatility model; tests provided (thanks to Klaus Spanderen.) - Added vega to analytic discrete-averaging Asian engine; test provided (thanks to Gary Kennedy.) - Added stochastic process for caplet Libor market model; tests provided (thanks to Klaus Spanderen.) TERM STRUCTURES - Added fixed-coupon bond helper for curve bootstrapping (thanks to Toyin Akin.) MATH - Added tabulated Gauss-Legendre quadratures (thanks to Gary Kennedy.) - Added more precise implementation of bivariate cumulative normal distribution (thanks to Gary Kennedy.) Release 0.3.10 - July 14th, 2005 GLOBAL FEATURES - The suggested syntax for setting and registering with the global evaluation date is now: \code Settings::instance().evaluationDate() = date; registerWith(Settings::instance().evaluationDate()); \endcode CALENDARS - Istanbul calendar added (thanks to Serkan Atalik.) LATTICE FRAMEWORK - Faster implementation of binomial and trinomial trees. MONTE CARLO FRAMEWORK - Added generic multi-dimensional stochastic process. - Added stochastic process array (thanks to Klaus Spanderen.) - Multi-path generator now takes a generic stochastic process; tests provided. - 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. INSTRUMENTS - Multi-asset option now takes a generic stochastic process. MODELS - Added Heston stochastic-volatility model; tests provided (thanks to Klaus Spanderen.) Provided code include: - a corresponding stochastic process; - analytic and Monte Carlo option-pricing engines; - parameter calibration. CASH FLOWS - Cash-flow analyses such as NPV, IRR, convexity and duration added (thanks to Charles Whitmore.) MATH - Added Gaussian orthogonal polynomials and Gaussian quadratures; tests provided (thanks to Klaus Spanderen.) - Convergence statistics added; tests provided (thanks to Gary Kennedy.) Release 0.3.9 - May 2nd, 2005 GLOBAL FEATURES - QL_SQRT, QL_MIN etc. deprecated in favor of std::sqrt, std::min... - Added a tentative tracing facility to ease debugging. - Formatters deprecated in favor of output manipulators. A number of data types can now be sent directly to output streams. - Stream-based implementation of QL_REQUIRE, QL_TRACE and similar macros. Together with manipulators, this allows one to write simpler error messages, as in: \code QL_FAIL("forward at date " << d << " is " << io::rate(f)); \endcode INSTRUMENTS - Improved Bond class - yield-related calculation can be performed with either compounded or continuous compounding; - added theoretical price based on discount curve; - fixed-rate coupon bonds can define different rates for each coupon; - added zero-coupon and floating-rate bonds (thanks to StatPro.) - 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. - Partial fix for Bermudan swaptions with exercise lag (thanks to Luca Berardi for the report and discussion.) - Fix for analytic cap/floor engine; caplets/floorlets whose fixing is in the past are now calculated correctly (thanks to Aurelien Chanudet.) CALENDARS - Added Bratislava and Prague calendars. INDICES - Fixed calendars for LIBOR fixings (thanks to Daniele De Francesco.) FINITE_DIFFERENCES FRAMEWORK - Migrated finite-difference pricers to pricing-engine framework (thanks to Joseph Wang.) YIELD TERM STRUCTURES - 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: \code PiecewiseYieldCurve PiecewiseYieldCurve PiecewiseYieldCurve \endcode - Interpolated discount, zero-yield and forward-rate curves can now be set any interpolation. - FlatForward can now take rates with compounding other than continuous. - Fix for extrapolation in zero-spreaded and forward-spreaded yield term structure (thanks to Adjriou Belak for the report.) MATH - Added backward- and forward-flat interpolations. Release 0.3.8 - December 22nd, 2004 REQUIRED PACKAGES - Boost version 1.31.0 or later is now required. DOCUMENTATION - Documentation now includes a FAQ page. GLOBAL FEATURES - Global evaluation date added through Settings class. Used for index-fixing and exchange-rate lookup. - 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. INSTRUMENTS - Bond and FixedCouponBond classes added (thanks to Jeff Yu) providing price/yield conversions; tests provided. DATE, CALENDARS, AND DAY COUNT CONVENTIONS - Reworked Date interface. Added nextWeekday() and nthWeekday() static methods to the class Date. Added nextIMM() for the calculation of the next IMM date. - Added WeekdayFormatter and FrequencyFormatter - 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. - Added dayCounterFromString(std::string) to QuantLibFunctions. - Improved Beijing calendar (thanks to Zhou Wu.) CURRENCIES AND FX RATES - Added currency classes; CurrencyTag replaced in library code. - Added money class providing arithmetic with or without conversions; tests provided. - Added exchange-rate class; tests provided. - 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. MONTE CARLO FRAMEWORK - Added Faure low-discrepancy sequence (thanks to Gianni Piolanti;) tests provided. - Added randomized (shifted) low discrepancy sequences that will be used for randomized quasi Monte Carlo. - Added SeedGenerator class, for random generation of seeds when they are not given by the user. - 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. - 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 40Release 0.3.7 - July 23rd, 2004
IMPORTANT
%QuantLib now depends on the Boost library (www.boost.org). You will need a working Boost installation in order to compile and use %QuantLib. Instructions for installing Boost from sources are available at . Pre-packaged binaries might be available from other sources. Google is your friend (or Debian, or Fink...)
DATE, CALENDARS, AND DAY COUNT CONVENTIONS - Working on differentiating calendars depending on country or exchange, instead of city. - Added Italy (Settlement, Exchange), United Kingdom (Settlement, Exchange, Metals), United States (Settlement, Exchange, GovermentBond), Xetra. - Milan, London, and NewYork calendars have been deprecated. - Added (old-style) calendars: Beijing, Hong Kong, Riyadh, Seoul, Singapore, Taiwan. - RollingConvention has been renamed BusinessDayConvention, as for ISDA definitions. MATH - Added rounding algorithms as per OMG enumeration/definition. TEST SUITE - Moved to Boost unit test framework. CppUnit is no longer needed. - Added test for quanto and forward compound engines. - Added test for roundings. - Added test for discrete dividend European options. - Added test for cliquet options. MISCELLANEA - 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. - Added user-configurable flag to disable usage of deprecated classes. PORTABILITY - Fink package available - Visual C++ 7.x project files added Release 0.3.6 - April 15th, 2004 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. Release 0.3.5 - March 31th, 2004 BOOST SUPPORT - 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. - In the next %QuantLib release, the presence of the Boost library will be mandatory. MONTE CARLO FRAMEWORK - Modified MultiPath interface to remove drifts. They are now in the stochastic processes. - Preliminary implementation of Longstaff-Schwartz least-squares - Monte Carlo pricer for European basket options - Brownian-bridge bugs fixed - StochasticProcess base class and derived classes (diffusion, jump-diffusion, etc.) have been created. PRICING ENGINES FRAMEWORK - Pricing engines now use Payoff and Exercise classes. - American basket options. - Binary barrier option replaced by vanilla option with digital payoff. - Stulz engine for max and min basket calls and puts on two assets. - American binary option added (a.k.a. one-touch, american digital, americal barrier, etc.) with different payoffs (cash/asset at hit/expiry, etc.) - Added engine for Merton 1976 jump-diffusion process. - Added Bjerksund and Stensland approximation for American option (still unstable.) - Added Barone-Adesi and Whaley approximation for American option. - Improved Black formula engine with more greeks added. - Discrete geometric asian option. - Added Leisen-Reimer binomial tree. SHORT RATE MODELS - Model renamed to ShortRateModel. A typedef is provided for backward compatibility--it will be removed in subsequent releases. VOLATILITY FRAMEWORK - bug fix for short time (0<=t<=Tmin) interpolation OPTIMIZATION FRAMEWORK - Method renamed to OptimizationMethod. A typedef is provided for backward compatibility--it will be removed in subsequent releases. PATTERNS - Composite pattern MATH - 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. - Primitive, first derivative, and second derivative functions are available for linear interpolator. - Singular value decomposition improved. - Added bivariate cumulative normal distribution. - Added binomial coefficient calculation, binomial distribution, cumulative binomial distribution, and Peizer-Pratt inversion (method 2.) - Added beta functions. - Added Poisson distribution and cumulative distribution. - Added incomplete gamma functions. - Added factorial calculation. - Added rank-reduced square root and improved pseudo-square root of square symmetric matrices. - Added Cholesky decomposition. TEST SUITE - Added test for cubic spline interpolation. - Added test for singular value decomposition. - Added test for two-asset baskets using the Stulz pricing engine. - Added test for Monte Carlo American cash-at-hit options. - Added test for jump-diffusion engine. - Added test for American and European digital options. MISCELLANEA - Inner namespaces have been deprecated. - Added frequency enumeration, including 'once'. - MarketElement renamed to Quote. - Handling strike=0.0 where possible. - More Payoff classes have been introduced: gap, asset-or-nothing, cash-or-nothing. Payoff is now extensively used. - Exercise class is now polymorphic. More derived classes have been introduced, and they are now extensively used. - Introduced QL_FAIL macro. - Added calendar for Copenhagen - 14 April 2004 (election day) added to Johannesburg calendar as a one-off holiday. - Documentation generated with Doxygen 1.3.6. - Win32 installer generated with NSIS 2.0. Release 0.3.4 - November 21th, 2003 MONTE CARLO FRAMEWORK - MC European in one step with strike-independent vol curve (hopefully) - 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. - Path pricers for barrier options PRICING ENGINES FRAMEWORK - More options moved to the new pricing engine framework: binary, barrier - Changed setupEngine() into setupArguments(args) - Moved pricing-engine machinery up to Instrument class FIXED INCOME - New basis-point sensitivity functions - Added Swap::startDate() and maturity() - Cap/floor fixing days taken into account SHORT RATE MODELS - An additional constraint can now be passed to the calibration VOLATILITY FRAMEWORK - Visitable volatility term structures OPTIMIZATION FRAMEWORK - Added composite constraint PATTERNS - Visitor, Alexandrescu-style (saves some code duplication) MATH - Added more integration algorithms contributed by Roman Gitlin - Relaxed constaints on interval boundaries for integration algorithms - Interpolation traits TEST SUITE - Added implied cap/floor term volatility test - Added test for binary options in PricingEngine Framework. - Added tests for Barrier options in PricingEngine Framework. Some Monte Carlo tests, but not comprehensive. MISCELLANEA - Conditionally allowed negative yields (disabled by default) - Null calendar and simple day counter for reproducing theoretical calculations - Fixed for VC++.Net compilation - Added spec file for RPMs - Added global flag for early/late payments - Enabled test suite for Borland - Removed OnTheEdge VC++ configurations - Added VC++ configurations for static and dynamic Multithread libraries - Upgraded to use Doxygen 1.3.4 Release 0.3.3 - September 3rd, 2003 MONTE CARLO FRAMEWORK - Re-templatized Monte Carlo model based on traits. - New path generator based on DiffusionProcess, TimeGrid, and externally initialized random number generator. - Added Halton low discrepancy sequence. - 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. - RNG as constructor input constructor( long seed) deprecated. - Mersenne Twister random number generator added - Old PathPricers, PathGenerators, etc are available with a trailing _old - Added Jäckel's Brownian Bridge (not used yet.) - Sobol Random Sequence Generator. Unit and Jäckel. - Added randomized Halton sequences. FINITE DIFFERENCE FRAMEWORK - Old class Grid no longer exists, use CenteredGrid to obtain the same result. LATTICE FRAMEWORK - Abstracted discretized option. - Additive binomial trees. All binomial trees now use DiffusionProcess. - Added Tian binomial tree. PRICING ENGINES FRAMEWORK - Partially implemented. - Quanto forward compounded engines. - Integral (european) pricing engine. YIELD TERM STRUCTURE - ZeroCurve: a term structure based on linear interpolation of zero yields. FIXED INCOME - Up-front and in-arrear indexed coupon. - Specific implementation of compound forward rate from zero yield. - Added compound forward and zero coupon implementations. - Added Futures rate helper with specified maturity date. - Added bucketed bps calculation. - Added swap constructor using specified maturity date as well as added functionality in Scheduler. - Added date-bucketed basis point sensitivity based on 1st derivative of zero coupon rate. OPTIMIZATION FRAMEWORK - Solvers now take any function. ObjectiveFunction disappeared. PATTERNS - Abstracted lazy object. - Abstracted the curiously recurring template pattern. DATE AND CALENDARS - Added joint calendars. - Tokyo, Stockholm, Johannesburg calendar improved. - "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. - Added basic date generation starting from the end. MATH - Added Gauss-Kronrod integration algorithm. - Added primitive polynomial modulo 2 up to dimension 18 (available up to dimension 27.) - Added BicubicSplineInterpolation. - 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. - Prime number generation. - Acklam's approximation for inverse cumulative normal distribution function (replaced Moro's algorithm as default.) - Added error function. - Improved Cumulative Normal Distribution function using the error function. - Matrix pseudo square algorithm using salvaging algorithm(s). - Added SequenceStatistics. - Major Statistic reworking. - Added DiscrepancyStatistic that inherits from SequenceStatistic and extends it with the calculation of L2-discrepancy. - HStatistics. - Added first and second derivative ot cubic splines. RISK MEASURES - Introduced semiVariance and regret. - Redefinition of average shorfall (normalization factor now is cumulative(target) instead of 1.0) MISCELLANEA - QuEP 9 "generic disposable objects" implemented. - Added test suite. - Dataformatters extended to format long integers, Ordinal numerals, power of two formatting. - Exercise class adopted. - Added user configuration section. - Inhibited automatic conversion of Handle to RelinkableHandle. - Diffusion process extended. - Added strikeSensitivity to the Greeks. - BS does handle t==0.0 and sigma==0.0. - TimeGrid has been reworked. - Added payoff file for Payoff classes. Added Cash-Or-Nothing and Asset-Or-Nothing payoff classes. - Upgraded to use Doxygen 1.3. Release 0.3.1 - February 4th, 2003 FINITE DIFFERENCE FRAMEWORK - partially implemented QuEP 2 (http://quantlib.org/quep.shtml) VOLATILITY FRAMEWORK - added Black and local volatility interface PRICING ENGINES FRAMEWORK - partially implemented QuEP 5 (http://quantlib.org/quep.shtml) YIELD TERM STRUCTURE - interface revisited - added discrete time forward methods - added DiscountCurve (loglinear interpolated) and CompoundForward term structures - ForwardSpreadedTermStructure moved under QuantLib::TermStructures namespace FIXED INCOME - Modified coupons so that the payment date can be after the end of the accrual period MISCELLANEA - added/verified holidays of many calendars - added new calendars - added new currencies - more date formatters - added Period(std::string&) - it is now possible to advance a calandar using a Period - added LogLinear Interpolation - the allowExtrapolation boolean in interpolation classes has been removed from constructors and added to the operator() - Renamed Solver1D::lowBound and hiBound - bug fixes BUILD PROCESS - More autoconfiscated time functions and types - Migrated to latest autotools - added patches for Darwin and Solaris Release 0.3.0 - May 6th, 2002 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 Release 0.2.1 - December 3rd, 2001 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 INSTALLATION FACILITIES - improved and smoother Win32 binary installer DOCUMENTATION - general re-hauling - improved and extended Monte Carlo documentation - improved and extended examples - Upgraded to Doxygen 1.2.11.1 - Added man pages for installed executables - added docs in Windows Help format - added info on "Win32 OnTheEdgeRelease" and "Win32 OnTheEdgeDebug" MS VC++ configurations - additional information on how to create a MS VC++ project based on %QuantLib Release 0.2.0 - September 18th, 2001 - Library: - source code moved under ql, better GNU standards - gcc build dir can now be separated from source tree - gcc 3.0.1 port - clean compilation (no warnings) - bootstrap script on cygwin - Fixed automatic choice of seed for random number generators - Actual/actual classes - extended platform support (see table in documentation) - antithetic variance-reduction technique made possible in Monte Carlo - added dividend-Rho greek - First implementation of segment integral (to be redesigned) - Knuth random generator - Cash flows, scheduler, and swap (both generic and simple) added - added ICGaussian random generator - generic bug fixes - Installation facilities: - improved and smoother Win32 binary installer - better distribution - debian packages available - Documentation: - general re-hauling - added examples of using %QuantLib and of projects based on QL Release 0.1.9 - May 31st, 2001 - Library: - Style guidelines introduced (see http://quantlib.org/style.shtml) and partially enforced - full support for Microsoft Visual Studio - full support for Linux/gcc - momentarily broken support for Metrowerks CodeWarrior - autoconfiscation (with specialized config.*.hpp files for platforms without automake/autoconf support) - Include files moved under Include/ql folder and referenced as "ql/header.hpp" - Implemented expression templates techniques for array algebra optimization - Added custom iterators - Improved term structure - Added Asian, Bermudan, Shout, Cliquet, Himalaya, and Barrier options (all with greeks calculation, control variated where possible) - Added Helsinki and Wellington calendars - Improved Normal distribution related functions: cumulative, inverse cumulative, etc. - Added uniform and Gaussian random number generators - Added Statistics class (mean, variance, skewness, downside variance, etc.) - Added RiskMeasures class: VAR, average shortfall, expected shortfall, etc. - Added RiskStatistics class combining Statistics and RiskMeasures - Added sample accumulator for multivariate analysis - Added Monte Carlo tools - Added matrix-related functions (square root, symmetric Schur decomposition) - Added interpolation framework (linear and cubic spline interpolation implemented). - Installation facilities: - Added Win32 GUI installer for binaries - Documentation: - support for Doxygen 1.2.7 - Added man documentation Release 0.1.1 - November 21st, 2000 Initial release. */ QuantLib-1.33/Docs/pages/index.docs000066400000000000000000000032461455304614400171420ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \mainpage Introduction %QuantLib (https://www.quantlib.org/) is a C++ library for financial quantitative analysts and developers. %QuantLib is Non-Copylefted Free Software released under the modified BSD License. It is also OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative. %QuantLib is free software and you are allowed to use, copy, modify, merge, publish, distribute, and/or sell copies of it under the conditions stated in the \ref license. %QuantLib and its documentation are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \ref license for more details. \section disclaimer Disclaimer At this time, this documentation is widely incomplete and must be regarded as a work in progress. Contributions are welcome. */ QuantLib-1.33/Docs/pages/install.docs000066400000000000000000000015411455304614400174750ustar00rootroot00000000000000 /* Copyright (C) 2000-2005, 2007, 2009 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \page install Installation Detailed instructions are available at . */ QuantLib-1.33/Docs/pages/instruments.docs000066400000000000000000000014161455304614400204230ustar00rootroot00000000000000 /* Copyright (C) 2000-2004 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup instruments Financial instruments */ QuantLib-1.33/Docs/pages/lattices.docs000066400000000000000000000106451455304614400176440ustar00rootroot00000000000000 /* Copyright (C) 2002, 2003 Sadruddin Rejeb This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup lattices Lattice methods The framework (corresponding to the ql/methods/lattices directory) contains basic building blocks for pricing instruments using lattice methods (trees). A lattice, i.e. an instance of the abstract class QuantLib::Lattice, relies on one or several trees (each one approximating a diffusion process) to price an instance of the DiscretizedAsset class. Trees are instances of classes derived from QuantLib::Tree, classes which define the branching between nodes and transition probabilities. \section binomial Binomial trees The binomial method is the simplest numerical method that can be used to price path-independent derivatives. It is usually the preferred lattice method under the Black-Scholes-Merton model. As an example, let's see the framework implemented in the bsmlattice.hpp file. It is a method based on a binomial tree, with constant short-rate (discounting). There are several approaches to build the underlying binomial tree, like Jarrow-Rudd or Cox-Ross-Rubinstein. \section trinomial Trinomial trees When the underlying stochastic process has a mean-reverting pattern, it is usually better to use a trinomial tree instead of a binomial tree. An example is implemented in the QuantLib::TrinomialTree class, which is constructed using a diffusion process and a time-grid. The goal is to build a recombining trinomial tree that will discretize, at a finite set of times, the possible evolutions of a random variable \f$ y \f$ satisfying \f[ dy_t = \mu(t, y_t) dt + \sigma(t, y_t) dW_t. \f] At each node, there is a probability \f$ p_u, p_m \f$ and \f$ p_d \f$ to go through respectively the upper, the middle and the lower branch. These probabilities must satisfy \f[ p_{u}y_{i+1,k+1}+p_{m}y_{i+1,k}+p_{d}y_{i+1,k-1}=E_{i,j} \f] and \f[ p_u y_{i+1,k+1}^2 + p_m y_{i+1,k}^2 + p_d y_{i+1,k-1}^2 = V^2_{i,j}+E_{i,j}^2, \f] where k (the index of the node at the end of the middle branch) is the index of the node which is the nearest to the expected future value, \f$ E_{i,j}=\mathbf{E}\left( y(t_{i+1})|y(t_{i})=y_{i,j}\right) \f$ and \f$ V_{i,j}^{2}=\mathbf{Var}\{y(t_{i+1})|y(t_{i})=y_{i,j}\} \f$. If we suppose that the variance is only dependant on time \f$ V_{i,j}=V_{i} \f$ and set \f$ y_{i+1} \f$ to \f$ V_{i}\sqrt{3} \f$, we find that \f[ p_{u} = \frac{1}{6}+\frac{(E_{i,j}-y_{i+1,k})^{2}}{6V_{i}^{2}} + \frac{E_{i,j}-y_{i+1,k}}{2\sqrt{3}V_{i}}, \f] \f[ p_{m} = \frac{2}{3}-\frac{(E_{i,j}-y_{i+1,k})^{2}}{3V_{i}^{2}}, \f] \f[ p_{d} = \frac{1}{6}+\frac{(E_{i,j}-y_{i+1,k})^{2}}{6V_{i}^{2}} - \frac{E_{i,j}-y_{i+1,k}}{2\sqrt{3}V_{i}}. \f] \section bidimensional Bidimensional lattices To come... \section discretizedasset The QuantLib::DiscretizedAsset class This class is a representation of the price of a derivative at a specific time. It is roughly an array of values, each value being associated to a state of the underlying stochastic variables. For the moment, it is only used when working with trees, but it should be quite easy to make a use of it in finite-differences methods. The two main points, when deriving classes from QuantLib::DiscretizedAsset, are: -# Define the initialisation procedure (e.g. terminal payoff for european stock options). -# Define the method adjusting values, when necessary, at each time steps (e.g. apply the step condition for american or bermudan options). Some examples are found in QuantLib::DiscretizedSwap and QuantLib::DiscretizedSwaption. */ QuantLib-1.33/Docs/pages/license.docs000066400000000000000000000020471455304614400174530ustar00rootroot00000000000000 /*! \page license QuantLib License \verbinclude LICENSE.TXT
\section licensecomments Comments on Copyright and License %QuantLib is Non-Copylefted Free Software [1] released under the modified BSD License [2] (also know as XFree86-style license). %QuantLib is Open Source [3] because of its license: it is OSI Certified Open Source Software [4]. OSI Certified is a certification mark of the Open Source Initiative [5]. The modified BSD License is GPL compatible as confirmed by the Free Software Foundation [6]. This license has been adopted to allow free use of %QuantLib and its source, to make %QuantLib flourish as a free-software/open-source project. It allows proprietary extensions to be commercialized. [1] http://www.gnu.org/philosophy/categories.html#Non-CopyleftedFreeSoftware
[2] http://www.opensource.org/licenses/bsd-license.html
[3] http://www.opensource.org/docs/definition.html
[4] http://www.opensource.org/docs/certification_mark.html
[5] http://www.opensource.org
[6] http://www.gnu.org/philosophy/bsd.html */ QuantLib-1.33/Docs/pages/math.docs000066400000000000000000000034421455304614400167620ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup math Math tools @{ */ /*! \defgroup interpolations 1-D Interpolations and corresponding traits */ /*! \defgroup solvers One-dimensional solvers The abstract class QuantLib::Solver1D provides the interface for one-dimensional solvers which can find the zeroes of a given function. A number of such solvers is contained in the ql/Solvers1D directory. The implementation of the algorithms was inspired by "Numerical Recipes in C", 2nd edition, Press, Teukolsky, Vetterling, Flannery - Chapter 9 Some work is needed to resolve the ambiguity of the root finding accuracy definition: for some algorithms it is the x-accuracy, for others it is f(x)-accuracy. */ /*! \defgroup optimizers Optimizers The optimization framework (corresponding to the ql/Optimization directory) implements some multi-dimensional minimizing methods. The function to be minimized is to be derived from the QuantLib::CostFunction base class (if the gradient is not analytically implemented, it will be computed numerically). */ /*! @} */ QuantLib-1.33/Docs/pages/mcarlo.docs000066400000000000000000000016251455304614400173070ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup mcarlo Monte Carlo framework This framework (corresponding to the ql/methods/montecarlo directory) contains basic building blocks for Monte Carlo simulations. */ QuantLib-1.33/Docs/pages/patterns.docs000066400000000000000000000014051455304614400176660ustar00rootroot00000000000000 /* Copyright (C) 2000-2004 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup patterns Design patterns */ QuantLib-1.33/Docs/pages/processes.docs000066400000000000000000000017771455304614400200500ustar00rootroot00000000000000 /* Copyright (C) 2006 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup processes Stochastic processes The classes QuantLib::StochasticProcess and QuantLib::StochasticProcess1D provide the interface for a generic stochastic process. A number of specific processes is contained in the ql/processes directory. */ QuantLib-1.33/Docs/pages/resources.docs000066400000000000000000000027231455304614400200440ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \page resources Additional resources The main %QuantLib resource is the %QuantLib web site (https://www.quantlib.org). Additional resources available from the above site include: - available documentation (https://www.quantlib.org/docs.shtml); - the %QuantLib mailing lists and forums (https://www.quantlib.org/mailinglists.shtml); - the %QuantLib programming style guidelines (https://www.quantlib.org/style.shtml); - links to pages for reporting issues (https://github.com/lballabio/QuantLib/issues) and submitting changes (https://github.com/lballabio/QuantLib/pulls); - a page (https://www.quantlib.org/extensions.shtml) about how to use %QuantLib in other languages/platforms. */ QuantLib-1.33/Docs/pages/termstructures.docs000066400000000000000000000026541455304614400211500ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \defgroup termstructuressss Term structures @{ */ /*! \defgroup yieldtermstructures Interest-rate term structures The abstract class QuantLib::YieldTermStructure provides the common interface to concrete yield-rate term structure models. Among others, methods are declared which return instantaneous forward rate, discount factor, and zero rate at a given date. Adapter classes are provided which already implement part of the required methods, thus allowing the programmer to define only the non-redundant part. */ /*! \defgroup defaultprobabilitytermstructures Default-probability term structures */ /*! \defgroup inflationtermstructures Inflation term structures */ /*! @} */ QuantLib-1.33/Docs/pages/usage.docs000066400000000000000000000044341455304614400171370ustar00rootroot00000000000000 /* Copyright (C) 2002, 2003 Ferdinando Ametrano Copyright (C) 2001, 2002, 2003 Sadruddin Rejeb This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \page usage Usage To use %QuantLib classes in your own code just add \code #include \endcode at the beginning of your source/header files. Depending on the number of your files in your project, this could cause a large increase in compilation time. If this were not acceptable, collective headers are also available for smaller parts of the library; in particular, each subdirectory of the ql directory contains a file all.hpp which makes available all classes and function in the respective subdirectory. Under the Examples folder you can find examples of %QuantLib usage, including input files for automake and makefiles for the Borland free compiler and Microsoft Visual C++. For the latter, project files are also available. \section microsoftvisual Microsoft Visual C++ A few suggestions for Visual C++ users wanting to use %QuantLib into their own application: -# you won't have to explicitly link your application to the QuantLib library. This is done automatically by compiler directives embedded in the sources. -# Your project must be compiled with the same options that were used in compiling the %QuantLib library you're linking with, namely, - Property Pages -> C/C++ -> Code Generation -> Runtime Library: select the appropriate run-time library. - Property Pages -> C/C++ -> Code Generation -> Basic Runtime Checks: select "Both (/RTC1, equiv. to /RTCsu)". */ QuantLib-1.33/Docs/pages/where.docs000066400000000000000000000023621455304614400171430ustar00rootroot00000000000000 /* Copyright (C) 2000-2003 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \page where Where to get QuantLib \section download QuantLib releases Source code, documentation, modules, etc. of current and previous %QuantLib releases can be downloaded from https://www.quantlib.org/download.shtml \section cvs Current snapshot Instructions for Git access are available at https://www.quantlib.org/git.shtml Access to the Git repository is intended mainly for developers and is not recommended to end users which should download the latest stable release instead. */ QuantLib-1.33/Docs/quantlib.doxy000066400000000000000000000313111455304614400166000ustar00rootroot00000000000000# Doxyfile 1.10.0 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = QuantLib PROJECT_NUMBER = ql_version PROJECT_BRIEF = "A free/open-source library for quantitative finance" PROJECT_LOGO = PROJECT_ICON = OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO CREATE_SUBDIRS_LEVEL = 8 ALLOW_UNICODE_NAMES = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES STRIP_FROM_PATH = ql_basepath STRIP_FROM_INC_PATH = ql_basepath SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO JAVADOC_BANNER = NO QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO PYTHON_DOCSTRING = YES INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 4 ALIASES = "warning=\xrefitem caveats \"Warning\" \"Caveats\"" \ "test=\xrefitem test \"Tests\" \"Test Suite\"" \ "bug=\xrefitem bug \"Bug\" \"Known Bugs\"" \ "deprecated=\xrefitem deprecated \"Deprecated\" \"Deprecated Features\"" OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO OPTIMIZE_FOR_FORTRAN = NO OPTIMIZE_OUTPUT_VHDL = NO OPTIMIZE_OUTPUT_SLICE = NO EXTENSION_MAPPING = MARKDOWN_SUPPORT = YES TOC_INCLUDE_HEADINGS = 0 MARKDOWN_ID_STYLE = DOXYGEN AUTOLINK_SUPPORT = YES BUILTIN_STL_SUPPORT = YES CPP_CLI_SUPPORT = NO SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES DISTRIBUTE_GROUP_DOC = NO GROUP_NESTED_COMPOUNDS = NO SUBGROUPING = YES INLINE_GROUPED_CLASSES = NO INLINE_SIMPLE_STRUCTS = NO TYPEDEF_HIDES_STRUCT = NO LOOKUP_CACHE_SIZE = 0 NUM_PROC_THREADS = 1 TIMESTAMP = NO #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = NO EXTRACT_PRIVATE = NO EXTRACT_PRIV_VIRTUAL = NO EXTRACT_PACKAGE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = NO EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO RESOLVE_UNNAMED_PARAMS = YES HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = YES HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = YES INTERNAL_DOCS = NO CASE_SENSE_NAMES = NO HIDE_SCOPE_NAMES = YES HIDE_COMPOUND_REFERENCE= NO SHOW_HEADERFILE = YES SHOW_INCLUDE_FILES = YES SHOW_GROUPED_MEMB_INC = NO FORCE_LOCAL_INCLUDES = NO INLINE_INFO = NO SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO SORT_MEMBERS_CTORS_1ST = YES SORT_GROUP_NAMES = YES SORT_BY_SCOPE_NAME = YES STRICT_PROTO_MATCHING = NO GENERATE_TODOLIST = NO GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = NO SHOW_FILES = NO SHOW_NAMESPACES = NO FILE_VERSION_FILTER = LAYOUT_FILE = CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = YES WARNINGS = YES WARN_IF_UNDOCUMENTED = NO WARN_IF_DOC_ERROR = YES WARN_IF_INCOMPLETE_DOC = NO WARN_NO_PARAMDOC = NO WARN_IF_UNDOC_ENUM_VAL = NO WARN_AS_ERROR = YES WARN_FORMAT = "$file:$line: $text" WARN_LINE_FORMAT = "at line $line of file $file" WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- INPUT = ql_basepath/Docs//pages \ ql_basepath/ql INPUT_ENCODING = UTF-8 INPUT_FILE_ENCODING = FILE_PATTERNS = *.docs \ *.hpp \ *.h RECURSIVE = YES EXCLUDE = ql_basepath//ql/config.hpp \ ql_basepath//ql/config.msvc.hpp EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = */all.hpp EXCLUDE_SYMBOLS = EXAMPLE_PATH = ql_basepath/Examples \ . EXAMPLE_PATTERNS = *.cpp EXAMPLE_RECURSIVE = YES IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO FILTER_SOURCE_PATTERNS = USE_MDFILE_AS_MAINPAGE = FORTRAN_COMMENT_AFTER = 72 #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO REFERENCES_LINK_SOURCE = NO SOURCE_TOOLTIPS = NO USE_HTAGS = NO VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = ql_basepath/Docs/quantlibheader.html HTML_FOOTER = ql_basepath/Docs/quantlibfooter.html HTML_STYLESHEET = HTML_EXTRA_STYLESHEET = ql_basepath/Docs/quantlibextra.css HTML_EXTRA_FILES = ql_basepath/Docs/images/favicon.ico HTML_COLORSTYLE = AUTO_LIGHT HTML_COLORSTYLE_HUE = 220 HTML_COLORSTYLE_SAT = 100 HTML_COLORSTYLE_GAMMA = 80 HTML_DYNAMIC_MENUS = YES HTML_DYNAMIC_SECTIONS = YES HTML_CODE_FOLDING = YES HTML_COPY_CLIPBOARD = YES HTML_PROJECT_COOKIE = HTML_INDEX_NUM_ENTRIES = 100 GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" DOCSET_FEEDURL = DOCSET_BUNDLE_ID = org.doxygen.Project DOCSET_PUBLISHER_ID = org.doxygen.Publisher DOCSET_PUBLISHER_NAME = Publisher GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = hhc.exe GENERATE_CHI = NO CHM_INDEX_ENCODING = BINARY_TOC = NO TOC_EXPAND = NO SITEMAP_URL = GENERATE_QHP = NO QCH_FILE = QHP_NAMESPACE = org.doxygen.Project QHP_VIRTUAL_FOLDER = doc QHP_CUST_FILTER_NAME = QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = QHG_LOCATION = GENERATE_ECLIPSEHELP = NO ECLIPSE_DOC_ID = org.doxygen.Project DISABLE_INDEX = NO GENERATE_TREEVIEW = NO FULL_SIDEBAR = NO ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO OBFUSCATE_EMAILS = YES HTML_FORMULA_FORMAT = png FORMULA_FONTSIZE = 12 FORMULA_MACROFILE = USE_MATHJAX = YES MATHJAX_VERSION = MathJax_2 MATHJAX_FORMAT = HTML-CSS MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ MATHJAX_EXTENSIONS = MATHJAX_CODEFILE = SEARCHENGINE = YES SERVER_BASED_SEARCH = NO EXTERNAL_SEARCH = NO SEARCHENGINE_URL = SEARCHDATA_FILE = searchdata.xml EXTERNAL_SEARCH_ID = EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex LATEX_MAKEINDEX_CMD = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4 EXTRA_PACKAGES = LATEX_HEADER = LATEX_FOOTER = LATEX_EXTRA_STYLESHEET = LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO LATEX_BIB_STYLE = plain LATEX_EMOJI_DIRECTORY = #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_SUBDIR = MAN_LINKS = YES #--------------------------------------------------------------------------- # Configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_PROGRAMLISTING = NO XML_NS_MEMB_FILE_SCOPE = NO #--------------------------------------------------------------------------- # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to Sqlite3 output #--------------------------------------------------------------------------- GENERATE_SQLITE3 = NO SQLITE3_OUTPUT = sqlite3 SQLITE3_RECREATE_DB = YES #--------------------------------------------------------------------------- # Configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = __DOXYGEN__ EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration options related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES #--------------------------------------------------------------------------- # Configuration options related to diagram generator tools #--------------------------------------------------------------------------- HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES DOT_NUM_THREADS = 0 DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10" DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10" DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" DOT_FONTPATH = CLASS_GRAPH = YES COLLABORATION_GRAPH = NO GROUP_GRAPHS = NO UML_LOOK = NO UML_LIMIT_NUM_FIELDS = 10 DOT_UML_DETAILS = NO DOT_WRAP_THRESHOLD = 17 TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = NO INCLUDED_BY_GRAPH = NO CALL_GRAPH = NO CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = NO DIR_GRAPH_MAX_DEPTH = 1 DOT_IMAGE_FORMAT = png INTERACTIVE_SVG = NO DOT_PATH = DOTFILE_DIRS = DIA_PATH = DIAFILE_DIRS = PLANTUML_JAR_PATH = PLANTUML_CFG_FILE = PLANTUML_INCLUDE_PATH = DOT_GRAPH_MAX_NODES = 150 MAX_DOT_GRAPH_DEPTH = 2 DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES MSCGEN_TOOL = MSCFILE_DIRS = QuantLib-1.33/Docs/quantlibextra.css000066400000000000000000000014711455304614400174550ustar00rootroot00000000000000#projectname, #projectname a, #projectname a:visited { font-family: "Lato", sans-serif; font-weight: 700; font-style: italic; color: black; } #projectname { padding: 1em; } #projectnumber { font-family: "Lato", sans-serif; font-weight: 400; font-style: italic; font-size: 60%; margin-top: 1em; margin-bottom: 0; } body, table, div, p, dl { font: 300 16px/22px Lato,sans-serif; } p.reference, p.definition { font: 300 16px/22px Lato,sans-serif; } .title { font-family: "Lato", sans-serif; font-style: italic; } table.directory { font: 400 16px "Lato",sans-serif; } h1 { font-style: italic; } .sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active { font-family: "Lato", sans-serif; font-weight: 400; font-style: italic; } QuantLib-1.33/Docs/quantlibfooter.html000066400000000000000000000011261455304614400200010ustar00rootroot00000000000000 QuantLib-1.33/Docs/quantlibheader.html000066400000000000000000000040641455304614400177370ustar00rootroot00000000000000 $projectname: $title $title $treeview $search $mathjax $extrastylesheet
QuantLib: a free/open-source library for quantitative finance
Reference manual - version $projectnumber
$projectbrief
$searchbox
QuantLib-1.33/Examples/000077500000000000000000000000001455304614400147435ustar00rootroot00000000000000QuantLib-1.33/Examples/BasketLosses/000077500000000000000000000000001455304614400173455ustar00rootroot00000000000000QuantLib-1.33/Examples/BasketLosses/BasketLosses.cpp000066400000000000000000000265221455304614400224620ustar00rootroot00000000000000/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* Copyright (C) 2014 Jose Aparicio This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ #include #if !defined(BOOST_ALL_NO_LIB) && defined(BOOST_MSVC) # include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace QuantLib; int main(int, char* []) { try { std::cout << std::endl; Calendar calendar = TARGET(); Date todaysDate(19, March, 2014); // must be a business day todaysDate = calendar.adjust(todaysDate); Settings::instance().evaluationDate() = todaysDate; /* -------------------------------------------------------------- SET UP BASKET PORTFOLIO -------------------------------------------------------------- */ // build curves and issuers into a basket of ten names std::vector hazardRates = { 0.001, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09 }; std::vector names; for(Size i=0; i> defTS; for (Real& hazardRate : hazardRates) { defTS.emplace_back( ext::make_shared(0, TARGET(), hazardRate, Actual365Fixed())); defTS.back()->enableExtrapolation(); } std::vector issuers; for(Size i=0; i curves(1, std::make_pair(NorthAmericaCorpDefaultKey( EURCurrency(), QuantLib::SeniorSec, Period(), 1. // amount threshold ), defTS[i])); issuers.emplace_back(curves); } auto thePool = ext::make_shared(); for(Size i=0; iadd(names[i], issuers[i], NorthAmericaCorpDefaultKey( EURCurrency(), QuantLib::SeniorSec, Period(), 1.)); std::vector defaultKeys(hazardRates.size(), NorthAmericaCorpDefaultKey(EURCurrency(), SeniorSec, Period(), 1.)); auto theBskt = ext::make_shared( todaysDate, names, std::vector(hazardRates.size(), 100.), thePool, // 0.0, 0.78); 0.03, .06); /* -------------------------------------------------------------- SET UP DEFAULT LOSS MODELS -------------------------------------------------------------- */ std::vector recoveries(hazardRates.size(), 0.4); Date calcDate(TARGET().advance(Settings::instance().evaluationDate(), Period(60, Months))); Real factorValue = 0.05; std::vector> fctrsWeights(hazardRates.size(), std::vector(1, std::sqrt(factorValue))); // --- LHP model -------------------------- #ifndef QL_PATCH_SOLARIS auto lmGLHP = ext::make_shared( fctrsWeights[0][0] * fctrsWeights[0][0], recoveries); theBskt->setLossModel(lmGLHP); std::cout << "GLHP Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; // --- G Binomial model -------------------- auto ktLossLM = ext::make_shared(fctrsWeights, recoveries, LatentModelIntegrationType::GaussianQuadrature, GaussianCopulaPolicy::initTraits()); auto lmBinomial = ext::make_shared(ktLossLM); theBskt->setLossModel(lmBinomial); std::cout << "Gaussian Binomial Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; #endif // --- T Binomial model -------------------- TCopulaPolicy::initTraits initT; initT.tOrders = std::vector(2, 3); auto ktTLossLM = ext::make_shared(fctrsWeights, recoveries, //LatentModelIntegrationType::GaussianQuadrature, LatentModelIntegrationType::Trapezoid, initT); auto lmTBinomial = ext::make_shared(ktTLossLM); theBskt->setLossModel(lmTBinomial); std::cout << "T Binomial Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; // --- G Inhomogeneous model --------------- Size numSimulations = 100000; #ifndef QL_PATCH_SOLARIS auto gLM = ext::make_shared(fctrsWeights, recoveries, LatentModelIntegrationType::GaussianQuadrature, // g++ requires this when using make_shared GaussianCopulaPolicy::initTraits()); Size numBuckets = 100; auto inhomogeneousLM = ext::make_shared(gLM, numBuckets); theBskt->setLossModel(inhomogeneousLM); std::cout << "G Inhomogeneous Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; // --- G Random model --------------------- // Gaussian random joint default model: // Size numCoresUsed = 4; // Sobol, many cores auto rdlmG = ext::make_shared>>>(gLM, recoveries, numSimulations, 1.e-6, 2863311530UL); //auto rdlmG = ext::make_shared>(gLM, // recoveries, numSimulations, 1.e-6, 2863311530); theBskt->setLossModel(rdlmG); std::cout << "Random G Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; #endif // --- StudentT Random model --------------------- // Sobol, many cores auto rdlmT = ext::make_shared>>>(ktTLossLM, recoveries, numSimulations, 1.e-6, 2863311530UL); //auto rdlmT = ext::make_shared>(ktTLossLM, // recoveries, numSimulations, 1.e-6, 2863311530); theBskt->setLossModel(rdlmT); std::cout << "Random T Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; // Spot Loss latent model: #ifndef QL_PATCH_SOLARIS std::vector> fctrsWeightsRR(2 * hazardRates.size(), std::vector(1, std::sqrt(factorValue))); Real modelA = 2.2; auto sptLG = ext::make_shared( fctrsWeightsRR, recoveries, modelA, LatentModelIntegrationType::GaussianQuadrature, GaussianCopulaPolicy::initTraits()); auto sptLT = ext::make_shared(fctrsWeightsRR, recoveries, modelA, LatentModelIntegrationType::GaussianQuadrature, initT); // --- G Random Loss model --------------------- // Gaussian random joint default model: // Sobol, many cores auto rdLlmG = ext::make_shared>(sptLG, numSimulations, 1.e-6, 2863311530UL); theBskt->setLossModel(rdLlmG); std::cout << "Random Loss G Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; // --- T Random Loss model --------------------- // Gaussian random joint default model: // Sobol, many cores auto rdLlmT = ext::make_shared>(sptLT, numSimulations, 1.e-6, 2863311530UL); theBskt->setLossModel(rdLlmT); std::cout << "Random Loss T Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; // Base Correlation model set up to test coherence with base LHP model std::vector bcTenors = {{1, Years}, {5, Years}}; std::vector bcLossPercentages = {0.03, 0.12}; std::vector>> correls; // std::vector> corr1Y; // 3% corr1Y.emplace_back( ext::make_shared(fctrsWeights[0][0] * fctrsWeights[0][0])); // 12% corr1Y.emplace_back( ext::make_shared(fctrsWeights[0][0] * fctrsWeights[0][0])); correls.push_back(corr1Y); std::vector> corr2Y; // 3% corr2Y.emplace_back( ext::make_shared(fctrsWeights[0][0] * fctrsWeights[0][0])); // 12% corr2Y.emplace_back( ext::make_shared(fctrsWeights[0][0] * fctrsWeights[0][0])); correls.push_back(corr2Y); auto correlSurface = ext::make_shared>( // first one would do, all should be the same. defTS[0]->settlementDays(), defTS[0]->calendar(), Unadjusted, bcTenors, bcLossPercentages, correls, Actual365Fixed()); Handle> correlHandle(correlSurface); auto bcLMG_LHP_Bilin = ext::make_shared(correlHandle, recoveries, GaussianCopulaPolicy::initTraits()); theBskt->setLossModel(bcLMG_LHP_Bilin); std::cout << "Base Correlation GLHP Expected 10-Yr Losses: " << std::endl; std::cout << theBskt->expectedTrancheLoss(calcDate) << std::endl; #endif return 0; } catch (exception& e) { cerr << e.what() << endl; return 1; } catch (...) { cerr << "unknown error" << endl; return 1; } } QuantLib-1.33/Examples/BasketLosses/BasketLosses.vcxproj000066400000000000000000001040161455304614400233660ustar00rootroot00000000000000 Debug (static runtime) Win32 Debug (static runtime) x64 Debug Win32 Debug x64 Release (static runtime) Win32 Release (static runtime) x64 Release Win32 Release x64 BasketLosses {43A17E5B-EC94-4EB5-9D68-788BF234AE1F} Application false MultiByte Application false MultiByte Application false MultiByte Application false MultiByte Application false MultiByte Application false MultiByte Application false MultiByte Application false MultiByte <_ProjectFileVersion>11.0.1 .\bin\ .\bin\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ false false false false .\bin\ .\bin\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ false false false false .\bin\ .\bin\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true true false false .\bin\ .\bin\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true true false false BasketLosses-mt-sgd BasketLosses-x64-mt-sgd BasketLosses-mt-gd BasketLosses-x64-mt-gd BasketLosses-mt-s BasketLosses-x64-mt-s BasketLosses-mt BasketLosses-x64-mt .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb MaxSpeed AnySuitable false Speed ..\..;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) true MultiThreadedDLL true false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true Default false NDEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false MachineX86 .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb MaxSpeed AnySuitable false Speed ..\..;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) true MultiThreadedDLL true false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true Default false NDEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb MaxSpeed AnySuitable false Speed ..\..;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) true MultiThreaded true false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true Default false NDEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false MachineX86 .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb MaxSpeed AnySuitable false Speed ..\..;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) true MultiThreaded true false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true Default false NDEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb Disabled false ..\..;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true EditAndContinue Default false _DEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false MachineX86 false .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb Disabled false ..\..;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true ProgramDatabase Default false _DEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb Disabled false ..\..;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true EditAndContinue Default false _DEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false MachineX86 false .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.tlb Disabled false ..\..;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_CONSOLE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug false true true quantlib.hpp .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pch .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\ Level3 true ProgramDatabase Default false _DEBUG;%(PreprocessorDefinitions) 0x0409 $(OutDir)$(TargetName)$(TargetExt) true ..\..\lib;%(AdditionalLibraryDirectories) true .\build\$(PlatformToolset)\$(Platform)\$(Configuration)\BasketLosses.pdb Console false {ad0a27da-91da-46a2-acbd-296c419ed3aa} false QuantLib-1.33/Examples/BasketLosses/BasketLosses.vcxproj.filters000066400000000000000000000016131455304614400250340ustar00rootroot00000000000000 {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cxx;rc;def;r;odl;idl;hpj;bat {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe Source Files QuantLib-1.33/Examples/BasketLosses/CMakeLists.txt000066400000000000000000000003451455304614400221070ustar00rootroot00000000000000add_executable(BasketLosses BasketLosses.cpp) target_link_libraries(BasketLosses ql_library ${QL_THREAD_LIBRARIES}) if (QL_INSTALL_EXAMPLES) install(TARGETS BasketLosses RUNTIME DESTINATION ${QL_INSTALL_EXAMPLESDIR}) endif() QuantLib-1.33/Examples/BermudanSwaption/000077500000000000000000000000001455304614400202255ustar00rootroot00000000000000QuantLib-1.33/Examples/BermudanSwaption/BermudanSwaption.cpp000066400000000000000000000372251455304614400242240ustar00rootroot00000000000000/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /*! Copyright (C) 2002, 2003 Sadruddin Rejeb Copyright (C) 2004 Ferdinando Ametrano Copyright (C) 2005, 2006, 2007 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ #include #if !defined(BOOST_ALL_NO_LIB) && defined(BOOST_MSVC) # include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace QuantLib; //Number of swaptions to be calibrated to... Size numRows = 5; Size numCols = 5; Integer swapLengths[] = { 1, 2, 3, 4, 5}; Volatility swaptionVols[] = { 0.1490, 0.1340, 0.1228, 0.1189, 0.1148, 0.1290, 0.1201, 0.1146, 0.1108, 0.1040, 0.1149, 0.1112, 0.1070, 0.1010, 0.0957, 0.1047, 0.1021, 0.0980, 0.0951, 0.1270, 0.1000, 0.0950, 0.0900, 0.1230, 0.1160}; void calibrateModel( const ext::shared_ptr& model, const std::vector>& swaptions) { std::vector> helpers(swaptions.begin(), swaptions.end()); LevenbergMarquardt om; model->calibrate(helpers, om, EndCriteria(400, 100, 1.0e-8, 1.0e-8, 1.0e-8)); // Output the implied Black volatilities for (Size i=0; imodelValue(); Volatility implied = swaptions[i]->impliedVolatility(npv, 1e-4, 1000, 0.05, 0.50); Volatility diff = implied - swaptionVols[k]; std::cout << i+1 << "x" << swapLengths[j] << std::setprecision(5) << std::noshowpos << ": model " << std::setw(7) << io::volatility(implied) << ", market " << std::setw(7) << io::volatility(swaptionVols[k]) << " (" << std::setw(7) << std::showpos << io::volatility(diff) << std::noshowpos << ")\n"; } } int main(int, char* []) { try { std::cout << std::endl; Date todaysDate(15, February, 2002); Calendar calendar = TARGET(); Date settlementDate(19, February, 2002); Settings::instance().evaluationDate() = todaysDate; // flat yield term structure impling 1x5 swap at 5% auto flatRate = ext::make_shared(0.04875825); Handle rhTermStructure( ext::make_shared( settlementDate, Handle(flatRate), Actual365Fixed())); // Define the ATM/OTM/ITM swaps Frequency fixedLegFrequency = Annual; BusinessDayConvention fixedLegConvention = Unadjusted; BusinessDayConvention floatingLegConvention = ModifiedFollowing; DayCounter fixedLegDayCounter = Thirty360(Thirty360::European); Frequency floatingLegFrequency = Semiannual; Swap::Type type = Swap::Payer; Rate dummyFixedRate = 0.03; auto indexSixMonths = ext::make_shared(rhTermStructure); Date startDate = calendar.advance(settlementDate,1,Years, floatingLegConvention); Date maturity = calendar.advance(startDate,5,Years, floatingLegConvention); Schedule fixedSchedule(startDate,maturity,Period(fixedLegFrequency), calendar,fixedLegConvention,fixedLegConvention, DateGeneration::Forward,false); Schedule floatSchedule(startDate,maturity,Period(floatingLegFrequency), calendar,floatingLegConvention,floatingLegConvention, DateGeneration::Forward,false); auto swap = ext::make_shared( type, 1000.0, fixedSchedule, dummyFixedRate, fixedLegDayCounter, floatSchedule, indexSixMonths, 0.0, indexSixMonths->dayCounter()); swap->setPricingEngine(ext::make_shared(rhTermStructure)); Rate fixedATMRate = swap->fairRate(); Rate fixedOTMRate = fixedATMRate * 1.2; Rate fixedITMRate = fixedATMRate * 0.8; auto atmSwap = ext::make_shared( type, 1000.0, fixedSchedule, fixedATMRate, fixedLegDayCounter, floatSchedule, indexSixMonths, 0.0, indexSixMonths->dayCounter()); auto otmSwap = ext::make_shared( type, 1000.0, fixedSchedule, fixedOTMRate, fixedLegDayCounter, floatSchedule, indexSixMonths, 0.0, indexSixMonths->dayCounter()); auto itmSwap = ext::make_shared( type, 1000.0, fixedSchedule, fixedITMRate, fixedLegDayCounter, floatSchedule, indexSixMonths, 0.0, indexSixMonths->dayCounter()); // defining the swaptions to be used in model calibration std::vector swaptionMaturities; swaptionMaturities.emplace_back(1, Years); swaptionMaturities.emplace_back(2, Years); swaptionMaturities.emplace_back(3, Years); swaptionMaturities.emplace_back(4, Years); swaptionMaturities.emplace_back(5, Years); std::vector> swaptions; // List of times that have to be included in the timegrid std::list