Macros Julia中的@ad和@addr宏是什么?

Macros Julia中的@ad和@addr宏是什么?,macros,julia,julia-gen,Macros,Julia,Julia Gen,我正在浏览Julia中的Gen模块示例,无意中发现了以下代码: @compiled @gen function generate_datum(x::Float64, prob_outlier::Float64, noise::Float64, @ad(slope::Float64), @ad(intercept::Float64)) if @addr(bernoulli(prob_outlier), :is_outlier)

我正在浏览Julia中的Gen模块示例,无意中发现了以下代码:

@compiled @gen function generate_datum(x::Float64, prob_outlier::Float64, noise::Float64, 
                             @ad(slope::Float64), @ad(intercept::Float64))

    if @addr(bernoulli(prob_outlier), :is_outlier)
        (mu, std) = (0., 10.)
    else
        (mu, std) = (x * slope + intercept, noise)
    end
    return @addr(normal(mu, std), :y)
end
哪个扔

UndefVarError:@addr未定义


对于@ad也是一样,我怀疑这是一样的。作为一个新手,我对茱莉亚不熟悉,搜索并没有返回任何模糊的相关信息,我被卡住了。有人能帮忙吗?

根据,您链接指向的文件不再是回购协议的一部分。那些宏被删除了,主分支反映了这一点!如果您想运行这些示例,您需要切换到较旧版本的Gen。

我认为这些宏要么是在Gen中定义的,要么是其依赖项之一。我不确定。我已经安装了Gen和dependencies。依赖项列表是否可能随使用库的脚本而更改?我刚刚ping了作者,以便我可以为您查看一下!我将在回购协议上发行一期。在此处发行: