Commit messages

April 9, 2014

jpritikin committed r3311 in OpenMx at 11:16:
Allow standard errors without Richardson extrapolation
in /trunk:

April 4, 2014

jpritikin committed r3286 in OpenMx at 11:39:
in /trunk:

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

+ MxComputeNumericDeriv got a verbose parameter to enable debugging at

+ 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

+ 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 7, 2014

jpritikin committed r3124 in OpenMx at 15:02:
Fix various bugs in free.set variable groups
in /trunk:

February 28, 2014

jpritikin committed r3094 in OpenMx at 18:15:
Improve mxComputeOnce, mxComputeEM APIs
in /trunk:

February 20, 2014

jpritikin committed r3085 in OpenMx at 17:35:
Always report @output$fit but don't report @output$minimum unless it is
in /trunk:

February 16, 2014

jpritikin committed r3080 in OpenMx at 10:09:
Rename ComputeEstimatedHessian to ComputeNumericDeriv
in /trunk:

February 14, 2014

jpritikin committed r3078 in OpenMx at 12:08:
Document optimizers
in /trunk:

January 23, 2014

mhunter committed r3057 in OpenMx at 23:42:
Update R file copyrights.  Somehow this got forgotten before.

January 2, 2014

jpritikin committed r3037 in OpenMx at 15:19:
Allow MxCompute C objects to set values in their R objects
in /trunk:
Syndicate content