Metadata-Version: 2.4
Name: virtual_casing
Version: 0.3.0
Summary: Python Wrapper for Virtual Casing
Author: Dhairya Malhotra, Matt Landreman, Chris Smiet, Manas Rachh, Antoine Cerfon, Misha Padidar
Author-Email: Bharat Medasani <mbkumar@gmail.com>
Maintainer: Dhairya Malhotra, Bharat Medasani, Matt Landreman, Chris Smiet
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: C++
Classifier: Operating System :: OS Independent
Project-URL: Repository, https://github.com/hiddenSymmetries/virtual-casing
Project-URL: Issues, https://github.com/hiddenSymmetries/virtual-casing/issues
Requires-Python: >=3.10
Provides-Extra: test
Requires-Dist: pytest>=6.0; extra == "test"
Provides-Extra: dev
Requires-Dist: pybind11-stubgen<4,>=3.0; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Description-Content-Type: text/markdown

# virtual-casing

## Installation
### C++ Executable
In addition to having C++ compiler (tested with GCC-9 and newer) that supports C++17 standard and OpenMP, install FFTW and LAPACK libraries. Intel MKL provides both of them.
Also install cmake package. The CMake setup is written in a monolithic way so we have to install python dependencies also,
even though they are strictly not required. On the python side, we require python header files and Numpy. All of them can be installed by using pip.

    pip install cmake numpy
  
Create a folder called ``build`` and switch to ``build`` directory. 

    mkdir build; cd build
    
Run cmake from within the build folder.

    cmake ..
  
If the above command succeeds, we can go to the next step. Build the ``vc_testing`` executable by running

    make vc_testing
  
If the compilation is successful, you will have ``vc_testing`` in the ``build`` folder. 

Optionally, set the environment variable ``LIBXSMM_DIR`` to a build of [LIBXSMM](https://github.com/libxsmm/libxsmm)
(version 2.0 or newer) before running cmake, or before installing the Python package, to use it for small matrix
products. The Makefile uses it in the same way.


### Python package

To install the python package use pip:

    python -m pip install .

To build the wheel use:

    python -m build --wheel

which can be installed by:

    pip install dist/virtual_casing*.whl

## Testing

Run the tests using

    python -m unittest test -v