std.math

abs

added in 3.0

(abs x)

returns the absolute value of x

(abs -7) => 7 (abs 7) => 7

aggregates

added in 3.0

(aggregates arr)(aggregates arr ks)(aggregates arr ks m)

finds the aggregates of the array

(aggregates 1 2 3 3 4 5) => (contains {:min 1, :mean 3.0, :stdev 1.4142135623730951, :skew 0.0, :mode 3, :variance 2, :median 3, :max 5, :random number?, :middle 3, :first 1, :last 5, :sum 18, :range 4})

(aggregates 1 2 3 3 4 5 :sum {:product #(apply * %)}) => {:sum 18, :product 360}

ceil

added in 3.0

(ceil x)

finds the ceiling of a number

(ceil 0.1) => 1

combinatorial

added in 3.0

(combinatorial n i)

calculates the result of n choose i

(combinatorial 4 2) => 6

(combinatorial 4 3) => 4

factorial

added in 3.0

(factorial n)

calculates the factorial of n

(factorial 4) => 24

(factorial 10) => 3628800

floor

added in 3.0

(floor x)

finds the floor of a number

(floor 0.1) => 0

histogram

added in 3.0

(histogram xs)(histogram xs n)

creates a histogram of values

(histogram 1 2 3 3 5 5 7 7 8 8 9 4) => 4 2 2 3

kurtosis

added in 3.0

(kurtosis xs)(kurtosis xs stdev)

calculates the kurtosis of the data

(kurtosis 4 5 2 9 5 7 4 5 4) => (approx 2.4722)

log

added in 3.0

(log b x)

calculates the logarithm base b of x

(log 2 2) => 1.0

(log 4 16) => 2.0

log10

added in 3.0

(log10 x)

calculates the log base 10 of x

(log10 2) => 0.3010299956639812

(log10 10) => 1.0

loge

added in 3.0

(loge x)

calculates the natural log of x

(loge 2) => 0.6931471805599453

(loge 10) => 2.302585092994046

mean

added in 3.0

(mean xs)

calculates the average value of a set of data

(mean 1 2 3 4 5) => 3

(mean 1 1.6 7.4 10) => 5.0

median

added in 3.0

(median xs)

calculates the middle value of a set of data

(median 5 2 4 1 3) => 3

(median 7 0 2 3) => 5/2

mode

added in 3.0

(mode xs)

calculates the most frequent value of a set of data

(mode :alan :bob :alan :greg) => :alan

(mode :smith :carpenter :doe :smith :doe) => :smith :doe

rand

added in 3.0

(rand)(rand rng)

returns a random double between 0 and 1

(rand) ;;0.19755427425784822 => number?

(rand (rand-gen)) ;;0.8479218396605446 => number?

rand-digits

added in 3.0

(rand-digits n)

constructs a n digit string

(rand-digits 10) ;; “9417985847” => string?

rand-int

added in 3.0

(rand-int n)(rand-int n rng)

returns a random integer less than n

(rand-int 100) ;; 16 => integer?

rand-nth

added in 3.0

(rand-nth coll)(rand-nth coll rng)

returns a random element in an array

(rand-nth :a :b :c) => #{:a :b :c}

rand-sample

added in 3.0

(rand-sample coll proportions)

takes from the collection given specified proportions

(rand-sample :a :b :c 1 2 3) => keyword?

rand-seed!

added in 3.0

(rand-seed! seed)(rand-seed! rng seed)

sets the seed of a given random number generator

(-> (rand-gen) (rand-seed! 10) (rand)) => (any 0.77132064549269 0.5711645232847797)

skew

added in 3.0

(skew xs)(skew xs stdev)

calculates the skewedness of the data

(skew 4 5 2 9 5 7 4 5 4) => (approx 0.5833)

stdev

added in 3.0

(stdev xs)

calculates the standard deviation for a set of data

(stdev 4 5 2 9 5 7 4 5 4) => 2.0

variance

added in 3.0

(variance xs)

calculates the average of the squared differences from the mean

(variance 4 5 2 9 5 7 4 5 4) => 4