QuantLib-Risks: QuantLib with XAD Automatic Differentiation in C++

GitHub Workflow Status PRs Welcome

As a demonstrator of integration of the XAD automatic differentiation tool with real-world code, the latest release of QuantLib can calculate risks with the help of XAD. The performance achieved on sample applications is many-fold superior to what has been reported previously with other tools. This demonstrates production quality use of the XAD library in a code-base of several hundred thousand lines.

This repository contains integration headers, examples, and tests required for this integration. It is not usable stand-alone.

Getting Started

For detailed build instructions with XAD and QuantLib, please refer to the XAD documentation site.

Getting Help

If you have found an issue, want to report a bug, or have a feature request, please raise a GitHub issue.

For general questions about XAD, sharing ideas, engaging with community members, etc, please use GitHub Discussions.

Contributing

Please read CONTRIBUTING for the process of contributing to this project. Please also obey our Code of Conduct in all communication.

Related Projects

  • XAD Comprehensive automatic differentiation in Python and C++
  • QuantLib-Risks: Fast risk evaluations in Python and C++

Planned Features

  • Gradually port more of the QuantLib tests and add AAD-based sensitivity calculation
  • Add more Examples

Authors

  • Various contributors from Xcelerit
  • See also the list of contributors who participated in the project.

License

Due to the nature of this repository, two different licenses have to be used for different part of the code-base. The tests and examples folders are containing code taken and modified from QuantLib where the QuantLib license applies. The ql folder contains adaptor modules for XAD, where the GNU AGPL applies. This is clearly indicated by having separate license files in each folder.