#include #include #include #include "libnumarray.h" #ifdef MS_WIN32 #pragma warning(once : 4244) #endif #define logical_and(arg1, arg2) (arg1 != 0) & (arg2 != 0) #define logical_or(arg1, arg2) (arg1 != 0) | (arg2 != 0) #define logical_xor(arg1, arg2) ((arg1 != 0) ^ (arg2 != 0)) & 1 #define ufmaximum(arg1, arg2) (((temp1=arg1) > (temp2=arg2)) ? temp1 : temp2) #define ufminimum(arg1, arg2) (((temp1=arg1) < (temp2=arg2)) ? temp1 : temp2) #define distance3d(x,y,z) sqrt(x*x + y*y + z*z) #include "airy.h" static int airy_dxdddd_vxvvvv(long niter, long ninargs, long noutargs, void **buffers, long *bsizes) { long i; Float64 *tin0 = (Float64 *) buffers[0]; Float64 *tout0 = (Float64 *) buffers[1]; Float64 *tout1 = (Float64 *) buffers[2]; Float64 *tout2 = (Float64 *) buffers[3]; Float64 *tout3 = (Float64 *) buffers[4]; BEGIN_THREADS for (i=0; ir; input0.i = tin0->i; cairy_fake(input0, &result0, &result1, &result2, &result3); tout0->r = result0.r; tout0->i = result0.i; tout1->r = result1.r; tout1->i = result1.i; tout2->r = result2.r; tout2->i = result2.i; tout3->r = result3.r; tout3->i = result3.i; ++tin0; ++tout0; ++tout1; ++tout2; ++tout3; } END_THREADS return 0; } static CfuncDescriptor airy_FxFFFF_vxvvvv_descr = { "airy_FxFFFF_vxvvvv", (void *) airy_FxFFFF_vxvvvv, CFUNC_UFUNC, 0, CHECK_ALIGN, 1, 4, { sizeof(Complex32), sizeof(Complex32), sizeof(Complex32), sizeof(Complex32), sizeof(Complex32) }, { 0, 0, 0, 0, 0, 0 } }; static double vsdemo(double v, double s1, double s2, double s3, double s4) { return v + s1 + s2 + s3 + s4; } static int vsdemo_dddddxd_vvvvvxf(long niter, long ninargs, long noutargs, void **buffers, long *bsizes) { long i; Float64 *tin0 = (Float64 *) buffers[0]; Float64 *tin1 = (Float64 *) buffers[1]; Float64 *tin2 = (Float64 *) buffers[2]; Float64 *tin3 = (Float64 *) buffers[3]; Float64 *tin4 = (Float64 *) buffers[4]; Float64 *tout0 = (Float64 *) buffers[5]; BEGIN_THREADS for (i=0; i