text: "use strict";
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  exports.setMatrixArrayType = setMatrixArrayType;
  exports.toRadian = toRadian;
  exports.equals = equals;
  exports.RANDOM = exports.ARRAY_TYPE = exports.EPSILON = void 0;
  
  /**
   * Common utilities
   * @module glMatrix
   */
  // Configuration Constants
  var EPSILON = 0.000001;
  exports.EPSILON = EPSILON;
  var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;
  exports.ARRAY_TYPE = ARRAY_TYPE;
  var RANDOM = Math.random;
  /**
   * Sets the type of array used when creating new vectors and matrices
   *
   * @param {Type} type Array type, such as Float32Array or Array
   */
  
  exports.RANDOM = RANDOM;
  
  function setMatrixArrayType(type) {
    exports.ARRAY_TYPE = ARRAY_TYPE = type;
  }
  
  var degree = Math.PI / 180;
  /**
   * Convert Degree To Radian
   *
   * @param {Number} a Angle in Degrees
   */
  
  function toRadian(a) {
    return a * degree;
  }
  /**
   * Tests whether or not the arguments have approximately the same value, within an absolute
   * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less
   * than or equal to 1.0, and a relative tolerance is used for larger values)
   *
   * @param {Number} a The first number to test.
   * @param {Number} b The second number to test.
   * @returns {Boolean} True if the numbers are approximately equal, false otherwise.
   */
  
  
  function equals(a, b) {
    return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));
  }