#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "hypotenuse.h" #include "r2p.h" MODULE = Geometry PACKAGE = Geometry PROTOTYPES: ENABLE double hypotenuse(x, y) double x double y double r2p(x, y, theta) double x double y double theta = NO_INIT CODE: RETVAL = r2p(x, y, &theta); OUTPUT: RETVAL theta void r2p_list(x, y) double x double y PREINIT: double r; double theta; PPCODE: r = r2p(x, y, &theta); EXTEND(SP, 2); PUSHs(sv_2mortal(newSVnv(r ))); PUSHs(sv_2mortal(newSVnv(theta))); void r2p_open(x, y) double x double y PREINIT: double r; double theta; PPCODE: r = sqrt(x*x + y*y); theta = atan2(y, x); EXTEND(SP, 2); PUSHs(sv_2mortal(newSVnv(r ))); PUSHs(sv_2mortal(newSVnv(theta)));