Air mass: Difference between revisions

Content added Content deleted
m (more decimal places)
(→‎{{header|Wren}}: Updated to use new core library methods.)
Line 1,248: Line 1,248:


// The density of air as a function of height above sea level.
// The density of air as a function of height above sea level.
var rho = Fn.new { |a| Math.exp(-a/8500) }
var rho = Fn.new { |a| (-a/8500).exp }


// a = altitude of observer
// a = altitude of observer
Line 1,264: Line 1,264:
var d = 0
var d = 0
while (d < FIN) {
while (d < FIN) {
var delta = Math.max(DD, DD * d) // adaptive step size to avoid it taking forever
var delta = DD.max(DD * d) // adaptive step size to avoid it taking forever
sum = sum + rho.call(height.call(a, z, d + 0.5 * delta)) * delta
sum = sum + rho.call(height.call(a, z, d + 0.5 * delta)) * delta
d = d + delta
d = d + delta