The deveoper's meeting began with some talk of migrating the web server and subversion repository to a mac mini server. Some logistical issues regarding this issue were discussed. The next topic of conversation was designing an interface for the likelihood variables in a FIML objective function.
Two primary issues on this topic: how does the user gain access to the likelihood vector in OpenMx algebra statements? And what will be the protocol for the front-end and back-end to communicate w.r.t. the likelihood vector? How do we make this interface scalable, so that a future genetic algorithm function could return a vector of results.
Here is the current proposal on resolving the likelihood topic. We relax the restriction that objective functions must always return a 1 x 1 matrix. Objective functions must always return a r x c matrix. If the objective function will be used directly by the optimizer, then it must return a 1 x 1 matrix. The dimensions of the objective function return matrix cannot change over time. And the dimensions must be computable at the start of the call to mxRun(), before the optimizer is invoked. These requirements will allow conformability checking to succeed in the front-end.
Specifically, with regards to the likelihood vector in the FIML objective function, the details of this implementation were not completely discussed. One solution would be to add an argument to mxFIMLObjective() that accepts a boolean value. This argument would need a name (suggestions?). For cases when MxFIMLObjective objects return a likelihood vector, this will be a n x 1 matrix (correct?) where n is the number of rows in the data object (correct?)
Suggestions/comments/corrections are welcome on this proposal as implementation will begin shortly.