lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


It was thus said that the Great Muh Muhten once stated:
> On 11/25/18, Philippe Verdy <verdy_p@wanadoo.fr> wrote:
> > Note: math.floor() is not required toi return a native binary integer. It
> > may return a variant type using integers for some ranges, and doubles
> > outside the range. So even in this case the the inference would not help
> > eliminate the necessary tests on the effective type of the variant... The
> 
> math.floor can return literally anything. It can be redefined.

  Of course, one could rewrite the function to remove the call to
math.floor() to apease the Great Pedantic One:

	function fromjulianday(jd)
	  local a = jd + 32044
	  local b = (4 * a + 3) // 146097
	  local c = a - (b * 146097) // 4
	  local d = (4 * c + 3) // 1461
	  local e = c - (1461 * d) // 4
	  local m = (5 * e + 2) // 153
	  
	  return {
	    day   = e - (153 * m + 2) // 5 + 1,
	    month = m + 3 - 12 * (m // 10),
	    year  = b * 100 + d - 4800 + (m // 10)
	  }
	end

  This is Lua 5.3 specific code where '//' is integer division.

  -spc