Getting error in MEX file execution

4 views (last 30 days)
Caleb
Caleb on 26 Oct 2016
Edited: Caleb on 26 Oct 2016
I'm doing parameter tuning for an equation of state using the genetic algorithm function (ga). When I run the equation of state file as I coded it in MATLAB, it works fine. When I compile and package the file as a MEX file, it gives me the following error:
Error using
coder.internal.error (line
17)
Domain error. To compute
complex results from real x,
use 'log(complex(x))'.
Error in log (line 13)
coder.internal.error('Coder:toolbox:ElFunDomainError',mfilename);
Error in EOSfunction (line 552)
logPHI = MUres_kT - log(Z);
What could be causing this? I have checks to make sure that Z is always real and non-negative, so log(Z) should never be causing a problem.
  2 Comments
Walter Roberson
Walter Roberson on 26 Oct 2016
As an experiment, just above that logPHI line, add
assert(Z > 0);
and see what happens.
Caleb
Caleb on 26 Oct 2016
Edited: Caleb on 26 Oct 2016
Didn't work. Here's the error statement:
Error using EOSfile (line 552)
Assertion failed.
EDIT: I guess "Assertion failed" means that Z is returning a negative number. That was the fix. Thank you, Walter

Sign in to comment.

Answers (0)

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!