- Last updated: 2024-10-05T12:12:32Z
- Generator: thi.ng/monopub
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.
7.12.1 (2024-09-16)
- update internal default out codegen handling (4b524f6)
- use
syms
(arg names only) instead ofargs
(possibly with defaults)
- use
7.12.0 (2024-09-05)
- add distCosine() (cosine similarity) (2af6010)
7.11.0 (2024-06-21)
- add eqDist2/3() predicates (5bda768)
- rename various rest args to be more semantically meaningful (8088a56)
- enforce uniform naming convention of internal functions (56992b2)
7.10.23 (2024-03-27)
- update memoizations (aeebfc5)
7.10.20 (2024-03-18)
- fix Vec4.iterator() (63f511e)
7.10.11 (2024-02-22)
- update object destructuring in all pkgs & examples (f36aeb0)
7.10.0 (2024-01-26)
- add linReg() and RSS/SSE functions (9db712c)
- add
linReg()
(linear regression) fn - add
rss()
,rssModel()
andrssLine()
functions (residual sum of squares)
- add
7.9.0 (2024-01-23)
- update VecAPI & impls (3bdccf0)
- add ZERO/ONE consts
- add zeroes()/ones()
7.8.10 (2023-12-12)
- fix #432, update accessors in Vec2/3/4 (9b5136f)
- due to ES2022 syntax target, old approach does not work anymore
- solution: add accessors directly as part of class def
7.8.3 (2023-11-09)
- update all tests (packages T-Z) (020ef6c)
7.8.0 (2023-10-27)
- add mag2/3/4() (3a4063a)
- add VecAPI interface & VEC2/3/4 impls (f06b900)
- update VecAPI & presets (0d9f62b)
- split up random fns into separate files (5c0e4ec)
- rename randomDistrib() => randDistrib()
- deprecate old name
- update imports
- update pkg exports
7.7.20 (2023-10-23)
7.7.19 (2023-10-18)
- update distJaccard(), add docs (a5a6256)
7.7.16 (2023-10-05)
- update minor()/major() (88b3008)
- update iteration order of default impls of both fns
7.7.7 (2023-08-14)
- fix
FromBVecOpV
result arg type (2ca2856)
7.7.0 (2023-06-16)
- add limit2/3/4() (46bbf23)
- avoid/delay sqrt in limit() (c677a54)
7.6.12 (2023-04-19)
- update addmNS/submNS() signatures (00470d1)
7.6.0 (2023-02-05)
- add hash2/3 fns (30383fe)
7.5.24 (2022-11-23)
- update randNormDistrib() args/types (7b419c0)
- add VecOpFNO/VecOpNFO fn type aliases
- update all randNormDistrib() versions
- swap 2nd & 3rd args and make both optional
7.5.11 (2022-08-06)
7.5.2 (2022-05-03)
- fix clamp01/11 signatures (10bc32e)
7.5.1 (2022-04-07)
- update cartesian2 impl (03722d9)
- avoid extraneous multiplies
7.5.0 (2022-03-11)
- add select() fn (b7f9df1)
- centered handling in standardize() (8a5a81f)
7.4.0 (2021-11-22)
- add sdError() (461213e)
- off-by-one error in variance(), add checks, tests (3573fa5)
- fix divisor in variance() (N vs N-1)
- update sd() (use N-1 as divisor)
- add empty checks for vmean/vmedian()
- add tests
7.3.0 (2021-11-22)
- update variance(), sd(), standardize() (b42e315)
- add support for pre-centered inputs to avoid extraneous computation
- add vector length check to avoid NaN for 1D vectors
7.2.0 (2021-11-17)
- Using workspaces for local tools (bf7a404)
Improving the overall build ergonomics
- introduced a tools workspaces
- imported it in all needed packages/examples
- inclusive project root
- testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.
7.1.1 (2021-11-10)
- update all countdown loops (a5f374b)
7.1.0 (2021-11-04)
- add randomDistrib/randNormDistrib() (e21b17d)
- add support for custom random distributions
- add impls for strided & unstrided vectors
- use gaussian as default distrib
- add new VecOpFN types
- update readme
- update defHofOp() (effa433)
- register fixed size versions as impls for generic fn version
7.0.7 (2021-11-03)
- arg types
limit()
, add docs (d9e8404)
7.0.1 (2021-10-13)
- update imports in all pkgs (5fa2b6f)
- add .js suffix for all relative imports
- update imports in all tests/pkgs (effd591)
7.0.0 (2021-10-12)
- major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
- BREAKING CHANGE: discontinue CommonJS & UMD versions
- only ESM modules will be published from now on
- CJS obsolete due to ESM support in recent versions of node:
- i.e. launch NodeJS via:
node --experimental-specifier-resolution=node --experimental-repl-await
- in the node REPL use
await import(...)
instead ofrequire()
- UMD obsolete due to widespread browser support for ESM Also:
- normalize/restructure/reorg all package.json files
- cleanup all build scripts, remove obsolete
- switch from mocha to @thi.ng/testament for all tests
- update all tests in all pkgs (8b582bc)
- update all to use @thi.ng/testament
- update all test stubs (f2d6d53)
- update imports (138571a)
- internal restructure (codegen) (e7e7b2e)
- update imports (b2f0a9f)
- update deps & imports in various pkgs (e1cf29e)
- largely related to recent updates/restructuring of these packages:
- api
- defmulti
- errors
- logger
- largely related to recent updates/restructuring of these packages:
- splitup mapVectors() (d63c359)
- rename internals (51b3687)
6.2.0 (2021-09-03)
- add statistics related vector ops (d6507ad)
- add vmean(), vmedian()
- add center(), standardize(), sd(), variance()
- add formatter support (2bbb54e)
- add ToStringOpts, defFormat(), FORMATTER
- update AVec and GVec impls
- add generic strided dot product (9c34793)
- add
dotS()
for arbitrary sized strided vectors
- add
- add covariance(), correlation() fns (b8d661d)
- add new module re-exports (92e7f73)
- add strided versions of various ops (cbd9576)
- add/update codegen for strided vector ops:
- add assembleS(), compileS()
- update defOpS() / defHopOpS()
- add new supporting fn types for strided ops
- add magS()
- add normalizeS()
- add randomS(), randNormS(), randMinMaxS()
- add arbitrary size impls to various other strided vector ops
- add/update codegen for strided vector ops:
- add new distance metrics (24aa2f4)
- add distBrayCurtis()
- add distCanberra()
- add distHamming()
- add distJaccard()
- add distMinkowski()
- add distSorensenDice()
- add correct type for setNS() (3817d65)
- update standardize() (e87b979)
- avoid final multiply if mag=0
6.1.0 (2021-08-17)
- add tensor product (1fcc3ea)
- add mean, minBounds, maxBounds (640877f)
- add ensureInputs() assertion helper
6.0.1 (2021-06-08)
- re-add missing randNorm2/3/4 fns (0f0e270)
- refactor existing randNorm() for better re-use
6.0.0 (2021-04-24)
- add/update modulo functions (81d2e63)
- BREAKING CHANGE: Introduction of standard libc math functions in @thi.ng/math
causes behavior change/flip of existing
fmod()
&mod()
functions...- swap
fmod()
<>mod()
to align w/ their GLSL & libc counterparts - same goes for
fmodN()
<>modN()
- add
remainder()
/remainderN()
w/ standard libc behavior - update doc strings
- swap
5.3.0 (2021-04-19)
- add componentwise median() (39b5c55)
- replace distHaversine() (9d9d4e8)
- add distHaversineLatLon() & distHaversineLonLat() versions
- deprecate distHaversine()
- update readme
5.2.1 (2021-04-03)
- minor updates (87eac78)
5.2.0 (2021-03-30)
- add distHaversine() (4dcc9cf)
5.1.0 (2021-03-03)
- add softMax() & oneHot() (4f242c8)
- update GVec internals (TS4.2) (e6b7b74)
5.0.0 (2021-02-20)
- update mem mapped type handling (4a6e9b1)
- BREAKING CHANGE: buffer mapping fns use new type string consts
- part of umbrella-wide changes to @thi.ng/api Type aliases (see a333d4182)
- add weightedDistance HOF (8500a79)
- add DistanceFn type
- refine vec2/3/4 buffer types (0e4edb7)
- use the more precise & correct NumericArray instead of Vec
- also update StridedVec & VectorConstructor
4.9.0 (2021-01-21)
- add dist2/3 (eb334fa)
- add explicit return types (zeroes/ones()) (fc2f662)
4.8.2 (2020-12-07)
4.8.0 (2020-11-24)
- add roundN(), update round() (36f07e6)
- round() was errorneously defined what should have been roundN()
- therefore rename round() => roundN()
- add new vector version round()
- add signedVolume() (907438e)
4.7.0 (2020-10-03)
4.6.6 (2020-09-22)
- update/dedupe heading fns (b341e1c)
4.6.5 (2020-09-13)
4.6.0 (2020-08-10)
4.5.0 (2020-06-20)
- add cornerBisector2() (aff9bfa)
4.4.0 (2020-05-14)
- add mapVectors() (61ddde7)
4.3.1 (2020-04-23)
- add missing equals2/3/4 exports (041f590)
4.3.0 (2020-04-23)
- add equals/2/3/4() (34cad0e)
4.2.0 (2020-03-01)
- add safeDiv() (8e9a688)
4.1.0 (2020-02-25)
- add missing types & annotations (TS3.8) (8680e37)
4.0.2 (2020-01-24)
- simplify MultiVecOpXX types (5520968)
4.0.0 (2019-11-09)
- rename strided-scalar op suffixes (SN => NS) (66258d8)
- more consistent use of
S
suffix
- more consistent use of
- BREAKING CHANGE: setSN2/3/4 => setSN2/3/4
- add fill(), add MultiVecOp.impl(), update vop() (21ff930)
- add new intoBuffer(), move fns for wrapped versions (53581f1)
- add more strided vec ops, refactor templates (ca91fa9)
- add strided random ops, types, defHofOpS() codegen (1e46f5a)
- add strided rotate ops (4f2b5a7)
- update readme (f16bb45)
- add mixCubicHermite versions & tangent fns (b382d25)
- fix normalizeS2/3/4 (f048393)
- update random2/3/4 to return new vec if none given (a0be4d4)
- fix out args in mixCubic/mixQuadratic (d02dae6)
- minor optimization for 0-index Vec2/3/4 accessors (a7c561d)
- rename internal strided buffer fns for wrapped vecs (c473592)
3.3.0 (2019-08-21)
- add isNaN(), isInf() vec ops, update readme (ed60d09)
3.2.0 (2019-08-17)
- add atan_2/22/23/24, update readme (e9b156b)
3.1.0 (2019-07-31)
- add new bvec ops & types, update readme (931ee43)
- add
every
/some
unary ops - add
logicAndN
/logicOrN
- add
3.0.1 (2019-07-08)
- reflect output handling (8ec12a4)
3.0.0 (2019-07-07)
- fix #95, update madd/maddN arg order, bug fixes (020b4c8)
- BREAKING CHANGE: update madd/maddN arg order, rename functions
- madd & maddN args now OpenCL/CUDA compatible, i.e.
- madd(a,b,c) => a * b + c
- maddN(a,n,b) => a * n + b
- rename perpendicularLeft/Right => perpendicularCCW/CW
- rename normalLeft/Right => normalCCW/CW
- fix output vec handling in addW fns
- madd & maddN args now OpenCL/CUDA compatible, i.e.
- enable TS strict compiler flags (refactor) (94715ff)
- disable
noImplicitThis
flag
- disable
- add atan, exp_2, log_2, setVN, setVV, minor type fixes (8683c19)
- fix arg types setC, step, smoothStep
- add swizzle setters (114003c)
- add vecOf() ctor fn (25feeee)
- add degrees(), radians(), add fitXX type hints (b313a56)
- add fmod/fmodN fns (GLSL style mod op) (928b95b)
- add bitwise int vec ops (signed/unsigned versions) (a364f1f)
- add integer math ops (signed/unsigned) (c8a997f)
- add bvec types, componentwise logic & comparison ops (7b9f03d)
- rename bitwise ops, add
bit
prefix, i.e.bitAnd
etc.
- rename bitwise ops, add
- update arg types (6d213bd)
- address TS strictNullChecks flag (d46986a)
- replace/remove HOF* template fns (8e1891a)
- add explicit types to workaround typedoc bug (12c002f)
2.5.0 (2019-03-28)
- add Vec2/3/4Like type aliases, update ReadonlyVec (3d5cd61)
- add hash() op and IHash impls for Vec2/3/4 (577d8cf)
- add @thi.ng/binary dep
- update readme
2.4.1 (2019-03-10)
- re-use Fn type aliases (c9a2456)
2.4.0 (2019-03-03)
- add headingSegment*() fns, update readme (6ab6858)
2.3.0 (2019-02-15)
- add fit, fit01, fit11 fns (161d19d)
- improve tpl reuse (74d77f3)
2.2.0 (2019-02-05)
- update imports (zip) (9d8dd32)
2.1.1 (2019-01-31)
- add VecPair type alias, add copyVectors() (58e0a05)
- add corner2, clockwise2, signedAreaC2, isInArray fns (2440ffd)
2.1.0 (2019-01-21)
- migrate direction(), normalLeft/Right2() from geom pkg (07d5f8f)
2.0.0 (2019-01-21)
- update package build scripts & outputs, imports in ~50 packages (b54b703)
- BREAKING CHANGE: enabled multi-outputs (ES6 modules, CJS, UMD)
- build scripts now first build ES6 modules in package root, then call
scripts/bundle-module
to build minified CJS & UMD bundles in/lib
- all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols.
- build scripts now first build ES6 modules in package root, then call
- add addm/addmN, subm/submN (61e4063)
- update/split angleBetween for 2d/3d (e81d8c3)
- add randMinMax (5f87300)
- add default output handling for set/setC/setS fns (311b007)
- fix NaNs in Mat23.scaleWithCenter (92bce73) lack of 0 mat index caused incorrect indexing into point
- minor update opt arg in VecOp* (446a183)
- update copy() (1843702)
1.4.12 (2019-01-02)
- disable default prefix for random*() fns (2e6d196)
1.4.9 (2018-12-27)
- add setC() (eb5f639)
- update gvec, add generic setS() (0c0fce6)
- add gvec copyView()
- gvec copy() returns new gvec()
- memoize ownKeys()
- intern strings
- update field names in declareIndex() (aa5ad97)
- update declareIndices, extract single declareIndex fn (c2556c2)
- update IVector (rename fields), add ICopyView (6e6a33c)
- update gvec, Vec2/3/4, extract iterator impl (7a735f2)
1.4.4 (2018-12-01)
- add faceForward, invSqrt & dotValues* fns (e19f622)
- add/update ops, add docstrings (97ac629)
- add fromHomogeneous3/4()
- add swap*()
- update order & re-export orthoNormal3()
- update arg order step() / smoothStep()
- update
out
handling in:- normalize()
- perpendicular*()
- cartesian() / polar()
- simplify cartesian2()
- add docs
- add sum() (28fd0f1)
- update
out
default behavior & codegens, bugfixes (a373e55)- where possible inject behavior to use 2nd arg as default
out
, iff givenout=null
- update def*() codegens
- fix normalize() / limit()
- where possible inject behavior to use 2nd arg as default
- add project(), signedArea2(), update orthoNormal3() (28f04ac)
- add Vec2/3/4.iterator() (c3d1914)
- add mapBuffer*() fns (1fe9650)
- add proxied gvec(), update mapBuffer*() docs (63458c2)
- add IVector interface impls for gvec() (6cb3b92)
- add addWeighted, eqDeltaArray, mixCubic, mixQuadratic (87510f7)
- add 2d/3d constants, update Vec2/3 (68806d9)
1.4.0 (2018-10-17)
- replace math.ts w/ imports from @thi.ng/maths package (0967929)
- BREAKING CHANGES: re-use @thi.ng/maths functionality instead of internal maths functions.
- add operation specific interfaces, rename Vec3.toPolar() (5c44ad9)
- update class wrappers w/ interface decls
- rename toSpherical3() => toPolar3()
- rename Vec3.toSpherical() => Vec3.toPolar()
- add msub/msubN for all vec types
- add IMinMax interface (34312d8)
- add comparators & ICompare impls for vec2/3/4 (6a0f8aa)
- add axis consts, add/update ops (473ec80)
- add angleRatio2/3(), update angleBetween2/3()
- add static X_AXIS, Y_AXIS, etc. consts
- add static madd/maddN(), msub/msubN() methods
- add static swizzle() methods
- update GVec/Vec2/3/4.mixN() to use n=0.5 as default
- add collate & eqDelta fns, update ctors (221fb7f)
- update mapBuffer()/intoBuffer() args
- add collate2/3/4()
- add asVec2/3/4()
- add eqDelta2/3/4buf() & eqDelta2/3/4array()
- update Vec2/3/4 & Mat23/33 ctors
- replace static Vec2/3/4 methods w/ IVector impls (b2f9af9)
- update Infinity consts in various packages (296e1e0)
1.3.0 (2018-09-28)
- use codegen for unary vec2/3/4 ops (9bee7f8)
- rewrite codegen, add more types & gen ops (#51) (719b27a)
- replace existing generated vec2/3/4 ops w/ defcommon()
- generate more ops, move declareIndices() (#51) (247dec0)
- redefine set(), setN(), pow(), min(), max() as part of defcommon()
- remove obsolete op22/32/42()
- move declareIndices() to codegen.ts
- fix QUARTER_PI (typo)
- remove codegen from main re-exports
1.1.0 (2018-09-10)
- add matrix index & property accessors (3dd0072)
- refactor declareIndices() to take prop names
- add shared $iter helper fn
- update Mat23/33/44 & Vec2/3/4, GVec
- Vec3/4 toString() impls (f4cc0dd)
1.0.0 (2018-09-05)
- add/update transformVectors*(), update types (2eec700)
- add transformVectors1o()
- add transformVectors2o()
- add VecOp2o type, update existing VecOp types
- update x/y/z/w() plain accessor fns
- BREAKING CHANGE: update transformVectors1/2() arg order
- add immutable vec2/3/4 ops (a3c0407)
- also provide wrapped versions as static methods
- rename immutable vec ops, update readme table (2d5d0c8)
- rename
*new
suffix =>*o
(i.e. w/ output)
- rename
0.6.0 (2018-09-03)
- add Vec*.intoBuffer() impls (16aa0c4)
- add missing GVec.mapBuffer()
- add mixBilinear1/2/3/4 (f0ccd0c)
- add new vector ops, update readme (9510f01)
- add msub2/3/4 & msubN2/3/4
- add refract2/3/4
- add perpendicularLeft2 / perpendicularRight2
- add missing arg types (c0fbb4e)
- add opt normalize for angleBetween2/3 (25ea00c)
- update GVec method args (readonly) (ad13151)
- update matrix factories (7001b7a)
- add identity() factories
- make concat() immutable
- update toString() (fixed prec)
0.5.3 (2018-09-01)
- update Vec2/3/4 index signatures (1795f18)
- changed to satisfy ArrayLike interface
0.5.2 (2018-09-01)
- add missing deps (d2b4faf)
0.5.1 (2018-08-31)
- update mulV*() arg order (0a80601)
- align mulV*() arg order w/ rest of fns, i.e. value to be mutated comes first, in this case: vec, mat (before: mat, vec)
- update matrices & types (b8d944e)
- update ReadonlyVec/Mat type aliases & uses
- add Mat44 factories (perspective, frustum, ortho, lookAt)
0.5.0 (2018-08-30)
- consolidate vector consts, add toJSON() impls (bdb5d37)
- only use ZERO4, ONE4, MIN4, MAX4 for vec2/3/4
- add toJSON() impls for all vector & matrix classes
- update types, update GVec, add maths fns, swap impls (d5cec94)
- rename VecOp* types and add generics, add readonly versions
- add GVec.getAt() / setAt() element accessors
- add Vec2/3/4.swap() & fract() impls
- add & rename various math fns (add "1" suffix)
- simplify prop accessors (DRY) (b82a22f)
0.4.0 (2018-08-28)
- add more vec2/3 ops (cd834f8)
- vec2: angleBetween2, bisect2, rotateAroundPoint2
- vec3: angleBetween3, rotateAroundAxis3
0.3.0 (2018-08-27)
- add mix1(), minor cleanups (cfb2b74)
0.2.1 (2018-08-24)
- make Vec & Mat type aliases of NumericArray (fb3c04d)
0.2.0 (2018-08-02)
- add gvec size checks, add IEquiv & Iterable impls (2a13f28)
- make Vec2/3/4 array-like, add IEquiv impls, add tests (3039a35)
- add array index getters/setters
- add .length getter (also for GVec)
- add toCylindrical3() / fromCylindrical3() (74f939c)
- update cylindrical coord conversion, add Vec3 methods (befc778)
0.1.3 (2018-08-01)
- add IVec to all vector class wrappers (68f59f2)
0.1.2 (2018-07-30)
- get*() return types, refactor using set*() (3534274)
0.1.1 (2018-07-29)
- naming convention, add function overview tables (3de5cea)
0.1.0 (2018-07-29)
- add minor/majorAxis(), minor/major2/3 (35af6a5)
- add minXid / maxXid maths helpers
- add vec4 ops & class wrapper (b59fadf)
- re-import updated mat23/33/44 functions (4fdda6a)
- re-import updated mat44, add orthoNormal3 (21b04f0)
- re-add matrix class wrappers, update vec classes (1ec75e6)
- add generic vec fns & class wrapper (e3c6167)
- add swizzle fns, update/unify fn naming (5bba592)
- update get & copy fns to retain buffer types (54b3db2)
- copy/paste mistakes, add tests (2a5a744)