Quadriga-Lib
C++/MEX/Python Utility library for radio channel modelling and simulations
Questions
Overview

- Bug Reports and Development
- Distribution License
- Features / Functions

Bug Reports and Development

- Bug reports
  Please make a small and self-contained program which exposes the bug, and then open an issue at the Github repo. The small program should have a main() function and use only functions/classes from Quadriga-Lib, Armadillo and the standard C++ library (no other libraries). We appreciate your time to make a bug report.

- Who are the developers?
  Lead development is done by Stephan Jaeckel.

- How can I contact the developers?
  You can contact me via "info [ÄT] quadriga-lib [DÖT] org"

- Can you implement features on request?
  I am available for consulting and development work on request. Please contact me via eMail (see above) the contact form on my website or vial LinkedIn.

- How can I contribute to the development?
  Contributions are welcome, provided they are cleanly written, tested, and have accompanying documentation. Ideally, prepare a pull request on the Github repo

Distribution License

- What is the distribution license for Quadriga-Lib?
  Quadriga-Lib is licensed under the Apache License 2.0. The Apache license is a permissive license; its main conditions simply require preservation of copyright and license notices. See also a Quick Summary of the license.

- Can I use Quadriga-Lib in commercial products without releasing the source code?
  Yes. Quadriga-Lib can be used in proprietary software, without releasing the source code. However, any software that incorporates or distributes Quadriga-Lib in source or binary form must include a readable copy of the attributions in the NOTICE.txt file that comes with Quadriga-Lib. The attributions can be placed in the documentation and/or other materials provided with the software.

- How is the Apache License related to the GPL?
  The Apache license and the GPL are completely separate and distinct licenses. Unlike the GPL, the Apache license does not "infect" your source code. See also the comparison of open-source software licenses on Wikipedia.

- How is the Apache license related to the MIT and BSD licenses?
  The Apache license is a permissive license similar to the MIT and BSD licenses, but also provides a grant of patent rights from contributors to users. As such, the Apache license can be thought of as an improved version of the MIT and BSD licenses.

- Is Quadriga-Lib a product from the Apache Software Foundation ?
  No. We just use the Apache license.

Features / Functions

- Is the API stable?
  Quadriga-Lib is under active development, and the API may change in future releases. However, we try to keep the API stable and avoid breaking changes. If you use the API in your code, we recommend to use the latest release version of Quadriga-Lib to ensure compatibility. If you need to use a specific version of the API, you can use the `git checkout` command to switch to a specific commit or tag in the repository. The API documentation is generated from the source code, so it will always match the current state of the code.

- What is the minimum required C++ version?
  Quadriga-Lib requires C++17. The code is tested with GCC 11 and later, and with MSVC 14. You may need to enable C++17 support explicitly (e.g., by using the `-std=c++17` flag).

- Is it possible to interface Quadriga-Lib with other libraries ?
  Yes, Quadriga-Lib is designed to be easily integrated with other libraries. It uses Armadillo for linear algebra operations, which is a C++ library that provides a high-level interface for matrix operations. You can use Armadillo functions in your code, and Quadriga-Lib will work seamlessly with them. Interfacing with other libraries can be done by creating matrices (or cubes) that use auxiliary memory, or by accessing elements through STL-style iterators, or by directly obtaining a pointer to matrix memory via the .memptr() function.