mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# Extend
|
|
|
|
The library can easily be extended with functions and variables using the
|
|
`import` function. The function `import` accepts a filename or an object with
|
|
functions and variables.
|
|
|
|
```js
|
|
// create an instance of math.js
|
|
var math = require('mathjs')();
|
|
|
|
// define new functions and variables
|
|
math.import({
|
|
myvalue: 42,
|
|
hello: function (name) {
|
|
return 'hello, ' + name + '!';
|
|
}
|
|
});
|
|
|
|
// defined functions can be used in both JavaScript as well as the parser
|
|
math.myvalue * 2; // 84
|
|
math.hello('user'); // 'hello, user!'
|
|
|
|
var parser = math.parser();
|
|
parser.eval('myvalue + 10'); // 52
|
|
parser.eval('hello("user")'); // 'hello, user!'
|
|
```
|
|
|
|
External libraries like
|
|
[numbers.js](https://github.com/sjkaliski/numbers.js) and
|
|
[numeric.js](http://numericjs.com/) can be imported as well.
|
|
The libraries must be installed using npm:
|
|
|
|
npm install numbers
|
|
npm install numeric
|
|
|
|
The libraries can be easily imported into math.js using `import`. By default,
|
|
existing functions will not be overwritten, and math.js will create a wrapper
|
|
function around the imported functions which converts data types like `Matrix`
|
|
to primitive types like `Array`.
|
|
|
|
```js
|
|
// create an instance of math.js
|
|
var math = require('mathjs')();
|
|
|
|
// import the numbers.js and numeric.js libraries into math.js
|
|
math.import('numbers');
|
|
math.import('numeric');
|
|
|
|
// use functions from numbers.js
|
|
math.fibonacci(7); // 13
|
|
math.eval('fibonacci(7)'); // 13
|
|
|
|
// use functions from numeric.js
|
|
math.eval('eig([1, 2; 4, 3])').lambda.x; // [5, -1]
|
|
```
|