Storing binary (boolean) matrices where each element is a byte (or worse, a 32 or 64 bit integer) is incredibly inefficient and wasteful, both in time and space. For example, a 10k square matrix requires 400Mb of RAM if stored as 32 bit int values. Binmat is a library that bit-packs these matrices so that this 10k square matrix requires just 12.5Mb (the minimum space possible). More than that, binmat takes advantage of extremely fast bit-operations when multiplying matrices. The usual series of multiplications and additions required to compute each element are replaced by bitwise AND and OR operations. Furthermore, on 64-bit hardware each bitwise operation can replace up to 64 multiplications or additions, reducing operations that can take hundreds of clock cycles down to just a single cycle. This gives rise to some very considerable performance increases, especially when taking the power of a matrix. Binary exponentiation is implemented to further improve the performance of higher matrix powers.
libsysconfcpus is an $LD_PRELOAD library that intercepts calls to sysconf() and adjusts the responses for _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN, which are used to determine the number of processors available (either configured or online) at runtime in a system. Unfortunately, some closed-source software assumes that all of these processors may be used for computation, which is an assumption that is frequently not true on multiuser and HPC systems. libsysconfcpus provides a simple, non-intrusive way of adjusting the behavior of such software (when it is dynamically linked).
This is a simple program to read a string of text from the user. The difference between this program and the bash builtin "read" command is that this program allows you to specify text that will be initially placed into the input edit buffer. That is, you can specify "default" input text that has been "pre-typed" for the user.
tunerlimit is a preload library that allows some fine-tuning of when calls to setrlimit(2) are allowed, and when they are "blocked". This can be useful in situations where, for example, SELinux policies cause programs to fail completely when making trivial or idempotent calls to setrlimit().
xlibtrace displays the interaction between X11 client programs and the X11 client shared library (libX11.so) by showing the Xlib calls that are made. Output is shown in a style similar to strace(1). It works by using the $LD_PRELOAD dynamic linker option to insert itself between the target X11 client program and libX11.so. This allows it to "intercept" all calls to X functions, whereupon it has the opportunity to print the name of the function being called, along with any arguments and return value. This can be particularly useful when analyzing the behavior of closed-source X11 programs.
Re: why not use... > read -p "prompt" ? Because that only sets the prompt, which is not enough. I want a default value provided in the input area, to save me fro...
Re: Filtering by license? > It would be nice if one could filter > announcements by the license field. I'm > usually not interested in seeing > announcements for non-free softw...