summaryrefslogtreecommitdiff
path: root/libguile/numbers.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/numbers.c')
-rw-r--r--libguile/numbers.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/libguile/numbers.c b/libguile/numbers.c
index f610ca787..5a785072a 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -1417,8 +1417,12 @@ SCM_DEFINE1 (scm_logxor, "logxor", scm_tc7_asubr,
SCM_DEFINE (scm_logtest, "logtest", 2, 0, 0,
(SCM j, SCM k),
+ "Test whether @var{j} and @var{k} have any 1 bits in common.\n"
+ "This is equivalent to @code{(not (zero? (logand j k)))}, but\n"
+ "without actually calculating the @code{logand}, just testing\n"
+ "for non-zero.\n"
+ "\n"
"@lisp\n"
- "(logtest j k) @equiv{} (not (zero? (logand j k)))\n\n"
"(logtest #b0100 #b1011) @result{} #f\n"
"(logtest #b0100 #b0111) @result{} #t\n"
"@end lisp")
@@ -1485,8 +1489,10 @@ SCM_DEFINE (scm_logtest, "logtest", 2, 0, 0,
SCM_DEFINE (scm_logbit_p, "logbit?", 2, 0, 0,
(SCM index, SCM j),
+ "Test whether bit number @var{index} in @var{j} is set.\n"
+ "@var{index} starts from 0 for the least significant bit.\n"
+ "\n"
"@lisp\n"
- "(logbit? index j) @equiv{} (logtest (integer-expt 2 index) j)\n\n"
"(logbit? 0 #b1101) @result{} #t\n"
"(logbit? 1 #b1101) @result{} #f\n"
"(logbit? 2 #b1101) @result{} #t\n"
@@ -1668,14 +1674,18 @@ SCM_DEFINE (scm_modulo_expt, "modulo-expt", 3, 0, 0,
SCM_DEFINE (scm_integer_expt, "integer-expt", 2, 0, 0,
(SCM n, SCM k),
- "Return @var{n} raised to the exact integer exponent\n"
- "@var{k}.\n"
+ "Return @var{n} raised to the power @var{k}. @var{k} must be an\n"
+ "exact integer, @var{n} can be any number.\n"
+ "\n"
+ "Negative @var{k} is supported, and results in @math{1/n^abs(k)}\n"
+ "in the usual way. @math{@var{n}^0} is 1, as usual, and that\n"
+ "includes @math{0^0} is 1.\n"
"\n"
"@lisp\n"
- "(integer-expt 2 5)\n"
- " @result{} 32\n"
- "(integer-expt -3 3)\n"
- " @result{} -27\n"
+ "(integer-expt 2 5) @result{} 32\n"
+ "(integer-expt -3 3) @result{} -27\n"
+ "(integer-expt 5 -3) @result{} 1/125\n"
+ "(integer-expt 0 0) @result{} 1\n"
"@end lisp")
#define FUNC_NAME s_scm_integer_expt
{