//-----------------------------------------------------------------------
void Backflow_pf_wf::getSymmetricVal(Wavefunction_data * wfdata,
		     int e, Wf_return & val){

  Array1 <doublevar> si(1, 0.0);
  Array2 <doublevar> vals(1,1,0.0);
  val.setVals(vals, si);
} 
void Backflow_pf_wf::getVal(Wavefunction_data * wfdata, int e,
                     Wf_return & val)
{

  Array1 <doublevar> si(1, 0.0);
  Array2 <doublevar> vals(1,1,0.0);

  assert(val.amp.GetDim(0) >=1);
  assert(val.amp.GetDim(1) >= 1);


  doublevar funcval=0;
  for (int pf=0;pf<npf;pf++)
    funcval += parent->pfkeeper.pfwt(pf)*pfaffVal(pf);

  if(fabs(funcval) > 0)
    vals(0,0)=log(fabs(funcval));
  else 
    vals(0,0)=-1e3;

  si(0)=sign(funcval);

  val.setVals(vals, si);
}