- issue-100 - Support latest neanderthal.
- issue-97 - sorted output for tech.v3.datatype.casting/all-datatypes.
- issue-99 - Unexpected behaviour when comparing certain numeric types.
- issue-94 - Tensor slice would fail after a tensor select of a specific shape.
- issue-68 - structs can be defined with :pointer, :size-t, :offset-t datatypes. These types will differ on 32-bit and 64-bit systems.
- jdk-21 support including pass-by-value ffi. tmducken bindings can now work with jdk-21.
- Faster hamf compose-reducers pathway especially when there are a lot of reducers.
- hamf (2.009) typed nth operations.
- hamf (2.008) perf upgrades.
- hamf (2.007) perf upgrades and additional functionality.
- hamf perf upgrades and additional functionality.
- hamf perf upgrades.
- Important hamf fix in compose-reducers.
- small hamf updates.
- Large hamf upgrade - update to hamf 2.0.
- Fix serious issue with fastruct equiv pathway.
- hamf-upgrade for faster reducer composition, mmin-idx and mmax-idx pathways.
- hamf bugfix in pmap - return value correctly (and efficiently) implements seq and IReduceInit.
- Additional as fast as possible routines for copying byte data in UsafeUtil.
- optimization for larger strings in native-buffer->string
- major fix in native-buffer->string pathway
- various optimizations running duckdb and reading very large datasets.
- fix to quartile-X, median.
- added local-time->microseconds for duckdb integration.
- fix to round
- small perf enhancement to native-buffer/reduce
- Optimizations around a performance case using duckdb.
- tech.resource now uses arraylists for stack tracking and reverses them just before release.
- native-buffer has optimized pathways for reduction if the datatype is :int8
- Pass and return by value are implemented for the JNA backend. This is an initial implementation but the API will not change in that arguments will be copied from something expected to implement java.util.Map and return values will be instances of java.util.Map. Currently return values are datatype structs and the struct implementation's get and reduce pathways have been optimized.
- MAJOR API CHANGES - last before 10.000 release!!
- Nearly certainly the descriptive-statistics change will break your stuff if you are using it.
- Major fix to ham-fisted's hashtables. This should be considered a must-have upgrade.
- tensor
reduce-axis
andmap-axis
have had their argument order changed to be tensor-first as this allows a nice->
application. map-axis
received some optimization attention.
- Fixes related to upgrading TMD to latest ham-fisted.
- added
map-axis
to tensor api. This is similar toreduce-axis
except it does not reduce the dimensions of the matrix but returns a new one.
- Pushing refactoring/simplification of hamf through system. Breaking changes for projects relying specifically on hamf. These are specifically changes related to bringing the whole system out of beta!
- Small update to hamf to do certain reductions in java.
- major speed increase making java double, float, int, and long arrays from existing dtype-next buffers.
- Minor ham-fisted update.
- Major ham-fisted update.
- m-1 macs get an extra search path as homebrew doesn't install libs in standard directories.
- Various ham-fisted updates - faster mapv, etc.
- combined emap operations were producing NAN in some cases.
- ham-fisted contains some fancy helpers so you can implement custom ireduceinit pathways.
- bit-test is now fixed - a binary predicate, not a binary operation.
- hamf-helpers for very high performance scenarios. See ham-fisted changelog.
- arggroup is now heavily optimized and near optimal.
- Docs for dfn/sq.
- Optimization of arggroup by turning into a set of reductions over subbuffers of the input data. This avoids some indexing costs.
- arggroup must respect the order in which it encounters keys. This was done via using group-by-consumer in hamf instead of group-by-reducer. See documentation for group-by-consumer.
- Fix for issue 74 - default result of arggoup is a map that is difficult to use in normal Clojure workflows.
- JNA has to be the default ffi provider for now. It just works better - it finds shared libraries more reliably. IF you want this to change, then get libpython-clj to work and load numpy with the jdk-19 provider.
- JDK-19 Support. Should be automatic; if you want to get rid of a warning see deps.edn file for jdk-19 alias.
- hamf bugfix - map compute.
- HUGE HAMF UPGRADE - see hamf changelog, this one changes the default base hamf map type.
- moved away from google guava, it is no longer a dependency. We now use caffeine and more java.util implementations.
- Faster
mode
.
- First deps.edn based deployment.
- issue 72 - really support
:mode
.
- Brand new experimental jdk-19 support for the ffi layer.
- Faster native buffer specific pathways. Very fast native buffer clone pathway.
- All buffers are comparable.
- index reducers reduce correctly on empty.
- lots more hamf integration work - better native buffer implementation - fixed bug converting 1xY and Yx1 neanderthal matrixes.
- Major changes - hamf integration. Reductions are now first class, type array lists are faster. All container types now support fast reduction via clojure.core/reduce.
- issue 65 - Upgrade guava to remove conflict with clojurescript compiler.
pmap
,upmap
guaranteed not to requireshutdown-agents
.
- unary version of tech.v3.datatype.functional min and max.
- issue 61 - Fix annoying warnings for Clojure 1.11.
- Documentation fixes (and correctness fixes) for gradient1d and readme note.
- Added datatype entries for
:big-integer
and:big-decimal
.
- JSON parsing in this library is deprecated. Please use the charred library for fast json and csv parsing.
- The Tensor deftype is changed to DataTensor as the auto-generated ->Tensor function causes
issues with the compilation of the
->tensor
public API function. Also the function to create the data classes concretely have now been private.
- fast json parsing - as fast as anything on the JVM and faster than most - with options for even faster if you don't need everything to be immutable.
:trim-leading-whitespace?
,:trim-trailing-whitespace?
, and:nil-empty-values?
are all supported in csv parsing to bring feature set up to par with univocity. These changes allow all tech.ml.dataset csv-based unit tests to succeed.
:column-whitelist
and:column-blacklist
are now supported for csv parsing.
- Move to cached thread pool for queue-iter.
- Fast csv parsing.
- Related, function to take an iterator and realize it into a queue in an offline thread returning a new iterator - queue-iter.
(argops/argfilter)
respects boolean/double-nan rules below.
- Double/NaN, when casted to a boolean, evaluates to false. This make the behavior of
(ds/filter-column col identity)
and(dtype/elemwise-cast item :boolean)
consistent across float, double and all object datatypes. - insn is not loaded until required with requiring-resolve from the FFI system. This
allows you to pre-generate FFI bindings during build time but not require insn or
org.ow2.asm/asm
at runtime enabling greater compatibilty with hadoop-based systems which include a legacy version oforg.ow2.asm/asm
which is incompatible with insn.
- tech.v3.parallel - adds ForkJoinPool/commonPool-based pmap, and upmap parallelism constructs that will bail and use map variants if already in a fork join thread.
epoch-nanosecond
is an int64-aliased datatype.
- Removed insn optimizations for tensor ops for now. No one is using those pathways and it just increases startup time.
- Removed logging around JDK-17 specific optimizations for vms < 17.
- Rolling now can handle variables windows that are left, right, and centered relative window positions.
- Added google analytics to documentation so we know which pages are getting referenced the most.
- Removed DType's custom vector class - creating vectors with (vector) is fine up to 6 args which works for now.
- Base Clj java API has faster map/vector creation.
- DType now exposes map factory and fast vector creation.
- A slightly optimized FastStruct is now a datatype java object.
- Expose one of the most useful Clojure functions, repeatedly.
- Expose tensor to neanderthal and nippy freeze/thaw of tensors.
- Expose map,filter from clj interface.
- Added tech.v3.datatype.Pred package to allow fast (in terms of typing) creation of typed unary predicates from java.
- Changed API to rolling so that you can pass in a normal subtraction operator and get the result you expect. This is reverse of how it worked in version 8.064.
- More niceties in the Clojure api.
- Tensor broadcast is fixed which fixed mset!.
- Added tech.v3.datatype.VecMath and tech.v3.datatype.Stats packages to the public Java API..
- More types exposed in Clj.java.
- compile pathway exposed in Clj.java.
- indexMapReduce exposed in DType.java and an example given in java_test.
- Fixed issue with makeTensor
- Added simple descriptor buffer types for asArrayBuffer and asNativeBuffer so users can get to the data in the simplest possible way.
- Java api includes nio buffer support by default.
- Start of changelog.
- Initial cut at java api.