Originally Posted by
nvoigt
You are passing a double** where only a double* is expected. You need to change either the function or the parameter to something that matches.
Which is one reason why I never use multi-dimensional arrays in C or C++. I always use flat arrays and indexing functions or macros to get the same effect. The other reason has to do with the formats commonly used in numeric software such as BLAS or FFT libraries. Flat arrays are the norm.
My recommendation is to change your array format to be a flat array of the type,
Code:
double x1e[ND * 3]={
0.0500, 0.0, 0.950 ,0.04293, 0.04503, 0.91204,
0.06206, 0.08990, 0.84803,0.07537, 0.12649, 0.79814,
0.09640, 0.17191, 0.73169,0.12475, 0.20078, 0.67447,
0.17126, 0.25278, 0.57596,0.20346, 0.27928, 0.51726,
0.25974, 0.32027, 0.41999,0.33525, 0.35067, 0.31408,
0.40969, 0.35607, 0.23424,0.48556, 0.34552, 0.16893,
0.54515, 0.32321, 0.13163,0.61497, 0.29044, 0.09459 };
Then create an indexing macro of the sort,
Code:
#define ixptr(val, i, j) ((val)+(j) + (i)*3)
Code is not checked for correctness.