nvcc doesn't support C style naming while compiling. You need C++ sytle name mangling.
To achieve this, all external files have to be C++ files (.cpp and .h), so nvcc doesn't complain about unknown references to function calls.

Currently, compiling with the following command produces a valid executable :
nvcc -arch=sm_30 ptx_assembly_test.cu conversions.cpp -o ../bin/ptx_assembly_test -lgmp; valgrind ./../bin/ptx_assembly_test
for loop initializations are supported in c++.

use this to compile :
nvcc -arch=sm_30 ptx_assembly_test.cu conversions.cpp -o ../bin/ptx_assembly_test -lgmp;