在 \pgfmathdeclarefunction 中声明变量

在 \pgfmathdeclarefunction 中声明变量

我正在尝试加快我的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 实现。

相关内容