Hi,
I need to do windowing on big arrays (4-D with millions of elements) which is very expensive.
Just to illustrate what I mean by windowing.
From what I've read here and on the internet, LabVIEW stores arrays as a structure with the dimension sizes and a pointer to the first element.
In the example 2-D Array Handle in the "External Code (DLL) Execution" vi, we can find a definition:
typedef struct {
int32 dimSizes[2];
double elt[1];
} TD1;

The cost I am worried about is speed.
I realize I did not give you enough information.
I am implementing convolution layers of neural networks.
These layers multiply each window with a filter and sums the result.
Here is a naive implementation of a convolution.
This is really slow. One way to make it faster is to move the multiplication and summation out of the loop and do it later.
Instead, you flatten each window into a 1D array and get a big matrix with "batch_size*new