所以我正在做一些与爱好相关的事情,包括对大型真实数组进行傅里叶变换,这些数组几乎不适合内存,并且很想知道是否存在rfft
和{{的就地版本保存RAM,因为RAM消耗对我很重要。 These transforms are possible despite the input-vs-output-type mismatch,并需要额外的一行填充。
在Implement in-place rfft! and irfft!中,Tim Holy表示他正在研究使用包含缓冲区的irfft
对象的就地rfft!
和irfft!
,但随后史蒂文约翰逊说,他正在使用RCpair
来实现一些相同的东西,他在here上详细说明了这一点。
从那时起,事情变得有点奇怪。在0.3.0和0.4.0的文档中,虽然列出了A_mul_B!(y, plan, x)
,但未提及A_mul_B!
。但是当我尝试将它们输入朱莉娅时,我得到了
A_mul_B
这表明情况实际上是文档目前描述的相反。
因为A_mul_B!
A_mul_B! (generic function with 28 methods)
A_mul_B
ERROR: A_mul_B not defined
似乎存在,但未在任何地方记录,我试图猜测如何就地测试它如下:
A_mul_B!
导致
A = rand(Float32, 10, 10);
p = plan_rfft(A);
A_mul_B!(A,p,A)
因此...
现场实际FFT仍在进行中吗?或者我使用ERROR: `A_mul_B!` has no method matching A_mul_B!(::Array{Float32,2}, ::Function, ::Array{Float32,2})
错了?
0.3.0文档和0.3.0的函数库之间是否存在不匹配?
答案 0 :(得分:2)
史蒂芬约翰逊提出的请求被列为公开,未合并;这意味着工作尚未完成。我的那个是关闭的,但是如果你想要代码,你可以通过点击提交来获取它。
文档确实省略了A_mul_B!
的提及。 A_mul_B
相当于A*B
,因此现在不会单独导出。 A_mul_B!
将像这样使用:代替C = A*B
,您可以说A_mul_B!(C, A, B)
。
您能否编辑文档来解决这些问题? (您可以在网络浏览器中编辑文件here。)