// // File: conv2AXPY.cpp // // MATLAB Coder version : 4.3 // C/C++ source code generated on : 12-Jan-2022 14:46:32 // // Include Files #include "conv2AXPY.h" #include "CGaussianFilter.h" #include "GaussianFilter_emxutil.h" // Function Definitions // // Arguments : const emxArray_real_T *a // emxArray_real_T *c // Return Type : void // void conv2AXPYSameCMP(const emxArray_real_T *a, emxArray_real_T *c) { int32_T na; int32_T jcut; int32_T ub_loop; int32_T j; int32_T imax; int32_T imin; real_T bij; int32_T jbmax; int32_T jbmin; real_T cj; int32_T jb; int32_T ib; static const real_T b[25] = { 0.014418818362460822, 0.028084023356349175, 0.0350727008055935, 0.028084023356349175, 0.014418818362460822, 0.028084023356349175, 0.054700208300935887, 0.068312293270780214, 0.054700208300935887, 0.028084023356349175, 0.0350727008055935, 0.068312293270780214, 0.085311730190125085, 0.068312293270780214, 0.0350727008055935, 0.028084023356349175, 0.054700208300935887, 0.068312293270780214, 0.054700208300935887, 0.028084023356349175, 0.014418818362460822, 0.028084023356349175, 0.0350727008055935, 0.028084023356349175, 0.014418818362460822 }; int32_T i; na = a->size[1]; if (a->size[1] == 0) { c->size[0] = 1; c->size[1] = 0; } else { jcut = a->size[1] - 2; ub_loop = c->size[0] * c->size[1]; c->size[0] = 1; c->size[1] = a->size[1]; emxEnsureCapacity_real_T(c, ub_loop); ub_loop = a->size[1] - 1; #pragma omp parallel for \ num_threads(omp_get_max_threads()) \ private(imax,imin,bij,jbmax,jbmin,cj,jb,ib,i) for (j = 0; j <= ub_loop; j++) { cj = 0.0; if (j + 1 > 2) { jbmin = 0; } else { jbmin = 2 - j; } if (j + 1 < jcut) { jbmax = 4; } else { jbmax = (na - j) + 1; } for (jb = jbmin; jb <= jbmax; jb++) { for (ib = 0; ib < 5; ib++) { bij = b[(5 * (4 - jb) - ib) + 4]; if (ib < 2) { imin = 3 - ib; imax = 1; } else { imin = 1; imax = 3 - ib; } for (i = imin; i <= imax; i++) { cj += bij * a->data[(j + jb) - 2]; } } } c->data[j] = cj; } } } // // File trailer for conv2AXPY.cpp // // [EOF] //