GraphEnt is using a modified version of the algorithm described by Gull, S.F. & Daniell, G.J., (1978), Nature, 272, 686-690, some 20 years ago. A rough account of the method is given in the section 17.2 and will not be repeated here. The only thing that I think that I have to mention is the approximations involved in the calculation of a figure-of-merit weighted calculation :
The above mentioned algorithm assumes a Gaussian distribution of error, either on the amplitude alone, or on the real and imaginary parts of the structure factor. The assumed structure factor pdf for the former case would look like this :
This works very well with Patterson function syntheses, or more general, when there is no ambiguity about the values of the phase angles. When we are given a figure of merit for the phases, the structure factor pdf deviates significantly from the above-shown distribution and it looks more like this :
What GraphEnt will do in this case, is to approximate this function with a 2D Gaussian like this one :
As you would imagine, the approximation is good for well-defined
(``high FOM, high
F/(F)'') reflections, and as it turns out, it is also acceptable
when you have the ``low FOM, low
F/
(F)'' and ``high FOM, low
F/
(F)'' cases.
Things get hairy in the most dangerous case, ie when you have the
``low FOM, high
F/
(F)'' case. GraphEnt will still try to approximate the pdf with a
2D Gaussian and because the pdf in this case almost goes around the phase cycle,
this Gaussian will end-up centered somewhere near the origin of the complex plane. In other words,
in the case of ``low FOM, high
F/
(F)'' GraphEnt will artificially
reduce the ``expected'' value of the amplitude of the reflection. Although this
may sound like a
safe thing to do, it is certainly not the best that can be achieved with the given
data12.
Finally, I should add that in real life things are even more complex. This is because what you have from the experiment is not a figure-of-merit, but the whole phase probability distribution (usually in the form of Hendrickson-Lattman coefficients). GraphEnt can not tackle this problem.