123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //
- // 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]
- //
|