mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
* Implement reduceCallback * Add jsdocs * implement simplifyCallback in other functions * Moved recurse to array.js * Format * Separate transform callback * forEach transform * Renamed applyCallback to simplifyCallback * Simplified index transform * renamed to reducedCallback and simplifiedCallback to simpleCallback * chore: fix linting issue * Added forEach benchmark * renamed simplifyCallback to optimizeCallback --------- Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
import Benchmark from 'benchmark'
|
|
import padRight from 'pad-right'
|
|
import { ones, abs, DenseMatrix, map, random, round } from '../../lib/esm/index.js'
|
|
|
|
const genericMatrix = map(ones(10, 10, 'dense'), _ => round(random(-5, 5), 2))
|
|
const numberMatrix = new DenseMatrix(genericMatrix, 'number')
|
|
const array = genericMatrix.toArray()
|
|
|
|
// console.log('data', array)
|
|
// console.log('abs(data)', abs(array))npm run
|
|
|
|
new Benchmark.Suite()
|
|
.add(pad('abs(genericMatrix)'), () => {
|
|
abs(genericMatrix)
|
|
})
|
|
.add(pad('abs(array)'), () => {
|
|
abs(array)
|
|
})
|
|
.add(pad('abs(numberMatrix)'), () => {
|
|
abs(numberMatrix)
|
|
})
|
|
.add(pad('genericMatrix.map(abs)'), () => {
|
|
genericMatrix.map(abs)
|
|
})
|
|
.add(pad('numberMatrix.map(abs)'), () => {
|
|
numberMatrix.map(abs)
|
|
})
|
|
.add(pad('map(genericMatrix, abs)'), () => {
|
|
map(genericMatrix, abs)
|
|
})
|
|
.add(pad('map(numberMatrix, abs)'), () => {
|
|
map(numberMatrix, abs)
|
|
})
|
|
.add(pad('map(array, abs)'), () => {
|
|
map(array, abs)
|
|
})
|
|
.add(pad('map(array, abs.signatures.number)'), () => {
|
|
map(array, abs.signatures.number)
|
|
})
|
|
.add(pad('genericMatrix.map(abs.signatures.number)'), () => {
|
|
genericMatrix.map(abs.signatures.number)
|
|
})
|
|
.add(pad('numberMatrix.map(abs.signatures.number)'), () => {
|
|
numberMatrix.map(abs.signatures.number)
|
|
})
|
|
.on('cycle', function (event) {
|
|
console.log(String(event.target))
|
|
})
|
|
.on('complete', function () {
|
|
})
|
|
.run()
|
|
|
|
function pad (text) {
|
|
return padRight(text, 42, ' ')
|
|
}
|