function retIrradiance_PerArea = RetIrradiancePerDegrees2AndEyeLengthToRetIrradiancePerArea(retIrradiance_PerDegrees2,eyeLength)
% retIrradiance_PerArea = RetIrradiancePerDegrees2AndEyeLengthToRetIrradiancePerArea(retIrradiance_PerDegrees2,eyeLength)
%
% Convert retinal irradiance measured in units of Y/deg^2 to units of
% Y/x^2, where x is a unit of distance (m, cm, mm, um, etc.) and
% Y is a measure of light amount (Watts, Joules, quanta/sec, quanta, etc.)
%
% Eye length should be passed in units of x.
%
% The conversion assumes that we are in the small angle regime, where
% degrees are essentially linear with retinal extent.
%
% See also: PsychRadiometric, RetIrradiancePerAreaAndEyeLengthToRetIrradiancePerDegrees2.
%
% 6/23/13 dhb Wrote it.
% Convert x to degrees. The routine DegreesToRetinalMM does not
% actually care whether the input is in mm, it just needs its
% two arguments to be in the same units.
%
% We use DegreesToRetinalMM, rather than RetinalMMToDegrees followed
% by inversion. This is because with the former, we can force the number
% of degrees to be small and get a factor valid in the small angle range.
% If we do it the other way, when the units of distance are large relative to the
% eye length, weird things can happen.
xPerDegree = DegreesToRetinalMM(1,eyeLength);
areaPerDegrees2 = xPerDegree^2;
retIrradiance_PerArea = retIrradiance_PerDegrees2/areaPerDegrees2;