77//
88
99import Foundation
10+ #if canImport(Accelerate)
1011import Accelerate
12+ #endif
1113
1214extension Matft {
1315 //infix
@@ -29,15 +31,19 @@ extension Matft{
2931 }
3032 }
3133 else {
34+ #if canImport(Accelerate)
3235 switch MfType . storedType ( rettype) {
3336 case . Float:
3437 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvadd)
3538 case . Double:
3639 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvaddD)
3740 }
41+ #else
42+ fatalError ( " Complex array operations are not supported on this platform " )
43+ #endif
3844 }
3945 }
40-
46+
4147 /**
4248 Element-wise addition of mfarray and scalar
4349 - parameters:
@@ -62,12 +68,16 @@ extension Matft{
6268 }
6369 }
6470 else {
71+ #if canImport(Accelerate)
6572 switch MfType . storedType ( retmftype) {
6673 case . Float:
6774 return biopzvs_by_vDSP ( l_mfarray, Float . from ( r_scalar) , vDSP_zrvadd)
6875 case . Double:
6976 return biopzvs_by_vDSP ( l_mfarray, Double . from ( r_scalar) , vDSP_zrvaddD)
7077 }
78+ #else
79+ fatalError ( " Complex array operations are not supported on this platform " )
80+ #endif
7181 }
7282 }
7383 /**
@@ -94,12 +104,16 @@ extension Matft{
94104 }
95105 }
96106 else {
107+ #if canImport(Accelerate)
97108 switch MfType . storedType ( retmftype) {
98109 case . Float:
99110 return biopzvs_by_vDSP ( r_mfarray, Float . from ( l_scalar) , vDSP_zrvadd)
100111 case . Double:
101112 return biopzvs_by_vDSP ( r_mfarray, Double . from ( l_scalar) , vDSP_zrvaddD)
102113 }
114+ #else
115+ fatalError ( " Complex array operations are not supported on this platform " )
116+ #endif
103117 }
104118 }
105119 /**
@@ -120,12 +134,16 @@ extension Matft{
120134 }
121135 }
122136 else {
137+ #if canImport(Accelerate)
123138 switch MfType . storedType ( rettype) {
124139 case . Float:
125140 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvsub)
126141 case . Double:
127142 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvsubD)
128143 }
144+ #else
145+ fatalError ( " Complex array operations are not supported on this platform " )
146+ #endif
129147 }
130148 }
131149 /**
@@ -152,12 +170,16 @@ extension Matft{
152170 }
153171 }
154172 else {
173+ #if canImport(Accelerate)
155174 switch MfType . storedType ( retmftype) {
156175 case . Float:
157176 return biopzvs_by_vDSP ( l_mfarray, Float . from ( r_scalar) , vDSP_zrvsub)
158177 case . Double:
159178 return biopzvs_by_vDSP ( l_mfarray, Double . from ( r_scalar) , vDSP_zrvsubD)
160179 }
180+ #else
181+ fatalError ( " Complex array operations are not supported on this platform " )
182+ #endif
161183 }
162184 }
163185 /**
@@ -184,12 +206,16 @@ extension Matft{
184206 }
185207 }
186208 else {
209+ #if canImport(Accelerate)
187210 switch MfType . storedType ( retmftype) {
188211 case . Float:
189212 return biopzvs_by_vDSP ( - r_mfarray, Float . from ( l_scalar) , vDSP_zrvadd)
190213 case . Double:
191214 return biopzvs_by_vDSP ( - r_mfarray, Double . from ( l_scalar) , vDSP_zrvaddD)
192215 }
216+ #else
217+ fatalError ( " Complex array operations are not supported on this platform " )
218+ #endif
193219 }
194220 }
195221 /**
@@ -210,12 +236,16 @@ extension Matft{
210236 }
211237 }
212238 else {
239+ #if canImport(Accelerate)
213240 switch MfType . storedType ( rettype) {
214241 case . Float:
215242 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvmul_)
216243 case . Double:
217244 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvmulD_)
218245 }
246+ #else
247+ fatalError ( " Complex array operations are not supported on this platform " )
248+ #endif
219249 }
220250 }
221251 /**
@@ -242,12 +272,16 @@ extension Matft{
242272 }
243273 }
244274 else {
275+ #if canImport(Accelerate)
245276 switch MfType . storedType ( retmftype) {
246277 case . Float:
247278 return biopzvs_by_vDSP ( l_mfarray, Float . from ( r_scalar) , vDSP_zrvmul)
248279 case . Double:
249280 return biopzvs_by_vDSP ( l_mfarray, Double . from ( r_scalar) , vDSP_zrvmulD)
250281 }
282+ #else
283+ fatalError ( " Complex array operations are not supported on this platform " )
284+ #endif
251285 }
252286 }
253287 /**
@@ -274,12 +308,16 @@ extension Matft{
274308 }
275309 }
276310 else {
311+ #if canImport(Accelerate)
277312 switch MfType . storedType ( retmftype) {
278313 case . Float:
279314 return biopzvs_by_vDSP ( r_mfarray, Float . from ( l_scalar) , vDSP_zrvmul)
280315 case . Double:
281316 return biopzvs_by_vDSP ( r_mfarray, Double . from ( l_scalar) , vDSP_zrvmulD)
282317 }
318+ #else
319+ fatalError ( " Complex array operations are not supported on this platform " )
320+ #endif
283321 }
284322 }
285323 /**
@@ -302,12 +340,16 @@ extension Matft{
302340 }
303341 }
304342 else {
343+ #if canImport(Accelerate)
305344 switch MfType . storedType ( rettype) {
306345 case . Float:
307346 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvdiv)
308347 case . Double:
309348 return biopzvv_by_vDSP ( l_mfarray, r_mfarray, vDSP_func: vDSP_zvdivD)
310349 }
350+ #else
351+ fatalError ( " Complex array operations are not supported on this platform " )
352+ #endif
311353 }
312354 }
313355 /**
@@ -334,12 +376,16 @@ extension Matft{
334376 }
335377 }
336378 else {
379+ #if canImport(Accelerate)
337380 switch MfType . storedType ( retmftype) {
338381 case . Float:
339382 return biopzvs_by_vDSP ( l_mfarray, Float . from ( r_scalar) , vDSP_zrvdiv)
340383 case . Double:
341384 return biopzvs_by_vDSP ( l_mfarray, Double . from ( r_scalar) , vDSP_zrvdivD)
342385 }
386+ #else
387+ fatalError ( " Complex array operations are not supported on this platform " )
388+ #endif
343389 }
344390 }
345391 /**
@@ -366,12 +412,16 @@ extension Matft{
366412 }
367413 }
368414 else {
415+ #if canImport(Accelerate)
369416 switch MfType . storedType ( retmftype) {
370417 case . Float:
371418 return biopzsv_by_vDSP ( Float . from ( l_scalar) , r_mfarray, vDSP_ztrans)
372419 case . Double:
373420 return biopzsv_by_vDSP ( Double . from ( l_scalar) , r_mfarray, vDSP_ztransD)
374421 }
422+ #else
423+ fatalError ( " Complex array operations are not supported on this platform " )
424+ #endif
375425 }
376426 }
377427
0 commit comments