Max Projection

Remix this to get started with Julia 
Here we try to calculate the "Max Projection" using the following assumotions
- The peak day is day 56 
- The gradient (of daily growth) at the peak is -0.0031 
- The value of daily growth at peak is exactly 1.000000000000000000000000 
- The gradient is fixed at peak and remains constant for the next 24 days 
- After 24 days, the gradient is halved 
- The number of cases on peak day is 511 
const peakday = 56.0const gradient = -0.0031const dailygrowth_atpeak = 1.0function growth_rate(d)    if d <= peakday + 24.0        return dailygrowth_atpeak + (d - peakday) * gradient    else        return growth_rate(peakday + 24.0) + (d - (peakday + 24)) * (gradient/2.0)    endendThe Max Projection on peakday is 511
The Max Projection on day d is the growth rate on that day times the Max Projection of the day before
function max_projection(d)    if d <= peakday        return 511.0    end    if d > peakday        return growth_rate(d) * max_projection(d-1.0)    endendCreate a floating point array starting at 56 and ending at 105
days = Float64.(collect(56:105))Applying the function max_projection to a vector of floating point values then rounding it
maxpro = round.(  max_projection.(days)  )Finally we obtain our array of "day,max projection value"
[ (days[k],maxpro[k]) for k=1:105-56+1 ]