Commit messages

April 11, 2014

jpritikin committed r3323 in OpenMx at 14:15:
Checkpoint rewrite
in /trunk:

April 9, 2014

jpritikin committed r3310 in OpenMx at 11:16:
Increase default CSOLNP tolerance to 1e-9 to match default NPSOL tolerance
in /trunk:

April 7, 2014

jpritikin committed r3296 in OpenMx at 10:49:
Fix bug introduced in "rework reporting of iterations and optimizer status"

April 4, 2014

jpritikin committed r3280 in OpenMx at 09:29:
Don't hide errors
jpritikin committed r3278 in OpenMx at 06:30:
Demote some errors to debug output
in /trunk:

April 3, 2014

jpritikin committed r3261 in OpenMx at 10:13:
Add FitContext::recordIterationError

March 26, 2014

jpritikin committed r3209 in OpenMx at 20:00:
mxCI should not interfere with SEs (or fit)
in /trunk:

March 14, 2014

mhunter committed r3143 in OpenMx at 11:00:
Resolved scope issue with isnan and isinf functions.

March 13, 2014

jpritikin committed r3141 in OpenMx at 16:32:
Re-architect fitfunction derivatives API using Eigen

Why do we need another matrix algebra library? We already have two, that
is, omxMatrix (original) and Matrix (from CSOLNP). For IFA models with
many items, it is essential to perform a sparse matrix-vector product
(Hessian %*% gradient) in Newton-Raphson. I initially wrote bespoke code
for sparse matrix-vector product. This was working well. However, it
came to my attention that inverting the Hessian can also benefit from
sparse matrix algebra. Rather than re-invent the wheel, Eigen looks like
a promising implementation.

Additional changes:

+ Internal derivatives are no longer reported back to R. You need to use
mxComputeReportDeriv to request them. Report derivs by default seemed
like a bad idea if they are so big that we are using a sparse
representation.

+ MxComputeNumericDeriv got a verbose parameter to enable debugging at
runtime.

+ ifa-drm-wide.R is moved to the failing directory temporarily. This
commit does not optimize manipulation of the Hessian but uses a simple
dense representation. dsytrf/dsytri are used to invert the Hessian. This
doesn't scale, but the improved accuracy results in many fewer
Newton-Raphson iterations highlighting the poor accuracy of the replaced
code.

+ Eigen has a great debug mode that NaN initializes memory and does
bounds checking. With these tools to assist debugging, I decided to
never store the lower triangle of a Hessian.
in /trunk:

March 12, 2014

jpritikin committed r3138 in OpenMx at 10:46:
Enable R_NO_REMAP for a cleaner namespace
in /trunk:
Syndicate content