gpt4 book ai didi

c++ - Boost 的 gmp_int 后端是否自动优化?

转载 作者:行者123 更新时间:2023-11-30 02:44:24 29 4
gpt4 key购买 nike

根据我对 Boost 的多精度包装器的理解,它们会自动采用像 c = a+b 这样的表达式并将它们转换为 mpz_add(c, a, b) . Boost 会自动执行优化,例如将乘以 2 的幂转换为左移/右移,或其他类似的更改吗?

最佳答案

Boost.Multiprecision 执行许多高级优化,主要是为了最大限度地减少临时变量的数量。例如,它将重新排序 a=(b*c)*aa*=c; a*=b .然而,它没有(目前,2014 年 8 月)利用 gcc 的 __builtin_constant_p。进一步优化。 gmpxx (与 GMP 一起分发的官方包装)另一方面将替换 a=b*8a=b<<3 .请注意,没有 __builtin_constant_p ,在乘法之前测试数字是否为 2 的幂是一个坏主意(在通用包装器中):如果值得,mpz_mul_ui早该这么做了。

此外,上次我检查时,其他编译器(clang、intel、oracle)对 __builtin_constant_p 的支持很少。并且无法利用它在 gmpxx 中的使用.

关于c++ - Boost 的 gmp_int 后端是否自动优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25337212/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com