process = ffunction(int fn(int), "<math.h>", "-lm");compiles to
... /* link with : "-lm" */ #include "<math.h>" ... virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; for (int i = 0; (i < count); i = (i + 1)) { output0[i] = FAUSTFLOAT(int(fn(int(float(input0[i]))))); } } ...Note the explicit float to int conversions.
A foreign function can have zero or more input arguments, and it must return a single FAUSTFLOAT as output.