intel-qs icon indicating copy to clipboard operation
intel-qs copied to clipboard

QubitRegister<Type>::QubitRegister(new_num_qubits, Type *state) doesnt work correctly

Open mbuchberger1967 opened this issue 4 years ago • 3 comments

Describe the bug

template <class Type>
QubitRegister<Type>::QubitRegister(std::size_t new_num_qubits, Type *state, 
                                   std::size_t tmp_spacesize_)
{
  imported_state = true;
  Initialize(new_num_qubits, tmp_spacesize_);

  this->state = state;
}

has two problems:

  1. it doesn't initialize all needed class variables, e.g. "specialized", so this flag is sometimes true, sometimes false
  2. it doesn't work if USE_MM_ALLOC is not defined -> memory crash

To Reproduce Steps to reproduce the behavior: Use the ctor and initialize the statevector with a prepared memory pointer, undef MM_USE_MALLOC

Fixes

  1. init all class variables in the declaration
  2. add code for undef USE_MM_MALLOC with a specialized AlignedAllocator to transport the memory block into state_storage

See my PR #57

mbuchberger1967 avatar Jul 25 '21 09:07 mbuchberger1967

Hi @mbuchberger1967 , thanks for pointing out this issue. I will give a look to your solution.

giangiac avatar Aug 03 '21 18:08 giangiac

Hi @giangiac we have this fix in our fork and it is working fine. you really should give it a try.... BR Markus

mbuchberger1967 avatar Oct 11 '21 21:10 mbuchberger1967

Hi @mbuchberger1967 Thanks for the reminder. I'll give a look at pull request #57

giangiac avatar Oct 13 '21 16:10 giangiac