Dear all,
I am writting a code for high dimensional chebyshev interpolation. Since it is high dimensional, I MUST use extremely large arrays.
Something like this:
#define DIM (int)2
#define TOTAL_STEPS (int)30
int main(){
double *a_data;
long long a_dim; /** length of matrix a_data **/
int n; /** # of given points **/
int grid_length;
grid_length = TOTAL_STEPS;
n = pow( grid_length, DIM);
/** Length of array is here **/
a_dim = n * pow(n + 1, DIM); /** which is 730620900 **/
/** Allocate memory **/
a_data = (double*) malloc( a_dim * sizeof(double));
if(NULL == a_data) printf("no memory");
return 0;
}
length of a_data is a_dim = 730620900, and the allocation does not return NULL.
But I run out of the stack and I get segmentation fault.
The first solution which comes in my mind is to increase the stack?
Do you know how to increase that?
Or maybe you have a better solution.
Got really stock, please help.