Hızlı bilgi işlem maksimum değerleri için AGGREGATE Magic'dan bir hile buldum. Bunun tamsayılar için tek sorun olduğunu ve ancak bazı şeyleri denedim, imzasız tamsayılar için nasıl bir sürüm oluşturulacağını bilmiyorum.İmzasız tamsayılar için hızlı dalsız max
inline int32_t max(int32_t a, int32_t b)
{
return a - ((a-b) & (a-b)>>31);
}
Herhangi bir öneri? diğerleri bunun tanımsız davranış üretir belirtildiği gibi çünkü
DÜZENLEME
, bu kullanmayın. Herhangi bir modern mimari için, derleyici, return (a > b) ? a : b
'dan bir branşsız koşullu hareket talimatı yayınlayabilecektir, bu da söz konusu işlevin daha hızlı olacaktır.
Bekle '> bir dönüş b? a: b'? –
Bu işlev oldukça kullanışsızdır. 'Std :: max' kullanın. –
Evet, boru hattı ile modern CPU'larda, dalları yavaştır. Daha hızlı değilse, bu sürümü SSE sürümü kadar hızlı ölçtüm. – plasmacel