All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
conj):sprague interpolator:extrapolation - extension to default extrapolating (zero, value, boundary values, exception)spow symmetric power (keeping sign of the argument)vec2, vec3 and vec4 single arity destructures inputhenkel-1, henkel-2 with spherical versionsFirst release without SMILE dependency. Also a lot of refactoring [breaking] was done.
:frequencies and :bins-maps data in histogram resultskewness-test, kurtosis-test, normality-testdurbin-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.specialince-C and ince-S (with radial versions) polynomialsRemoved 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.gpfastmath.kernel is rewritten with changed API for rbf and kernelfastmath.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.polynomialsfastmath.specialbinary-measures accepts numerical sequence where 1 is treated as true and other values as false (#33)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 VectorProtofastmath.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-matrixlog-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-testt-test-one-sample, t-test-two-samples (more information returned)z-test-one-sample, z-test-two-samplesf-testpower-divergence-test + special cases
chisq-testmultinomial-likelihood-ratio-testminimum-discrimination-information-testneyman-modified-chisq-testfreeman-tukey-testcressie-read-testad-test-one-sample - Anderson Darling testks-test-one-sample, ks-test-two-samples - Kolmogorov Smirnov testone-way-anova-testlevene-testbrown-forsythe-testfligner-killeen-testkruskal-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 kurtosisr2-determination, eta-sq, omega-sq, epsilon-sq, cohens-f2, cohens-q, cramers-v, cohens-w, tschuprows-ttrim 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 kdeinteger-discrete-distribution and real-discrete-distribution are sorted version of enumerated-int and enumerated-realfastmath.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 :bfgsfastmath.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 normCleaned documentation with more usage examples.
demean functionseq->vec2, seq->vec3 and seq->vec4warp-noiseTOLERANCE constant in fastmath.vectoroptimization 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-vecexpm1 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 ILookupPI, 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.statsnorm 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 builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs | 
| ← | Move to previous article | 
| → | Move to next article | 
| Ctrl+/ | Jump to the search field |