# clojure.math.numeric-tower

Math functions that deal intelligently with the various types in Clojure’s numeric tower, as well as math functions commonly found in Scheme implementations.

Functions included:

- (expt x y) - x to the yth power

- (abs n) - absolute value of n

- (gcd m n) - greatest common divisor of m and n

- (lcm m n) - least common multiple of m and n

- (floor x) - round down

- (ceil x) - round up

- (round x) - round to nearest

- (sqrt x) - square root, exact if possible

- (exact-integer-sqrt k) returns floor of square root and the “remainder”

More documentation in docstrings.

# Releases and Dependency Information

Latest stable release: 0.1.1

- All Released Versions
- Development Snapshot Versions

CLI/`deps.edn` dependency information: `clojure org.clojure/math.numeric-tower {:mvn/version "0.1.1"}`

Leiningen dependency information:

`clojure [org.clojure/math.numeric-tower "0.1.1"]`

Maven dependency information:

`xml <dependency> <groupId>org.clojure</groupId> <artifactId>math.numeric-tower</artifactId> <version>0.1.1</version> </dependency>`

# Example Usage

```clojure (ns example.core (:require [clojure.math.numeric-tower :as math]))

(defn- sqr “Uses the numeric tower expt to square a number” [x] (math/expt x 2))

(defn euclidean-squared-distance “Computes the Euclidean squared distance between two sequences” [a b] (reduce + (map (comp sqr -) a b)))

(defn euclidean-distance “Computes the Euclidean distance between two sequences” [a b] (math/sqrt (euclidean-squared-distance a b)))

(let [a [1 2 3 5 8 13 21] b [0 2 4 6 8 10 12]] (euclidean-distance a b))

;;=> 9.643650760992955 ```

Refer to docstrings in the `clojure.math.numeric-tower` namespace for additional documentation.

API Documentation

# Developer Information

- GitHub project
- Bug Tracker
- Continuous Integration

# Changelog

- Release 0.1.1 on 2025-12-30

  - Update parent pom

- Release 0.1.0 on 2024-02-19

  - Update parent pom

- Release 0.0.5 on 2021-12-01

  - Exclude abs to avoid future warning in 1.11

- Release 0.0.4 on 2014-01-16

  - Adjust return type of expt to match base when power is 0.
    - (expt 3M 0) -> 1M
    - (expt 3N 0) -> 1N

- Release 0.0.3 on 2013-12-29

  - Minor improvement to sqrt of ratio.

- Release 0.0.2 on 2012-11-23

  - Added type hints to remove some reflective calls.

- Release 0.0.1 on 2011-10-15

  - Initial release.
  - Source-compatible with clojure.contrib.math, except for the name change.

# License

Distributed under the Eclipse Public License, the same as Clojure.