ACG Internal: Java Script fragment compiler Javascript fragment compiler
ACG Internal: Queue Queue.js A function to represent a queue Created by Stephen Morley - - and released under the terms of the CC0 1.0 Universal legal code:
ACG Internal: Seismic hazard functions Functions for calculating deterministic ppv's from Grid Hazards
ACG Internal: Seismic hazard functions Functions for calculating probabilistic ppv's from Grid Hazards
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

Convenience functions for binning values.

Eigenvalues and eigenvectors solver for NxN matrices 2 <= N <= 6. The source is

Interface to various MUL estimation methods.

Locate events in sensor data.

Export MeshTA.Mesh meshes to DXF.

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

This library provides some standard often needed mathematical functions.

See the glmatrix website for documentation on this library.
GridBasedUtils Helper functions for the Grid Based system

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'mxjs/base/math/matrix/GteSymmetricEigensolver3x3.js');

This is a javascript port of the non-iterative symmetric eigensolver for 3x3 matrices from Geometric Tools:

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.

Gutenberg-Richter relationship tools.
HudsonPlots This library provides functions to assist with hudson plots in mXrap

Some functions for dealing with IJOC definitions of grid data.

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 ='mxjs/base/algorithms/inverse_distance_weighting.js');

This is the MeshTA library. It provides a common representation for triangular meshes, and standard implementations of some operations on meshes.

Tools for iterating over ranges of ordered tables.

Provides convenience methods for converting between vectors and various systems for defining orientations (e.g. dip & dip dir).
PPV probability calc Probabilistic strong ground motion evaluation Used in Grid based hazard app
Quad8 This library provides some standard often needed mathematical functions

An adaption of the mesh simplification method from

Signal filtering.

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.

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

Adds convenience methods to the TypedArray types.

Wrap TypedArray objects to provide functions that rely on dynamic sizing (push, pop, etc.).
Xadapter 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 This library provides functions to allocate and reuse objects and arrays.
Xchart 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
Xhash This library provides functions to perform generation of hashes.
XHeap This library provides a priority queue (heap) implementation
Xkernel 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 xmesh.js
XmomentTensor 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 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 This library provides functions to assist in probabilistic methods
Xrockstrength 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 This library provides functions to assist in rendering 3D shapes in mXrap.'mxjs/base/xplot3D.js');
Xstats This library provides statistical functions.
Xstats.1 Inverse Error function
XStereonet 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 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
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.

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;

const utilities ='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;