All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
First release without SMILE dependency. Also a lot of refactoring [breaking] was done.
:frequencies
and :bins-maps
data in histogram resultskewness-test
, kurtosis-test
, normality-test
durbin-watson
statlm
and glm
in fastmath.ml.regression
with full analysisfastmath.ml.clustering
- (fuzzy) kmeans++ and dbscan clustering algorithmsdissimilarity
and similarity
can accept data for histogramsbessel-j0
, bessel-j1
, bessel-j
, bessel-i0
, bessel-i1
, bessel-i
, bessel-y0
, bessel-y1
, bessel-y
, bessel-k0
, bessel-k1
, bessel-k
add to fastmath.special
Removed all functions based on SMILE library, most of them are replaced/rewritten.
fastmath.clustering
namespace is moved to the separate fastmath-clustering library.fastmath.gp
moved to the fastmath.interpolation.gp
fastmath.kernel
is rewritten with changed API for rbf
and kernel
fastmath.interpolation
is rewritten with changed API, part of the methods are implemented directly in Clojure, names are unifiedfastmath.distance
rewrittenintegrate-pdf
rewritten to use :gauss-kronrod
integration (safer and faster)fastmath.core
functionality based on functions with inline code not macrosfastmath.polynomials
fastmath.special
dissimilarity
and similarity
distance function of PDF (stats)SMILE
downgraded to 2.6.0 due to licence issue (3.0.2 is GPL, 2.6.0 is LGPL)correlation-matrix
can use only correlation methods (:pearson
, :kendall
and :spearman
)kullback-leibler-divergence
and jensen-shannon-divergence
, use dissimilarity
function instead.RealMatrix
and double[][] matrix interfacesvec->array
converts any vector to double arraySMILE
deps updatedmat->float-array2d
, mat->array
, mat->float-array
- row-wise matrix representations as arraysdebug?
option for :lbfgsb
optimizerrint
accepts scale argument (same as floor
and ceil
)roll-a-dice
to simulate dice rollingdouble-exponent
, double-significand
and ulp
functionsfastmath.solver/quadratic
solver of quadratic equation ax^2+bx+c=0fastmath.quaternion
namespacenegative-zero?
tests for -0.0
valuelinear-optimizer
- linear optimizationmat
, rows->mat
and cols->mat
- additional matrix creatorsnorm
- various matrix norms (0, 1, Inf, max, generalized L_pq, Shatten p-norm, Frobenius)condition
- condition number of the matrixsmooth-maximum
- boltzmann operator, lse, smu, p-norm, mellowmaxfastmath.calculus
- integration (VEGAS+ MC, h-adaptive Cubature and Gauss-Kronrod, ACM wrappers) and differentiations: derivative, gradient and hessian + Richardson extrapolationfastmath.complex
reimplementedmatrix
object name in printing, indentation:lbfgsb
java implementation of L-BFGS-B optimization algorithm, use it instead of :bfgs
(buggy SMILE implementation)2.1.9-SNAPSHOT
renamed to be 2.2.0
- see changes below
fma
- fused multiply and add (+ (* x y) z)
(for java 9+)fastmath.efloat
- floating point operations with error boundsproject
- vector projectionArrayRealVector
extended with VectorProto
fastmath.matrix
- matrix 2x2, 3x3 and 4x4 basic operations (unrolled)binomial-ci
- confidence interval methods for binomial distributiongamlss.dist
):
:zaga
- zero adjusted gamma distribution:nbi
- negative binomial type I:zinbi
- zero inflated negative binomial type I:zanbi
- zero altered negative binomial type I:zip
- poisson zero inflated:zip2
- zero inflated poisson 2:exgaus
- ex-Gaussian, exponentially modified gaussian:zabi
- zero adjusted binomial:zibi
- binomial zero inflated:bb
- beta binomial:zabb
- zero adjusted beta binomial:zibb
- zero inflated beta binomial:kolmogorov
- Kolmogorov distribution:half-normal
- half-normal distribution:truncated
and :mixture
distributions:multinomial
distributionhpdi-extent
and pi-extent
- new extents based on HPDI and PI from rethinking
R packagedistribution-parameters
accept a keyword additionallyfastmath.solver/find-root
- root solver for univariate functionsdelta-eq
and delta=
for checking eqality with given accuracy.coefficient-matrix
and correlation-matrix
log-exp
functionswmean
), median (wmedian
) and quantiles (wquantile
,wquantiles
):cramer-von-misses
distribution (based on finite difference)integrate-pdf
converted from private to publiccontingency-2x2-measures
- selection of 2x2 contingency measuresfastmath.stats.bootstrap
introduced as the replacement of fastmath.stats/bootstrap
function (now deprecated)p-value
- helper for calculating p-valuecontingency-table
- calculate frequenciesbinomial-test
t-test-one-sample
, t-test-two-samples
(more information returned)z-test-one-sample
, z-test-two-samples
f-test
power-divergence-test
+ special cases
chisq-test
multinomial-likelihood-ratio-test
minimum-discrimination-information-test
neyman-modified-chisq-test
freeman-tukey-test
cressie-read-test
ad-test-one-sample
- Anderson Darling testks-test-one-sample
, ks-test-two-samples
- Kolmogorov Smirnov testone-way-anova-test
levene-test
brown-forsythe-test
fligner-killeen-test
kruskal-test
- Kruskal-Wallis rank sum test(set! *warn-on-reflection* true)
removed (motivation)ttest-
-> t-test-
:histogram
issues with low number of samplesfast-max
and fast-min
had wrong inline operationset-seed
calls protocol for PRNGsintegrate-pdf
accuracy increasednrd
fixed when bandwidth was 0use-primitive-operators
accepts optional set of symbols which shouldn't be importedabs
redefinition in vector
was not properly implemented (problem was visible when vector
was precompiled with javac for Clojure2d)ball-random
- unit ball random vectorsequence-generator
:ball
added - unit ball random samplingceil
and floor
can snap to the nearest multiply of scale parameter (optional)next-double
and prev-double
to properly cross 0.0abs
)jinc
- besselj1(x)/xmuladd
macroevalpoly
and mevalpoly
- evaluate polynomial (from Julia)makepoly
create polynomial functionSi
and Ci
- https://dlmf.nist.gov/6.2#iiskewness
and kurtosis
r2-determination
, eta-sq
, omega-sq
, epsilon-sq
, cohens-f2
, cohens-q
, cramers-v
, cohens-w
, tschuprows-t
trim
and winsor
data based on quantilesdist-ang
- angular distancesim-cos
- cosine similarityangular
- refers to angular distance->seq
in fastmath.random
can accept sampling scheme (:uniform
, :stratified
and :systematic
)softmax
, logsoftmax
, logsumexp
, logmeanexp
, shift
(adds a value to all elements), average
(mean / weighted average)moment
didn't work properly for certain caseseffect-size
methods fixedfastmath.distance/cosine
- refers to cosine similarity nowcontinuous-distribution
is the same as kde
integer-discrete-distribution
and real-discrete-distribution
are sorted version of enumerated-int
and enumerated-real
fastmath.vector/dist-cos
- wrong implementationrhombus
is now a real rhombus, triangle
is equilateral now (cont. #8)cell->mid
for :triangle
grid returned wrong mid point for down
triangles (#8):triangle
grid anchor is 3d now, last coordinate indicates triangle position (up/down)l-bfgs-b
optimizer as :bfgs
fastmath.gp
relies now on SMILE backend (openblas/mkl)set-seed!
accept :smile
RNG which calls smile.math.MathEx/setSeed
function. Also, without RNG function will set seed to both: Smile and default-rng
.:kde
distribution - create distribution based on kernel density estimationmoving-average-filter
- moving average smoothingkernel-smoothing-filter
- signal smoothing filter using kernel methodssavgol-filter
- Savitzky-Golay smoothing filterBreaking change: due to significant change of SMILE API I decided to remove three ML namespaces: classification and regression. They probably be back as a separated bindings or incorporeted into SMILE directly.
lloyd
k-means variantsspectral
clusteringgp
namespace (GaussianProcesses) - moved from regression namespaceneural-gas
clustering:outliers?
key is removed from regrouped data for clusters, now :outliers
key is created when outliers are presentround-even
- even (or IEEE/IEC) roundingcut
- cut range into even intervalsslice-range
- cut range into even steps:dense
rank ties methodrank
and order
chagned to be zero based.co-intervals
works the same as in R nowgroup-by-intervals
checks all intervals instead the first onemoment
when center is nil should use meanmoment
functionsecond-moment
(invalid implementation)cb
as cube of the numbermnorm
- macro version of norm
Cleaned documentation with more usage examples.
demean
functionseq->vec2
, seq->vec3
and seq->vec4
warp-noise
TOLERANCE
constant in fastmath.vector
optimization
package with various optimization methodsclassification
and regression
refactoredkernel-density
moved to kernel
namespacemake-vector
returns vector for given number of dimensions and optional sequence.IPersistentVector
to work with vector?
clamp
, zero-count
, nonzero-count
, as-vec
expm1
functionhaversine
and haversine-dist
(distance)nan?
, inf?
, valid-double?
, invalid-double?
, between?
co-intervals
(same as R's function). Also group-by-intervals
.kernel-density-ci
for kernel density with confidence intervalfmap
instead of applyf
(now deprecated)kernel-density
is now multimethodhistogram
:bins
contain starting point and sample counts onlylcm
- least common multiplierReversible
Indexed
ILookup
PI
, E
etc.)GAMMA
constant name clashstats-map
returns list of outliers rather than number of outliers:bessel
vector field removed (hard to limit input range)sample
can now return pairs of [x,(f x)]
.fastmath.clustering
namespacek-means
from fastmath.stats
norm
when domain is a point, returns range start when value is less or equal domain, range end otherwisesample
function-interpolator
suffix)estimation-strategy
can be passed to any function calculating quantiles/percentilesstats-map
doesn't contain select keys option anymoreInitial version created from Clojure2d
library.
Can you improve this documentation? These fine people already did:
GenerateMe, tsulej, genmeblog, generateme, genme & tslEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close