gaussianfft


Namegaussianfft JSON
Version 1.1.2 PyPI version JSON
download
home_page
SummaryA fast library for simulating Gaussian Random Fields, using the fast Fourier transform
upload_time2024-03-12 15:23:09
maintainer
docs_urlNone
authorNorwegian Computing Center
requires_python>=3.6
licenseBSD 2-Clause License Copyright (c) 2018, Norsk Regnesentral All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords stochastic simulation gaussian random field fft
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Gaussianfft

A fast library for simulating Gaussian Random Fields in 1-, 2-, and 3-dimensional space, using the fast Fourier transform (Intel MKL).
It can handle very large grids (The ambition is to handle grid sizes of 1000 x 1000 x 1000 and greater).

Originally developed by [Norsk Regnesentral (NR)](https://nr.no) on commission from Equinor.
Documentation from Norsk Regnesentral: [SAND_04_18.pdf](https://github.com/equinor/gaussianfft/blob/master/doc/SAND_04_18.pdf)

## Usage

```bash
pip install gaussianfft
```

```python
import gaussianfft as grf

grf.seed(100)  # For deterministic / repeatable output
variogram = grf.variogram(grf.VariogramType.GAUSSIAN, 1000)

simulation = grf.simulate(variogram, nx=100, dx=1, ny=100, dy=1)  # 2D 100 x 100 grid
```

See [examples](examples/) for examples, getting started, and other documentation.


##  Description
Contact person in Norsk Regnesentral: [Petter Abrahamsen](mailto:Petter.Abrahamsen@nr.no) (2024)
Contact person in Equinor: [Oddvar Lia](mailto:olia@equinor.com)


Check Docstring for usage but a brief summary follows:

How to use it in python scripts called up from RMS:
1. Ensure it is installed, and available[^1]
2. In python script:
   ```python
   import gaussianfft as grf
   import numpy as np
   ```
3. Set variogram:
   `variogram = grf.variogram(variogram_name, main_range, perp_range, vert_range, azimuth, dip, power)`

   `variogram_name` is one of:
   * `exponential`
   * `spherical`
   * `gaussian`
   * `general_exponential`  (this is the only one using the exponent called power in the variogram function)
   * `matern32`
   * `matern52`
   * `matern72`
   * `constant`

   The ranges are given the same name as in IPL but corresponds to x,y,z directions.

   Note that the simulation is a regular 3D grid and the coordinate system is right-handed. This means that input azimuth angle should be  `(90 - azimut_used_in_rms)` for standard RMS grids which are left-handed.
   So if you want to use this in RMS and load the result into a zone in a grid in RMS (e.g by using Roxar API) then be aware of this.

4. Simulation is done by:

   `gauss_vector = grf.simulation(variogram, nx, dx, ny, dy, nz, dz)`

   The gauss field output is a 1D numpy array and by using

   `gauss_result = np.reshape(gauss_vector, (nx, ny, nz), order='F')`   one get a 3D numpy array

5. To check how large the extension of the internal simulation grid is (to avoid edge effects in the result from the FFT algorithm)
the grid is increased before it is simulated internally in the module. You can check this extension to see the actual grid size used.
This grid size is reported by using the function:

   ```python
   [nx_extended, ny_extended, nz_extended] = grf.simulation_size(variogram, nx, dx, ny, dy, nz, dz)
   ```

    and depends very much on the relative size of the correlation lengths and the grid size (length, width, height)

6. To get the start seed that is used:
  `seed = grf.seed()`

7. To set a seed before calling any simulation:
  `grf.seed(seed_value)`

**Note**: the returned seed from `grf.seed()` is created automatically by the clock time.
If you use multiprocessing, and run several processes in parallel be sure to delay start of a new process by at least 1 second after the previous process to avoid that two different processes get the same start seed.

The return seed is the same regardless of how many times you call simulation since it is the start seed of the first call to simulation.
It must however not be called before the first call to simulation if you want the start seed to be automatically generated.
If you want to run with a predefined start seed, call `grf.seed(seed_value)` before the first call to simulation.



## Building
We use [`scikit-build-core`](https://scikit-build-core.readthedocs.io/en/latest/index.html) as the build tool, in order to use [`pyproject.toml`](https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/) to facilitate easier building while using [`cmake`](https://cmake.org) to build the C++ extension.

We use [`pybind11`](https://pybind11.readthedocs.io/en/stable/) to create a Python module from the C++ source code.
When building with `-DCMAKE_BUILD_TARGET=Debug` (the default), [Boost::filesystem](https://www.boost.org/doc/libs/1_81_0/libs/filesystem/doc/index.htm).
By default, [Boost 1.81.0](https://www.boost.org/doc/libs/1_81_0/) will be used.
This can be overwritten by setting `-DBOOST_VERSION`.
You may want to create a virtual environment before building `gaussianfft`.

```bash
python -m venv venv
source venv/bin/activate
```

For the time being, Windows is not supported due to difficulties making `gaussianfft` compile there (on a windows runner on GitHub Actions).
Contributions for making it compile reliably on Windows are welcome.

The rest of this section assumes you are working on a UNIX-like system.
It has been tested on macOS (Intel/Apple Silicon) and Linux (x86).

If you are compiling `gaussianfft` for ARM / Aarch / Apple Silicon, ARM performance library must be installed.
Please follow [ARM's Install Guide](https://learn.arm.com/install-guides/armpl/) for instructions on how to install them.
The libraries are available for download [here](https://developer.arm.com/downloads/-/arm-performance-libraries).

To build the distribution wheel(s), run
```bash
export PYTHON=<which python to use>  # Only useful when not running in a virtual environment 
make build
```
This will build the binary, and source distributions with the [`build`](https://github.com/pypa/build) package in a temporary / ephemeral directory.
There is no caching of build artifacts in this case.

If you need to build, and iterate on the extension module, you may want to execute

```bash
cmake -S . -B build
cmake --build build
```

## Contributing
Report bugs (description with reproducible steps + run environment) and feature requests are welcome.

[^1]: If using [RMS](https://www.aspentech.com/en/products/sse/aspen-rms), make sure the path where `gaussianfft` is installed is available to RMS.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "gaussianfft",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "Stochastic simulation Gaussian random field FFT",
    "author": "Norwegian Computing Center",
    "author_email": "Sindre Nistad <snis@equinor.com>",
    "download_url": "https://files.pythonhosted.org/packages/62/41/61ae9960a2868cd667dbe8dc7f47b80a7479510103879d1f1389b97a0c2c/gaussianfft-1.1.2.tar.gz",
    "platform": null,
    "description": "# Gaussianfft\n\nA fast library for simulating Gaussian Random Fields in 1-, 2-, and 3-dimensional space, using the fast Fourier transform (Intel MKL).\nIt can handle very large grids (The ambition is to handle grid sizes of 1000 x 1000 x 1000 and greater).\n\nOriginally developed by [Norsk Regnesentral (NR)](https://nr.no) on commission from Equinor.\nDocumentation from Norsk Regnesentral: [SAND_04_18.pdf](https://github.com/equinor/gaussianfft/blob/master/doc/SAND_04_18.pdf)\n\n## Usage\n\n```bash\npip install gaussianfft\n```\n\n```python\nimport gaussianfft as grf\n\ngrf.seed(100)  # For deterministic / repeatable output\nvariogram = grf.variogram(grf.VariogramType.GAUSSIAN, 1000)\n\nsimulation = grf.simulate(variogram, nx=100, dx=1, ny=100, dy=1)  # 2D 100 x 100 grid\n```\n\nSee [examples](examples/) for examples, getting started, and other documentation.\n\n\n##  Description\nContact person in Norsk Regnesentral: [Petter Abrahamsen](mailto:Petter.Abrahamsen@nr.no) (2024)\nContact person in Equinor: [Oddvar Lia](mailto:olia@equinor.com)\n\n\nCheck Docstring for usage but a brief summary follows:\n\nHow to use it in python scripts called up from RMS:\n1. Ensure it is installed, and available[^1]\n2. In python script:\n   ```python\n   import gaussianfft as grf\n   import numpy as np\n   ```\n3. Set variogram:\n   `variogram = grf.variogram(variogram_name, main_range, perp_range, vert_range, azimuth, dip, power)`\n\n   `variogram_name` is one of:\n   * `exponential`\n   * `spherical`\n   * `gaussian`\n   * `general_exponential`  (this is the only one using the exponent called power in the variogram function)\n   * `matern32`\n   * `matern52`\n   * `matern72`\n   * `constant`\n\n   The ranges are given the same name as in IPL but corresponds to x,y,z directions.\n\n   Note that the simulation is a regular 3D grid and the coordinate system is right-handed. This means that input azimuth angle should be  `(90 - azimut_used_in_rms)` for standard RMS grids which are left-handed.\n   So if you want to use this in RMS and load the result into a zone in a grid in RMS (e.g by using Roxar API) then be aware of this.\n\n4. Simulation is done by:\n\n   `gauss_vector = grf.simulation(variogram, nx, dx, ny, dy, nz, dz)`\n\n   The gauss field output is a 1D numpy array and by using\n\n   `gauss_result = np.reshape(gauss_vector, (nx, ny, nz), order='F')`   one get a 3D numpy array\n\n5. To check how large the extension of the internal simulation grid is (to avoid edge effects in the result from the FFT algorithm)\nthe grid is increased before it is simulated internally in the module. You can check this extension to see the actual grid size used.\nThis grid size is reported by using the function:\n\n   ```python\n   [nx_extended, ny_extended, nz_extended] = grf.simulation_size(variogram, nx, dx, ny, dy, nz, dz)\n   ```\n\n    and depends very much on the relative size of the correlation lengths and the grid size (length, width, height)\n\n6. To get the start seed that is used:\n  `seed = grf.seed()`\n\n7. To set a seed before calling any simulation:\n  `grf.seed(seed_value)`\n\n**Note**: the returned seed from `grf.seed()` is created automatically by the clock time.\nIf you use multiprocessing, and run several processes in parallel be sure to delay start of a new process by at least 1 second after the previous process to avoid that two different processes get the same start seed.\n\nThe return seed is the same regardless of how many times you call simulation since it is the start seed of the first call to simulation.\nIt must however not be called before the first call to simulation if you want the start seed to be automatically generated.\nIf you want to run with a predefined start seed, call `grf.seed(seed_value)` before the first call to simulation.\n\n\n\n## Building\nWe use [`scikit-build-core`](https://scikit-build-core.readthedocs.io/en/latest/index.html) as the build tool, in order to use [`pyproject.toml`](https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/) to facilitate easier building while using [`cmake`](https://cmake.org) to build the C++ extension.\n\nWe use [`pybind11`](https://pybind11.readthedocs.io/en/stable/) to create a Python module from the C++ source code.\nWhen building with `-DCMAKE_BUILD_TARGET=Debug` (the default), [Boost::filesystem](https://www.boost.org/doc/libs/1_81_0/libs/filesystem/doc/index.htm).\nBy default, [Boost 1.81.0](https://www.boost.org/doc/libs/1_81_0/) will be used.\nThis can be overwritten by setting `-DBOOST_VERSION`.\nYou may want to create a virtual environment before building `gaussianfft`.\n\n```bash\npython -m venv venv\nsource venv/bin/activate\n```\n\nFor the time being, Windows is not supported due to difficulties making `gaussianfft` compile there (on a windows runner on GitHub Actions).\nContributions for making it compile reliably on Windows are welcome.\n\nThe rest of this section assumes you are working on a UNIX-like system.\nIt has been tested on macOS (Intel/Apple Silicon) and Linux (x86).\n\nIf you are compiling `gaussianfft` for ARM / Aarch / Apple Silicon, ARM performance library must be installed.\nPlease follow [ARM's Install Guide](https://learn.arm.com/install-guides/armpl/) for instructions on how to install them.\nThe libraries are available for download [here](https://developer.arm.com/downloads/-/arm-performance-libraries).\n\nTo build the distribution wheel(s), run\n```bash\nexport PYTHON=<which python to use>  # Only useful when not running in a virtual environment \nmake build\n```\nThis will build the binary, and source distributions with the [`build`](https://github.com/pypa/build) package in a temporary / ephemeral directory.\nThere is no caching of build artifacts in this case.\n\nIf you need to build, and iterate on the extension module, you may want to execute\n\n```bash\ncmake -S . -B build\ncmake --build build\n```\n\n## Contributing\nReport bugs (description with reproducible steps + run environment) and feature requests are welcome.\n\n[^1]: If using [RMS](https://www.aspentech.com/en/products/sse/aspen-rms), make sure the path where `gaussianfft` is installed is available to RMS.\n",
    "bugtrack_url": null,
    "license": "BSD 2-Clause License  Copyright (c) 2018, Norsk Regnesentral All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "A fast library for simulating Gaussian Random Fields, using the fast Fourier transform",
    "version": "1.1.2",
    "project_urls": {
        "Homepage": "https://equinor.com",
        "Issues": "https://github.com/equinor/gaussianfft/issues",
        "Repository": "https://github.com/equinor/gaussianfft"
    },
    "split_keywords": [
        "stochastic",
        "simulation",
        "gaussian",
        "random",
        "field",
        "fft"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f471ceb86460c6d1b0b06850362f2b2e235a5b763876d64a27b39c372a68497",
                "md5": "5629d5885fe1cafe06b830521e32d217",
                "sha256": "9918c939c61499151554aeb5d9284dd60639ec7cf4885f770eae834ea05c715b"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5629d5885fe1cafe06b830521e32d217",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 15229648,
            "upload_time": "2024-03-12T15:22:15",
            "upload_time_iso_8601": "2024-03-12T15:22:15.764154Z",
            "url": "https://files.pythonhosted.org/packages/3f/47/1ceb86460c6d1b0b06850362f2b2e235a5b763876d64a27b39c372a68497/gaussianfft-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e48e1f1f4cfddb6b4430bb0d534f1a63906e97f60ae34d4a57a1584f4826383e",
                "md5": "1d286d25c6a843e81b1f2788d4d110ef",
                "sha256": "6281992955e8ecae9076df243dd3fb4d8a9b92342fdd103803c3da91276e5503"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp310-cp310-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1d286d25c6a843e81b1f2788d4d110ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 668051,
            "upload_time": "2024-03-12T15:22:18",
            "upload_time_iso_8601": "2024-03-12T15:22:18.917143Z",
            "url": "https://files.pythonhosted.org/packages/e4/8e/1f1f4cfddb6b4430bb0d534f1a63906e97f60ae34d4a57a1584f4826383e/gaussianfft-1.1.2-cp310-cp310-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1d02889600105557b661ab6d4edbd96f9924fea800ee2f1c929730ba808348ba",
                "md5": "b1823a9ae5f54d0cb942fe3c774833a7",
                "sha256": "62d415687a4cb8ff93b02a8abc5f6fda3ca683eaa5b42b7e06a22fb5731f3f9b"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b1823a9ae5f54d0cb942fe3c774833a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 12816124,
            "upload_time": "2024-03-12T15:22:20",
            "upload_time_iso_8601": "2024-03-12T15:22:20.578611Z",
            "url": "https://files.pythonhosted.org/packages/1d/02/889600105557b661ab6d4edbd96f9924fea800ee2f1c929730ba808348ba/gaussianfft-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f1b8943057d1c0e4b4028c768e896ea29054131a795c68921c8c222570c6503f",
                "md5": "202788340c08966c358923cc86d690e5",
                "sha256": "2a879e8a83ea1a00e4a8186cd682083b466bc0eae54b4419ccd4e77c26b61e5a"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp310-cp310-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "202788340c08966c358923cc86d690e5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 12750619,
            "upload_time": "2024-03-12T15:22:23",
            "upload_time_iso_8601": "2024-03-12T15:22:23.467751Z",
            "url": "https://files.pythonhosted.org/packages/f1/b8/943057d1c0e4b4028c768e896ea29054131a795c68921c8c222570c6503f/gaussianfft-1.1.2-cp310-cp310-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c54e20929d21923c2ade493a54a09f2951d8968643698557ec6bce754ece02c5",
                "md5": "982aab7ffb2b7bf9b97cac2cdc7e531a",
                "sha256": "ae5dd05d08f152f856d75a33fa088e3900e1eeedc496c8b5f97d4e2464472be7"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "982aab7ffb2b7bf9b97cac2cdc7e531a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 15231675,
            "upload_time": "2024-03-12T15:22:25",
            "upload_time_iso_8601": "2024-03-12T15:22:25.678911Z",
            "url": "https://files.pythonhosted.org/packages/c5/4e/20929d21923c2ade493a54a09f2951d8968643698557ec6bce754ece02c5/gaussianfft-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "917889f86530dac3e50372b7c2bb2b62bbb6cb89bfc59f4d319420fced760ad4",
                "md5": "afdd793daff1fa26e21de82aec769ec6",
                "sha256": "bbe50f37fd0f0271b3b83fbf68b405831083474bb051ac6e45fe8e4d693b387d"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp311-cp311-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "afdd793daff1fa26e21de82aec769ec6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 669279,
            "upload_time": "2024-03-12T15:22:28",
            "upload_time_iso_8601": "2024-03-12T15:22:28.445526Z",
            "url": "https://files.pythonhosted.org/packages/91/78/89f86530dac3e50372b7c2bb2b62bbb6cb89bfc59f4d319420fced760ad4/gaussianfft-1.1.2-cp311-cp311-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "711b8881be60d6db7ab046df738a6a9ea1a2bfa00f205e6e91c195d93e9047a8",
                "md5": "9a86a66b035313ae4cbaded0e017b80f",
                "sha256": "a59c459d0759751f5a819ad34e4f712402bfbe7814c8dba3c4d61053bdc5c403"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9a86a66b035313ae4cbaded0e017b80f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 12817426,
            "upload_time": "2024-03-12T15:22:30",
            "upload_time_iso_8601": "2024-03-12T15:22:30.418418Z",
            "url": "https://files.pythonhosted.org/packages/71/1b/8881be60d6db7ab046df738a6a9ea1a2bfa00f205e6e91c195d93e9047a8/gaussianfft-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "618d909324905e945481beaa93ca8e8402ae2b19ab042bf1b32c9108bc61f283",
                "md5": "71c045b0aba3545b82131b6545b1529d",
                "sha256": "aa872c0a51b5fdea392b1702b5e72c706e3f4f1f2cb2d31381a607ed532ea76d"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp311-cp311-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "71c045b0aba3545b82131b6545b1529d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 12752190,
            "upload_time": "2024-03-12T15:22:33",
            "upload_time_iso_8601": "2024-03-12T15:22:33.145542Z",
            "url": "https://files.pythonhosted.org/packages/61/8d/909324905e945481beaa93ca8e8402ae2b19ab042bf1b32c9108bc61f283/gaussianfft-1.1.2-cp311-cp311-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0086fc96863e87fe92636e08c1d09200c9911b418fb6d5c2fe8d4e59b04b6f86",
                "md5": "c7913d91dde924f2636d0daa8a2970b7",
                "sha256": "a5dc350d7273c35d7827dc55b30fa922cec9b69cd352fd5dfd3927cf3a3191fe"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c7913d91dde924f2636d0daa8a2970b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 15229398,
            "upload_time": "2024-03-12T15:22:35",
            "upload_time_iso_8601": "2024-03-12T15:22:35.385931Z",
            "url": "https://files.pythonhosted.org/packages/00/86/fc96863e87fe92636e08c1d09200c9911b418fb6d5c2fe8d4e59b04b6f86/gaussianfft-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ba4e911d0586d531c75dc6861ea2e1bd916f52676c56c00b0c7b78cd39c26d7",
                "md5": "1d2143a8db87358a9c7dfdca907ae0fb",
                "sha256": "8cd3189021ee6d6aaeaab868aa9e3e1ff5f503708378adbaf45cb3bb85bede5a"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp312-cp312-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1d2143a8db87358a9c7dfdca907ae0fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 668095,
            "upload_time": "2024-03-12T15:22:38",
            "upload_time_iso_8601": "2024-03-12T15:22:38.869328Z",
            "url": "https://files.pythonhosted.org/packages/0b/a4/e911d0586d531c75dc6861ea2e1bd916f52676c56c00b0c7b78cd39c26d7/gaussianfft-1.1.2-cp312-cp312-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "26e83f8ffbc47e706786f710225cd8cd34dc2d32c378ad1bc7e1d35d8033b37b",
                "md5": "10123cee0dc5c79ba98d493d4ce00f4b",
                "sha256": "0914ea4eb47b98092c4bb41d992352cf66e4803a3c36429d2e27e493d7e51a96"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "10123cee0dc5c79ba98d493d4ce00f4b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 12817171,
            "upload_time": "2024-03-12T15:22:40",
            "upload_time_iso_8601": "2024-03-12T15:22:40.320159Z",
            "url": "https://files.pythonhosted.org/packages/26/e8/3f8ffbc47e706786f710225cd8cd34dc2d32c378ad1bc7e1d35d8033b37b/gaussianfft-1.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "182b1e636581580e03f26cf9cc42c46851dddd4981654c13bed8a600c80421f6",
                "md5": "81b1d697eee670885fba800e5d22b10e",
                "sha256": "5be4c6adf818ea2a226326864edf4e9aae22c6549f94bda6b63affae95a5ac46"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp312-cp312-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "81b1d697eee670885fba800e5d22b10e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 12751907,
            "upload_time": "2024-03-12T15:22:43",
            "upload_time_iso_8601": "2024-03-12T15:22:43.209497Z",
            "url": "https://files.pythonhosted.org/packages/18/2b/1e636581580e03f26cf9cc42c46851dddd4981654c13bed8a600c80421f6/gaussianfft-1.1.2-cp312-cp312-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e50eca4b68cf97d88490f020c69e73b21a00cbdc6f1a871d69649059ca3ebdf",
                "md5": "372eaa6fa1a58fb4e87cdf1e98c7b43d",
                "sha256": "905301e13fb6f6fd85f3f6dd6324c8d547c65ad013b34a09804306239a4708c8"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp37-cp37m-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "372eaa6fa1a58fb4e87cdf1e98c7b43d",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 15227792,
            "upload_time": "2024-03-12T15:22:46",
            "upload_time_iso_8601": "2024-03-12T15:22:46.467460Z",
            "url": "https://files.pythonhosted.org/packages/2e/50/eca4b68cf97d88490f020c69e73b21a00cbdc6f1a871d69649059ca3ebdf/gaussianfft-1.1.2-cp37-cp37m-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d61a2012453c58452a37d52b15c744d6d9c38bb77a4a11b83c8151774f9d6b7b",
                "md5": "ec1e01e9ed90ab4bec686d3e871149e2",
                "sha256": "d63b20478e760b7a9cd04bf1b43486557bdaf8e86f54d76b7012fd4b8f4fde56"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ec1e01e9ed90ab4bec686d3e871149e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 12820620,
            "upload_time": "2024-03-12T15:22:48",
            "upload_time_iso_8601": "2024-03-12T15:22:48.753229Z",
            "url": "https://files.pythonhosted.org/packages/d6/1a/2012453c58452a37d52b15c744d6d9c38bb77a4a11b83c8151774f9d6b7b/gaussianfft-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "88f4671af9bf4943a172567dd4f28427cc66e3ff8dc02b2ea42cf21761ad7109",
                "md5": "6ad2ba4b7e37ec82b1af2cf69c4ae174",
                "sha256": "6f35cc8a80b0dcefa750c5c00430626007fbc65a0ad227f76ca602c592ad35da"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6ad2ba4b7e37ec82b1af2cf69c4ae174",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 12754743,
            "upload_time": "2024-03-12T15:22:51",
            "upload_time_iso_8601": "2024-03-12T15:22:51.022083Z",
            "url": "https://files.pythonhosted.org/packages/88/f4/671af9bf4943a172567dd4f28427cc66e3ff8dc02b2ea42cf21761ad7109/gaussianfft-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ce63a0ede95ff731ccf2f3772c220f8d67fe7561ab7ffb32524272516123651",
                "md5": "bea69d6fc4ae624a8ea06ae997328fb7",
                "sha256": "f651ae846539fc2642749a670577a7a8d72dbc6464a70552299638a24b854d2f"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bea69d6fc4ae624a8ea06ae997328fb7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 15229871,
            "upload_time": "2024-03-12T15:22:53",
            "upload_time_iso_8601": "2024-03-12T15:22:53.576064Z",
            "url": "https://files.pythonhosted.org/packages/3c/e6/3a0ede95ff731ccf2f3772c220f8d67fe7561ab7ffb32524272516123651/gaussianfft-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9cb2253a92750ae66fe36d1d2f8710641e6997c00a760a928f136e0ff7fc0a72",
                "md5": "550db96421b4868b5c6e4e811a42f2d4",
                "sha256": "a94a437c71dcb3b350d5f847d9fe192da53152efb0cf77d68e47b5217097470d"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "550db96421b4868b5c6e4e811a42f2d4",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 12816057,
            "upload_time": "2024-03-12T15:22:55",
            "upload_time_iso_8601": "2024-03-12T15:22:55.894745Z",
            "url": "https://files.pythonhosted.org/packages/9c/b2/253a92750ae66fe36d1d2f8710641e6997c00a760a928f136e0ff7fc0a72/gaussianfft-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b0deb620e75a9c3ac6785ecd4759093774b5f53f50529484aa5380668684666",
                "md5": "d08242db8d5cd100cc7294d2d83d839a",
                "sha256": "99a90414ae688d8942e8939845d192b4ddbdfd4e048a7f3c9ba5324dd09b0466"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp38-cp38-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d08242db8d5cd100cc7294d2d83d839a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 12750298,
            "upload_time": "2024-03-12T15:22:58",
            "upload_time_iso_8601": "2024-03-12T15:22:58.166760Z",
            "url": "https://files.pythonhosted.org/packages/1b/0d/eb620e75a9c3ac6785ecd4759093774b5f53f50529484aa5380668684666/gaussianfft-1.1.2-cp38-cp38-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e77315004a9f2d3a208d35d8cf2c343c1cce03e2ee6f96ac7741692671bd1630",
                "md5": "c8dec92aeaf05b3ec0fc33c4884d48b2",
                "sha256": "0dd5ac6207e635f6cedde995454174cb03b4d7698f80e216d0d3886de8fedceb"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c8dec92aeaf05b3ec0fc33c4884d48b2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 15229963,
            "upload_time": "2024-03-12T15:23:01",
            "upload_time_iso_8601": "2024-03-12T15:23:01.126901Z",
            "url": "https://files.pythonhosted.org/packages/e7/73/15004a9f2d3a208d35d8cf2c343c1cce03e2ee6f96ac7741692671bd1630/gaussianfft-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "734a134a7067991090ab0769e021f64f331f01f7379a690a1b147f4b31ebc670",
                "md5": "37c4eb4850536124de3bca46b903f97d",
                "sha256": "df55c7ef160917958b68eaf61a6bdcaf35ff9a7a3079fd7f698e58e61d147591"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "37c4eb4850536124de3bca46b903f97d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 12816427,
            "upload_time": "2024-03-12T15:23:04",
            "upload_time_iso_8601": "2024-03-12T15:23:04.120894Z",
            "url": "https://files.pythonhosted.org/packages/73/4a/134a7067991090ab0769e021f64f331f01f7379a690a1b147f4b31ebc670/gaussianfft-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "722e79e13ad73af82f4a85b1e4bb39968f44b55585835c526c15330896b27bb6",
                "md5": "0f33d30898b299b456f11c8e06005e72",
                "sha256": "37a0cb202464c8c515e86ddfaf5d8d5be2ce285388ed5794d00911da8e430bdd"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2-cp39-cp39-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0f33d30898b299b456f11c8e06005e72",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 12751081,
            "upload_time": "2024-03-12T15:23:07",
            "upload_time_iso_8601": "2024-03-12T15:23:07.133133Z",
            "url": "https://files.pythonhosted.org/packages/72/2e/79e13ad73af82f4a85b1e4bb39968f44b55585835c526c15330896b27bb6/gaussianfft-1.1.2-cp39-cp39-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "624161ae9960a2868cd667dbe8dc7f47b80a7479510103879d1f1389b97a0c2c",
                "md5": "ef2bca3194e4a95dace6a130e87e4c67",
                "sha256": "2ff2a44aac79b9168c96d52985b16d54c89bf6015ef39bf511fe12f5160953ba"
            },
            "downloads": -1,
            "filename": "gaussianfft-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "ef2bca3194e4a95dace6a130e87e4c67",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 421556,
            "upload_time": "2024-03-12T15:23:09",
            "upload_time_iso_8601": "2024-03-12T15:23:09.164174Z",
            "url": "https://files.pythonhosted.org/packages/62/41/61ae9960a2868cd667dbe8dc7f47b80a7479510103879d1f1389b97a0c2c/gaussianfft-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-12 15:23:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "equinor",
    "github_project": "gaussianfft",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "gaussianfft"
}
        
Elapsed time: 0.22767s