Metadata-Version: 2.1
Name: goofit
Version: 2.2.2
Summary: GooFit fitting package
Home-page: https://goofit.github.io
Author: Henry Schreiner
Author-email: hschrein@cern.ch
License: LGPL 3.0
Description: GooFit for Python
        -----------------
        
        GooFit is a highly parallel fitting framework originally designed for High Energy Physics.
        
        Installation basics
        ===================
        
        This package can be installed with pip, but uses SciKit-Build, and is build, fully optimized, on your system. Because of this, there are a few caveats when running a pip install. Make sure you have SciKit-Build (``pip install scikit-build``) before you attempt an install. Also, if you don't have a recent version of CMake (3.8 or better recommended), also run ``pip install cmake``. When you build, you should also use pip's ``-v`` flag, so that you can see it build (and observe the
        configuration options). Otherwise, you might wait a very long time without output (especially if CUDA was found).
        
        
        Installation: pip
        =================
        
        Using pip 10+::
        
            pip install -v goofit
        
        Using pip < 10::
        
            pip install scikit-build
            pip install -v goofit
        
        
        GooFit will automatically look for CUDA, and build in GPU mode if it finds CUDA. You can pick a specific version by passing through a CMake option (see below), or by setting an environment variable, `GOOFIT_DEVICE` before building. You may want to build with OpenMP as a backend to avoid using your GPU, or you might want the CPP version if you are using Anaconda on macOS. Here are the three common backends::
        
            GOOFIT_DEVICE=CUDA pip install -v goofit
            GOOFIT_DEVICE=OMP pip install -v goofit
            GOOFIT_DEVICE=CPP pip install -v goofit
        
        If you want to send arbitrary commands to CMake through PIP, you will need to pass each option through, starting with a ``--`` option. Pip will try to reuse the built version if you do not pass options, but will rebuild if you pass options, so this works for a rebuild, unlike the lines above. This is how you would do this to set OMP as the backend:
        
            pip install -v goofit --install-option="--" --install-option="-DGOOFIT_DEVICE=OMP"
        
        
        Installation: local
        ===================
        
        If you want to add PDFs to GooFit, or use GooFit pacakges, you should be working in a local directory using git. In the following example, I'm assuming you've set up SSH keys with GitHub; you can use https instead if you prefer by changing the URL to ``https://github.com/GooFit/GooFit.git``::
        
            git clone --recursive git@github.com:GooFit/GooFit.git
            cd goofit
        
        Pipenv
        ~~~~~~
        
        You can set up a quick environment using pipenv::
        
            pipenv install --dev
        
        Then activate that environment::
        
            pipenv shell
        
        Local pip
        ~~~~~~~~~
        
        The normal install here works, though as usual you should include verbose output::
        
            pip install -v .
        
        
        You can pass through options to the build command, for example::
        
            pip install -v . --install-options="--" --install-options="-DGOOFIT_PACKAGES=OFF"
        
        
        Building a source package from git
        ==================================
        
        For developers only:
        
        To make a source package, start with a clean (such as new) git GooFit package with all submodules checked out::
        
            git clone --branch=master --recursive --depth=10 git@github.com:GooFit/GooFit.git
            cd goofit
            python setup.py sdist
            python -m twine upload dist/*
        
        To make a binary package, use instead::
        
            python setup.py bdist_wheel -- -DGOOFIT_OPTI="-march=core2"
        
        
Platform: POSIX
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: Unix
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Scientific/Engineering :: Physics
Provides: goofit
Provides-Extra: dev
