summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-05-18 20:17:33 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-05-18 20:17:33 -0700
commita580c45de5a825165f46d95206d9ac3c2c52fcd6 (patch)
tree849e617a4ee8730435782c3ecc8a14f1fb2594a2 /eval.c
parentaaac04d9e0cdcdd974c065bbff3d212a5eb5cd3a (diff)
downloadtxr-a580c45de5a825165f46d95206d9ac3c2c52fcd6.tar.gz
txr-a580c45de5a825165f46d95206d9ac3c2c52fcd6.tar.bz2
txr-a580c45de5a825165f46d95206d9ac3c2c52fcd6.zip
logcount: new function.
This is in ANSI CL; potentially useful and hard to implement efficiently in user code. * arith.c (logcount): New function. * eval.c (eval_init): Register logcount intrinsic. * lib.h (logcount): Declared. * mpi/mi.c (s_mp_count_ones): New static function. (mp_count_ones): New function. * mpi/mpi.h (mp_count_ones): Declared. * txr.1: Documented.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 98d8cfdf..e621db2d 100644
--- a/eval.c
+++ b/eval.c
@@ -6481,6 +6481,7 @@ void eval_init(void)
reg_fun(intern(lit("bit"), user_package), func_n2(bit));
reg_fun(intern(lit("mask"), user_package), func_n0v(maskv));
reg_fun(intern(lit("width"), user_package), func_n1(width));
+ reg_fun(intern(lit("logcount"), user_package), func_n1(logcount));
reg_fun(intern(lit("sort-group"), user_package), func_n3o(sort_group, 1));
reg_fun(intern(lit("unique"), user_package), func_n2ov(unique, 1));