You may have noticed in the previous sections that, when working with numerics, performance depends a lot on whether the data is based on arrays and primitives. It may take a lot of meticulousness on the programmer's part to correctly coerce data into primitives and arrays at all stages of the computation in order to achieve optimum efficiency. Fortunately, the high performance enthusiasts from the Clojure community realized this issue early on and created some dedicated open source libraries to mitigate the problem.
HipHip is a Clojure library built to work with arrays of primitive types. It provides a safety net; that is, it strictly accepts only primitive array arguments to work with. As a result, passing silently boxed primitive arrays as arguments always results in an exception. HipHip macros and functions rarely need the programmer to type hint anything during the operations. It supports arrays of primitive types such as int
, long
,...