porque obtengo error: lvalue required as left operand of assignment al reasignar un valor a una variable

Estoy sacando los valores de un vector que viene por parametro, pero necesito que si dado un condicional. Esta variable tome un nuevo valor, sin embargo he intentado con & pero no comprendo a un del todo como funciona este comando. Adjunto mi codigo :

void KalmanFilter::JcobianMatrix(const VectorXd &x_in){ //recover state parameter const float & px = x_in(0); const float & py = x_in(1); const float vx = x_in(2); const float vy = x_in(3); // check division by zero if (px==0 && py == 0){   std::cout<<"Err0r: division by zero is not permitted"<<std::endl;   std::cout<<"Adjusting to values px 0.01 and py 0.01"<<std::endl;   & px = 0.01;   & py = 0.01; } 

Al intentar compilar obtengo el siguiente error:

error: lvalue required as left operand of assignment

& px = 0.01;