@@ -54,55 +54,21 @@ Data_<Sp>* Data_<Sp>::Div(BaseGDL* r) { TRACE_ROUTINE(__FUNCTION__,__FILE__,__LI
5454}
5555
5656template <> // Float
57- Data_<SpDFloat>* Data_<SpDFloat>::Div(BaseGDL* r) {
58- TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
59- Data_* right = static_cast <Data_*> (r);
60- ULong nEl = N_Elements ();
61- assert (nEl);
62- SizeT i = 0 ;
63- GDLStartRegisteringFPExceptions ();
64- if (nEl == 1 ) {
65- (*this )[0 ] /= (*right)[0 ];
66- GDLStopRegisteringFPExceptions ();
67- return this ;
68- }
69- if ((GDL_NTHREADS = parallelize (nEl)) == 1 ) {
70- for (OMPInt ix = i; ix < nEl; ++ix) (*this )[ix] /= (*right)[ix];
71- } else {
72- TRACEOMP (__FILE__, __LINE__)
73- #pragma omp parallel for num_threads(GDL_NTHREADS)
74- for (OMPInt ix = i; ix < nEl; ++ix) (*this )[ix] /= (*right)[ix];
75- }
76-
77- GDLStopRegisteringFPExceptions ();
78-
79- return this ;
57+ Data_<SpDFloat>* Data_<SpDFloat>::Div(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
58+ #include " snippets/basic_op_Div.incpp"
8059}
8160
8261template <> // Double
83- Data_<SpDDouble>* Data_<SpDDouble>::Div(BaseGDL* r) {
84- TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
85- Data_* right = static_cast <Data_*> (r);
86- ULong nEl = N_Elements ();
87- assert (nEl);
88- SizeT i = 0 ;
89- GDLStartRegisteringFPExceptions ();
90- if (nEl == 1 ) {
91- (*this )[0 ] /= (*right)[0 ];
92- GDLStopRegisteringFPExceptions ();
93- return this ;
94- }
95- if ((GDL_NTHREADS = parallelize (nEl)) == 1 ) {
96- for (OMPInt ix = i; ix < nEl; ++ix) (*this )[ix] /= (*right)[ix];
97- } else {
98- TRACEOMP (__FILE__, __LINE__)
99- #pragma omp parallel for num_threads(GDL_NTHREADS)
100- for (OMPInt ix = i; ix < nEl; ++ix) (*this )[ix] /= (*right)[ix];
101- }
102-
103- GDLStopRegisteringFPExceptions ();
104-
105- return this ;
62+ Data_<SpDDouble>* Data_<SpDDouble>::Div(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
63+ #include " snippets/basic_op_Div.incpp"
64+ }
65+ template <> // Double
66+ Data_<SpDComplex>* Data_<SpDComplex>::Div(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
67+ #include " snippets/basic_op_Div.incpp"
68+ }
69+ template <> // Double
70+ Data_<SpDComplexDbl>* Data_<SpDComplexDbl>::Div(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
71+ #include " snippets/basic_op_Div.incpp"
10672}
10773
10874
@@ -141,55 +107,21 @@ Data_<Sp>* Data_<Sp>::DivInv(BaseGDL* r) { TRACE_ROUTINE(__FUNCTION__,__FILE__,_
141107}
142108
143109template <>
144- Data_<SpDFloat>* Data_<SpDFloat>::DivInv(BaseGDL* r) {
145- TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
146- Data_* right = static_cast <Data_*> (r);
147- ULong nEl = N_Elements ();
148- assert (nEl);
149-
150- GDLStartRegisteringFPExceptions ();
151- if (nEl == 1 ) {
152- (*this )[0 ] = (*right)[0 ] / (*this )[0 ];
153- GDLStopRegisteringFPExceptions ();
154- return this ;
155- }
156- if ((GDL_NTHREADS = parallelize (nEl)) == 1 ) {
157- for (OMPInt ix = 0 ; ix < nEl; ++ix) (*this )[ix] = (*right)[ix] / (*this )[ix];
158- } else {
159- TRACEOMP (__FILE__, __LINE__)
160- #pragma omp parallel for num_threads(GDL_NTHREADS)
161- for (OMPInt ix = 0 ; ix < nEl; ++ix) (*this )[ix] = (*right)[ix] / (*this )[ix];
162- }
163-
164- GDLStopRegisteringFPExceptions ();
165-
166- return this ;
110+ Data_<SpDFloat>* Data_<SpDFloat>::DivInv(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
111+ #include " snippets/basic_op_DivInv.incpp"
167112}
168113
169114template <>
170- Data_<SpDDouble>* Data_<SpDDouble>::DivInv(BaseGDL* r) {
171- TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
172- Data_* right = static_cast <Data_*> (r);
173- ULong nEl = N_Elements ();
174- assert (nEl);
175-
176- GDLStartRegisteringFPExceptions ();
177- if (nEl == 1 ) {
178- (*this )[0 ] = (*right)[0 ] / (*this )[0 ];
179- GDLStopRegisteringFPExceptions ();
180- return this ;
181- }
182- if ((GDL_NTHREADS = parallelize (nEl)) == 1 ) {
183- for (OMPInt ix = 0 ; ix < nEl; ++ix) (*this )[ix] = (*right)[ix] / (*this )[ix];
184- } else {
185- TRACEOMP (__FILE__, __LINE__)
186- #pragma omp parallel for num_threads(GDL_NTHREADS)
187- for (OMPInt ix = 0 ; ix < nEl; ++ix) (*this )[ix] = (*right)[ix] / (*this )[ix];
188- }
189-
190- GDLStopRegisteringFPExceptions ();
191-
192- return this ;
115+ Data_<SpDDouble>* Data_<SpDDouble>::DivInv(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
116+ #include " snippets/basic_op_DivInv.incpp"
117+ }
118+ template <>
119+ Data_<SpDComplex>* Data_<SpDComplex>::DivInv(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
120+ #include " snippets/basic_op_DivInvCplx.incpp"
121+ }
122+ template <>
123+ Data_<SpDComplexDbl>* Data_<SpDComplexDbl>::DivInv(BaseGDL* r) { TRACE_ROUTINE (__FUNCTION__, __FILE__, __LINE__)
124+ #include " snippets/basic_op_DivInvCplx.incpp"
193125}
194126// invalid types
195127
0 commit comments