 	  thrust::copy(inputVec.begin(), inputVec.end(), input.begin());
 	  forward();
 
-	  Float sumValOrig = 0;
+	  float sumValOrig = 0;
 	  for (size_t i = 0; i < valSize; ++i) {
 		  sumValOrig += val_[i];
 	  }

	  UTIL_THROW_IF2(valSize != GetTotalSize(adj_.shape()),
			  	  "valSize != adjSize :" << valSize << "!=" << GetTotalSize(adj_.shape()));

	  cerr << "sizes: "
			  << Debug(input.shape())<< "=" << inputSize << " "
			  << Debug(val_.shape()) << "=" << valSize
			  << endl;

	  //cerr << "input=" << input.Debug() << endl;

	  std::vector<float> origGrad(inputSize);
	  thrust::copy(grad.begin(), grad.end(), origGrad.begin());

	  for (size_t inputInd = 0; inputInd < inputSize; ++inputInd) {
		  inputVec[inputInd] += delta;
		  thrust::copy(inputVec.begin(), inputVec.end(), input.begin());
		  //output("input", input.begin(), input.end());

		  forward();

		  for (size_t i = 0; i < valSize; ++i) {
			  newVal[inputInd] += val_[i];
		  }
		  //output("val_", val_.begin(), val_.end());

		  inputVec[inputInd] -= delta;
	  }
