Any matrix of size greater than 1000 results in a G0291 error. I need to run the Gibbs procedure for a much larger sample size.
1 Answer
0
The error G0291 : Compiler pass out of memory usually occurs when you declare variables inside the source code that are too large. When GAUSS compiles the source code (turns it from text on the page to something the machine can run), any variables that are declared in the program become part of the compiled file that is executed. It is not a good practice to add very large variables into the compiled code.
So instead of declaring your data inside of your code like this:
//declare variable
x = { 1,
2,
3,
4,
5 };
You should instead, place the data into a separate text file and read it in with something like csvReadM, or load. For example, if we made a file named mydata.txt that looks like this:
1 2 3 4 5
and placed it in our GAUSS current working directory, then we could change our code to this if we have GAUSS 16 or later:
//Load data
x = csvReadM("mydata.txt);
or this if we do not yet have GAUSS 16:
load x[] = mydata.txt;
Your Answer
1 Answer
The error G0291 : Compiler pass out of memory usually occurs when you declare variables inside the source code that are too large. When GAUSS compiles the source code (turns it from text on the page to something the machine can run), any variables that are declared in the program become part of the compiled file that is executed. It is not a good practice to add very large variables into the compiled code.
So instead of declaring your data inside of your code like this:
//declare variable
x = { 1,
2,
3,
4,
5 };
You should instead, place the data into a separate text file and read it in with something like csvReadM, or load. For example, if we made a file named mydata.txt that looks like this:
1 2 3 4 5
and placed it in our GAUSS current working directory, then we could change our code to this if we have GAUSS 16 or later:
//Load data
x = csvReadM("mydata.txt);
or this if we do not yet have GAUSS 16:
load x[] = mydata.txt;