All Versions
243
Latest Version
Avg Release Cycle
27 days
Latest Release
562 days ago

Changelog History
Page 21

  • v1.1.0 Changes

    November 15, 2014
    • Implemented functions dot (dot product), cross (cross product), and nthRoot.
    • Officially opened up the API of expression trees:
      • Documented the API.
      • Implemented recursive functions clone, map, forEach, traverse, transform, and filter for expression trees.
      • Parameter index in the callbacks of map and forEach are now cloned for every callback.
      • Some internal refactoring inside nodes to make the API consistent:
      • Renamed params to args and vice versa to make things consistent.
      • Renamed Block.nodes to Block.blocks.
      • FunctionNode now has a name: string instead of a symbol: SymbolNode.
      • Changed constructor of RangeNode to new RangeNode(start: Node, end: Node [, step: Node]).
      • Nodes for a BlockNode must now be passed via the constructor instead of via a function add.
    • ๐Ÿ›  Fixed 2e giving a syntax error instead of being parsed as 2 * e.
  • v1.0.1 Changes

    September 12, 2014
    • ๐Ÿ“œ Disabled array notation for ranges in a matrix index in the expression parser (it is confusing and redundant there).
    • ๐Ÿ›  Fixed a regression in the build of function subset not being able to return a scalar.
    • ๐Ÿ›  Fixed some missing docs and broken links in the docs.
  • v1.0.0 Changes

    September 04, 2014
    • โœ… Implemented a function filter(x, test).
    • โœ‚ Removed math.distribution for now, needs some rethinking.
    • math.number can convert units to numbers (requires a second argument)
    • ๐Ÿ›  Fixed some precedence issues with the range and conversion operators.
    • ๐Ÿ›  Fixed an zero-based issue when getting a matrix subset using an index containing a matrix.
  • v0.27.0 Changes

    August 21, 2014
    • Implemented functions sort(x [, compare]) and flatten(x).
    • ๐Ÿ‘ Implemented support for null in all functions.
    • ๐Ÿ“œ Implemented support for "rawArgs" functions in the expression parser. Raw functions are invoked with unevaluated parameters (nodes).
    • ๐Ÿ“œ Expressions in the expression parser can now be spread over multiple lines, like '2 +\n3'.
    • ๐Ÿ”„ Changed default value of the option wrap of function math.import to false.
    • ๐Ÿ”„ Changed the default value for new entries in a resized matrix when to zero. To leave new entries uninitialized, use the new constant math.uninitialized as default value.
    • Renamed transform property from __transform__ to transform, and documented the transform feature.
    • ๐Ÿ›  Fixed a bug in math.import not applying options when passing a module name.
    • A returned matrix subset is now only squeezed when the index consists of scalar values, and no longer for ranges resolving into a single value.
  • v0.26.0 Changes

    August 03, 2014
    • A new instance of math.js can no longer be created like math([options]), to prevent side effects from math being a function instead of an object. Instead, use the function math.create([options]) to create a new instance.
    • ๐Ÿ‘ Implemented BigNumber support for all constants: pi, tau, e, phi, E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, and SQRT2.
    • ๐Ÿ‘ Implemented BigNumber support for functions gcd, xgcd, and lcm.
    • ๐Ÿ›  Fixed function gxcd returning an Array when math.js was configured as {matrix: 'matrix'}.
    • Multi-line expressions now return a ResultSet instead of an Array.
    • Implemented transforms (used right now to transform one-based indices to zero-based for expressions).
    • ๐Ÿ“œ When used inside the expression parser, functions concat, min, max, and mean expect an one-based dimension number.
    • Functions map and forEach invoke the callback with one-based indices when used from within the expression parser.
    • When adding or removing dimensions when resizing a matrix, the dimensions are added/removed from the inner side (right) instead of outer side (left).
    • ๐Ÿ‘Œ Improved index out of range errors.
    • ๐Ÿ›  Fixed function concat not accepting a BigNumber for parameter dim.
    • Function squeeze now squeezes both inner and outer singleton dimensions.
    • Output of getting a matrix subset is not automatically squeezed anymore except for scalar output.
    • ๐Ÿ“‡ Renamed FunctionNode to FunctionAssignmentNode, and renamed ParamsNode to FunctionNode for more clarity.
    • ๐Ÿ›  Fixed broken auto completion in CLI.
    • ๐Ÿ›  Some minor fixes.
  • v0.25.0 Changes

    July 01, 2014
    • 0๏ธโƒฃ The library now immediately returns a default instance of mathjs, there is no need to instantiate math.js in a separate step unless one ones to set configuration options:

      // instead of:
      var mathjs = require('mathjs'),  // load math.js
          math = mathjs();             // create an instance
      
      // just do:
      var math = require('mathjs');
      
    • ๐Ÿ‘ Implemented support for implicit multiplication, like math.eval('2a', {a:3}) and math.eval('(2+3)(1-3)'). This changes behavior of matrix indexes as well: an expression like [...][...] is not evaluated as taking a subset of the first matrix, but as an implicit multiplication of two matrices.

    • โœ‚ Removed utility function ifElse. This function is redundant now the expression parser has a conditional operator a ? b : c.

    • ๐Ÿ›  Fixed a bug with multiplying a number with a temperature, like math.eval('10 * celsius').

    • ๐Ÿ›  Fixed a bug with symbols having value undefined not being evaluated.

  • v0.24.1 Changes

    June 20, 2014
    • Something went wrong with publishing on npm.
  • v0.24.0 Changes

    June 20, 2014
    • โž• Added constant null.
    • ๐Ÿ‘ Functions equal and unequal support null and undefined now.
    • Function typeof now recognizes regular expressions as well.
    • Objects Complex, Unit, and Help now return their string representation when calling .valueOf().
    • ๐Ÿ”„ Changed the default number of significant digits for BigNumbers from 20 to 64.
    • ๐Ÿ”„ Changed the behavior of the conditional operator (a ? b : c) to lazy evaluating.
    • ๐Ÿ›  Fixed imported, wrapped functions not accepting null and undefined as function arguments.
  • v0.23.0 Changes

    June 10, 2014
    • ๐Ÿ“‡ Renamed some functions (everything now has a logical, camel case name):
      • Renamed functions edivide, emultiply, and epow to dotDivide, dotMultiply, and dotPow respectively.
      • Renamed functions smallereq and largereq to smallerEq and largerEq.
      • Renamed function unary to unaryMinus and added support for strings.
    • end is now a reserved keyword which cannot be used as function or symbol name in the expression parser, and is not allowed in the scope against which an expression is evaluated.
    • Implemented function unaryPlus and unary plus operator.
    • Implemented function deepEqual for matrix comparisons.
    • โž• Added constant phi, the golden ratio (phi = 1.618...).
    • โž• Added constant version, returning the version number of math.js as string.
    • โž• Added unit drop (gtt).
    • ๐Ÿ›  Fixed not being able to load math.js using AMD/require.js.
    • ๐Ÿ”„ Changed signature of math.parse(expr, nodes) to math.parse(expr, options) where options: {nodes: Object.<String, Node>}
    • โœ‚ Removed matrix support from conditional function ifElse.
    • โœ‚ Removed automatic assignment of expression results to variable ans. This functionality can be restored by pre- or postprocessing every evaluation, something like:

      function evalWithAns (expr, scope) {
        var ans = math.eval(expr, scope);
        if (scope) {
          scope.ans = ans;
        }
        return ans;
      }
      
  • v0.22.0 Changes

    May 22, 2014
    • ๐Ÿ‘ Implemented support to export expressions to LaTeX. Thanks Niels Heisterkamp (@nheisterkamp).
    • Output of matrix multiplication is now consistently squeezed.
    • โž• Added reference documentation in the section /docs/reference.
    • ๐Ÿ›  Fixed a bug in multiplying units without value with a number (like 5 * cm).
    • ๐Ÿ›  Fixed a bug in multiplying two matrices containing vectors (worked fine for arrays).
    • ๐Ÿ›  Fixed random functions not accepting Matrix as input, and always returning a Matrix as output.