Aptech Systems, Inc. Worldwide Headquarters
Aptech Systems, Inc.
2350 East Germann Road, Suite #21
Chandler, AZ 85286
Ready to Get Started?
Request Quote & Product Information
Training & Events
Step-by-step, informative lessons for those who want to dive into GAUSS and achieve their goals, fast.
Have a Specific Question?
Q&A: Register and Login
Premier Support and Platinum Premier Support are annually renewable membership programs that provide you with important benefits including technical support, product maintenance, and substantial cost-saving features for your GAUSS System or the GAUSS Engine.
Join our community to see why our users are considered some of the most active and helpful in the industry!
Where to Buy
Recent Tagsapplications character vectors CML CMLMT Constrained Optimization datasets dates dlibrary dllcall error error handling errors Excel file i/o floating network GAUSS Engine GAUSS Light graphics GUI hotkeys installation Java API license licensing linux loading data loops matrices matrix manipulation Maxlik MaxLikMT Memory multidimensional array optimization Optmum output PQG graphics procs RAM random numbers string functions strings structures threading writing data
Time Series 2.0 MT
Find out more now
Time Series MT 2.1
Find out more now
Error G0156: Illegal redefinition of procedure
I had an error in my code where I was using a variable before I had assigned it a value, essentially like this:
new; x = myvar; myvar = 5;
In this example the variable myvar did not yet have a value, so I understand that it is incorrect. However, GAUSS returned the error message: G0156: illegal redefinition of procedure. This is confusing to me as I do not have a procedure named myvar. Why am I getting this error message?
When GAUSS encounters a new symbol that it does not know about, it starts out with the assumption that this new symbol is a procedure. That is why the error comes back as illegal redefinition of procedure.
The main point to remember, however, is that if GAUSS returns an error message that says "redefinition", then your program has referenced that symbol earlier on. To find it you just need to search towards the top of the program for that symbol name.
Hi, I have a follow up question on this.
What if that symbol name has been used before but just as inputs to other linked procedures?
Why does that gives the error stated above?
To be more clear, the symbol name comes out as the output of an optimization procedure. and that same symbol name is inside all the other linked procedures. But when I want to run it it gives the error message.
Inputs and local variables are private. For example:
proc (1) = myproc(a, b); a = a + b; retp(a); endp; c = myproc(5, 7); //error on line below, 'a' has never been defined d = a;
Is that the situation you are asking about?
Yes, exactly. I was almost sure that was the case but I still get a mistake concerning a symbol name which should be used only privately before in the code.