StatusNameDescription
ACG Internal: Java Script fragment compiler Javascript fragment compiler
ACG Internal: Queue Queue.js A function to represent a queue Created by Stephen Morley - http://code.stephenmorley.org/ - and released under the terms of the CC0 1.0 Universal legal code: http://creativecommons.org/publicdomain/zero/1.0/legalcode
ACG Internal: strong ground motion This library provides some function for strong ground motion
Binary Search This library provides some standard often needed mathematical functions binarySearch.js
Binning require.mx('mxjs/base/utilities/binning.js');

Convenience functions for binning values.
Clean Mesh require.mx('mxjs/mesh/clean-mesh.js');

This is the clean mesh library.
Clipping require.mx('mxjs/mesh/clipping.js');

Methods for clipping polygons.
Copy Tables require.mx('mxjs/base/algorithims/copy_tables.js');

This is the copy tables library.
Declustering This library is for declustering seismic data into two components - background and clustered seismicity.

require.mx('mxjs/seismic/stochastic_declustering.js');
Eigen require.mx('mxjs/base/math/matrix/eigen.js');

Eigenvalues and eigenvectors solver for NxN matrices 2 <= N <= 6. The source is http://www.akiti.ca/EigR12Solver.html.
EstimateMUL require.mx('mxjs/seismic/hazard/mmax/combined.js');

Interface to various MUL estimation methods.
EventsTriggering require.mx('mxjs/DSP/events_triggering.js');

Locate events in sensor data.
ExportDXF require.mx('mxjs/mesh/exportDXF.js');

Export MeshTA.Mesh meshes to DXF.
FitLineKD require.mx('mxjs/base/math/fit_line_kd.js');

Fit a line to a collection of points, in k-dimensions (for limited values of k).
GammaFunction require.mx('mxjs/base/math/statistics/gamma_function.js');

This is a list of utility functions around computing the gamma function.

These implementations are taking from the java package commons:commons-math3:3.6
geometry require.mx('mxjs/base/math/geometry.js');

This library provides some standard often needed mathematical functions.
glMatrix require.mx('mxjs/base/math/matrix/gl-matrix.js');

See the glmatrix website for documentation on this library.
Graph require.mx('mxjs/base/algorithms/graph/graph.js');

This is the Graph library, providing a representation for undirected graphs and some basic graph algorithms built to use that representation.
GridBasedUtils Helper functions for the Grid Based system
GridTools require.mx('mxjs/mesh/grid-tools.js');

Functions for using grid data (e.g. to convert grid data from a table into a representation that can be used with isosurface generators such as SurfaceNets).
GTE Symmetric Eigensolver 3x3 require.mx('mxjs/base/math/matrix/GteSymmetricEigensolver3x3.js');

This is a javascript port of the non-iterative symmetric eigensolver for 3x3 matrices from Geometric Tools: https://www.geometrictools.com

The original GteSymmetricEigensolve3x3.h is authored by David Eberly, Geometric Tools, Redmond WA 98052 Copyright (c) 1998-2019 Distributed under the Boost Software License, Version 1.0. http://www.boost.org/LICENSE_1_0.txt http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
Gutenberg-Richter require.mx('mxjs/seismic/gutenberg-richter.js');

Gutenberg-Richter relationship tools.
HudsonPlots require.mx('mxjs/seismic/hudson_plots.js');

This library provides functions to assist with hudson plots in mXrap
HW/FW Filtering require.mx('mxjs/mesh/hwfw_filter.js');
IJOCToGrid require.mx('mxjs/mesh/IJOC-to-grid.js');

Some functions for dealing with IJOC definitions of grid data.
Inside Mesh require.mx('mxjs/mesh/inside-mesh.js');

This is the inside mesh library.
KDTreeTable require.mx('mxjs/base/algorithms/kdtree.js');

This library provides k-d tree functionality for searching tables. The dimensions of the k-d trees are table columns. The k-d tree can then be searched based on those dimensions. Compared to the built-in k-d tree, the search functions provided by this k-d tree require the caller to provide a function that determines the distances between two points in the k-dimensional space. That is, you provide the definition of distance when performing searches such as findNearestNeighbour or findAtLeastXWithinRange.
LibIDW const LibIDW = require.mx('mxjs/base/algorithms/inverse_distance_weighting.js');
MeshTA require.mx('mxjs/mesh/mesh-ta.js');

This is the MeshTA library. It provides a common representation for triangular meshes, and standard implementations of some operations on meshes.
Octree Generation require.mx('mxjs/mesh/octree.js');

This is the octree generation library.
OrderedTableRanges require.mx('mxjs/base/algorithms/ordered_table_ranges.js');

Tools for iterating over ranges of ordered tables.
Orientation require.mx('mxjs/geotech/orientation.js');

Provides convenience methods for converting between vectors and various systems for defining orientations (e.g. dip & dip dir).
PlaneBased require.mx('mxjs/base/algorithms/planebased.js');

Helper functions for plane based analyses.
PLY file format require.mx('mxjs/mesh/ply.js');
Quad8 This library provides some standard often needed mathematical functions
QuadricMeshSimplification require.mx('mxjs/mesh/quadric-mesh-simplification.js');

An adaption of the mesh simplification method from https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification
Seismic Hazard This library has a number of functions related to computing seismic hazard

const Hazards = require.mx('mxjs/seismic/hazard/seismic_hazard.js');
SignalFilters require.mx('mxjs/DSP/filters.js');

Signal filtering.
SimplifyLine require.mx('mxjs/base/algorithms/simplify_line.js');

This file is a modification of Simplify.js: (c) 2017, Vladimir Agafonkin Simplify.js, a high-performance JS polyline simplification library mourner.github.io/simplify-js

Under the BSD 2-Clause "Simplified" License:

Copyright (c) 2017, Vladimir Agafonkin All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
StatNeighbours3D require.mx('mxjs/base/algorithms/stat_neighbours_3d.js');
SurfaceNets require.mx('mxjs/mesh/surfacenets.js');

Original Surface Nets, modified to generate boundary surfaces between two volumes.

This was loosely based on Mikola Lysenko's Naive SurfaceNets implementation, which should be in this directory as surfacenets-original.js.

Based on: S.F. Gibson, "Constrained Elastic Surface Nets". (1998) MERL Tech Report.
Sylvester require.mx('mxjs/base/math/matrix/sylvester.js');

See the Sylvester website for documentation on this library.
Typed Array Extensions require.mx('mxjs/base/utilities/typed_array_extensions.js');

Adds convenience methods to the TypedArray types.
WrappedTypedArray require.mx('mxjs/base/utilities/wrapped_typed_array.js')

Wrap TypedArray objects to provide functions that rely on dynamic sizing (push, pop, etc.).
Xadapter require.mx('mxjs/base/algorithms/xadapter.js');

This library provides adapters for use with different data inputs and outputs.

Adapters are objects that behave like data tables, while reading from or writing to a different underlying data structure, such as an array or a set of arrays.

Tabular data can be stored in different ways within mXrap, e.g. in a data table, or in a set of arrays, or in an interleaved array. As a result, it can be difficult to standardise what each library function should accept as input. After much consideration, the mXrap team have settled on the data table method - libraries in mXrap will in general take in a Table and its read or write functions as the standard way of reading/writing tabular data.

If your tabular data is in a set of column arrays, or in an interleaved array, you will instead want to use an adapter. You can create an adapter over the arrays/array, which provides you with an object that pretends to be a data table, when its actually reading from/writing to the underlying arrays. You can then use this adapter to provide input/output to library functions which take in data tables.

Adapters can be read-only, or write-enabled. You can use standard data table methods like size() and if write-enabled, grow(), resize(), reserve().

You can also create adapters that are in "subset" mode, that is, they operate over a specified range of the arrays or data table. When in "subset" mode, you can write to the records (if write-enabled), but you cannot resize or add/remove records.

One caveat with using adapters is that they are relatively expensive to create. Hence you should always free() your adapters once you are done using them. Freed adapters are re-used where possible, which greatly reduces the overhead of using adapters.
Xalloc require.mx('mxjs/base/algorithms/xalloc.js');

This library provides functions to allocate and reuse objects and arrays.
Xchart require.mx('mxjs/base/xplot2D.js');

This library provides functions to assist in rendering lines and points in a 2D chart in mXrap
Xfit This library provides functions to perform fitting of 2D data to various functions. require.mx('mxjs/base/xdistributionfit.js');
Xhash This library provides functions to perform generation of hashes.
XHeap require.mx('mxjs/base/algorithms/xheap.js');

This library provides a priority queue (heap) implementation
Xkernel require.mx('mxjs/base/algorithms/xkernel.js');

This library provides functions to perform kernel functions, eg for transparency transforms
XLAMath This library provides functions for linear algebra transformations

This is very much still a work in progress, the functionality here has only been tested with a few sample cases.
Xmesh require.mx('mxjs/base/algorithms/xmesh.js');

Functions for generating and performing operations on meshes.
XmomentTensor require.mx('mxjs/seismic/xmomenttensor.js');

This library provides functions to assist with moment tensors in mXrap
Xoptimise A library of optimisation functions
Xplot This library provides functions to perform plotting and generation of various 2D charts
XPolyMath require.mx('mxjs/base/xpolymath.js');

This library provides functions for polynomial operations

This is very much still a work in progress, the functionality here has only been tested with a few sample cases.
XprobMethods require.mx('mxjs/base/xprobabilistic.js');

This library provides functions to assist in probabilistic methods.
Xrockstrength require.mx('mxjs/geotech/xrockstrength.js');

This library contains functions for the formulation of rock mass strength.
The Hoek-Brown strength envelope is based on the 2002 strength envelope formulation.
Hoek-Brown strength parameters for rockmasses under squeezing and spalling conditions is based on
Carter et al. (2008) Application of modified Hoek-Brown transition relationships for assessing strength and post yield behaviour at both ends of the rock competence scale. J. S.A. Ist. Min. Metal., vol 108, pp 325-338
The General formulation contains a seamless transition between Carter et al. (2008) formulation from squeezing through general Hoek-Brown behaviour to spalling conditions.
The Xgeneral formulation provides a Generalised Hoek-Brown failure criterion with implicit Tensile strength.
Please note: Carter et al. (2008) and other papers published by the authors on the same subject contains a typing error in one of the equations that is corrected in this implementation.
Xshapes require.mx('mxjs/base/xplot3D.js');

This library provides functions to assist in rendering 3D shapes in mXrap.
Xstats require.mx('mxjs/base/xstatistics.js');

This library provides statistical functions.
Xstats.1 Inverse Error function http://stackoverflow.com/questions/12556685/is-there-a-javascript-implementation-of-the-inverse-error-function-akin-to-matl
XStereonet require.mx('mxjs/geotech/xstereonet.js');

This library provides functions to plot stereonets in mXrap

Note, implementation includes ported Matlab scripts written by Nestor Cardozo for the book Structural Geology Algorithms by Allmendinger, Cardozo, & Fisher, 2011
Xstressmechanics require.mx('mxjs/geotech/xstressmechanics.js');

This library contains several functions to manipulate and stress tensors and perfom calculations of stress This does not contain functions for strength and strain calculations as these are dependent on specific models of material behaviour such functions are/should be provided in seperate libraries. For the calculation of rock mass strength see the Xrockstrength library
xutilities require.mx('mxjs/base/xutilities.js');


This utilities lib contains utilites for: dates, maths, arrays, asserts, conversions and misc.
These functions, where possible, should be used to avoid common coding errors.

AVALIABLE UTILITIES:
const array_uti = utilities.xarray;
const assert_uti = utilities.xassert;
const conv_uti = utilities.xconvert;
const math_uti = utilities.xmath;
const group_uti = utilities.xgroup;
const misc_uti = utilities.xmisc;

EXAMPLE IMPLEMENTATION:
const utilities = require.mx('mxjs/base/xutilities.js') //load utility lib
const assert_uti = utilities.xassert; //Optional parse of the individual utility libraries

utilities are accessed as (if not parsed):
utilities.xassert.isnum(1); returns true;
OR (if parsed)
date_uti.isnum('hello_world'); returns false;