closes#2244
- `mnorm` has been renamed to `normalize-matrix`
to reflect what it actually does, which
is normalize a matrix, not find a norm
of a matrix.
- `mnorm` is no longer a word defined here.
- bugfix: previously, `normalize-matrix` found
the supremum of a matrix (`mmax`),
before taking the supremum's absolute
value (`abs`) and dividing the matrix
by it (`m/n`).
for matrices containing only negative
values and 0, the supremum is 0, and
a `div-by-zero` error was thrown.
`normalize-matrix` has been fixed to
first `abs` all the matrix elements,
and then find the supremum and divide,
it also receieved a zero-matrix? guard
for optimization and preventing
`div-by-zero`.
- new alias: `hilbert-schmidt-norm` for
`frobenius-norm`, to go along with
`math.matrices.extras.<hilbert-matrix>`
and improve searchability by physicists.
- new word: `matrix-p-norm`, written as an
analogue of `math.vectors.p-norm`.
- new word: `matrix-p-q-norm`, which generalizes
entrywise matrix norm over the L^p,q
vector space.
- new word: `matrix-p-norm-entrywise`:
`matrix-p-norm`'s fallback
for p =/= 1, 2, inf; analogue of
`math.vectors.p-norm-default`.
- all norm words have gotten new docs,
`zero-matrix?` guards as an optimisation,
and most have gotten new tests.
If '/etc/ld.so.cache' does not contain any old entries
using the 'HeaderOld' struct then it fails with a bad-magic
error before looking for the HeaderNew entries.
My Ubuntu 19.10 system doesn't have any old entries so always
fails here when using 'load-all', which results in the
'extra/llvm' vocab failing due to using 'find-so'.
The fix implemented here is to catch the error and recover from
it by seeking back to the start of the header before looking for
the new header entries.
This caused a small regression in compiler.tree.cleanup on this test:
{ t } [
[ { array } declare 2 <groups> [ . . ] assoc-each ]
\ nth-unsafe inlined?
] unit-test
I'm not entirely sure why it wasn't able to infer the slice that was created
for iteration stays a slice, and never becomes a step-slice, so perhaps there
is some improvement to be made in type inference here.
- Works if the build directory does not exist, assuming it would be created on the root disk containing the path of the first existing parent directory
- Space calculation is wrong, we should be using the available space
- MB is GB, comment was wrong
- Call find-mount-point-info to get the real disk mount point even if the dir does not exist
tensors: Add benchmarking file
tensors: Add addition and multiplication tests for benchmarking
tensors: inlined slicing to improve metrics.
tensors: fix help-lint warnings.
tensors: restore newer matmul
tensors: add fixnum declaration.
tensors: away with you, unsafe!
tensors: transpose added to benchmarks
tensors: optimize matmul to be within an order of magnitude of np.
tensors: remove type declaration.
tensors: optimize matmul.
math.matrices.elimination: move to extra
math.matrices.extras: expand with esoteric, less-used and unfinished code from basis
- math.matrices and .extras receive more words, tests, and docs
- matrix has become a predicate class
- 94% of matrices words have complete docs
- 77% of matrices.extras words have complete docs
- much more consistent naming for constructors etc
- added missing words / features such as main-diagonal and anti-transpose
- optimizations
- lots of documentation
tensors: create tensors vocabulary.
tensors: create file heading
tensors: define tensor constructor.
tensors: add additional constructors.
tensors: add reshaping.
tensors: implement add and include tests.
tensors: add binary operations.
tensors: add scalar multiply.
tensors: added >array functionality
tensors: tests for >array
tensors: unit tests fix
tensors: use more idiomatic >array.
tensors: add multi-methods for scalar multiplication.
tensors: cleaned up >array
tensors: combine a few constructors
tensors: added dims function and unit tests.
tensors: add documentation capabilities.
tensors: added multi-methods for scalar addition/subtraction/division
help.lint.coverage: fix for shadowing "empty" word; prevent the other test-only words from being shadowed too
soundex: move to extra as it's unused; fix authors.txt filename
modify arange to match numpy; replace with naturals
create >float-array for efficient float array construction
use combinators
tensors: documentation added for public functions.
tensors: implement t% and matrix multiplication.
tensors: add slice with non-zero step
tensors: add documentation.
tensors: added transposition funcitonality, with documentation and tests
tensors: add error documentation.
Add error documentation
tensors: fix matmul documentation.
extra/tensors: add tests for arange
tensors: make transpose style more similar
tensors: make some of the PR changes.
tensors: separate shape checking.
tensors: add documentation for non-positive-shape-error.
tensors: add missing comment.
tensors: transpose edits for efficiency
Some work needs to be done with ensuring that resources are cleaned up before reporting resource leaks and exiting. In the meantime, we want TravisCI to be useful enough to catch help-lint errors, so ignore a bunch of errors that it might find. These leaks are still tested for in the more thorough mason CI.