qsim
qsim copied to clipboard
Unable to build qsimcirq on MacOS
When running "pip install qsimcirq" on my mac I get the following two error messages:
ERROR: Command errored out with exit status 1:
command: /Users/jacobbeckey/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py'"'"'; __file__='"'"'/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-wheel-pqkk359w
cwd: /private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/
Complete output (69 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-3.7
creating build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/qsim_circuit.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/__init__.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/qsimh_simulator.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/qsim_simulator.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
running build_ext
-- The C compiler identification is AppleClang 11.0.3.11030032
-- The CXX compiler identification is AppleClang 11.0.3.11030032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /Users/jacobbeckey/anaconda3/bin/python (found version "3.7.6")
-- Found PythonLibs: /Users/jacobbeckey/anaconda3/lib/libpython3.7m.dylib
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Failed
-- Performing Test HAS_CPP11_FLAG
-- Performing Test HAS_CPP11_FLAG - Failed
CMake Error at build/temp.macosx-10.9-x86_64-3.7/_deps/pybind11-src/tools/pybind11Tools.cmake:32 (message):
Unsupported compiler -- pybind11 requires C++11 support!
Call Stack (most recent call first):
build/temp.macosx-10.9-x86_64-3.7/_deps/pybind11-src/CMakeLists.txt:33 (include)
-- Configuring incomplete, errors occurred!
See also "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/build/temp.macosx-10.9-x86_64-3.7/CMakeFiles/CMakeOutput.log".
See also "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/build/temp.macosx-10.9-x86_64-3.7/CMakeFiles/CMakeError.log".
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py", line 93, in <module>
packages=['qsimcirq'])
File "/Users/jacobbeckey/anaconda3/lib/python3.7/site-packages/setuptools/__init__.py", line 144, in setup
return distutils.core.setup(**attrs)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/jacobbeckey/anaconda3/lib/python3.7/site-packages/wheel/bdist_wheel.py", line 223, in run
self.run_command('build')
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py", line 36, in run
self.build_extension(ext)
File "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py", line 65, in build_extension
['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/subprocess.py", line 363, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/build/lib.macosx-10.9-x86_64-3.7/qsimcirq', '-DPYTHON_EXECUTABLE=/Users/jacobbeckey/anaconda3/bin/python', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
----------------------------------------
ERROR: Failed building wheel for qsimcirq
The rest of the error was:
Failed to build qsimcirq
Installing collected packages: qsimcirq
Running setup.py install for qsimcirq ... error
ERROR: Command errored out with exit status 1:
command: /Users/jacobbeckey/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py'"'"'; __file__='"'"'/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-record-ir9b1dj5/install-record.txt --single-version-externally-managed --compile --install-headers /Users/jacobbeckey/anaconda3/include/python3.7m/qsimcirq
cwd: /private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/
Complete output (71 lines):
running install
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-3.7
creating build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/qsim_circuit.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/__init__.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/qsimh_simulator.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
copying qsimcirq/qsim_simulator.py -> build/lib.macosx-10.9-x86_64-3.7/qsimcirq
running build_ext
-- The C compiler identification is AppleClang 11.0.3.11030032
-- The CXX compiler identification is AppleClang 11.0.3.11030032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /Users/jacobbeckey/anaconda3/bin/python (found version "3.7.6")
-- Found PythonLibs: /Users/jacobbeckey/anaconda3/lib/libpython3.7m.dylib
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Failed
-- Performing Test HAS_CPP11_FLAG
-- Performing Test HAS_CPP11_FLAG - Failed
CMake Error at build/temp.macosx-10.9-x86_64-3.7/_deps/pybind11-src/tools/pybind11Tools.cmake:32 (message):
Unsupported compiler -- pybind11 requires C++11 support!
Call Stack (most recent call first):
build/temp.macosx-10.9-x86_64-3.7/_deps/pybind11-src/CMakeLists.txt:33 (include)
-- Configuring incomplete, errors occurred!
See also "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/build/temp.macosx-10.9-x86_64-3.7/CMakeFiles/CMakeOutput.log".
See also "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/build/temp.macosx-10.9-x86_64-3.7/CMakeFiles/CMakeError.log".
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py", line 93, in <module>
packages=['qsimcirq'])
File "/Users/jacobbeckey/anaconda3/lib/python3.7/site-packages/setuptools/__init__.py", line 144, in setup
return distutils.core.setup(**attrs)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/jacobbeckey/anaconda3/lib/python3.7/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/command/install.py", line 545, in run
self.run_command('build')
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py", line 36, in run
self.build_extension(ext)
File "/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py", line 65, in build_extension
['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env)
File "/Users/jacobbeckey/anaconda3/lib/python3.7/subprocess.py", line 363, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/build/lib.macosx-10.9-x86_64-3.7/qsimcirq', '-DPYTHON_EXECUTABLE=/Users/jacobbeckey/anaconda3/bin/python', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
----------------------------------------
ERROR: Command errored out with exit status 1: /Users/jacobbeckey/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py'"'"'; __file__='"'"'/private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-install-ymbzxiss/qsimcirq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/cx/21nh2p2d4pd4gz06mvt1bqjr0000gn/T/pip-record-ir9b1dj5/install-record.txt --single-version-externally-managed --compile --install-headers /Users/jacobbeckey/anaconda3/include/python3.7m/qsimcirq Check the logs for full command output.
I would be grateful for any input as to how I could circumvent this issue. I am not sure how to interpret all of this error message, but the one part indicates
Unsupported compiler -- pybind11 requires C++11 support!
So, I attempted to use home brew to update my gcc but that also did not work.
Hi @JacobBeckey,
Before digging too deeply into this, I'll note that we recommend our Docker build instructions for running on MacOS. Since Docker builds run in a container, this would avoid any OS-specific issues you might be experiencing.
If Docker isn't an option:
The error messages point to an issue with CMake. Depending on how your version of CMake is configured, it may or may not use C++11 by default; based on the Performing Test HAS_CPP11_FLAG - Failed
line above, I'm guessing it's not set in your case. There are a couple of options that may resolve this:
- Update CMake (this may provide C++11 as default, but I was unable to find docs explicitly confirming it)
- Set the
CMAKE_CXX_STANDARD
flag as outlined in this StackOverflow question: How to activate C++11 in CMake. Since the CMakeLists.txt is part of the qsim repo, you'll need to clone the repo locally and pip-install from your modified version.
Thank you for your response. I uninstalled cmake and updated and that did not work. I then downloaded the repo, changed the CMakeLists.txt file to set C++11 as the default. I saved the file, restarted my terminal, changed into the directory containing qsimcirq and then ran pip install qsimcirq
and sadly got the same error as before. Any ideas?
{...} changed into the directory containing qsimcirq and then ran
pip install qsimcirq
and sadly got the same error as before. Any ideas?
Try this again but with pip install .
(The .
here tells pip to install from the current directory instead of the public release of qsimcirq.)
If that doesn't work...since you're installing qsimcirq, I assume you are also using Cirq? Depending on your use case, you may be able to get by using the built-in Cirq simulators. They're not as fast as qsim, but for up to ~12 qubits the difference in runtime is usually less than a second.
Sadly that still did not work. I appreciate your help though.
Does cirq.DensityMatrixSimulator()
work roughly the same as cirq.mixedsimulator
then? The former ran fine on my machine and the latter was the root of this whole issue (it tells me to pip install qismcirq).
Where is cirq.mixedsimulator
defined/documented? I wasn't able to find it in my local clone of Cirq. Assuming you're trying to do mixed-state simulation though, cirq.DensityMatrixSimulator()
should work; note however that it operates on density matrices and therefore has a much lower maximum-qubit count than the basic cirq.Simulator()
.
Hey, this is the mixed simulator I was attempting to use: https://pennylane-cirq.readthedocs.io/en/latest/devices/mixed_simulator.html
But, okay, I really only need to work with 8 or so qubits max for what I am attempting to accomplish.
Ah, that checks out. Yes, cirq.DensityMatrixSimulator()
will give the behavior you need and should have similar performance to cirq.mixedsimulator
; both use the density matrix representation for quantum states.
I'll keep this issue open to highlight the need for non-Docker options on MacOS.
FWIW I tried this quickly and went down the rabbithole on my mac. Not sure it will be easy but could be worthwhile. I don't have a solution yet, some partial findings:
I started with the same error as @JacobBeckey.
After adding set(CMAKE_CXX_STANDARD 11)
to CMakeLists.txt:
clang: error: unsupported option '-fopenmp'
After this I realized calling make results in the same error, and I know a bit more about make than CMake so I continued on that path.
I installed brew install llvm libomp
and then in ./Makefile
:
CXX=/usr/local/opt/llvm/bin/clang++
CXXFLAGS=-O3 -march=native -I/usr/local/opt/llvm/include -I/usr/local/opt/libomp/include -fopenmp -lomp -L/usr/local/opt/llvm/lib -L/usr/local/opt/libomp/lib
This makes make qsim work
yay!
However make pybind
was still failing:
pybind_main.cpp:353:33: warning: lambda capture 'circuit' is not used [-Wunused-lambda-capture]
auto measure = [&bitstrings, &circuit, &litudes](
~~~^~~~~~~
1 warning generated.
Undefined symbols for architecture x86_64:
"_PyBaseObject_Type", referenced from:
pybind11::detail::make_object_base_type(_typeobject*) in pybind_main-6cad78.o
"_PyBuffer_Release", referenced from:
pybind11::buffer_info::~buffer_info() in pybind_main-6cad78.o
"_PyBytes_AsString", referenced from:
pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::load(pybind11::handle, bool) in pybind_main-6cad78.o
bool pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::load_bytes<char>(std::__1::enable_if<std::is_same<char, char>::value, pybind11::handle>::type) in pybind_main-6cad78.o
"_PyBytes_AsStringAndSize", referenced from:
pybind11::str::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >() const in pybind_main-6cad78.o
"_PyBytes_Size", referenced from:
pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::load(pybind11::handle, bool) in pybind_main-6cad78.o
bool pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::load_bytes<char>(std::__1::enable_if<std::is_same<char, char>::value, pybind11::handle>::type) in pybind_main-6cad78.o
"_PyCFunction_NewEx", referenced from:
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
"_PyCFunction_Type", referenced from:
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
"_PyCapsule_GetContext", referenced from:
pybind11::capsule::capsule(void const*, void (*)(void*))::'lambda'(_object*)::__invoke(_object*) in pybind_main-6cad78.o
"_PyCapsule_GetName", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
pybind11::detail::type_caster_generic::try_load_foreign_module_local(pybind11::handle) in pybind_main-6cad78.o
pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >::get_function_record(pybind11::handle) in pybind_main-6cad78.o
"_PyCapsule_GetPointer", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
pybind11::detail::type_caster_generic::try_load_foreign_module_local(pybind11::handle) in pybind_main-6cad78.o
pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >::get_function_record(pybind11::handle) in pybind_main-6cad78.o
pybind11::capsule::capsule(void const*, void (*)(void*))::'lambda'(_object*)::__invoke(_object*) in pybind_main-6cad78.o
pybind11::detail::npy_api::lookup() in pybind_main-6cad78.o
...
"_PyCapsule_New", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
pybind11::detail::generic_type::initialize(pybind11::detail::type_record const&) in pybind_main-6cad78.o
pybind11::capsule::capsule(void const*, void (*)(void*)) in pybind_main-6cad78.o
"_PyCapsule_SetContext", referenced from:
pybind11::capsule::capsule(void const*, void (*)(void*)) in pybind_main-6cad78.o
"_PyCapsule_Type", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyComplex_FromDoubles", referenced from:
pybind11::handle pybind11::detail::list_caster<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > >, std::__1::complex<float> >::cast<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > >(std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > >&&, pybind11::return_value_policy, pybind11::handle) in pybind_main-6cad78.o
"_PyDict_Contains", referenced from:
pybind11::detail::enum_base::value(char const*, pybind11::object, char const*) in pybind_main-6cad78.o
bool pybind11::dict::contains<char const*&>(char const*&) const in pybind_main-6cad78.o
"_PyDict_Copy", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyDict_DelItemString", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyDict_GetItemString", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyDict_New", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&)(pybind11::dict const&), std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > >, pybind11::dict const&, pybind11::name, pybind11::scope, pybind11::sibling, char [24]>(std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&)(pybind11::dict const&), std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*)(pybind11::dict const&), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [24])::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::array_t<float, 16> (*&)(pybind11::dict const&), pybind11::array_t<float, 16>, pybind11::dict const&, pybind11::name, pybind11::scope, pybind11::sibling, char [57]>(pybind11::array_t<float, 16> (*&)(pybind11::dict const&), pybind11::array_t<float, 16> (*)(pybind11::dict const&), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [57])::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > (*&)(pybind11::dict const&), std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, pybind11::dict const&, pybind11::name, pybind11::scope, pybind11::sibling, char [22]>(std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > (*&)(pybind11::dict const&), std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > (*)(pybind11::dict const&), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [22])::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&)(pybind11::dict const&), std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > >, pybind11::dict const&, pybind11::name, pybind11::scope, pybind11::sibling, char [25]>(std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&)(pybind11::dict const&), std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*)(pybind11::dict const&), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [25])::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
_pybind11_get_dict in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool) in pybind_main-6cad78.o
...
"_PyDict_Next", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda2'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::export_values() in pybind_main-6cad78.o
pybind11::detail::map_caster<std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, float> > >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float>::load(pybind11::handle, bool) in pybind_main-6cad78.o
...
"_PyDict_Size", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyDict_Type", referenced from:
pybind11::dict::dict(pybind11::object&&) in pybind_main-6cad78.o
"_PyErr_Clear", referenced from:
pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<bool, void>& pybind11::detail::load_type<bool, void>(pybind11::detail::type_caster<bool, void>&, pybind11::handle const&) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*)(pybind11::dict const&), char [24]>(char const*, std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&&)(pybind11::dict const&), char const (&) [24]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<pybind11::array_t<float, 16> (*)(pybind11::dict const&), char [57]>(char const*, pybind11::array_t<float, 16> (*&&)(pybind11::dict const&), char const (&) [57]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > (*)(pybind11::dict const&), char [22]>(char const*, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > (*&&)(pybind11::dict const&), char const (&) [22]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*)(pybind11::dict const&), char [25]>(char const*, std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&&)(pybind11::dict const&), char const (&) [25]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<void (*)(qsim::Cirq::GateKind, unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, float> > > const&, qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >*), char [34]>(char const*, void (*&&)(qsim::Cirq::GateKind, unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, float> > > const&, qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >*), char const (&) [34]) in pybind_main-6cad78.o
...
"_PyErr_ExceptionMatches", referenced from:
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned long long, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyErr_Fetch", referenced from:
pybind11::error_already_set::error_already_set() in pybind_main-6cad78.o
pybind11::detail::error_string() in pybind_main-6cad78.o
pybind11::error_already_set::~error_already_set() in pybind_main-6cad78.o
"_PyErr_Format", referenced from:
_PyInit_qsim in pybind_main-6cad78.o
_pybind11_set_dict in pybind_main-6cad78.o
"_PyErr_NormalizeException", referenced from:
pybind11::detail::error_string() in pybind_main-6cad78.o
"_PyErr_Occurred", referenced from:
pybind11::detail::error_string() in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned long long, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyErr_Restore", referenced from:
pybind11::detail::translate_local_exception(std::exception_ptr) in pybind_main-6cad78.o
pybind11::detail::translate_exception(std::exception_ptr) in pybind_main-6cad78.o
pybind11::detail::error_string() in pybind_main-6cad78.o
pybind11::error_already_set::~error_already_set() in pybind_main-6cad78.o
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyErr_SetString", referenced from:
_PyInit_qsim in pybind_main-6cad78.o
pybind11::detail::translate_exception(std::exception_ptr) in pybind_main-6cad78.o
pybind11::detail::error_string() in pybind_main-6cad78.o
pybind11::cast_error::set_error() const in pybind_main-6cad78.o
_pybind11_object_init in pybind_main-6cad78.o
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
_pybind11_getbuffer in pybind_main-6cad78.o
...
"_PyErr_WarnEx", referenced from:
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
"_PyEval_AcquireThread", referenced from:
pybind11::gil_scoped_acquire::gil_scoped_acquire() in pybind_main-6cad78.o
"_PyEval_GetBuiltins", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyEval_InitThreads", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyEval_SaveThread", referenced from:
pybind11::gil_scoped_acquire::~gil_scoped_acquire() in pybind_main-6cad78.o
"_PyExc_BufferError", referenced from:
_pybind11_getbuffer in pybind_main-6cad78.o
"_PyExc_FutureWarning", referenced from:
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
"_PyExc_ImportError", referenced from:
_PyInit_qsim in pybind_main-6cad78.o
"_PyExc_IndexError", referenced from:
pybind11::detail::translate_exception(std::exception_ptr) in pybind_main-6cad78.o
"_PyExc_MemoryError", referenced from:
pybind11::detail::translate_exception(std::exception_ptr) in pybind_main-6cad78.o
"_PyExc_OverflowError", referenced from:
pybind11::detail::translate_exception(std::exception_ptr) in pybind_main-6cad78.o
"_PyExc_RuntimeError", referenced from:
pybind11::detail::translate_exception(std::exception_ptr) in pybind_main-6cad78.o
pybind11::detail::error_string() in pybind_main-6cad78.o
pybind11::cast_error::set_error() const in pybind_main-6cad78.o
pybind11::reference_cast_error::set_error() const in pybind_main-6cad78.o
"_PyExc_SystemError", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyExc_TypeError", referenced from:
_pybind11_object_init in pybind_main-6cad78.o
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
_pybind11_set_dict in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster_generic::src_and_type(void const*, std::type_info const&, std::type_info const*) in pybind_main-6cad78.o
pybind11::type_error::set_error() const in pybind_main-6cad78.o
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
...
"_PyExc_ValueError", referenced from:
pybind11::detail::translate_exception(std::exception_ptr) in pybind_main-6cad78.o
pybind11::value_error::set_error() const in pybind_main-6cad78.o
"_PyException_SetTraceback", referenced from:
pybind11::detail::error_string() in pybind_main-6cad78.o
"_PyFloat_AsDouble", referenced from:
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyFloat_Type", referenced from:
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned long long, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyFrame_GetLineNumber", referenced from:
pybind11::detail::error_string() in pybind_main-6cad78.o
"_PyGILState_Ensure", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyGILState_GetThisThreadState", referenced from:
pybind11::gil_scoped_acquire::gil_scoped_acquire() in pybind_main-6cad78.o
"_PyGILState_Release", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyImport_ImportModule", referenced from:
pybind11::detail::npy_api::lookup() in pybind_main-6cad78.o
"_PyInstanceMethod_New", referenced from:
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
"_PyInstanceMethod_Type", referenced from:
_pybind11_meta_getattro in pybind_main-6cad78.o
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >::get_function_record(pybind11::handle) in pybind_main-6cad78.o
"_PyList_Append", referenced from:
pybind11::detail::loader_life_support::add_patient(pybind11::handle) in pybind_main-6cad78.o
"_PyList_GetItem", referenced from:
pybind11::detail::accessor<pybind11::detail::accessor_policies::list_item>::get_cache() const in pybind_main-6cad78.o
"_PyList_New", referenced from:
qsimh_simulate(pybind11::dict const&) in pybind_main-6cad78.o
pybind11::handle pybind11::detail::list_caster<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > >, std::__1::complex<float> >::cast<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > >(std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > >&&, pybind11::return_value_policy, pybind11::handle) in pybind_main-6cad78.o
pybind11::handle pybind11::detail::list_caster<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, unsigned int>::cast<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > >(std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >&&, pybind11::return_value_policy, pybind11::handle) in pybind_main-6cad78.o
pybind11::detail::type_record::type_record() in pybind_main-6cad78.o
pybind11::detail::loader_life_support::add_patient(pybind11::handle) in pybind_main-6cad78.o
pybind11::handle pybind11::detail::list_caster<std::__1::vector<qsim::Gate<float, qsim::Cirq::GateKind>, std::__1::allocator<qsim::Gate<float, qsim::Cirq::GateKind> > >, qsim::Gate<float, qsim::Cirq::GateKind> >::cast<std::__1::vector<qsim::Gate<float, qsim::Cirq::GateKind>, std::__1::allocator<qsim::Gate<float, qsim::Cirq::GateKind> > > const&>(std::__1::vector<qsim::Gate<float, qsim::Cirq::GateKind>, std::__1::allocator<qsim::Gate<float, qsim::Cirq::GateKind> > > const&, pybind11::return_value_policy, pybind11::handle) in pybind_main-6cad78.o
"_PyList_Size", referenced from:
pybind11::detail::generic_type::initialize(pybind11::detail::type_record const&) in pybind_main-6cad78.o
"_PyLong_AsUnsignedLong", referenced from:
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned long long, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyLong_FromLong", referenced from:
pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda2'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::export_values() in pybind_main-6cad78.o
"_PyLong_FromSize_t", referenced from:
pybind11::handle pybind11::detail::list_caster<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, unsigned int>::cast<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > >(std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >&&, pybind11::return_value_policy, pybind11::handle) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >& pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >::def_readwrite<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >, unsigned int>(char const*, unsigned int qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >::*)::'lambda'(qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > const&), unsigned int const&, qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > const&, pybind11::is_method>(qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >&&, unsigned int (*)(), pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >& pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >::def_readwrite<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >, unsigned int>(char const*, unsigned int qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >::*)::'lambda'(qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > const&) const&...)::'lambda'(pybind11::detail::function_call&)::__invoke(pybind11::detail::function_call&) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda'(qsim::Cirq::GateKind), unsigned int, qsim::Cirq::GateKind, pybind11::name, pybind11::is_method, pybind11::sibling>(&&, pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda'(qsim::Cirq::GateKind) (*)(unsigned int...), qsim::Cirq::GateKind const&)::'lambda'(pybind11::detail::function_call&)::__invoke(pybind11::detail::function_call&) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda0'(qsim::Cirq::GateKind), unsigned int, qsim::Cirq::GateKind, pybind11::name, pybind11::is_method, pybind11::sibling>(&&, pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda0'(qsim::Cirq::GateKind) (*)(unsigned int...), qsim::Cirq::GateKind const&)::'lambda'(pybind11::detail::function_call&)::__invoke(pybind11::detail::function_call&) in pybind_main-6cad78.o
"_PyMem_Calloc", referenced from:
pybind11::detail::instance::allocate_layout() in pybind_main-6cad78.o
"_PyMem_Free", referenced from:
pybind11::detail::instance::deallocate_layout() in pybind_main-6cad78.o
"_PyMethod_Type", referenced from:
pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >::get_function_record(pybind11::handle) in pybind_main-6cad78.o
"_PyModule_AddObject", referenced from:
pybind11::module::add_object(char const*, pybind11::handle, bool) in pybind_main-6cad78.o
"_PyModule_Create2", referenced from:
pybind11::module::module(char const*, char const*) in pybind_main-6cad78.o
"_PyModule_Type", referenced from:
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
"_PyNumber_And", referenced from:
pybind11::detail::enum_base::init(bool, bool)::'lambda5'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda6'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
"_PyNumber_Check", referenced from:
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned long long, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyNumber_Float", referenced from:
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyNumber_Invert", referenced from:
pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::object)::operator()(pybind11::object) const in pybind_main-6cad78.o
"_PyNumber_Long", referenced from:
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::int_::int_(pybind11::object const&) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned long long, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyNumber_Or", referenced from:
pybind11::detail::enum_base::init(bool, bool)::'lambda7'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda8'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
"_PyNumber_Xor", referenced from:
pybind11::detail::enum_base::init(bool, bool)::'lambda9'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda10'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
"_PyObject_CallFunctionObjArgs", referenced from:
pybind11::dict::dict(pybind11::object&&) in pybind_main-6cad78.o
"_PyObject_CallObject", referenced from:
pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr> >::operator()<(pybind11::return_value_policy)1, char const* const&>(char const* const&) const in pybind_main-6cad78.o
pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr> >::operator()<(pybind11::return_value_policy)1>() const in pybind_main-6cad78.o
pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr> >::operator()<(pybind11::return_value_policy)1, pybind11::handle&, pybind11::handle&>(pybind11::handle&, pybind11::handle&) const in pybind_main-6cad78.o
pybind11::object pybind11::detail::object_api<pybind11::handle>::operator()<(pybind11::return_value_policy)1, pybind11::handle, pybind11::handle, pybind11::none, pybind11::str>(pybind11::handle&&, pybind11::handle&&, pybind11::none&&, pybind11::str&&) const in pybind_main-6cad78.o
pybind11::object pybind11::detail::object_api<pybind11::handle>::operator()<(pybind11::return_value_policy)1, pybind11::cpp_function>(pybind11::cpp_function&&) const in pybind_main-6cad78.o
pybind11::object pybind11::detail::object_api<pybind11::handle>::operator()<(pybind11::return_value_policy)1, pybind11::cpp_function, pybind11::none, pybind11::none, char const (&) [1]>(pybind11::cpp_function&&, pybind11::none&&, pybind11::none&&, char const (&) [1]) const in pybind_main-6cad78.o
pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr> >::operator()<(pybind11::return_value_policy)1, pybind11::object&, pybind11::handle const&>(pybind11::object&, pybind11::handle const&) const in pybind_main-6cad78.o
...
"_PyObject_ClearWeakRefs", referenced from:
pybind11::detail::clear_instance(_object*) in pybind_main-6cad78.o
"_PyObject_GetAttrString", referenced from:
pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr>::get_cache() const in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*)(pybind11::dict const&), char [24]>(char const*, std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&&)(pybind11::dict const&), char const (&) [24]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<pybind11::array_t<float, 16> (*)(pybind11::dict const&), char [57]>(char const*, pybind11::array_t<float, 16> (*&&)(pybind11::dict const&), char const (&) [57]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > (*)(pybind11::dict const&), char [22]>(char const*, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > (*&&)(pybind11::dict const&), char const (&) [22]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*)(pybind11::dict const&), char [25]>(char const*, std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&&)(pybind11::dict const&), char const (&) [25]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<void (*)(qsim::Cirq::GateKind, unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, float> > > const&, qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >*), char [34]>(char const*, void (*&&)(qsim::Cirq::GateKind, unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, float> > > const&, qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >*), char const (&) [34]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<void (*)(unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > const&, std::__1::vector<float, std::__1::allocator<float> > const&, qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >*), char [63]>(char const*, void (*&&)(unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > const&, std::__1::vector<float, std::__1::allocator<float> > const&, qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> >*), char const (&) [63]) in pybind_main-6cad78.o
...
"_PyObject_GetItem", referenced from:
pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item>::get_cache() const in pybind_main-6cad78.o
"_PyObject_HasAttrString", referenced from:
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
pybind11::module::add_object(char const*, pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::generic_type::initialize(pybind11::detail::type_record const&) in pybind_main-6cad78.o
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
pybind11::detail::type_caster_generic::try_load_foreign_module_local(pybind11::handle) in pybind_main-6cad78.o
"_PyObject_IsInstance", referenced from:
_pybind11_meta_setattro in pybind_main-6cad78.o
"_PyObject_Malloc", referenced from:
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
"_PyObject_Repr", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyObject_RichCompareBool", referenced from:
pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::handle)::operator()(pybind11::handle) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda2'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool)::'lambda3'(pybind11::object, pybind11::object)::operator()(pybind11::object, pybind11::object) const in pybind_main-6cad78.o
...
"_PyObject_SetAttr", referenced from:
pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >& pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >::def<void pybind11::detail::initimpl::constructor<>::execute<pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >, 0>(pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >&)::'lambda'(pybind11::detail::value_and_holder&), pybind11::detail::is_new_style_constructor>(char const*, pybind11::class_<qsim::Circuit<qsim::Gate<float, qsim::Cirq::GateKind> > >&&) in pybind_main-6cad78.o
pybind11::class_<qsim::Cirq::GateKind>& pybind11::class_<qsim::Cirq::GateKind>::def<pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda'(qsim::Cirq::GateKind)>(char const*, &&, pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda'(qsim::Cirq::GateKind) const&...) in pybind_main-6cad78.o
pybind11::class_<qsim::Cirq::GateKind>& pybind11::class_<qsim::Cirq::GateKind>::def<pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda0'(qsim::Cirq::GateKind)>(char const*, &&, pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda0'(qsim::Cirq::GateKind) const&...) in pybind_main-6cad78.o
pybind11::class_<qsim::Cirq::GateKind>& pybind11::class_<qsim::Cirq::GateKind>::def<void pybind11::detail::initimpl::factory<pybind11::enum_<qsim::Cirq::GateKind>::enum_<>(pybind11::handle const&, char const*)::'lambda'(unsigned int), pybind11::detail::void_type (*)(), qsim::Cirq::GateKind (unsigned int), pybind11::detail::void_type ()>::execute<pybind11::class_<qsim::Cirq::GateKind> >(pybind11::class_<qsim::Cirq::GateKind>&) &&::'lambda'(pybind11::detail::value_and_holder&, unsigned int), pybind11::detail::is_new_style_constructor>(char const*, pybind11::class_<qsim::Cirq::GateKind>&&) in pybind_main-6cad78.o
pybind11::detail::enum_base::value(char const*, pybind11::object, char const*) in pybind_main-6cad78.o
void pybind11::detail::accessor<pybind11::detail::accessor_policies::obj_attr>::operator=<pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item> >(pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item>&&) && in pybind_main-6cad78.o
"_PyObject_SetAttrString", referenced from:
pybind11::detail::make_static_property_type() in pybind_main-6cad78.o
pybind11::detail::make_default_metaclass() in pybind_main-6cad78.o
pybind11::detail::make_object_base_type(_typeobject*) in pybind_main-6cad78.o
void pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr>::operator=<char const (&) [16]>(char const (&) [16]) && in pybind_main-6cad78.o
pybind11::detail::generic_type::initialize(pybind11::detail::type_record const&) in pybind_main-6cad78.o
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
pybind11::detail::generic_type::def_property_static_impl(char const*, pybind11::handle, pybind11::handle, pybind11::detail::function_record*) in pybind_main-6cad78.o
...
"_PyObject_SetItem", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
void pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item>::operator=<pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item> >(pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item>&&) && in pybind_main-6cad78.o
void pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item>::operator=<std::__1::pair<pybind11::object, char const*> >(std::__1::pair<pybind11::object, char const*>&&) && in pybind_main-6cad78.o
"_PyObject_Str", referenced from:
pybind11::detail::error_string() in pybind_main-6cad78.o
pybind11::detail::type_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>& pybind11::detail::load_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(pybind11::detail::type_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>&, pybind11::handle const&) in pybind_main-6cad78.o
std::__1::enable_if<!(detail::move_never<bool>::value), bool>::type pybind11::move<bool>(pybind11::object&&) in pybind_main-6cad78.o
pybind11::detail::type_caster<bool, void>& pybind11::detail::load_type<bool, void>(pybind11::detail::type_caster<bool, void>&, pybind11::handle const&) in pybind_main-6cad78.o
std::__1::enable_if<!(detail::move_never<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::value), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::type pybind11::move<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(pybind11::object&&) in pybind_main-6cad78.o
pybind11::str::str(pybind11::object&&) in pybind_main-6cad78.o
pybind11::str::str(pybind11::object const&) in pybind_main-6cad78.o
...
"_PyProperty_Type", referenced from:
pybind11::detail::make_static_property_type() in pybind_main-6cad78.o
_pybind11_static_get in pybind_main-6cad78.o
_pybind11_static_set in pybind_main-6cad78.o
pybind11::detail::generic_type::def_property_static_impl(char const*, pybind11::handle, pybind11::handle, pybind11::detail::function_record*) in pybind_main-6cad78.o
pybind11::detail::enum_base::init(bool, bool) in pybind_main-6cad78.o
"_PySequence_Check", referenced from:
pybind11::detail::list_caster<std::__1::vector<qsim::Gate<float, qsim::Cirq::GateKind>, std::__1::allocator<qsim::Gate<float, qsim::Cirq::GateKind> > >, qsim::Gate<float, qsim::Cirq::GateKind> >::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::list_caster<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, unsigned int>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::list_caster<std::__1::vector<float, std::__1::allocator<float> >, float>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PySequence_GetItem", referenced from:
pybind11::detail::accessor<pybind11::detail::accessor_policies::sequence_item>::get_cache() const in pybind_main-6cad78.o
"_PySequence_List", referenced from:
pybind11::list::list(pybind11::object&&) in pybind_main-6cad78.o
"_PySequence_Size", referenced from:
pybind11::detail::list_caster<std::__1::vector<qsim::Gate<float, qsim::Cirq::GateKind>, std::__1::allocator<qsim::Gate<float, qsim::Cirq::GateKind> > >, qsim::Gate<float, qsim::Cirq::GateKind> >::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::list_caster<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >, unsigned int>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::list_caster<std::__1::vector<float, std::__1::allocator<float> >, float>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PySequence_Tuple", referenced from:
pybind11::tuple::tuple(pybind11::object const&) in pybind_main-6cad78.o
"_PyThreadState_Clear", referenced from:
pybind11::gil_scoped_acquire::dec_ref() in pybind_main-6cad78.o
"_PyThreadState_DeleteCurrent", referenced from:
pybind11::gil_scoped_acquire::dec_ref() in pybind_main-6cad78.o
"_PyThreadState_Get", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyThreadState_New", referenced from:
pybind11::gil_scoped_acquire::gil_scoped_acquire() in pybind_main-6cad78.o
"_PyThread_tss_alloc", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyThread_tss_create", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
"_PyThread_tss_get", referenced from:
pybind11::gil_scoped_acquire::gil_scoped_acquire() in pybind_main-6cad78.o
"_PyThread_tss_set", referenced from:
pybind11::detail::get_internals() in pybind_main-6cad78.o
pybind11::gil_scoped_acquire::gil_scoped_acquire() in pybind_main-6cad78.o
pybind11::gil_scoped_acquire::dec_ref() in pybind_main-6cad78.o
"_PyTuple_GetItem", referenced from:
pybind11::detail::accessor<pybind11::detail::accessor_policies::tuple_item>::get_cache() const in pybind_main-6cad78.o
"_PyTuple_New", referenced from:
pybind11::tuple pybind11::make_tuple<(pybind11::return_value_policy)1, char const* const&>(char const* const&) in pybind_main-6cad78.o
pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr> >::operator()<(pybind11::return_value_policy)1>() const in pybind_main-6cad78.o
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
pybind11::tuple pybind11::make_tuple<(pybind11::return_value_policy)1, pybind11::handle&, pybind11::handle&>(pybind11::handle&, pybind11::handle&) in pybind_main-6cad78.o
pybind11::tuple pybind11::make_tuple<(pybind11::return_value_policy)1, pybind11::handle, pybind11::handle, pybind11::none, pybind11::str>(pybind11::handle&&, pybind11::handle&&, pybind11::none&&, pybind11::str&&) in pybind_main-6cad78.o
pybind11::tuple pybind11::make_tuple<(pybind11::return_value_policy)1, pybind11::object&, pybind11::handle const&>(pybind11::object&, pybind11::handle const&) in pybind_main-6cad78.o
pybind11::tuple pybind11::make_tuple<(pybind11::return_value_policy)1, pybind11::object&>(pybind11::object&) in pybind_main-6cad78.o
...
"_PyTuple_SetItem", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"_PyTuple_Size", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
"_PyType_IsSubtype", referenced from:
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
bool pybind11::detail::type_caster_generic::load_impl<pybind11::detail::type_caster_generic>(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned int, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::detail::type_caster<float, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
pybind11::array::array(pybind11::dtype const&, pybind11::detail::any_container<long>, pybind11::detail::any_container<long>, void const*, pybind11::handle) in pybind_main-6cad78.o
pybind11::detail::type_caster<unsigned long long, void>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyType_Ready", referenced from:
pybind11::detail::make_static_property_type() in pybind_main-6cad78.o
pybind11::detail::make_default_metaclass() in pybind_main-6cad78.o
pybind11::detail::make_object_base_type(_typeobject*) in pybind_main-6cad78.o
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
"_PyType_Type", referenced from:
pybind11::detail::make_static_property_type() in pybind_main-6cad78.o
pybind11::detail::make_default_metaclass() in pybind_main-6cad78.o
_pybind11_meta_setattro in pybind_main-6cad78.o
_pybind11_meta_getattro in pybind_main-6cad78.o
"_PyUnicode_AsEncodedString", referenced from:
pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::load(pybind11::handle, bool) in pybind_main-6cad78.o
"_PyUnicode_AsUTF8String", referenced from:
pybind11::str::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >() const in pybind_main-6cad78.o
"_PyUnicode_DecodeUTF8", referenced from:
pybind11::detail::type_caster<char, void>::cast(char const*, pybind11::return_value_policy, pybind11::handle) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::handle), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, pybind11::handle>(pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::handle)&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > (*)(pybind11::handle))::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
"_PyUnicode_FromFormat", referenced from:
pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in pybind_main-6cad78.o
"_PyUnicode_FromString", referenced from:
(anonymous namespace)::getCircuit(pybind11::dict const&) in pybind_main-6cad78.o
(anonymous namespace)::getBitstrings(pybind11::dict const&, int) in pybind_main-6cad78.o
unsigned int (anonymous namespace)::parseOptions<unsigned int>(pybind11::dict const&, char const*) in pybind_main-6cad78.o
qsimh_simulate(pybind11::dict const&) in pybind_main-6cad78.o
pybind11::detail::get_internals() in pybind_main-6cad78.o
pybind11::detail::make_static_property_type() in pybind_main-6cad78.o
pybind11::detail::make_default_metaclass() in pybind_main-6cad78.o
...
"_PyWeakref_NewRef", referenced from:
pybind11::detail::all_type_info_get_cache(_typeobject*) in pybind_main-6cad78.o
pybind11::detail::keep_alive_impl(pybind11::handle, pybind11::handle) in pybind_main-6cad78.o
"_Py_GetVersion", referenced from:
_PyInit_qsim in pybind_main-6cad78.o
"__PyObject_GetDictPtr", referenced from:
pybind11::detail::clear_instance(_object*) in pybind_main-6cad78.o
_pybind11_traverse in pybind_main-6cad78.o
_pybind11_clear in pybind_main-6cad78.o
_pybind11_get_dict in pybind_main-6cad78.o
_pybind11_set_dict in pybind_main-6cad78.o
"__PyThreadState_UncheckedGet", referenced from:
pybind11::gil_scoped_acquire::gil_scoped_acquire() in pybind_main-6cad78.o
pybind11::gil_scoped_acquire::dec_ref() in pybind_main-6cad78.o
"__PyType_Lookup", referenced from:
_pybind11_meta_setattro in pybind_main-6cad78.o
_pybind11_meta_getattro in pybind_main-6cad78.o
"__Py_Dealloc", referenced from:
(anonymous namespace)::getCircuit(pybind11::dict const&) in pybind_main-6cad78.o
(anonymous namespace)::getBitstrings(pybind11::dict const&, int) in pybind_main-6cad78.o
unsigned int (anonymous namespace)::parseOptions<unsigned int>(pybind11::dict const&, char const*) in pybind_main-6cad78.o
qsim_simulate_fullstate(pybind11::dict const&) in pybind_main-6cad78.o
qsimh_simulate(pybind11::dict const&) in pybind_main-6cad78.o
_PyInit_qsim in pybind_main-6cad78.o
pybind11::detail::get_internals() in pybind_main-6cad78.o
...
"__Py_FalseStruct", referenced from:
pybind11::detail::type_caster<bool, void>& pybind11::detail::load_type<bool, void>(pybind11::detail::type_caster<bool, void>&, pybind11::handle const&) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda2'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda2'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda3'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda3'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda4'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda4'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
...
"__Py_NoneStruct", referenced from:
pybind11::detail::type_caster<char, void>::cast(char const*, pybind11::return_value_policy, pybind11::handle) in pybind_main-6cad78.o
pybind11::detail::type_caster<bool, void>& pybind11::detail::load_type<bool, void>(pybind11::detail::type_caster<bool, void>&, pybind11::handle const&) in pybind_main-6cad78.o
pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, char const*, std::type_info const* const*, unsigned long) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::all_type_info_get_cache(_typeobject*)::'lambda'(pybind11::handle), void, pybind11::handle>(pybind11::detail::all_type_info_get_cache(_typeobject*)::'lambda'(pybind11::handle)&&, void (*)(pybind11::handle))::'lambda'(pybind11::detail::function_call&)::__invoke(pybind11::detail::function_call&) in pybind_main-6cad78.o
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*)(pybind11::dict const&), char [24]>(char const*, std::__1::vector<std::__1::complex<float>, std::__1::allocator<std::__1::complex<float> > > (*&&)(pybind11::dict const&), char const (&) [24]) in pybind_main-6cad78.o
pybind11::module& pybind11::module::def<pybind11::array_t<float, 16> (*)(pybind11::dict const&), char [57]>(char const*, pybind11::array_t<float, 16> (*&&)(pybind11::dict const&), char const (&) [57]) in pybind_main-6cad78.o
...
"__Py_NotImplementedStruct", referenced from:
pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in pybind_main-6cad78.o
"__Py_TrueStruct", referenced from:
pybind11::detail::type_caster<bool, void>& pybind11::detail::load_type<bool, void>(pybind11::detail::type_caster<bool, void>&, pybind11::handle const&) in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda0'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda1'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda2'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda2'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda3'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda3'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
void pybind11::cpp_function::initialize<pybind11::detail::enum_base::init(bool, bool)::'lambda4'(pybind11::object, pybind11::object), bool, pybind11::object, pybind11::object, pybind11::is_method>(pybind11::detail::enum_base::init(bool, bool)::'lambda4'(pybind11::object, pybind11::object)&&, bool (*)(pybind11::object, pybind11::object), pybind11::is_method const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) const in pybind_main-6cad78.o
...
ld: symbol(s) not found for architecture x86_64
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [pybind] Error 1
make: *** [pybind] Error 2
After some digging it turns out -undefined dynamic_lookup
helps in pybind_interface/Makefile
:
# The flags for the compilation of the Pybind11 interface
PYBINDFLAGS = -Wall -shared -std=c++17 -undefined dynamic_lookup -fPIC `python3 -m pybind11 --includes`
So now make
works!
But I have no clue how to make that work with CMake just yet :)
I've simplified @balopat 's instructions to avoid modifying Makefiles :)
- add
set(CMAKE_CXX_STANDARD 11)
to CMakeLists.txt (we should do this in master) -
brew install llvm libomp
-
CC=/usr/local/opt/llvm/bin/clang CXX=/usr/local/opt/llvm/bin/clang++ LDFLAGS=-L/usr/local/opt/libomp/lib python setup.py develop
Note, the three environment variables being set; You can put this in your .bashrc
if you want to live on the edge and then it's just python setup.py develop
(or install
as the case may be).
Note for those who may try to follow along: if you try to build once and then monkey with the environment variables, any changes likely won't get picked up and it will continue to fail in the same way. CMake caches everything in the build/
directory. While testing, I found it helpful to blow away this directory every time I tried something new.
We'd have to be very careful packaging this as a wheel, though, as it links to our homebrew libomp
$ otool -L qsim.cpython-37m-darwin.so
qsim.cpython-37m-darwin.so:
/usr/local/opt/libomp/lib/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
Super cool! Thanks for adding to the solutions! I confirm that this compiles.
The above recommendations (both modifying the Makefile as well as CMakeLists.txt) have failed in my case (Apple M1 Max)
I'm getting errors of the following sort:
/opt/homebrew/Cellar/llvm/15.0.5/lib/clang/15.0.5/include/smmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
@VolodyaCO Please see this comment - in short, the M1 architecture does not support the vector instructions qsim uses for fast simulation. Some alternatives are suggested in the linked comment.
Thank you for linking the comment!
https://github.com/quantumlib/qsim/pull/643 and https://github.com/quantumlib/qsim/pull/644 were just merged which enables Apple Silicon compatibility :tada:
v0.19.0 was also just released.