send and receive only doubles through ffis, not floats