Closed yewalenikhil65 closed 1 year ago
It seems the multiplication is switching to FFT algorithm for large convolutions. I'm not sure what we can do about that. What's your goal with this? We could potentially make fft
a primitive in Symbolics. cc @ChrisRackauckas
I fully support this idea, there's a lot of simplification you can do in Fourier space
A lot of pseudospectral PDE codes could be nicely represented with it. I think more generally the question is how to register array functions. If registration works well on that, we can start getting coverage.
Definitely agree on this point, I've run up against this a few times. Could just get the registration methods to wrap on Union{Num, Arr}
It seems the multiplication is switching to FFT algorithm for large convolutions. I'm not sure what we can do about that. What's your goal with this? We could potentially make
fft
a primitive in Symbolics. cc @ChrisRackauckas
@shashi My aim was to create that F_expr
vector in symbolic form as written in the code for arbitrary large N
. It creates the set of quadratic equations I was interested in solving (they form system of equations related to deep gravity waves 🌊). Only thing is such matrix-vector multiplication wasn't possible due to error mentioned above for N >= 280
. I found a way around by helpful comment here by avoiding certain conditional statements
But it would be great if making fft a primitive in Symbolics could solve this issue. Certainly the said matrix-vector product is possible and user should be allowed to create them!
What looks overall from error trace is that plan_fft! method entertaining Vector{Num} should be included somewhere.
Array registration is a top priority for me right now.
@yewalenikhil65 even if we support fft
node right now, you won't be able to access individual expressions after the convolution. It's best to request Toeplitz multiplication to add an option to multiplication where it does not take the path of calling fft.
Array registration is a top priority for me right now.
Yeah I think that's all you need. Once that exists, the community can register a whole standard library etc. and take it from there. But without that registration, these kinds of issues will just pop up. You don't need to worry about an fft
node, just a registration process and I or anyone else will get to the fft node.
This probably needs a broad request to package maintainers to register important functions in package
I am trying following , and this works okay!
However, the code fails if i increase the code to N=280