Commit Graph

108 Commits

Author SHA1 Message Date
Will Shanks f2e38947d9
Remove muparserx from cmake configuration (#2045) 2024-02-02 10:28:12 +09:00
Will Shanks 17edfa384e
Add CMake option `USE_BUNDLED_BLAS_WIN` (#1940)
This option controls whether CMake uses the bundled OpenBLAS library
when building on Windows (defaults to True). Having this option allows a
user to build qiskit-aer against a different system BLAS without needing
to specify a full path using the `AER_BLAS_LIB_PATH` option.

Co-authored-by: Jun Doi <doichan@jp.ibm.com>
2023-11-29 01:37:43 +00:00
Jun Doi e1332f862e
Implementing runtime parameter binding (#1901)
Optimizes GPU simulation for single circuit with multiple parameters by binding parameters
to each gates at runtime on a single circuit with multiple shots of simulations. 
This feature is enabled by a new option ``runtime_parameter_bind_enable=True`` (Default is ``False``).

* Implementing runtime parameter binding
* remove old files
* fix seg fault caused by global phase for parameters
* delete duplicate max_matrix_qubits
* Correct metadata for runtime param bind configs and move time_taken to metadata so that we can read time info from primitives
* performance improvement of sampling measure for runtime parameter binding
* fix error for MPI
* Improve batched sampling measure
* format
* fix OpenMP nested parallel
* reflecting review comments
* fix lint
* fix lint
2023-10-06 11:24:48 +09:00
Samuel F Antao d568c6a40d
Enable ROCm target based on existing CUDA/Thrust implementation. (#1914)
* Add Eclipse IDE project files to .gitignore.

* Change existing CUDA implementation to reflect a generic GPU.

* Add AMD GPU support through ROCm.

* Add release node.

* Update ROCm release note.

* Fix formatting.

* Fix formatting.

* Cancel .gitignore changes for Eclipse IDE.

* Fix missing definition caused by change of header include ordering.

* Define enviorment variable to allow Qiskit-Aer to be built without CUDA requirements.

* Make vector allocation aligned to 64-bytes as that is the same alignement requirement used by State data.

* Fix typos and remove changes going in separate PRs.

* Fix lint error and rename release notes file.

* Add partial release note to debug docs build.

* Fix parsing of release note.

* Add release note.

* Revert "Add release note."

This reverts commit f07234ea39.

* Update CONTRIBUTING.md

Add ROCm build instructions.

* Update add-rocm-support-db991e3c2f2ca455.yaml

---------

Co-authored-by: Jun Doi <doichan@jp.ibm.com>
2023-09-04 16:09:34 +09:00
Samuel F Antao d656553c57
Change the the existing CUDA implementation to a generic GPU implementation. (#1903)
* Add Eclipse IDE project files to .gitignore.

* Change existing CUDA implementation to reflect a generic GPU.

* Fix formatting.

* Cancel .gitignore changes for Eclipse IDE.

---------

Co-authored-by: Jun Doi <doichan@jp.ibm.com>
2023-08-24 18:45:12 +09:00
Hiroshi Horii ef90c8889e
Remove `PulseSimulator` (#1884)
Since 0.12, Qiskit-Aer notices deprecation warnings to use of PulseSimulato. Because 0.13 will be released after +3 months since 0.12 was released, Qiskit-Aer will stop supports of pulse simulation.

* first pass at removing pulse simulator
* autoformat with black
* remove ref to aer pulse in docs
* fix lint issues
* remove pulse rst
* remove pulse tests
* add release note
* remove open pulse from CMakeLists.txt
* remove pulse tests
* remove remaining pulse codes

---------

Co-authored-by: AngeloDanducci <angelo.danducci.ii@ibm.com>
2023-08-02 11:52:21 +09:00
Jun Doi 6f77a898e2
Fix missing dynamic link path for CUDA runtime and cuQuantum libraries (#1877)
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
2023-07-27 04:02:28 +00:00
Jun Doi 3024b24bcb
New GPU binaries with cuQuantum support (#1854)
* New GPU binaries with cuQuantum support

* format setup.py

* remove testpipy settings

* Update setup.py to use numpy with version lower than 1.25

* changed package names, qiskit-aer-gpu for CUDA12, and qiskit-aer-gpu-cu11 for 11

* format setup.py

* Update README.md

Co-authored-by: Matthew Treinish <mtreinish@kortar.org>

* Update releasenotes/notes/renew_gpu_binaries-2cf3eba0853b8407.yaml

Co-authored-by: Matthew Treinish <mtreinish@kortar.org>

* update release note

---------

Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
2023-07-12 00:57:17 +09:00
Hiroshi Horii 04a6cab632
Fix a bug in `aer_apply_measure` in libaer and enable libaer build in Mac (#1860)
* support all platform for libaer. fix a bug in aer_apply_measure in libaer

* build libaer only in Linux and Darwin
2023-07-06 00:59:12 +00:00
Jun Doi b3022094d5
fix cuQuantum static linking (#1812)
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
2023-05-16 04:57:26 +00:00
Jun Doi d40f735bc2
Fix library path to cuQuantum and cuTENSOR (#1801)
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
2023-05-10 13:20:56 +00:00
acastanedam 472d719f17
Fix for BLA_VENDOR when compiling from source (#1731)
This commit allows developers to build custom blas libtaries with BLA_VENDOR.
Previously, this BLA_VENDOR was always set to OpenBLAS and other blas
libraries were only set if OpenBLAS is not found. 

* fix conan version
* add reno and allow the latest 1.X of Conan
* fix_blas_vendor: set properly a specified BLAS type
* fix_blas_vendor: add release note
---------

Co-authored-by: Hiroshi Horii <horii@jp.ibm.com>
2023-02-27 11:25:02 +09:00
Jun Doi 3e34a24bf9
Implement GPU tensor network simulator by using cuTensorNet (#1637)
* Implement tensor network simulator by using cuTensorNet

Implementing general tensor network simulator for GPU accelerated by
NVIDIA's cuTensoNet APIs of cuQuantum SDK. Any quantum circuits can
be translated into tensor network and can be simulated.
This method supports both statevector and density matrix simulations,
noise simulation can be done by single shot with density matrix
if there is no save_statevector operation.
This method supports parallelization by multiple GPUs and MPI processes
by using tensor network slicing technique.

* fix aer_simulator.py
* return values in TensorNetContractorDummy
* Fix for cuQuantum 22.11.0
* remove dependencieis to shot branching
* fix test cases, remove remaining shot-branching options
* add release note, fix available_methods to handle tensor_network
* fix available_methods
* spdlog version

---------

Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
2023-01-30 11:57:34 +09:00
Jun Doi c7cb740123
Fix CMakeList.txt to support cmake 3.18 or later (#1613) 2022-10-05 10:32:21 +00:00
Hiroshi Horii 5d30c4ea13
Add libaer.so (#1582)
* initial input of aer runtime

* support methods and refactor state classes

* add AerStatevector that inherits quantum_info.states.Statevector

* fix pylint errors

* set default parallelization and expose last execution result

* test mps

* fix configure issue

* cast to correct type of configuration

* call set_max_matrix_qubits in AerState

* support AerStatevector.evolve

* resolve segfault and bugs in state_chunk

* add chunk distribution support

* support ndarray initialization for AerStatevector

* take python parts

* take a remaining python part

* add runtime library test

* add release note

* Correctly run test in CI

* add apache header to adding files

* take duplicated private

Co-authored-by: Jun Doi <doichan@jp.ibm.com>
2022-08-31 13:57:51 +00:00
Matthew Treinish 13937fdb59
Move Aer to its own package (#1526)
Namespace packages are constant source of problems for users. The python
packaging ecosystem around splitting packages across namespaces is
fragile at the best of times and can often leave a you with an
environment that isn't recoverable (especially when mixing install
methods). There is also a performance hit whenever there is a piece of
the namespace we allow external packages to extend since it requires
doing a full python path search which can be slow depending on the
backing I/O and the number of paths in sys.path for an environment. This
commit addresses the piece from the aer perspective by moving
qiskit.providers.aer to it's own package and namespace 'qiskit_aer'.

Co-authored-by: Hiroshi Horii <horii@jp.ibm.com>
2022-08-31 10:33:59 +09:00
yuri@FreeBSD 6ca7aac12b
Treat CMAKE_HOST_SYSTEM_PROCESSOR=amd64 same as AMD64 (#1576)
FreeBSD has CMAKE_HOST_SYSTEM_PROCESSOR=amd64.

Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
2022-08-16 03:31:36 +01:00
Jake Lishman cc41f2b50c
Do not build with `-ffast-math` (#1469)
This flag enables several unsafe floating-point transformations that are
not generally appropriate for a distributed mathematical library.  Most
importantly, however, `-ffast-math` on `gcc` also forcibly enables the
floating-point "flush to zero" mode for subnormal numbers when the
dynamic library is loaded, which affects not just Qiskit Aer, but every
other floating-point operation in the running process.  This is not our
decision to make for users, and it shouldn't be distributed.
2022-03-01 10:27:21 -05:00
Jun Doi db91e7dad3
Add experimental support of cuQuantum (#1400)
* Add cuStateVec support

Added support for cuQuantum, NVIDIA's APIs for quantum computing,
to accelerate statevector, density matrix and unitary simulators by using GPUs.

To include cuQuantum, custom build of Aer is necessary by setting path of
cuQuantum library to CUSTATEVEC_ROOT (Binary distribution will be after
official release of cuQuantum, which is now Beta 2 (0.1.0).

cuStateVector of cuQuantum is enabled by setting device='GPU' and 
cuStateVec_threshold options. cuStateVec is enabled when number of
qubits of input circuit is equal or greater than cuStateVec_threshold.

Since cuQuantum is beta version, there are some limitations:
- cuStateVec is not thread safe, multi-chunk parallelization (cache blocking) is done by single thread (slow)
- Multi-shots parallelization is disabled (single thread, slow)
- Multi-shots batched optimization is not support for cuStateVec

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
Co-authored-by: Hiroshi Horii <hhorii@users.noreply.github.com>
2022-03-01 10:14:47 +09:00
Matthew Treinish f778f4b53b
Add CI jobs to cross-build arm64 macOS wheels (#1362)
This PR adds CI jobs to build qiskit-aer wheels on arm64 macOS wheels. Since no CI system provides native arm64
macOS environments these CI jobs are configured to cross compile arm64 binaries from an x86_64 macOS
environment. This has the limitation of not letting us execute the binaries but we can at least test building them in
PR CI and publish the built binaries at release time. The two jobs added here do just that, the first is run as part
of the Build workflow that runs on every proposed commit to test that we can at least compile on arm64 macOS
(for supported python versions). The second job is a release publishing job that will build and publish arm64
macOS wheels to PyPI whenever there is a release.

Fixes #1286
Fixes #1397
2022-01-19 14:51:14 -05:00
Victor Villar 439c86ae22
Update openmp to 12.0.1. (#1348) 2021-11-18 14:03:55 -05:00
Drew df38186962
CMake: use native DL_LIB finding (#1250)
Uses native CMake variable, instead of custom search mechanism.
https://cmake.org/cmake/help/latest/variable/CMAKE_DL_LIBS.html
2021-05-14 07:04:57 -04:00
Victor Villar 507f68b7a6
From python to C++ structures (#1176)
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
2021-03-30 21:53:20 -04:00
Matthew Treinish 78efca21b0
Unify hamming weight and parity functions (#1178)
* Unify hamming weight and pairty functions

Modern CPUs have built-in special instructions for calculating the
hamming weight. For example, in x86_64 the POPCNT instruction (which was
included with SSE4.2 on Intel CPUs and SSE4a on AMD CPUs) or the VCNT
instruction on ARM Neon. These enable us to calculate the hamming weight
in a single instruction instead of multiple operations. In Aer there
were previously were 2 implementations of the hamming weight function,
one lived in the extended stabilizer core module the other lived in
AER::utils. The AER::utils version used an efficient algorithm for
compute the hamming weight but would not leverage special instructions.
While the extended stabilizer version used compiler builtin functions
(if available) that when compiled with the proper flags would leverage
the special instructions and fell back to a different implementation.

This commit unifies the 2 implementations so we only have a single copy
of the hamming weight function (the hamming pairty function from
the extended stabilizer is moved too, although it is only used in the
extended stabilizer). The compiler builtin function usage was copied
from the extended stabilizer version, but the fallback is the more
efficient version used from AER::utils.

This commit also adds -mpopcnt flag is added to the avx2 flag as this is
required to tell GCC that the POPCNT instruction is available. SSE4.2
(and SSE4a for AMD) is present in most modern x86_64 CPUs but not on
pre-nehalem Intel CPUs (released 2008) or pre-barcelona AMD CPUs
(released 2007). So we can assume that when we're building with AVX2 those
instructions are available (since AVX2 is much newer), but we don't want
to make a general assumption it's always present, because that would
create binaries that are incompatible for any users currently running on
older x86_64 CPUs. For other non-x86_64 CPUs we likely will need to add
additional compiler flags to enable use of the special instructions, but
that can happen in a followup as needed.

* Move intrin include outside namespace AER::Utils to make intrin symbols available in general namespace

* enable mpopcnt flag not only for avx2 files

* really enabling mpopcnt flag not only for avx2 files

* Runtime selection of hamming and popcount functions

Co-authored-by: vvilpas <vvilpas@gmail.com>
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
2021-03-30 17:20:56 -04:00
Jun Doi 7822d9118e
Parallel Qiskit Aer (GPU + MPI) by using cache blocking transpiler (#788)
Added a new transpiler to parallelize simulators with multiple chunks to distribute on multiple GPUs or multiple processes of MPI. By using this, existing simulators can be parallelized by inserting some functions without considering the parallelization itself.

Co-authored-by: vvilpas <vvilpas@gmail.com>
2021-02-04 13:24:47 +01:00
Victor Villar 72961a92bc
Compile CUDA on win (#1065)
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
2021-01-13 08:19:28 +01:00
Victor Villar b96cd88a30
Honor DISABLE_CONAN environment variable (#1080) 2021-01-12 11:08:38 -05:00
Victor Villar 47820f3679
Fix mismatch between BLAS_LIB_PATH and AER_BLAS_LIB_PATH (#1054)
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
2020-11-25 09:26:55 +01:00
Victor Villar 90248c0938
Use Terra operators instead of Qutip qobjects. (#1014)
Migrate usage from Qutip Qobjects to Terra operators. Remove qutip and associated cython dependencies as they are not needed anymore.
2020-11-18 09:00:07 +01:00
Marcus Daniels 796a12fc67
Switch to using native support for CUDA instead of FindCUDA macros. (#859)
* Switch to using native support for CUDA instead of FindCUDA macros.

* Move check for AER_THRUST_BACKEND being communicated via an environment variable to the top of the file.  That is because there is a check added in this branch to see if CUDA support should be enabled.  This check is needed to avoid probing for nvcc unless needed, because that check may fail and abort the build.

* Add x86_64 checks for issue 856, pull #864.

* Avoid compiling SIMD_SOURCE_FILE if there is not one.

* Use AMD64 as a synonym for x86_64.

* Add AMD64 as a synonym for x86_64.

* Pull fixes from vvilpas's issue-856-build-ppc

* Unconditinally use add_library even with CUDA (not cuda_add_library).

* Unconditinally use add_library, not cuda_add_library for CUDA.  Transform arguments for --compiler-options.

* pulled from revive_CUDA_windows

* no-op commit to force rebuild

* note some places to refactor

* Fix all but the last suggested changes by vvilpas

* Still need AER_COMPILER_FLAGS initialized.

* Use functions for prepending --compiler-options to pass default inherited options to NVCC.  One is for when a list is prepared, and one is for when a list is not prepared.

* Move include of nvcc_add_compiler_options to be adjacent to the FindCUDA call.

* Likewise include nvcc_add_compiler_options inside the CUDA conditional.

* Include nvcc_add_compiler_options.cmake after CMAKE environment variable assignments.

* Added file.

* space -> tab tweaks for local consistency

* fix typo in argument name

* Use an intermediate temporary variable, and an explicit set.

* Remove an indirect

* Follow change to remove an indirect from nvcc functions.

* More quoting needed for list conversion.

* More quoting needed for list conversion.

* Enable gpu wheel to check that wheel building works

* Do not include the whole FindCUDA, just the architecture selection bits.  Assume that CUDA will be found.

* force CMAKE_CUDA_COMPILER to nvcc.  Trying to figure out what is wrong with qiskit-aer-gpu builds.

* force CMAKE_CUDA_COMPILER to /usr/local/cuda/nvcc.  Trying to figure out what is wrong with qiskit-aer-gpu builds.

* remove hardcoded /usr/local/cuda/bin/nvcc in CMakeLists.txt and put a path extension in the wheels.yml workflow.

* Nope, try CUDACXX instead.

* Nope, try adding -- -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc

* Nope, try adding PATH in CIBW_ENVIRONMENT.

* do not run verify_wheels for GPU build

* return to standard file

* Fix terminate call. Enable CI test

* disable the CONAN patch to see if that is the cause of the build failure

* reapply the CONAN patch -- there is something else wrong

* add this back

* Set CUDACXX for CUDA wheel build

* Set AER_CUDA_ARCH to 5.2 to make a quick test on CI wheel build

* Fix gpu wheel build

There is a bug in the code that makes the verify_wheel.py script
run forever when we build the gpu wheel. The problem is the check
of memory available on CUDA devices when there are no CUDA devices
available, as is the case for our GPU wheel build action.

* Enable gpu wheel build temporarily to check that it works

* Revert "Enable gpu wheel build temporarily to check that it works"

This reverts commit 7a9b5f638c.

* Set cuda devices to 0 in case of error for consistency

* Recover cmake-optiona-conan release note

* Default CUDA archs to Auto again

* disable gpu build test

Co-authored-by: vvilpas <vvilpas@gmail.com>
Co-authored-by: Victor Villar <59838221+vvilpas@users.noreply.github.com>
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
2020-11-12 14:42:36 -05:00
Victor Villar 721fcb4dbd
Cmake: make conan optional (#999)
Co-authored-by: Drew Risinger <drewrisinger@users.noreply.github.com>
2020-11-04 09:51:04 -05:00
Victor Villar 066a9e3f45
Allow compilation on Win32 (#950)
Added Openbals library in 32 bits and changes made to allow compilation in Win32.
Openblas Win64 library has been modified to avoid dependencies on other dlls.
2020-09-24 21:54:27 +02:00
Victor Villar ef7fd430b2
Look for Lapack as well as Blas when OpenBlas is not found. (#939)
During the configure step, if OpenBlas was not found, we searched for any other available Blas library.
However we were not searching for Lapack library, failing then at compile time as some symbols
were not defined. Now, if OpenBlas is not found we look for Lapack as well.
2020-09-18 15:01:00 -04:00
Victor Villar 6a4c217a96
Fix build error when setting AER_THRUST_BACKEND trough an environment variable (#937) 2020-09-17 21:30:57 -04:00
Victor Villar 801e88efe9
Add hermitian eigensolver (#889)
Co-authored-by: Juan Gomez <atilag@gmail.com>
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
Co-authored-by: Eric Eastman <ereastman96@gmail.com>
2020-09-14 12:58:09 -04:00
Victor Villar c1ee3e266a
Add Windows Openblas+lapack (#875)
* Use openblas+lapack in win
* Use openblas shared lib
2020-08-12 18:53:15 +02:00
Victor Villar cf6b2f1a74
Fix/issue 856 build ppc (#864) 2020-08-07 14:56:07 +02:00
Victor Villar a56fb99584
Revert management of openblas dependency through Conan (#862)
* Revert management of openblas dependency through Conan. In win we will distribute it and in macos/linux system will be used.

* Fix compilation for win and gpu wheels action
2020-08-06 13:10:42 +02:00
Matthew Treinish 8795286250
Add job to try and build gpu package in CI (#775)
* Add job to try and build gpu package in CI

To avoid packaging issues we should automate the building the
qiskit-aer-gpu packages like what is done for the non-gpu packages. A
GPU shouldn't be required because the compilation with nvcc doesn't
actually run on a GPU. It is just a matter of figuring out how to get
nvcc installed and configured in the manylinux docker image. This commit
starts that process.

Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
2020-08-05 22:31:37 -04:00
Aniruddha Sarkar 7c2731427b
Spelling_and_grammer_mistakes (#854)
Co-authored-by: Victor Villar <59838221+vvilpas@users.noreply.github.com>
2020-08-04 15:38:22 +02:00
Juan Gomez 236674e329
Adds AVX2/FMA flags to CUDA compilation (#844) 2020-07-24 15:52:07 -04:00
Victor Villar 06c18a0419
Add BLAS_LIB_PATH as ENV var (#822)
* AER_BLAS_LIB_PATH as env var
* Update contributing guide
2020-07-22 15:19:52 +02:00
hhorii 98c6142c22
Add SIMD (AVX) extension for QubitVector (#684)
* Add avx2 support for Intel environment
* Calibrate cost estimation for fused operations
* Add runtime check for AVX presenence using CPU features
* Isolate SIMD (AVX) code so only CPUs with AVX support can hit the SIMD path
* Add QubitVectorAvx2 class using CRTP, and change QubitVector class accordingly
* Add /bigobj compiler flag

Because there's runtime detection that doesn't impact on performance, we can safely build with AVX flags and run everywhere.

Co-authored-by: Juan Gomez <atilag@gmail.com>
2020-07-17 18:49:01 +02:00
Victor Villar 77d14d5f48
Select CUDA architecture(s) through Cmake option (#783)
* Specify cuda arch through cmake option
* Add cuda_arch to contributing guide
* Default CUDA_ARCH to Auto. Document all possible options
* Allow env var to select cuda arch
2020-06-05 17:28:27 +02:00
Victor Villar 05245061b0
Add Conan package manager to the buildsystem (#648)
* Update thrust requirement treatment. 
* Added conan info to contributing guide
* Handle thrust TBB & OMP dependency
* Fixed llvm-openmp treatment for macos. Making it shared for python addon.
* Removing unneeded cmake coded regarding third party libraries.
* Removing unneeded distribution of third party libraries.
* Fixes to make travis work. Muparserx fPIC and conan installation for standalone build.
* Disable fpic for muparserx on windows
* Add catch2 to conan packages
* Remove catch2 distributed files
* Conan dep up in file to avoid requirements conflict
* Back to openmp 9.0.1
* Update requires. Remove conan from requirements
* Remove FindXXXX.cmake files not used any more
* llvm-openmp to 8.0.1 to avoid deprecation warning. Added conan.cmake instead of downloading. Removed hack to avoid deprecation warning
* No global include dir. Removed conanfile.txt
* Remove openblas dependencies in ci
* Bump shots from 2000 to 4000 for non-deterministic/random tests
2020-05-27 19:06:27 +02:00
Daniel Puzzuoli 91840b4db1
Pulse sim initial refactor (#649)
Co-authored-by: vvilpas <vvilpas@gmail.com>
Co-authored-by: Victor Villar <59838221+vvilpas@users.noreply.github.com>
2020-04-17 19:24:11 -04:00
Jun Doi 12b9a2305f
Fixing CMakeLists.txt for standalone GPU build (#647) 2020-03-04 12:25:12 +01:00
vvilpas 1288276682
Fix TBB compilation (#598)
Add FindTBB files from Ogre project to find tbb library
2020-02-12 14:14:12 -05:00
Juan Gomez b583392338
Adding Thrust library as a submodule (#576)
Thrust library usually comes along with CUDA dirvers so in the common
case scenario, where we only want GPU support, there's no need to install
it in order to build. But because we are supporting other Thrust backends
(OMP and TBB) for testing purposes we want to add Thrust headers as a
submodule. We don't want fallbacks or implicit behaviors, so the build
system will gracefully fail if a Thrust backend is specified, but no
Thrust library is found, or the backend is not supported.
2020-02-03 20:54:11 +01:00
vvilpas c1480d2566 Move Muparserx related things to Terra Add-on build 2020-02-03 12:31:29 +01:00