You are here

Optimality tolerance

This is an issue that has been around a while--since version 1.3.2, at least. I have seen it under Windows and Linux. There are two components of Mx options called "Optimality tolerance", each having a slightly different default value. You can see for yourself with options()$mxOption . This is problematic because there is no way to set the option to a different value:

> factorModel <- mxOption(factorModel,"Optimality tolerance", 6.3e-11)
Error in optionsNames[[match]] : attempt to select more than one element
> mxOption(NULL,"Optimality tolerance", 6.3e-11)
Error in optionsNames[[match]] : attempt to select more than one element
Reporter: 
Created: 
Fri, 06/13/2014 - 16:04
Updated: 
Fri, 07/04/2014 - 14:28

Comments

The proximal reason for this error message is that the options are a list, and that list has both

 "Optimality tolerance" = "6.3e-12"

and

 "Optimality tolerance" = as.character(1e-14 ^ 0.8)

So when it tries to get the element of the list named "Optimality tolerance", there are two such elements. I don't know why there are two, but this code goes way back. Running "make clean install test" with the as.character Optimality tolerance removed causes no errors. Does anyone know of a reason to keep it?

> Does anyone know of a reason to keep it?

The main thing is to ensure that models/nightly/DefaultOptTolerance.R still passes. So yes, please remove the duplicate and confusing setting.

Tim Brick fixed this by removing the extra Optimality tolerance in svn r3606.