eclipse / xacc

XACC - eXtreme-scale Accelerator programming framework
https://xacc.readthedocs.io
BSD 3-Clause "New" or "Revised" License
165 stars 85 forks source link

XACC install failure with Qrack - error: conversion from ‘BigInteger’ to ‘bool’ is ambiguous #584

Open santhoshiyengar opened 6 months ago

santhoshiyengar commented 6 months ago

Dear Team,

While installing XACC have encountered an error with QRACK plugin as below. Qrack was installed from source and referred in the CMAKE as below:

[santhosh@cloud5 build]$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DXACC_BUILD_TESTS=TRUE -DXACC_BUILD_EXAMPLES=TRUE -DCURL_LIBRARY=/usr/lib64/libcurl.so.4.5.0 -DPython_EXECUTABLE:FILEPATH=/home/santhosh/.conda/envs/xacc/bin/python3 -DPython_EXECUTABLE=/home/santhosh/.conda/envs/xacc/bin/python3 -DPython_INCLUDE_DIR=/home/santhosh/.conda/envs/xacc/include/python3.10/ -DPython_ROOT_DIR=/home/santhosh/.conda/envs/xacc/lib/python3.10/ -DPython_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))")/libpython3.10.so -DZ3_LIBRARY=/home/santhosh/.conda/envs/xacc/lib/python3.10/site-packages/z3/lib/libz3.so -DZ3_INCLUDE_DIR=/home/santhosh/.conda/envs/xacc/lib/python3.10/site-packages/z3/include/ -DQRACK_LIBRARY=/home/santhosh/qc/qrack/_build/libqrack.a -DQRACK_LIB_PARENT_DIR=/home/santhosh/qc/qrack/ -DQRACK_LIB_PARENT_DIR=/home/santhosh/qc/qrack/_build/

[santhosh@cloud5 build]$ make -j$(nproc --all) install

/home/santhosh/xacc/quantum/plugins/qrack/accelerator/QrackVisitor.cpp: In member function ‘void xacc::quantum::QrackVisitor::finalize()’: /home/santhosh/xacc/quantum/plugins/qrack/accelerator/QrackVisitor.cpp:92:71: error: conversion from ‘BigInteger’ to ‘bool’ is ambiguous bitString.append((Qrack::pow2(i) & it->first) ? "1" : "0"); ^~~ In file included from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/common/qrack_types.hpp:62, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/common/qrack_functions.hpp:15, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/common/parallel_for.hpp:15, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/qinterface.hpp:15, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/qengine.hpp:15, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/qengine_cpu.hpp:15, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/qfactory.hpp:15, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/QrackVisitor.hpp:29, from /home/santhosh/xacc/quantum/plugins/qrack/accelerator/QrackVisitor.cpp:15: /home/santhosh/xacc/quantum/plugins/qrack/accelerator/common/big_integer.hpp:82:21: note: candidate: ‘BigInteger::operator uint64_t() const’ inline explicit operator BIG_INTEGER_WORD() const { return (uint64_t)bits[0U]; } ^~~~ /home/santhosh/xacc/quantum/plugins/qrack/accelerator/common/big_integer.hpp:82:21: note: return type ‘uint64_t’ {aka ‘long unsigned int’} of explicit conversion function cannot be converted to ‘bool’ with a qualification conversion /home/santhosh/xacc/quantum/plugins/qrack/accelerator/common/big_integer.hpp:83:21: note: candidate: ‘BigInteger::operator uint32_t() const’ inline explicit operator uint32_t() const { return (uint32_t)bits[0U]; } ^~~~ /home/santhosh/xacc/quantum/plugins/qrack/accelerator/common/big_integer.hpp:83:21: note: return type ‘uint32_t’ {aka ‘unsigned int’} of explicit conversion function cannot be converted to ‘bool’ with a qualification conversion make[2]: [quantum/plugins/qrack/CMakeFiles/xacc-qrack.dir/build.make:114: quantum/plugins/qrack/CMakeFiles/xacc-qrack.dir/accelerator/QrackVisitor.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:7455: quantum/plugins/qrack/CMakeFiles/xacc-qrack.dir/all] Error 2

Appreciate your help.