我正在尝试加快我的pgfplots
(每条曲线 2000 个样本) 速度。导致它们变慢的一个原因是 (除非 pgf 具有内置优化器) pgf 多次计算某些值。为了说明问题,请考虑以下示例,我相信 pgf 将计算#1
两倍的对数。
\pgfmathdeclarefunction{sincos}{1}{\pgfmathparse{
sin(log(#1))+cos(log(#1))
}}
虽然log(#1)
可能足够快,但想象一下我用它声明的一个复杂的自定义函数\pgfmathdeclarefunction
。
如何改变 sincos 使其x
只计算一次对数?是否可以声明类似局部变量的东西?也许用\pgfmathsetmacro
?
解决方案应该考虑到 pgfplots 在评估函数时正在切换到 pgf 的 fpu 实现。