mathjs 10.5.2 → 10.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HISTORY.md +8 -0
- package/lib/browser/math.js +3 -3
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/version.js +1 -1
- package/lib/esm/version.js +1 -1
- package/package.json +6 -11
- package/docs/command_line_interface.md +0 -87
- package/docs/core/chaining.md +0 -41
- package/docs/core/configuration.md +0 -144
- package/docs/core/extension.md +0 -263
- package/docs/core/index.md +0 -21
- package/docs/core/serialization.md +0 -50
- package/docs/custom_bundling.md +0 -116
- package/docs/datatypes/bignumbers.md +0 -102
- package/docs/datatypes/complex_numbers.md +0 -168
- package/docs/datatypes/fractions.md +0 -75
- package/docs/datatypes/index.md +0 -67
- package/docs/datatypes/matrices.md +0 -375
- package/docs/datatypes/numbers.md +0 -106
- package/docs/datatypes/units.md +0 -444
- package/docs/expressions/algebra.md +0 -110
- package/docs/expressions/customization.md +0 -379
- package/docs/expressions/expression_trees.md +0 -710
- package/docs/expressions/html_classes.md +0 -38
- package/docs/expressions/index.md +0 -21
- package/docs/expressions/parsing.md +0 -224
- package/docs/expressions/security.md +0 -89
- package/docs/expressions/syntax.md +0 -706
- package/docs/getting_started.md +0 -124
- package/docs/index.md +0 -39
- package/docs/reference/classes/densematrix.md +0 -247
- package/docs/reference/classes/fibonacciheap.md +0 -70
- package/docs/reference/classes/matrixindex.md +0 -133
- package/docs/reference/classes/matrixrange.md +0 -158
- package/docs/reference/classes/resultset.md +0 -47
- package/docs/reference/classes/sparsematrix.md +0 -245
- package/docs/reference/classes/unit.md +0 -242
- package/docs/reference/classes.md +0 -86
- package/docs/reference/constants.md +0 -29
- package/docs/reference/functions/abs.md +0 -46
- package/docs/reference/functions/acos.md +0 -49
- package/docs/reference/functions/acosh.md +0 -47
- package/docs/reference/functions/acot.md +0 -48
- package/docs/reference/functions/acoth.md +0 -46
- package/docs/reference/functions/acsc.md +0 -49
- package/docs/reference/functions/acsch.md +0 -46
- package/docs/reference/functions/add.md +0 -59
- package/docs/reference/functions/and.md +0 -53
- package/docs/reference/functions/apply.md +0 -56
- package/docs/reference/functions/arg.md +0 -53
- package/docs/reference/functions/asec.md +0 -49
- package/docs/reference/functions/asech.md +0 -46
- package/docs/reference/functions/asin.md +0 -49
- package/docs/reference/functions/asinh.md +0 -46
- package/docs/reference/functions/atan.md +0 -49
- package/docs/reference/functions/atan2.md +0 -56
- package/docs/reference/functions/atanh.md +0 -46
- package/docs/reference/functions/bellNumbers.md +0 -45
- package/docs/reference/functions/bignumber.md +0 -47
- package/docs/reference/functions/bin.md +0 -45
- package/docs/reference/functions/bitAnd.md +0 -51
- package/docs/reference/functions/bitNot.md +0 -51
- package/docs/reference/functions/bitOr.md +0 -52
- package/docs/reference/functions/bitXor.md +0 -51
- package/docs/reference/functions/boolean.md +0 -50
- package/docs/reference/functions/catalan.md +0 -45
- package/docs/reference/functions/cbrt.md +0 -60
- package/docs/reference/functions/ceil.md +0 -63
- package/docs/reference/functions/chain.md +0 -54
- package/docs/reference/functions/clone.md +0 -43
- package/docs/reference/functions/column.md +0 -45
- package/docs/reference/functions/combinations.md +0 -49
- package/docs/reference/functions/combinationsWithRep.md +0 -49
- package/docs/reference/functions/compare.md +0 -67
- package/docs/reference/functions/compareNatural.md +0 -92
- package/docs/reference/functions/compareText.md +0 -54
- package/docs/reference/functions/compile.md +0 -56
- package/docs/reference/functions/complex.md +0 -17
- package/docs/reference/functions/composition.md +0 -46
- package/docs/reference/functions/concat.md +0 -56
- package/docs/reference/functions/config.md +0 -44
- package/docs/reference/functions/conj.md +0 -50
- package/docs/reference/functions/cos.md +0 -51
- package/docs/reference/functions/cosh.md +0 -46
- package/docs/reference/functions/cot.md +0 -47
- package/docs/reference/functions/coth.md +0 -49
- package/docs/reference/functions/count.md +0 -45
- package/docs/reference/functions/createUnit.md +0 -52
- package/docs/reference/functions/cross.md +0 -58
- package/docs/reference/functions/csc.md +0 -47
- package/docs/reference/functions/csch.md +0 -49
- package/docs/reference/functions/ctranspose.md +0 -50
- package/docs/reference/functions/cube.md +0 -51
- package/docs/reference/functions/cumsum.md +0 -57
- package/docs/reference/functions/deepEqual.md +0 -53
- package/docs/reference/functions/derivative.md +0 -61
- package/docs/reference/functions/det.md +0 -49
- package/docs/reference/functions/diag.md +0 -61
- package/docs/reference/functions/diff.md +0 -70
- package/docs/reference/functions/distance.md +0 -80
- package/docs/reference/functions/divide.md +0 -55
- package/docs/reference/functions/dot.md +0 -48
- package/docs/reference/functions/dotDivide.md +0 -52
- package/docs/reference/functions/dotMultiply.md +0 -52
- package/docs/reference/functions/dotPow.md +0 -49
- package/docs/reference/functions/eigs.md +0 -54
- package/docs/reference/functions/equal.md +0 -75
- package/docs/reference/functions/equalText.md +0 -53
- package/docs/reference/functions/erf.md +0 -49
- package/docs/reference/functions/evaluate.md +0 -56
- package/docs/reference/functions/exp.md +0 -54
- package/docs/reference/functions/expm.md +0 -49
- package/docs/reference/functions/expm1.md +0 -54
- package/docs/reference/functions/factorial.md +0 -49
- package/docs/reference/functions/fft.md +0 -35
- package/docs/reference/functions/filter.md +0 -50
- package/docs/reference/functions/fix.md +0 -62
- package/docs/reference/functions/flatten.md +0 -46
- package/docs/reference/functions/floor.md +0 -66
- package/docs/reference/functions/forEach.md +0 -41
- package/docs/reference/functions/format.md +0 -127
- package/docs/reference/functions/fraction.md +0 -45
- package/docs/reference/functions/gamma.md +0 -49
- package/docs/reference/functions/gcd.md +0 -50
- package/docs/reference/functions/getMatrixDataType.md +0 -59
- package/docs/reference/functions/hasNumericValue.md +0 -55
- package/docs/reference/functions/help.md +0 -42
- package/docs/reference/functions/hex.md +0 -45
- package/docs/reference/functions/hypot.md +0 -51
- package/docs/reference/functions/identity.md +0 -57
- package/docs/reference/functions/ifft.md +0 -35
- package/docs/reference/functions/im.md +0 -53
- package/docs/reference/functions/import.md +0 -68
- package/docs/reference/functions/index.md +0 -55
- package/docs/reference/functions/intersect.md +0 -50
- package/docs/reference/functions/inv.md +0 -45
- package/docs/reference/functions/invmod.md +0 -47
- package/docs/reference/functions/isInteger.md +0 -55
- package/docs/reference/functions/isNaN.md +0 -56
- package/docs/reference/functions/isNegative.md +0 -55
- package/docs/reference/functions/isNumeric.md +0 -55
- package/docs/reference/functions/isPositive.md +0 -57
- package/docs/reference/functions/isPrime.md +0 -54
- package/docs/reference/functions/isZero.md +0 -59
- package/docs/reference/functions/kldivergence.md +0 -41
- package/docs/reference/functions/kron.md +0 -53
- package/docs/reference/functions/larger.md +0 -60
- package/docs/reference/functions/largerEq.md +0 -56
- package/docs/reference/functions/lcm.md +0 -54
- package/docs/reference/functions/leafCount.md +0 -52
- package/docs/reference/functions/leftShift.md +0 -52
- package/docs/reference/functions/lgamma.md +0 -46
- package/docs/reference/functions/log.md +0 -57
- package/docs/reference/functions/log10.md +0 -50
- package/docs/reference/functions/log1p.md +0 -54
- package/docs/reference/functions/log2.md +0 -50
- package/docs/reference/functions/lsolve.md +0 -51
- package/docs/reference/functions/lsolveAll.md +0 -51
- package/docs/reference/functions/lup.md +0 -52
- package/docs/reference/functions/lusolve.md +0 -59
- package/docs/reference/functions/mad.md +0 -50
- package/docs/reference/functions/map.md +0 -65
- package/docs/reference/functions/matrix.md +0 -56
- package/docs/reference/functions/matrixFromColumns.md +0 -49
- package/docs/reference/functions/matrixFromFunction.md +0 -54
- package/docs/reference/functions/matrixFromRows.md +0 -49
- package/docs/reference/functions/max.md +0 -61
- package/docs/reference/functions/mean.md +0 -57
- package/docs/reference/functions/median.md +0 -57
- package/docs/reference/functions/min.md +0 -61
- package/docs/reference/functions/mod.md +0 -59
- package/docs/reference/functions/mode.md +0 -50
- package/docs/reference/functions/multinomial.md +0 -46
- package/docs/reference/functions/multiply.md +0 -60
- package/docs/reference/functions/norm.md +0 -59
- package/docs/reference/functions/not.md +0 -50
- package/docs/reference/functions/nthRoot.md +0 -53
- package/docs/reference/functions/nthRoots.md +0 -58
- package/docs/reference/functions/number.md +0 -49
- package/docs/reference/functions/numeric.md +0 -52
- package/docs/reference/functions/oct.md +0 -45
- package/docs/reference/functions/ones.md +0 -59
- package/docs/reference/functions/or.md +0 -53
- package/docs/reference/functions/parse.md +0 -56
- package/docs/reference/functions/parser.md +0 -70
- package/docs/reference/functions/partitionSelect.md +0 -53
- package/docs/reference/functions/permutations.md +0 -51
- package/docs/reference/functions/pickRandom.md +0 -59
- package/docs/reference/functions/pinv.md +0 -44
- package/docs/reference/functions/pow.md +0 -65
- package/docs/reference/functions/print.md +0 -64
- package/docs/reference/functions/prod.md +0 -55
- package/docs/reference/functions/qr.md +0 -65
- package/docs/reference/functions/quantileSeq.md +0 -62
- package/docs/reference/functions/random.md +0 -54
- package/docs/reference/functions/randomInt.md +0 -53
- package/docs/reference/functions/range.md +0 -70
- package/docs/reference/functions/rationalize.md +0 -68
- package/docs/reference/functions/re.md +0 -53
- package/docs/reference/functions/reshape.md +0 -60
- package/docs/reference/functions/resize.md +0 -51
- package/docs/reference/functions/resolve.md +0 -46
- package/docs/reference/functions/rightArithShift.md +0 -52
- package/docs/reference/functions/rightLogShift.md +0 -52
- package/docs/reference/functions/rotate.md +0 -53
- package/docs/reference/functions/rotationMatrix.md +0 -57
- package/docs/reference/functions/round.md +0 -61
- package/docs/reference/functions/row.md +0 -45
- package/docs/reference/functions/sec.md +0 -47
- package/docs/reference/functions/sech.md +0 -49
- package/docs/reference/functions/setCartesian.md +0 -49
- package/docs/reference/functions/setDifference.md +0 -47
- package/docs/reference/functions/setDistinct.md +0 -43
- package/docs/reference/functions/setIntersect.md +0 -46
- package/docs/reference/functions/setIsSubset.md +0 -47
- package/docs/reference/functions/setMultiplicity.md +0 -46
- package/docs/reference/functions/setPowerset.md +0 -43
- package/docs/reference/functions/setSize.md +0 -47
- package/docs/reference/functions/setSymDifference.md +0 -47
- package/docs/reference/functions/setUnion.md +0 -46
- package/docs/reference/functions/sign.md +0 -52
- package/docs/reference/functions/simplify.md +0 -130
- package/docs/reference/functions/simplifyConstant.md +0 -52
- package/docs/reference/functions/simplifyCore.md +0 -50
- package/docs/reference/functions/sin.md +0 -51
- package/docs/reference/functions/sinh.md +0 -46
- package/docs/reference/functions/size.md +0 -50
- package/docs/reference/functions/slu.md +0 -57
- package/docs/reference/functions/smaller.md +0 -60
- package/docs/reference/functions/smallerEq.md +0 -56
- package/docs/reference/functions/sort.md +0 -56
- package/docs/reference/functions/sparse.md +0 -51
- package/docs/reference/functions/splitUnit.md +0 -37
- package/docs/reference/functions/sqrt.md +0 -50
- package/docs/reference/functions/sqrtm.md +0 -46
- package/docs/reference/functions/square.md +0 -51
- package/docs/reference/functions/squeeze.md +0 -53
- package/docs/reference/functions/std.md +0 -76
- package/docs/reference/functions/stirlingS2.md +0 -52
- package/docs/reference/functions/string.md +0 -49
- package/docs/reference/functions/subset.md +0 -65
- package/docs/reference/functions/subtract.md +0 -54
- package/docs/reference/functions/sum.md +0 -54
- package/docs/reference/functions/symbolicEqual.md +0 -62
- package/docs/reference/functions/tan.md +0 -49
- package/docs/reference/functions/tanh.md +0 -50
- package/docs/reference/functions/to.md +0 -47
- package/docs/reference/functions/trace.md +0 -50
- package/docs/reference/functions/transpose.md +0 -49
- package/docs/reference/functions/typeOf.md +0 -81
- package/docs/reference/functions/typed.md +0 -56
- package/docs/reference/functions/unaryMinus.md +0 -49
- package/docs/reference/functions/unaryPlus.md +0 -48
- package/docs/reference/functions/unequal.md +0 -74
- package/docs/reference/functions/unit.md +0 -48
- package/docs/reference/functions/usolve.md +0 -51
- package/docs/reference/functions/usolveAll.md +0 -51
- package/docs/reference/functions/variance.md +0 -78
- package/docs/reference/functions/xgcd.md +0 -47
- package/docs/reference/functions/xor.md +0 -53
- package/docs/reference/functions/zeros.md +0 -57
- package/docs/reference/functions.md +0 -297
- package/docs/reference/index.md +0 -5
- package/examples/advanced/convert_fraction_to_bignumber.js +0 -59
- package/examples/advanced/custom_argument_parsing.js +0 -98
- package/examples/advanced/custom_datatype.js +0 -56
- package/examples/advanced/custom_evaluate_using_factories.js +0 -19
- package/examples/advanced/custom_evaluate_using_import.js +0 -18
- package/examples/advanced/custom_loading.js +0 -33
- package/examples/advanced/custom_relational_functions.js +0 -62
- package/examples/advanced/custom_scope_objects.js +0 -115
- package/examples/advanced/expression_trees.js +0 -55
- package/examples/advanced/function_transform.js +0 -50
- package/examples/advanced/more_secure_eval.js +0 -36
- package/examples/advanced/use_bigint.js +0 -43
- package/examples/advanced/web_server/math_worker.js +0 -24
- package/examples/advanced/web_server/server.js +0 -80
- package/examples/algebra.js +0 -34
- package/examples/basic_usage.js +0 -49
- package/examples/bignumbers.js +0 -52
- package/examples/browser/angle_configuration.html +0 -134
- package/examples/browser/basic_usage.html +0 -39
- package/examples/browser/currency_conversion.html +0 -125
- package/examples/browser/custom_separators.html +0 -81
- package/examples/browser/plot.html +0 -78
- package/examples/browser/pretty_printing_with_mathjax.html +0 -122
- package/examples/browser/printing_html.html +0 -170
- package/examples/browser/requirejs_loading.html +0 -20
- package/examples/browser/rocket_trajectory_optimization.html +0 -301
- package/examples/browser/webworkers/webworkers.html +0 -80
- package/examples/browser/webworkers/worker.js +0 -28
- package/examples/chaining.js +0 -56
- package/examples/complex_numbers.js +0 -67
- package/examples/expressions.js +0 -188
- package/examples/fractions.js +0 -74
- package/examples/import.js +0 -95
- package/examples/matrices.js +0 -101
- package/examples/objects.js +0 -35
- package/examples/package.json +0 -3
- package/examples/serialization.js +0 -16
- package/examples/sparse_matrices.js +0 -19
- package/examples/units.js +0 -108
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// complex numbers
|
|
2
|
-
|
|
3
|
-
// load js (using node.js)
|
|
4
|
-
const { complex, add, multiply, sin, sqrt, pi, equal, sort, format } = require('..')
|
|
5
|
-
|
|
6
|
-
// create a complex number with a numeric real and complex part
|
|
7
|
-
console.log('create and manipulate complex numbers')
|
|
8
|
-
const a = complex(2, 3)
|
|
9
|
-
print(a) // 2 + 3i
|
|
10
|
-
|
|
11
|
-
// read the real and complex parts of the complex number
|
|
12
|
-
print(a.re) // 2
|
|
13
|
-
print(a.im) // 3
|
|
14
|
-
|
|
15
|
-
// clone a complex value
|
|
16
|
-
const clone = a.clone()
|
|
17
|
-
print(clone) // 2 + 3i
|
|
18
|
-
|
|
19
|
-
// adjust the complex value
|
|
20
|
-
a.re = 5
|
|
21
|
-
print(a) // 5 + 3i
|
|
22
|
-
|
|
23
|
-
// create a complex number by providing a string with real and complex parts
|
|
24
|
-
const b = complex('3-7i')
|
|
25
|
-
print(b) // 3 - 7i
|
|
26
|
-
console.log()
|
|
27
|
-
|
|
28
|
-
// perform operations with complex numbers
|
|
29
|
-
console.log('perform operations')
|
|
30
|
-
print(add(a, b)) // 8 - 4i
|
|
31
|
-
print(multiply(a, b)) // 36 - 26i
|
|
32
|
-
print(sin(a)) // -9.6541254768548 + 2.8416922956064i
|
|
33
|
-
|
|
34
|
-
// some operations will return a complex number depending on the arguments
|
|
35
|
-
print(sqrt(4)) // 2
|
|
36
|
-
print(sqrt(-4)) // 2i
|
|
37
|
-
console.log()
|
|
38
|
-
|
|
39
|
-
// create a complex number from polar coordinates
|
|
40
|
-
console.log('create complex numbers with polar coordinates')
|
|
41
|
-
const c = complex({ r: sqrt(2), phi: pi / 4 })
|
|
42
|
-
print(c) // 1 + i
|
|
43
|
-
|
|
44
|
-
// get polar coordinates of a complex number
|
|
45
|
-
const d = complex(3, 4)
|
|
46
|
-
console.log(d.abs(), d.arg()) // radius = 5, phi = 0.9272952180016122
|
|
47
|
-
console.log()
|
|
48
|
-
|
|
49
|
-
// comparision operations
|
|
50
|
-
// note that there is no mathematical ordering defined for complex numbers
|
|
51
|
-
// we can only check equality. To sort a list with complex numbers,
|
|
52
|
-
// the natural sorting can be used
|
|
53
|
-
console.log('\ncomparision and sorting operations')
|
|
54
|
-
console.log('equal', equal(a, b)) // returns false
|
|
55
|
-
const values = [a, b, c]
|
|
56
|
-
console.log('values:', format(values, 14)) // [5 + 3i, 3 - 7i, 1 + i]
|
|
57
|
-
sort(values, 'natural')
|
|
58
|
-
console.log('sorted:', format(values, 14)) // [1 + i, 3 - 7i, 5 + 3i]
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Helper function to output a value in the console. Value will be formatted.
|
|
62
|
-
* @param {*} value
|
|
63
|
-
*/
|
|
64
|
-
function print (value) {
|
|
65
|
-
const precision = 14
|
|
66
|
-
console.log(format(value, precision))
|
|
67
|
-
}
|
package/examples/expressions.js
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Expressions can be evaluated in various ways:
|
|
3
|
-
*
|
|
4
|
-
* 1. using the function math.evaluate
|
|
5
|
-
* 2. using the function math.parse
|
|
6
|
-
* 3. using a parser. A parser contains functions evaluate and parse,
|
|
7
|
-
* and keeps a scope with assigned variables in memory
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
// load math.js (using node.js)
|
|
11
|
-
const math = require('..')
|
|
12
|
-
|
|
13
|
-
// 1. using the function math.evaluate
|
|
14
|
-
//
|
|
15
|
-
// Function `evaluate` accepts a single expression or an array with
|
|
16
|
-
// expressions as first argument, and has an optional second argument
|
|
17
|
-
// containing a scope with variables and functions. The scope is a regular
|
|
18
|
-
// JavaScript Object. The scope will be used to resolve symbols, and to write
|
|
19
|
-
// assigned variables or function.
|
|
20
|
-
console.log('1. USING FUNCTION MATH.EVAL')
|
|
21
|
-
|
|
22
|
-
// evaluate expressions
|
|
23
|
-
console.log('\nevaluate expressions')
|
|
24
|
-
print(math.evaluate('sqrt(3^2 + 4^2)')) // 5
|
|
25
|
-
print(math.evaluate('sqrt(-4)')) // 2i
|
|
26
|
-
print(math.evaluate('2 inch to cm')) // 5.08 cm
|
|
27
|
-
print(math.evaluate('cos(45 deg)')) // 0.70711
|
|
28
|
-
|
|
29
|
-
// evaluate multiple expressions at once
|
|
30
|
-
console.log('\nevaluate multiple expressions at once')
|
|
31
|
-
print(math.evaluate([
|
|
32
|
-
'f = 3',
|
|
33
|
-
'g = 4',
|
|
34
|
-
'f * g'
|
|
35
|
-
])) // [3, 4, 12]
|
|
36
|
-
|
|
37
|
-
// provide a scope (just a regular JavaScript Object)
|
|
38
|
-
console.log('\nevaluate expressions providing a scope with variables and functions')
|
|
39
|
-
const scope = {
|
|
40
|
-
a: 3,
|
|
41
|
-
b: 4
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// variables can be read from the scope
|
|
45
|
-
print(math.evaluate('a * b', scope)) // 12
|
|
46
|
-
|
|
47
|
-
// variable assignments are written to the scope
|
|
48
|
-
print(math.evaluate('c = 2.3 + 4.5', scope)) // 6.8
|
|
49
|
-
print(scope.c) // 6.8
|
|
50
|
-
|
|
51
|
-
// scope can contain both variables and functions
|
|
52
|
-
scope.hello = function (name) {
|
|
53
|
-
return 'hello, ' + name + '!'
|
|
54
|
-
}
|
|
55
|
-
print(math.evaluate('hello("hero")', scope)) // "hello, hero!"
|
|
56
|
-
|
|
57
|
-
// define a function as an expression
|
|
58
|
-
const f = math.evaluate('f(x) = x ^ a', scope)
|
|
59
|
-
print(f(2)) // 8
|
|
60
|
-
print(scope.f(2)) // 8
|
|
61
|
-
|
|
62
|
-
// 2. using function math.parse
|
|
63
|
-
//
|
|
64
|
-
// Function `math.parse` parses expressions into a node tree. The syntax is
|
|
65
|
-
// similar to function `math.evaluate`.
|
|
66
|
-
// Function `parse` accepts a single expression or an array with
|
|
67
|
-
// expressions as first argument. The function returns a node tree, which
|
|
68
|
-
// then can be compiled against math, and then evaluated against an (optional
|
|
69
|
-
// scope. This scope is a regular JavaScript Object. The scope will be used
|
|
70
|
-
// to resolve symbols, and to write assigned variables or function.
|
|
71
|
-
console.log('\n2. USING FUNCTION MATH.PARSE')
|
|
72
|
-
|
|
73
|
-
// parse an expression
|
|
74
|
-
console.log('\nparse an expression into a node tree')
|
|
75
|
-
const node1 = math.parse('sqrt(3^2 + 4^2)')
|
|
76
|
-
print(node1.toString()) // "sqrt((3 ^ 2) + (4 ^ 2))"
|
|
77
|
-
|
|
78
|
-
// compile and evaluate the compiled code
|
|
79
|
-
// you could also do this in two steps: node1.compile().evaluate()
|
|
80
|
-
print(node1.evaluate()) // 5
|
|
81
|
-
|
|
82
|
-
// provide a scope
|
|
83
|
-
console.log('\nprovide a scope')
|
|
84
|
-
const node2 = math.parse('x^a')
|
|
85
|
-
const code2 = node2.compile()
|
|
86
|
-
print(node2.toString()) // "x ^ a"
|
|
87
|
-
const scope2 = {
|
|
88
|
-
x: 3,
|
|
89
|
-
a: 2
|
|
90
|
-
}
|
|
91
|
-
print(code2.evaluate(scope2)) // 9
|
|
92
|
-
|
|
93
|
-
// change a value in the scope and re-evaluate the node
|
|
94
|
-
scope2.a = 3
|
|
95
|
-
print(code2.evaluate(scope2)) // 27
|
|
96
|
-
|
|
97
|
-
// 3. using function math.compile
|
|
98
|
-
//
|
|
99
|
-
// Function `math.compile` compiles expressions into a node tree. The syntax is
|
|
100
|
-
// similar to function `math.evaluate`.
|
|
101
|
-
// Function `compile` accepts a single expression or an array with
|
|
102
|
-
// expressions as first argument, and returns an object with a function evaluate
|
|
103
|
-
// to evaluate the compiled expression. On evaluation, an optional scope can
|
|
104
|
-
// be provided. This scope will be used to resolve symbols, and to write
|
|
105
|
-
// assigned variables or function.
|
|
106
|
-
console.log('\n3. USING FUNCTION MATH.COMPILE')
|
|
107
|
-
|
|
108
|
-
// parse an expression
|
|
109
|
-
console.log('\ncompile an expression')
|
|
110
|
-
const code3 = math.compile('sqrt(3^2 + 4^2)')
|
|
111
|
-
|
|
112
|
-
// evaluate the compiled code
|
|
113
|
-
print(code3.evaluate()) // 5
|
|
114
|
-
|
|
115
|
-
// provide a scope for the variable assignment
|
|
116
|
-
console.log('\nprovide a scope')
|
|
117
|
-
const code4 = math.compile('a = a + 3')
|
|
118
|
-
const scope3 = {
|
|
119
|
-
a: 7
|
|
120
|
-
}
|
|
121
|
-
code4.evaluate(scope3)
|
|
122
|
-
print(scope3.a) // 10
|
|
123
|
-
|
|
124
|
-
// 4. using a parser
|
|
125
|
-
//
|
|
126
|
-
// In addition to the static functions `math.evaluate` and `math.parse`, math.js
|
|
127
|
-
// contains a parser with functions `evaluate` and `parse`, which automatically
|
|
128
|
-
// keeps a scope with assigned variables in memory. The parser also contains
|
|
129
|
-
// some convenience methods to get, set, and remove variables from memory.
|
|
130
|
-
console.log('\n4. USING A PARSER')
|
|
131
|
-
const parser = math.parser()
|
|
132
|
-
|
|
133
|
-
// evaluate with parser
|
|
134
|
-
console.log('\nevaluate expressions')
|
|
135
|
-
print(parser.evaluate('sqrt(3^2 + 4^2)')) // 5
|
|
136
|
-
print(parser.evaluate('sqrt(-4)')) // 2i
|
|
137
|
-
print(parser.evaluate('2 inch to cm')) // 5.08 cm
|
|
138
|
-
print(parser.evaluate('cos(45 deg)')) // 0.70710678118655
|
|
139
|
-
|
|
140
|
-
// define variables and functions
|
|
141
|
-
console.log('\ndefine variables and functions')
|
|
142
|
-
print(parser.evaluate('x = 7 / 2')) // 3.5
|
|
143
|
-
print(parser.evaluate('x + 3')) // 6.5
|
|
144
|
-
print(parser.evaluate('f2(x, y) = x^y')) // f2(x, y)
|
|
145
|
-
print(parser.evaluate('f2(2, 3)')) // 8
|
|
146
|
-
|
|
147
|
-
// manipulate matrices
|
|
148
|
-
// Note that matrix indexes in the expression parser are one-based with the
|
|
149
|
-
// upper-bound included. On a JavaScript level however, math.js uses zero-based
|
|
150
|
-
// indexes with an excluded upper-bound.
|
|
151
|
-
console.log('\nmanipulate matrices')
|
|
152
|
-
print(parser.evaluate('k = [1, 2; 3, 4]')) // [[1, 2], [3, 4]]
|
|
153
|
-
print(parser.evaluate('l = zeros(2, 2)')) // [[0, 0], [0, 0]]
|
|
154
|
-
print(parser.evaluate('l[1, 1:2] = [5, 6]')) // [5, 6]
|
|
155
|
-
print(parser.evaluate('l')) // [[5, 6], [0, 0]]
|
|
156
|
-
print(parser.evaluate('l[2, :] = [7, 8]')) // [7, 8]
|
|
157
|
-
print(parser.evaluate('l')) // [[5, 6], [7, 8]]
|
|
158
|
-
print(parser.evaluate('m = k * l')) // [[19, 22], [43, 50]]
|
|
159
|
-
print(parser.evaluate('n = m[2, 1]')) // 43
|
|
160
|
-
print(parser.evaluate('n = m[:, 1]')) // [[19], [43]]
|
|
161
|
-
|
|
162
|
-
// get and set variables and functions
|
|
163
|
-
console.log('\nget and set variables and function in the scope of the parser')
|
|
164
|
-
const x = parser.get('x')
|
|
165
|
-
console.log('x =', x) // x = 3.5
|
|
166
|
-
const f2 = parser.get('f2')
|
|
167
|
-
console.log('f2 =', math.format(f2)) // f2 = f2(x, y)
|
|
168
|
-
const h = f2(3, 3)
|
|
169
|
-
console.log('h =', h) // h = 27
|
|
170
|
-
|
|
171
|
-
parser.set('i', 500)
|
|
172
|
-
print(parser.evaluate('i / 2')) // 250
|
|
173
|
-
parser.set('hello', function (name) {
|
|
174
|
-
return 'hello, ' + name + '!'
|
|
175
|
-
})
|
|
176
|
-
print(parser.evaluate('hello("hero")')) // "hello, hero!"
|
|
177
|
-
|
|
178
|
-
// clear defined functions and variables
|
|
179
|
-
parser.clear()
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Helper function to output a value in the console. Value will be formatted.
|
|
183
|
-
* @param {*} value
|
|
184
|
-
*/
|
|
185
|
-
function print (value) {
|
|
186
|
-
const precision = 14
|
|
187
|
-
console.log(math.format(value, precision))
|
|
188
|
-
}
|
package/examples/fractions.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
// Fractions
|
|
2
|
-
|
|
3
|
-
// load math.js (using node.js)
|
|
4
|
-
const { create, all } = require('..')
|
|
5
|
-
|
|
6
|
-
// configure the default type of numbers as Fractions
|
|
7
|
-
const config = {
|
|
8
|
-
// Default type of number
|
|
9
|
-
// Available options: 'number' (default), 'BigNumber', or 'Fraction'
|
|
10
|
-
number: 'Fraction'
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// create a mathjs instance with everything included
|
|
14
|
-
const math = create(all, config)
|
|
15
|
-
|
|
16
|
-
console.log('basic usage')
|
|
17
|
-
printRatio(math.fraction(0.125)) // Fraction, 1/8
|
|
18
|
-
printRatio(math.fraction(0.32)) // Fraction, 8/25
|
|
19
|
-
printRatio(math.fraction('1/3')) // Fraction, 1/3
|
|
20
|
-
printRatio(math.fraction('0.(3)')) // Fraction, 1/3
|
|
21
|
-
printRatio(math.fraction(2, 3)) // Fraction, 2/3
|
|
22
|
-
printRatio(math.fraction('0.(285714)')) // Fraction, 2/7
|
|
23
|
-
console.log()
|
|
24
|
-
|
|
25
|
-
console.log('round-off errors with numbers')
|
|
26
|
-
print(math.add(0.1, 0.2)) // number, 0.30000000000000004
|
|
27
|
-
print(math.divide(0.3, 0.2)) // number, 1.4999999999999998
|
|
28
|
-
console.log()
|
|
29
|
-
|
|
30
|
-
console.log('no round-off errors with fractions :)')
|
|
31
|
-
print(math.add(math.fraction(0.1), math.fraction(0.2))) // Fraction, 0.3
|
|
32
|
-
print(math.divide(math.fraction(0.3), math.fraction(0.2))) // Fraction, 1.5
|
|
33
|
-
console.log()
|
|
34
|
-
|
|
35
|
-
console.log('represent an infinite number of repeating digits')
|
|
36
|
-
print(math.fraction('1/3')) // Fraction, 0.(3)
|
|
37
|
-
print(math.fraction('2/7')) // Fraction, 0.(285714)
|
|
38
|
-
print(math.fraction('23/11')) // Fraction, 2.(09)
|
|
39
|
-
console.log()
|
|
40
|
-
|
|
41
|
-
// one can work conveniently with fractions using the expression parser.
|
|
42
|
-
// note though that Fractions are only supported by basic arithmetic functions
|
|
43
|
-
console.log('use fractions in the expression parser')
|
|
44
|
-
printRatio(math.evaluate('0.1 + 0.2')) // Fraction, 3/10
|
|
45
|
-
printRatio(math.evaluate('0.3 / 0.2')) // Fraction, 3/2
|
|
46
|
-
printRatio(math.evaluate('23 / 11')) // Fraction, 23/11
|
|
47
|
-
console.log()
|
|
48
|
-
|
|
49
|
-
// output formatting
|
|
50
|
-
console.log('output formatting of fractions')
|
|
51
|
-
const a = math.fraction('2/3')
|
|
52
|
-
console.log(math.format(a)) // Fraction, 2/3
|
|
53
|
-
console.log(math.format(a, { fraction: 'ratio' })) // Fraction, 2/3
|
|
54
|
-
console.log(math.format(a, { fraction: 'decimal' })) // Fraction, 0.(6)
|
|
55
|
-
console.log(a.toString()) // Fraction, 0.(6)
|
|
56
|
-
console.log()
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Helper function to output a value in the console.
|
|
60
|
-
* Fractions will be formatted as ratio, like '1/3'.
|
|
61
|
-
* @param {*} value
|
|
62
|
-
*/
|
|
63
|
-
function printRatio (value) {
|
|
64
|
-
console.log(math.format(value, { fraction: 'ratio' }))
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Helper function to output a value in the console.
|
|
69
|
-
* Fractions will be formatted as decimal, like '0.(3)'.
|
|
70
|
-
* @param {*} value
|
|
71
|
-
*/
|
|
72
|
-
function print (value) {
|
|
73
|
-
console.log(math.format(value, { fraction: 'decimal' }))
|
|
74
|
-
}
|
package/examples/import.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Math.js can easily be extended with functions and variables using the
|
|
3
|
-
* `import` function. The function `import` accepts a module name or an object
|
|
4
|
-
* containing functions and variables.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
// load math.js (using node.js)
|
|
8
|
-
const { create, all } = require('..')
|
|
9
|
-
const math = create(all)
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Define new functions and variables
|
|
13
|
-
*/
|
|
14
|
-
math.import({
|
|
15
|
-
myConstant: 42,
|
|
16
|
-
hello: function (name) {
|
|
17
|
-
return 'hello, ' + name + '!'
|
|
18
|
-
}
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
// defined methods can be used in both JavaScript as well as the parser
|
|
22
|
-
print(math.myConstant * 2) // 84
|
|
23
|
-
print(math.hello('user')) // 'hello, user!'
|
|
24
|
-
|
|
25
|
-
print(math.evaluate('myConstant + 10')) // 52
|
|
26
|
-
print(math.evaluate('hello("user")')) // 'hello, user!'
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Import the math library numbers.js, https://github.com/sjkaliski/numbers.js
|
|
30
|
-
* The library must be installed first using npm:
|
|
31
|
-
* npm install numbers
|
|
32
|
-
*/
|
|
33
|
-
try {
|
|
34
|
-
// load the numbers.js library
|
|
35
|
-
const numbers = require('numbers')
|
|
36
|
-
|
|
37
|
-
// import the numbers.js library into math.js
|
|
38
|
-
math.import(numbers, { wrap: true, silent: true })
|
|
39
|
-
|
|
40
|
-
if (math.fibonacci) {
|
|
41
|
-
// calculate fibonacci
|
|
42
|
-
print(math.fibonacci(7)) // 13
|
|
43
|
-
print(math.evaluate('fibonacci(7)')) // 13
|
|
44
|
-
}
|
|
45
|
-
} catch (err) {
|
|
46
|
-
console.log('Warning: To use numbers.js, the library must ' +
|
|
47
|
-
'be installed first via `npm install numbers`.')
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Import the math library numeric.js, https://github.com/sloisel/numeric
|
|
52
|
-
* The library must be installed first using npm:
|
|
53
|
-
* npm install numeric
|
|
54
|
-
*/
|
|
55
|
-
try {
|
|
56
|
-
// load the numeric.js library
|
|
57
|
-
const numeric = require('numeric')
|
|
58
|
-
|
|
59
|
-
// import the numeric.js library into math.js
|
|
60
|
-
math.import(numeric, { wrap: true, silent: true })
|
|
61
|
-
|
|
62
|
-
if (math.eig) {
|
|
63
|
-
// calculate eigenvalues of a matrix
|
|
64
|
-
print(math.evaluate('eig([1, 2; 4, 3])').lambda.x) // [5, -1]
|
|
65
|
-
|
|
66
|
-
// solve AX = b
|
|
67
|
-
const A = math.evaluate('[1, 2, 3; 2, -1, 1; 3, 0, -1]')
|
|
68
|
-
const b = [9, 8, 3]
|
|
69
|
-
print(math.solve(A, b)) // [2, -1, 3]
|
|
70
|
-
}
|
|
71
|
-
} catch (err) {
|
|
72
|
-
console.log('Warning: To use numeric.js, the library must ' +
|
|
73
|
-
'be installed first via `npm install numeric`.')
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* By default, the function import does not allow overriding existing functions.
|
|
78
|
-
* Existing functions can be overridden by specifying option `override: true`
|
|
79
|
-
*/
|
|
80
|
-
math.import({
|
|
81
|
-
pi: 3.14
|
|
82
|
-
}, {
|
|
83
|
-
override: true
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
print(math.pi) // returns 3.14 instead of 3.141592653589793
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Helper function to output a value in the console. Value will be formatted.
|
|
90
|
-
* @param {*} value
|
|
91
|
-
*/
|
|
92
|
-
function print (value) {
|
|
93
|
-
const precision = 14
|
|
94
|
-
console.log(math.format(value, precision))
|
|
95
|
-
}
|
package/examples/matrices.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
// matrices
|
|
2
|
-
|
|
3
|
-
// load math.js (using node.js)
|
|
4
|
-
const math = require('..')
|
|
5
|
-
|
|
6
|
-
// create matrices and arrays. a matrix is just a wrapper around an Array,
|
|
7
|
-
// providing some handy utilities.
|
|
8
|
-
console.log('create a matrix')
|
|
9
|
-
const a = math.matrix([1, 4, 9, 16, 25])
|
|
10
|
-
print(a) // [1, 4, 9, 16, 25]
|
|
11
|
-
const b = math.matrix(math.ones([2, 3]))
|
|
12
|
-
print(b) // [[1, 1, 1], [1, 1, 1]]
|
|
13
|
-
print(b.size()) // [2, 3]
|
|
14
|
-
|
|
15
|
-
// the Array data of a Matrix can be retrieved using valueOf()
|
|
16
|
-
const array = a.valueOf()
|
|
17
|
-
print(array) // [1, 4, 9, 16, 25]
|
|
18
|
-
|
|
19
|
-
// Matrices can be cloned
|
|
20
|
-
const clone = a.clone()
|
|
21
|
-
print(clone) // [1, 4, 9, 16, 25]
|
|
22
|
-
console.log()
|
|
23
|
-
|
|
24
|
-
// perform operations with matrices
|
|
25
|
-
console.log('perform operations')
|
|
26
|
-
print(math.sqrt(a)) // [1, 2, 3, 4, 5]
|
|
27
|
-
const c = [1, 2, 3, 4, 5]
|
|
28
|
-
print(math.factorial(c)) // [1, 2, 6, 24, 120]
|
|
29
|
-
console.log()
|
|
30
|
-
|
|
31
|
-
// create and manipulate matrices. Arrays and Matrices can be used mixed.
|
|
32
|
-
console.log('manipulate matrices')
|
|
33
|
-
const d = [[1, 2], [3, 4]]
|
|
34
|
-
print(d) // [[1, 2], [3, 4]]
|
|
35
|
-
const e = math.matrix([[5, 6], [1, 1]])
|
|
36
|
-
print(e) // [[5, 6], [1, 1]]
|
|
37
|
-
|
|
38
|
-
// set a submatrix.
|
|
39
|
-
// Matrix indexes are zero-based.
|
|
40
|
-
e.subset(math.index(1, [0, 1]), [[7, 8]])
|
|
41
|
-
print(e) // [[5, 6], [7, 8]]
|
|
42
|
-
const f = math.multiply(d, e)
|
|
43
|
-
print(f) // [[19, 22], [43, 50]]
|
|
44
|
-
const g = f.subset(math.index(1, 0))
|
|
45
|
-
print(g) // 43
|
|
46
|
-
console.log()
|
|
47
|
-
|
|
48
|
-
// get a sub matrix
|
|
49
|
-
// Matrix indexes are zero-based.
|
|
50
|
-
console.log('get a sub matrix')
|
|
51
|
-
const h = math.diag(math.range(1, 4))
|
|
52
|
-
print(h) // [[1, 0, 0], [0, 2, 0], [0, 0, 3]]
|
|
53
|
-
print(h.subset(math.index([1, 2], [1, 2]))) // [[2, 0], [0, 3]]
|
|
54
|
-
const i = math.range(1, 6)
|
|
55
|
-
print(i) // [1, 2, 3, 4, 5]
|
|
56
|
-
print(i.subset(math.index(math.range(1, 4)))) // [2, 3, 4]
|
|
57
|
-
console.log()
|
|
58
|
-
|
|
59
|
-
// resize a multi dimensional matrix
|
|
60
|
-
console.log('resizing a matrix')
|
|
61
|
-
const j = math.matrix()
|
|
62
|
-
let defaultValue = 0
|
|
63
|
-
j.resize([2, 2, 2], defaultValue)
|
|
64
|
-
print(j) // [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]
|
|
65
|
-
print(j.size()) // [2, 2, 2]
|
|
66
|
-
j.resize([2, 2])
|
|
67
|
-
print(j) // [[0, 0], [0, 0]]
|
|
68
|
-
print(j.size()) // [2, 2]
|
|
69
|
-
console.log()
|
|
70
|
-
|
|
71
|
-
// setting a value outside the matrices range will resize the matrix.
|
|
72
|
-
// new elements will be initialized with zero.
|
|
73
|
-
console.log('set a value outside a matrices range')
|
|
74
|
-
const k = math.matrix()
|
|
75
|
-
k.subset(math.index(2), 6)
|
|
76
|
-
print(k) // [0, 0, 6]
|
|
77
|
-
console.log()
|
|
78
|
-
|
|
79
|
-
console.log('set a value outside a matrices range, setting other new entries to null')
|
|
80
|
-
const m = math.matrix()
|
|
81
|
-
defaultValue = null
|
|
82
|
-
m.subset(math.index(2), 6, defaultValue)
|
|
83
|
-
print(m) // [null, null, 6]
|
|
84
|
-
console.log()
|
|
85
|
-
|
|
86
|
-
// create ranges
|
|
87
|
-
console.log('create ranges')
|
|
88
|
-
print(math.range(1, 6)) // [1, 2, 3, 4, 5]
|
|
89
|
-
print(math.range(0, 18, 3)) // [0, 3, 6, 9, 12, 15]
|
|
90
|
-
print(math.range('2:-1:-3')) // [2, 1, 0, -1, -2]
|
|
91
|
-
print(math.factorial(math.range('1:6'))) // [1, 2, 6, 24, 120]
|
|
92
|
-
console.log()
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Helper function to output a value in the console. Value will be formatted.
|
|
96
|
-
* @param {*} value
|
|
97
|
-
*/
|
|
98
|
-
function print (value) {
|
|
99
|
-
const precision = 14
|
|
100
|
-
console.log(math.format(value, precision))
|
|
101
|
-
}
|
package/examples/objects.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
// objects
|
|
2
|
-
|
|
3
|
-
// load math.js (using node.js)
|
|
4
|
-
const { evaluate, format } = require('..')
|
|
5
|
-
|
|
6
|
-
// create an object. Keys can be symbols or strings
|
|
7
|
-
print(evaluate('{x: 2 + 1, y: 4}')) // {"x": 3, "y": 4}
|
|
8
|
-
print(evaluate('{"name": "John"}')) // {"name": "John"}
|
|
9
|
-
|
|
10
|
-
// create an object containing an object
|
|
11
|
-
print(evaluate('{a: 2, b: {c: 3, d: 4}}')) // {"a": 2, "b": {"c": 3, "d": 4}}
|
|
12
|
-
|
|
13
|
-
const scope = {
|
|
14
|
-
obj: {
|
|
15
|
-
prop: 42
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// retrieve properties using dot notation or bracket notation
|
|
20
|
-
print(evaluate('obj.prop', scope)) // 42
|
|
21
|
-
print(evaluate('obj["prop"]', scope)) // 42
|
|
22
|
-
|
|
23
|
-
// set properties (returns the whole object, not the property value!)
|
|
24
|
-
print(evaluate('obj.prop = 43', scope)) // 43
|
|
25
|
-
print(evaluate('obj["prop"] = 43', scope)) // 43
|
|
26
|
-
print(scope.obj) // {"prop": 43}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Helper function to output a value in the console. Value will be formatted.
|
|
30
|
-
* @param {*} value
|
|
31
|
-
*/
|
|
32
|
-
function print (value) {
|
|
33
|
-
const precision = 14
|
|
34
|
-
console.log(format(value, precision))
|
|
35
|
-
}
|
package/examples/package.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// load math.js (using node.js)
|
|
2
|
-
const { complex, replacer, reviver, typeOf } = require('..')
|
|
3
|
-
|
|
4
|
-
// serialize a math.js data type into a JSON string
|
|
5
|
-
// the replacer function is needed to correctly stringify a value like Infinity
|
|
6
|
-
const x = complex('2+3i')
|
|
7
|
-
const str1 = JSON.stringify(x, replacer)
|
|
8
|
-
console.log(str1)
|
|
9
|
-
// outputs {"mathjs":"Complex","re":2,"im":3}
|
|
10
|
-
|
|
11
|
-
// deserialize a JSON string into a math.js data type
|
|
12
|
-
// note that the reviver of math.js is needed for this:
|
|
13
|
-
const str2 = '{"mathjs":"Unit","value":5,"unit":"cm"}'
|
|
14
|
-
const y = JSON.parse(str2, reviver)
|
|
15
|
-
console.log(typeOf(y)) // 'Unit'
|
|
16
|
-
console.log(y.toString()) // 5 cm
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// load math.js (using node.js)
|
|
2
|
-
const { identity, multiply, transpose, complex } = require('..')
|
|
3
|
-
|
|
4
|
-
// create a sparse matrix
|
|
5
|
-
console.log('creating a 1000x1000 sparse matrix...')
|
|
6
|
-
const a = identity(1000, 1000, 'sparse')
|
|
7
|
-
|
|
8
|
-
// do operations with a sparse matrix
|
|
9
|
-
console.log('doing some operations on the sparse matrix...')
|
|
10
|
-
const b = multiply(a, a)
|
|
11
|
-
const c = multiply(b, complex(2, 2))
|
|
12
|
-
const d = transpose(c)
|
|
13
|
-
const e = multiply(d, a)
|
|
14
|
-
console.log('size(e)=', e.size())
|
|
15
|
-
|
|
16
|
-
// we will not print the output, but doing the same operations
|
|
17
|
-
// with a dense matrix are very slow, try it for yourself.
|
|
18
|
-
console.log('already done')
|
|
19
|
-
console.log('now try this with a dense matrix :)')
|