Function: /

/ is a function defined in data.c.

Signature

(/ NUMBER &rest DIVISORS)

Documentation

Divide number by divisors and return the result.

With two or more arguments, return first argument divided by the rest. With one argument, return 1 divided by the argument. The arguments must be numbers or markers.

Other relevant functions are documented in the number group.

View in manual

Probably introduced at or before Emacs version 21.1.

Shortdoc

;; number
(/ 10 5)
    => 2
  (/ 10 6)
    => 1
  (/ 10.0 6)
    => 1.6666666666666667
  (/ 10.0 3 3)
    => 1.1111111111111112

Source Code

// Defined in /usr/src/emacs/src/data.c
{
  Lisp_Object a = check_number_coerce_marker (args[0]);
  if (nargs == 1)
    {
      if (FIXNUMP (a))
	{
	  if (XFIXNUM (a) == 0)
	    xsignal0 (Qarith_error);
	  return make_fixnum (1 / XFIXNUM (a));
	}
      if (FLOATP (a))
	{
	  if (! IEEE_FLOATING_POINT && XFLOAT_DATA (a) == 0)
	    xsignal0 (Qarith_error);
	  return make_float (1 / XFLOAT_DATA (a));
	}
      /* Dividing 1 by any bignum yields 0.  */
      return make_fixnum (0);
    }

  /* Do all computation in floating-point if any arg is a float.  */
  for (ptrdiff_t argnum = 2; argnum < nargs; argnum++)
    if (FLOATP (args[argnum]))
      return floatop_arith_driver (Adiv, nargs, args, 0, 0, XFLOATINT (a));
  return arith_driver (Adiv, nargs, args, a);
}