| 724 | |
| 725 | template <class Float> |
| 726 | void ComputeSAX(Float a, const avec<Float>& vec1, avec<Float>& result) { |
| 727 | const size_t step = sse_step<Float>(); |
| 728 | SSE_T aa = sse_load1(&a); |
| 729 | const Float *p1 = vec1, *pe = p1 + vec1.size(), *pex = pe - step; |
| 730 | Float* p3 = result; |
| 731 | for (; p1 <= pex; p1 += step, p3 += step) { |
| 732 | sse_store(p3, sse_mul(sse_load(p1), aa)); |
| 733 | } |
| 734 | for (; p1 < pe; ++p1, ++p3) p3[0] = a * p1[0]; |
| 735 | } |
| 736 | |
| 737 | template <class Float> |
| 738 | inline void ComputeSXYPZ(Float a, const Float* p1, const Float* p2, |
no test coverage detected