Lines Matching full:element

20   using Element = typename Constant<T>::Element;
34 Element sum{};
37 std::vector<Element> conjugates;
38 for (const Element &x : va->values()) {
46 [[maybe_unused]] Element correction{};
48 for (const Element &x : cProducts.values()) {
69 for (const Element &x : cConjunctions.values()) {
71 sum = Element{true};
79 for (const Element &x : cProducts.values()) {
88 for (const Element &x : cProducts.values()) {
96 [[maybe_unused]] Element correction{};
98 for (const Element &x : cProducts.values()) {
194 std::vector<typename Constant<T>::Element> elements;
248 void operator()(Scalar<T> &element, const ConstantSubscripts &at,
255 if (firstUnmasked || element.IsNotANumber()) {
257 // at least one unmasked element is visible.
258 element = aAt;
263 opr_, Expr<T>{Constant<T>{aAt}}, Expr<T>{Constant<T>{element}})};
268 element = aAt;
302 Scalar<T> &element, const ConstantSubscripts &at, bool /*first*/) {
304 auto prod{element.MultiplySigned(array_.At(at))};
306 element = prod.lower;
308 element = element.MultiplyUnsigned(array_.At(at)).lower;
310 auto prod{element.Multiply(array_.At(at))};
312 element = prod.value;
350 using Element = typename Constant<T>::Element;
356 Element &element, const ConstantSubscripts &at, bool /*first*/) {
358 auto sum{element.AddSigned(array_.At(at))};
360 element = sum.value;
362 element = element.AddUnsigned(array_.At(at)).value;
366 auto sum{element.Add(next.value, rounding_)};
368 // correction = (sum - element) - next; algebraically zero
369 correction_ = sum.value.Subtract(element, rounding_)
372 element = sum.value;
376 void Done([[maybe_unused]] Element &element) {
379 auto corrected{element.Add(correction_, rounding_)};
382 element = corrected.value;
390 Element correction_{};
399 using Element = typename Constant<T>::Element;
401 Element identity{};
427 Scalar<T> &element, const ConstantSubscripts &at, bool /*first*/) {
428 element = (element.*operation_)(array_.At(at));