MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / replaceScalar

Function replaceScalar

src/api/c/replace.cpp:96–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

94
95template<typename ScalarType>
96af_err replaceScalar(af_array a, const af_array cond, const ScalarType b) {
97 try {
98 const ArrayInfo& ainfo = getInfo(a);
99 const ArrayInfo& cinfo = getInfo(cond);
100
101 ARG_ASSERT(1, cinfo.getType() == b8);
102 DIM_ASSERT(1, cinfo.ndims() == ainfo.ndims());
103
104 dim4 adims = ainfo.dims();
105 dim4 cdims = cinfo.dims();
106
107 for (int i = 0; i < 4; i++) { DIM_ASSERT(1, cdims[i] == adims[i]); }
108
109 switch (ainfo.getType()) {
110 case f16: replace_scalar<half>(a, cond, b); break;
111 case f32: replace_scalar<float>(a, cond, b); break;
112 case f64: replace_scalar<double>(a, cond, b); break;
113 case c32: replace_scalar<cfloat>(a, cond, b); break;
114 case c64: replace_scalar<cdouble>(a, cond, b); break;
115 case s32: replace_scalar<int>(a, cond, b); break;
116 case u32: replace_scalar<uint>(a, cond, b); break;
117 case s64: replace_scalar<intl>(a, cond, b); break;
118 case u64: replace_scalar<uintl>(a, cond, b); break;
119 case s16: replace_scalar<short>(a, cond, b); break;
120 case u16: replace_scalar<ushort>(a, cond, b); break;
121 case s8: replace_scalar<schar>(a, cond, b); break;
122 case u8: replace_scalar<uchar>(a, cond, b); break;
123 case b8: replace_scalar<char>(a, cond, b); break;
124 default: TYPE_ERROR(2, ainfo.getType());
125 }
126 }
127 CATCHALL;
128 return AF_SUCCESS;
129}
130
131af_err af_replace_scalar(af_array a, const af_array cond, const double b) {
132 return replaceScalar(a, cond, b);

Callers 3

af_replace_scalarFunction · 0.85
af_replace_scalar_longFunction · 0.85
af_replace_scalar_ulongFunction · 0.85

Calls 3

getTypeMethod · 0.45
ndimsMethod · 0.45
dimsMethod · 0.45

Tested by

no test coverage detected