1515#include < err_common.hpp>
1616#include < backend.hpp>
1717#include < arith.hpp>
18- #include < copy.hpp>
1918#include < join.hpp>
2019#include < math.hpp>
2120
@@ -27,8 +26,11 @@ static Array<T> mix(const Array<T>& X, const Array<T>& Y,
2726 double xf, double yf)
2827{
2928 dim4 dims = X.dims ();
30- Array<T> fX = padArray<T, T>(X, dims, scalar<T>(0 ), xf);
31- Array<T> fY = padArray<T, T>(Y, dims, scalar<T>(0 ), yf);
29+ Array<T> xf_cnst = createValueArray<T>(dims, xf);
30+ Array<T> yf_cnst = createValueArray<T>(dims, yf);
31+
32+ Array<T> fX = arithOp<T, af_mul_t >(xf_cnst, X, dims);
33+ Array<T> fY = arithOp<T, af_mul_t >(yf_cnst, Y, dims);
3234
3335 return arithOp<T, af_add_t >(fX , fY , dims);
3436}
@@ -38,9 +40,13 @@ static Array<T> mix(const Array<T>& X, const Array<T>& Y, const Array<T>& Z,
3840 double xf, double yf, double zf)
3941{
4042 dim4 dims = X.dims ();
41- Array<T> fX = padArray<T, T>(X, dims, scalar<T>(0 ), xf);
42- Array<T> fY = padArray<T, T>(Y, dims, scalar<T>(0 ), yf);
43- Array<T> fZ = padArray<T, T>(Z, dims, scalar<T>(0 ), zf);
43+ Array<T> xf_cnst = createValueArray<T>(dims, xf);
44+ Array<T> yf_cnst = createValueArray<T>(dims, yf);
45+ Array<T> zf_cnst = createValueArray<T>(dims, zf);
46+
47+ Array<T> fX = arithOp<T, af_mul_t >(xf_cnst, X, dims);
48+ Array<T> fY = arithOp<T, af_mul_t >(yf_cnst, Y, dims);
49+ Array<T> fZ = arithOp<T, af_mul_t >(zf_cnst, Z, dims);
4450
4551 Array<T> fx_fy = arithOp<T, af_add_t >(fX , fY , dims);
4652 return arithOp<T, af_add_t >(fx_fy, fZ , dims);
0 commit comments