Files
DocumentServer-v-9.2.0/sdkjs/cell/model/FormulaObjects/engineeringFunctions.js
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

7294 lines
230 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* (c) Copyright Ascensio System SIA 2010-2024
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
"use strict";
(/**
* @param {Window} window
* @param {undefined} undefined
*/
function (window, undefined) {
var cErrorType = AscCommonExcel.cErrorType;
var cNumber = AscCommonExcel.cNumber;
var cString = AscCommonExcel.cString;
var cError = AscCommonExcel.cError;
var cArea = AscCommonExcel.cArea;
var cArea3D = AscCommonExcel.cArea3D;
var cArray = AscCommonExcel.cArray;
var cUndefined = AscCommonExcel.cUndefined;
var cBaseFunction = AscCommonExcel.cBaseFunction;
var cFormulaFunctionGroup = AscCommonExcel.cFormulaFunctionGroup;
var argType = Asc.c_oAscFormulaArgumentType;
var cElementType = AscCommonExcel.cElementType;
var rtl_math_erf = AscCommonExcel.rtl_math_erf;
var rg_validBINNumber = /^[01]{1,10}$/, rg_validDEC2BINNumber = /^-?[0-9]{1,3}$/,
rg_validDEC2OCTNumber = /^-?[0-9]{1,9}$/, rg_validDEC2HEXNumber = /^-?[0-9]{1,12}$/,
rg_validHEXNumber = /^[0-9A-F]{1,10}$/i, rg_validOCTNumber = /^[0-7]{1,10}$/, rg_complex_number = new XRegExp(
"^(?<real>[-+]?(?:\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?))?(?<img>([-+]?(\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)?[ij])?)",
"g");
var NumberBase = {
BIN: 2, OCT: 8, DEC: 10, HEX: 16
};
var f_PI_DIV_2 = Math.PI / 2;
var f_PI_DIV_4 = Math.PI / 4;
var f_2_DIV_PI = 2 / Math.PI;
function BesselJ(x, N) {
if (N < 0) {
return new cError(cErrorType.not_numeric);
}
if (x === 0.0) {
return new cNumber((N == 0) ? 1 : 0);
}
/* The algorithm works only for x>0, therefore remember sign. BesselJ
with integer order N is an even function for even N (means J(-x)=J(x))
and an odd function for odd N (means J(-x)=-J(x)).*/
var fSign = (N % 2 == 1 && x < 0) ? -1 : 1;
var fX = Math.abs(x);
var fMaxIteration = 9000000; //experimental, for to return in < 3 seconds
var fEstimateIteration = fX * 1.5 + N;
var bAsymptoticPossible = Math.pow(fX, 0.4) > N;
if (fEstimateIteration > fMaxIteration) {
if (bAsymptoticPossible) {
return new cNumber(fSign * Math.sqrt(f_2_DIV_PI / fX) * Math.cos(fX - N * f_PI_DIV_2 - f_PI_DIV_4));
} else {
return new cError(cErrorType.not_numeric);
}
}
var epsilon = 1.0e-15; // relative error
var bHasfound = false, k = 0, u;
// first used with k=1
var m_bar, g_bar, g_bar_delta_u, g = 0, delta_u = 0, f_bar = -1; // f_bar_k = 1/f_k, but only used for k=0
if (N == 0) {
u = 1;
g_bar_delta_u = 0;
g_bar = -2 / fX;
delta_u = g_bar_delta_u / g_bar;
u = u + delta_u;
g = -1 / g_bar;
f_bar = f_bar * g;
k = 2;
} else {
u = 0;
for (k = 1; k <= N - 1; k = k + 1) {
m_bar = 2 * Math.fmod(k - 1, 2) * f_bar;
g_bar_delta_u = -g * delta_u - m_bar * u; // alpha_k = 0.0
g_bar = m_bar - 2 * k / fX + g;
delta_u = g_bar_delta_u / g_bar;
u = u + delta_u;
g = -1 / g_bar;
f_bar = f_bar * g;
}
// Step alpha_N = 1.0
m_bar = 2 * Math.fmod(k - 1, 2) * f_bar;
g_bar_delta_u = f_bar - g * delta_u - m_bar * u; // alpha_k = 1.0
g_bar = m_bar - 2 * k / fX + g;
delta_u = g_bar_delta_u / g_bar;
u = u + delta_u;
g = -1 / g_bar;
f_bar = f_bar * g;
k = k + 1;
}
// Loop until desired accuracy, always alpha_k = 0.0
do {
m_bar = 2 * Math.fmod(k - 1, 2) * f_bar;
g_bar_delta_u = -g * delta_u - m_bar * u;
g_bar = m_bar - 2 * k / fX + g;
delta_u = g_bar_delta_u / g_bar;
u = u + delta_u;
g = -1 / g_bar;
f_bar = f_bar * g;
bHasfound = (Math.abs(delta_u) <= Math.abs(u) * epsilon);
k = k + 1;
} while (!bHasfound && k <= fMaxIteration);
if (bHasfound) {
return new cNumber(u * fSign);
} else {
return new cError(cErrorType.not_numeric);
}// unlikely to happen
}
function BesselI(x, n) {
var nMaxIteration = 2000, fXHalf = x / 2, fResult = 0, fEpsilon = 1.0E-30;
if (n < 0) {
return new cError(cErrorType.not_numeric);
}
/* Start the iteration without TERM(n,0), which is set here.
TERM(n,0) = (x/2)^n / n!
*/
var nK = 0, fTerm = 1;
// avoid overflow in Fak(n)
for (nK = 1; nK <= n; ++nK) {
fTerm = fTerm / nK * fXHalf;
}
fTerm = Math.pow(fXHalf, n) / Math.fact(n);
fResult = fTerm; // Start result with TERM(n,0).
if (fTerm !== 0) {
nK = 1;
do {
fTerm = Math.pow(fXHalf, n + 2 * nK) / (Math.fact(nK) * Math.fact(n + nK));
/* Calculation of TERM(n,k) from TERM(n,k-1):
(x/2)^(n+2k)
TERM(n,k) = --------------
k! (n+k)!
(x/2)^2 (x/2)^(n+2(k-1))
= --------------------------
k (k-1)! (n+k) (n+k-1)!
(x/2)^2 (x/2)^(n+2(k-1))
= --------- * ------------------
k(n+k) (k-1)! (n+k-1)!
x^2/4
= -------- TERM(n,k-1)
k(n+k)
*/
// fTerm = fTerm * fXHalf / nK * fXHalf / (nK + n);
fResult = fResult + fTerm;
nK++;
} while ((Math.abs(fTerm) > Math.abs(fResult) * fEpsilon) && (nK < nMaxIteration));
}
return new cNumber(fResult);
}
function Besselk0(fNum) {
var fRet, y;
if (fNum <= 2) {
y = fNum * fNum / 4.0;
fRet = (-Math.log(fNum / 2.0) * BesselI(fNum, 0)) + (-0.57721566 + y * (0.42278420 + y *
(0.23069756 + y * (0.3488590e-1 + y * (0.262698e-2 + y * (0.10750e-3 + y * 0.74e-5))))));
} else {
y = 2 / fNum;
fRet = Math.exp(-fNum) / Math.sqrt(fNum) * (1.25331414 + y * (-0.7832358e-1 + y * (0.2189568e-1 + y *
(-0.1062446e-1 + y * (0.587872e-2 + y * (-0.251540e-2 + y * 0.53208e-3))))));
}
return new cNumber(fRet);
}
function Besselk1(fNum) {
var fRet, y;
if (fNum <= 2) {
y = fNum * fNum / 4.0;
fRet = (Math.log(fNum / 2.0) * BesselI(fNum, 1)) + (1.0 / fNum) * (1.0 + y * (0.15443144 + y *
(-0.67278579 + y * (-0.18156897 + y * (-0.1919402e-1 + y * (-0.110404e-2 + y * (-0.4686e-4)))))));
} else {
y = 2 / fNum;
fRet = Math.exp(-fNum) / Math.sqrt(fNum) * (1.25331414 + y * (0.23498619 + y * (-0.3655620e-1 + y *
(0.1504268e-1 + y * (-0.780353e-2 + y * (0.325614e-2 + y * (-0.68245e-3)))))));
}
return new cNumber(fRet);
}
function bessi0(x) {
var ax = Math.abs(x), fRet, y;
if (ax < 3.75) {
y = x / 3.75;
y *= y;
fRet = 1.0 + y *
(3.5156229 + y * (3.0899424 + y * (1.2067492 + y * (0.2659732 + y * (0.360768e-1 + y * 0.45813e-2)))));
} else {
y = 3.75 / ax;
fRet = (Math.exp(ax) / Math.sqrt(ax)) * (0.39894228 + y * (0.1328592e-1 + y * (0.225319e-2 + y *
(-0.157565e-2 + y * (0.916281e-2 + y *
(-0.2057706e-1 + y * (0.2635537e-1 + y * (-0.1647633e-1 + y * 0.392377e-2))))))));
}
return fRet;
}
function bessi(x, n) {
var max = 1.0e10;
var min = 1.0e-10;
var ACC = 40.0;
var bi, bim, bip, tox, res;
if (x === 0.0) {
return new cNumber(0.0);
} else {
tox = 2.0 / Math.abs(x);
bip = res = 0.0;
bi = 1.0;
for (var j = 2 * (n + parseInt(Math.sqrt(ACC * n))); j > 0; j--) {
bim = bip + j * tox * bi;
bip = bi;
bi = bim;
if (Math.abs(bi) > max) {
res *= min;
bi *= min;
bip *= min;
}
if (j === n) {
res = bip;
}
}
res *= bessi0(x) / bi;
return x < 0.0 && (n & 1) ? new cNumber(-res) : new cNumber(res);
}
}
function BesselK(fNum, nOrder) {
switch (nOrder) {
case 0:
return Besselk0(fNum);
case 1:
return Besselk1(fNum);
default: {
var fBkp;
var fTox = 2 / fNum, fBkm = Besselk0(fNum), fBk = Besselk1(fNum);
if (fBkm instanceof cError) {
return fBkm;
}
if (fBk instanceof cError) {
return fBk;
}
fBkm = fBkm.getValue();
fBk = fBk.getValue();
for (var n = 1; n < nOrder; n++) {
fBkp = fBkm + n * fTox * fBk;
fBkm = fBk;
fBk = fBkp;
}
return new cNumber(fBk);
}
}
}
// See #i31656# for a commented version of this implementation, attachment #desc6
// http://www.openoffice.org/nonav/issues/showattachment.cgi/63609/Comments%20to%20the%20implementation%20of%20the%20Bessel%20functions.odt
function Bessely0(fX) {
if (fX <= 0) {
return new cError(cErrorType.not_numeric);
}
var fMaxIteration = 9000000; // should not be reached
if (fX > 5.0e+6) { // iteration is not considerable better then approximation
return new cNumber(Math.sqrt(1 / Math.PI / fX) * (Math.sin(fX) - Math.cos(fX)));
}
var epsilon = 1.0e-15, EulerGamma = 0.57721566490153286060;
var alpha = Math.log10(fX / 2) + EulerGamma;
var u = alpha;
var k = 1, m_bar = 0, g_bar_delta_u = 0, g_bar = -2 / fX;
var delta_u = g_bar_delta_u / g_bar, g = -1 / g_bar, f_bar = -1 * g, sign_alpha = 1, km1mod2, bHasFound = false;
k = k + 1;
do {
km1mod2 = Math.fmod(k - 1, 2);
m_bar = (2 * km1mod2) * f_bar;
if (km1mod2 == 0) {
alpha = 0;
} else {
alpha = sign_alpha * (4 / k);
sign_alpha = -sign_alpha;
}
g_bar_delta_u = f_bar * alpha - g * delta_u - m_bar * u;
g_bar = m_bar - (2 * k) / fX + g;
delta_u = g_bar_delta_u / g_bar;
u = u + delta_u;
g = -1 / g_bar;
f_bar = f_bar * g;
bHasFound = (Math.abs(delta_u) <= Math.abs(u) * epsilon);
k = k + 1;
} while (!bHasFound && k < fMaxIteration);
if (bHasFound) {
return new cNumber(u * f_2_DIV_PI);
} else {
return new cError(cErrorType.not_numeric);
}
}
// See #i31656# for a commented version of this implementation, attachment #desc6
// http://www.openoffice.org/nonav/issues/showattachment.cgi/63609/Comments%20to%20the%20implementation%20of%20the%20Bessel%20functions.odt
function Bessely1(fX) {
if (fX <= 0) {
return new cError(cErrorType.not_numeric);
}
var fMaxIteration = 9000000; // should not be reached
if (fX > 5e+6) { // iteration is not considerable better then approximation
return new cNumber(-Math.sqrt(1 / Math.PI / fX) * (Math.sin(fX) + Math.cos(fX)));
}
var epsilon = 1.0e-15, EulerGamma = 0.57721566490153286060, alpha = 1 / fX, f_bar = -1, u = alpha, k = 1,
m_bar = 0;
alpha = 1 - EulerGamma - Math.log10(fX / 2);
var g_bar_delta_u = -alpha, g_bar = -2 / fX, delta_u = g_bar_delta_u / g_bar;
u = u + delta_u;
var g = -1 / g_bar;
f_bar = f_bar * g;
var sign_alpha = -1, km1mod2, //will be (k-1) mod 2
q, // will be (k-1) div 2
bHasFound = false;
k = k + 1;
do {
km1mod2 = Math.fmod(k - 1, 2);
m_bar = (2 * km1mod2) * f_bar;
q = (k - 1) / 2;
if (km1mod2 == 0) { // k is odd
alpha = sign_alpha * (1 / q + 1 / (q + 1));
sign_alpha = -sign_alpha;
} else {
alpha = 0;
}
g_bar_delta_u = f_bar * alpha - g * delta_u - m_bar * u;
g_bar = m_bar - (2 * k) / fX + g;
delta_u = g_bar_delta_u / g_bar;
u = u + delta_u;
g = -1 / g_bar;
f_bar = f_bar * g;
bHasFound = (Math.abs(delta_u) <= Math.abs(u) * epsilon);
k = k + 1;
} while (!bHasFound && k < fMaxIteration);
if (bHasFound) {
return new cNumber(-u * 2 / Math.PI);
} else {
return new cError(cErrorType.not_numeric);
}
}
function _Bessely0(fNum) {
if (fNum < 8.0) {
var y = (fNum * fNum);
var f1 = -2957821389.0 + y *
(7062834065.0 + y * (-512359803.6 + y * (10879881.29 + y * (-86327.92757 + y * 228.4622733))));
var f2 = 40076544269.0 + y * (745249964.8 + y * (7189466.438 + y * (47447.26470 + y * (226.1030244 + y))));
var fRet = f1 / f2 + 0.636619772 * BesselJ(fNum, 0) * Math.log(fNum);
} else {
var z = 8.0 / fNum;
var y = (z * z);
var xx = fNum - 0.785398164;
var f1 = 1 + y * (-0.1098628627e-2 + y * (0.2734510407e-4 + y * (-0.2073370639e-5 + y * 0.2093887211e-6)));
var f2 = -0.1562499995e-1 + y *
(0.1430488765e-3 + y * (-0.6911147651e-5 + y * (0.7621095161e-6 + y * (-0.934945152e-7))));
var fRet = Math.sqrt(0.636619772 / fNum) * (Math.sin(xx) * f1 + z * Math.cos(xx) * f2);
}
return new cNumber(fRet);
}
function _Bessely1(fNum) {
var z, xx, y, fRet, ans1, ans2;
if (fNum < 8.0) {
y = fNum * fNum;
ans1 = fNum * (-0.4900604943e13 + y * (0.1275274390e13 + y *
(-0.5153438139e11 + y * (0.7349264551e9 + y * (-0.4237922726e7 + y * 0.8511937935e4)))));
ans2 = 0.2499580570e14 + y * (0.4244419664e12 + y *
(0.3733650367e10 + y * (0.2245904002e8 + y * (0.1020426050e6 + y * (0.3549632885e3 + y)))));
fRet = (ans1 / ans2) + 0.636619772 * (BesselJ(fNum) * Math.log(fNum) - 1.0 / fNum);
} else {
z = 8.0 / fNum;
y = z * z;
xx = fNum - 2.356194491;
ans1 = 1.0 + y * (0.183105e-2 + y * (-0.3516396496e-4 + y * (0.2457520174e-5 + y * (-0.240337019e-6))));
ans2 = 0.04687499995 + y *
(-0.2002690873e-3 + y * (0.8449199096e-5 + y * (-0.88228987e-6 + y * 0.105787412e-6)));
fRet = Math.sqrt(0.636619772 / fNum) * (Math.sin(xx) * ans1 + z * Math.cos(xx) * ans2);
}
return new cNumber(fRet);
}
function BesselY(fNum, nOrder) {
switch (nOrder) {
case 0:
return _Bessely0(fNum);
case 1:
return _Bessely1(fNum);
default: {
var fByp, fTox = 2 / fNum, fBym = _Bessely0(fNum), fBy = _Bessely1(fNum);
if (fBym instanceof cError) {
return fBym;
}
if (fBy instanceof cError) {
return fBy;
}
fBym = fBym.getValue();
fBy = fBy.getValue();
for (var n = 1; n < nOrder; n++) {
fByp = n * fTox * fBy - fBym;
fBym = fBy;
fBy = fByp;
}
return new cNumber(fBy);
}
}
}
function validBINNumber(n) {
return rg_validBINNumber.test(n);
}
function validDEC2BINNumber(n) {
return rg_validDEC2BINNumber.test(n);
}
function validDEC2OCTNumber(n) {
return rg_validDEC2OCTNumber.test(n);
}
function validDEC2HEXNumber(n) {
return rg_validDEC2HEXNumber.test(n);
}
function validHEXNumber(n) {
return rg_validHEXNumber.test(n);
}
function validOCTNumber(n) {
return rg_validOCTNumber.test(n);
}
function convertFromTo(src, from, to, charLim) {
var res = parseInt(src, from).toString(to);
if (charLim == undefined) {
return new cString(res.toUpperCase());
} else {
charLim = parseInt(charLim);
if (charLim >= res.length) {
return new cString(('0'.repeat(charLim - res.length) + res).toUpperCase());
} else {
return new cError(cErrorType.not_numeric);
}
}
}
function Complex(r, i, suffix) {
if (arguments.length == 1) {
return this.ParseString(arguments[0]);
} else {
this.real = r;
this.img = i;
// this.suffix = suffix ? suffix : "i";
this.suffix = suffix ? suffix : {pStr: "i"};
return this;
}
}
Complex.prototype = {
constructor: Complex, toString: function () {
let res = [];
let hasImag = this.img != 0, hasReal = !hasImag || (this.real != 0);
let toLocalString = function (val) {
let _res = val;
if (val != null) {
val = val.toString();
if (val) {
val = val.replace(AscCommon.FormulaSeparators.digitSeparatorDef, AscCommon.FormulaSeparators.digitSeparator);
if (val) {
_res = val;
}
}
}
return _res;
};
if (hasReal) {
res.push(toLocalString(this.real));
}
if (hasImag) {
if (this.img == 1) {
if (hasReal) {
res.push('+');
}
} else if (this.img == -1) {
res.push("-");
} else {
this.img > 0 && hasReal ? res.push("+" + (toLocalString(this.img))) : res.push(toLocalString(this.img));
}
let isObj = typeof this.suffix === 'object' && this.suffix !== null;
if (isObj && this.suffix.pStr) {
res.push(this.suffix.pStr);
} else if (this.suffix) {
res.push(this.suffix)
} else {
res.push("i");
}
}
return res.join("");
}, Real: function () {
return this.real;
}, Imag: function () {
return this.img;
}, Abs: function () {
return Math.sqrt(this.real * this.real + this.img * this.img);
}, Arg: function () {
if (this.real == 0.0 && this.img == 0.0) {
return new cError(cErrorType.division_by_zero);
}
var phi = Math.acos(this.real / this.Abs());
if (this.img < 0.0) {
phi = -phi;
}
return phi;
}, Conj: function () {
var c = new Complex(this.real, -this.img, this.suffix);
return c.toString();
}, Cos: function () {
if (this.img) {
var a = Math.cos(this.real) * Math.cosh(this.img);
this.img = -(Math.sin(this.real) * Math.sinh(this.img));
this.real = a;
} else {
this.real = Math.cos(this.real);
}
}, Tan: function () {
if (this.img) {
var a = Math.sin(2 * this.real) / (Math.cos(2 * this.real) + Math.cosh(2 * this.img));
this.img = Math.sinh(2 * this.img) / (Math.cos(2 * this.real) + Math.cosh(2 * this.img));
this.real = a;
} else {
this.real = Math.tan(this.real);
}
}, Cot: function () {
if (this.img) {
var a = Math.sin(2 * this.real) / (Math.cosh(2 * this.img) - Math.cos(2 * this.real));
this.img = -(Math.sinh(2 * this.img) / (Math.cosh(2 * this.img) - Math.cos(2 * this.real)));
this.real = a;
} else {
this.real = 1 / Math.tan(this.real);
}
}, Cosh: function () {
if (this.img) {
var a = Math.cosh(this.real) * Math.cos(this.img);
this.img = Math.sinh(this.real) * Math.sin(this.img);
this.real = a;
} else {
this.real = Math.cosh(this.real);
}
}, Csc: function () {
if (this.img) {
var a = (2 * Math.sin(this.real) * Math.cosh(this.img)) /
(Math.cosh(2 * this.img) - Math.cos(2 * this.real));
this.img = (-2 * Math.cos(this.real) * Math.sinh(this.img)) /
(Math.cosh(2 * this.img) - Math.cos(2 * this.real));
this.real = a;
} else {
this.real = 1 / Math.sin(this.real);
}
}, Csch: function () {
if (this.img) {
var a = (2 * Math.sinh(this.real) * Math.cos(this.img)) /
(Math.cosh(2 * this.real) - Math.cos(2 * this.img));
this.img = (-2 * Math.cosh(this.real) * Math.sin(this.img)) /
(Math.cosh(2 * this.real) - Math.cos(2 * this.img));
this.real = a;
} else {
this.real = 1 / Math.sinh(this.real);
}
}, Sec: function () {
if (this.img) {
var a = (2 * Math.cos(this.real) * Math.cosh(this.img)) /
(Math.cosh(2 * this.img) + Math.cos(2 * this.real));
this.img = (2 * Math.sin(this.real) * Math.sinh(this.img)) /
(Math.cosh(2 * this.img) + Math.cos(2 * this.real));
this.real = a;
} else {
this.real = 1 / Math.cos(this.real);
}
}, Sech: function () {
if (this.img) {
var a = (2 * Math.cosh(this.real) * Math.cos(this.img)) /
(Math.cosh(2 * this.real) + Math.cos(2 * this.img));
this.img = (-2 * Math.sinh(this.real) * Math.sin(this.img)) /
(Math.cosh(2 * this.real) + Math.cos(2 * this.img));
this.real = a;
} else {
this.real = 1 / Math.cosh(this.real);
}
}, Sin: function () {
if (this.img) {
var a = Math.sin(this.real) * Math.cosh(this.img);
this.img = Math.cos(this.real) * Math.sinh(this.img);
this.real = a;
} else {
this.real = Math.sin(this.real);
}
}, Sinh: function () {
if (this.img) {
var a = Math.sinh(this.real) * Math.cos(this.img);
this.img = Math.cosh(this.real) * Math.sin(this.img);
this.real = a;
} else {
this.real = Math.sinh(this.real);
}
}, Div: function (comp) {
var a = this.real, b = this.img, c = comp.real, d = comp.img, f = 1 / (c * c + d * d);
if (Math.abs(f) == Infinity) {
return new cError(cErrorType.not_numeric);
}
return new Complex((a * c + b * d) * f, (b * c - a * d) * f, this.suffix);
}, Exp: function () {
var e = Math.exp(this.real), c = Math.cos(this.img), s = Math.sin(this.img);
this.real = e * c;
this.img = e * s;
}, Ln: function () {
var abs = this.Abs(), arg = this.Arg();
if (abs == 0 || arg instanceof cError) {
return new cError(cErrorType.not_numeric);
}
this.real = Math.ln(abs);
this.img = arg;
}, Log10: function () {
var c = new Complex(Math.ln(10), 0);
var r = this.Ln();
if (r instanceof cError) {
return r;
}
c = this.Div(c);
if (c instanceof cError) {
return c;
}
this.real = c.real;
this.img = c.img;
}, Log2: function () {
var c = new Complex(Math.ln(2), 0);
var r = this.Ln();
if (r instanceof cError) {
return r;
}
c = this.Div(c);
if (c instanceof cError) {
return c;
}
this.real = c.real;
this.img = c.img;
}, Power: function (power) {
if (this.real == 0 && this.img == 0) {
if (power > 0) {
this.real = this.img = 0;
return true;
} else {
return false;
}
} else {
var p = this.Abs(), phi;
phi = Math.acos(this.real / p);
if (this.img < 0) {
phi = -phi;
}
p = Math.pow(p, power);
phi *= power;
this.real = Math.cos(phi) * p;
this.img = Math.sin(phi) * p;
return true;
}
}, Product: function (comp) {
var a = this.real, b = this.img, c = comp.real, d = comp.img;
this.real = a * c - b * d;
this.img = a * d + b * c;
}, SQRT: function () {
if (this.real || this.img) {
var abs = this.Abs(), arg = this.Arg();
this.real = Math.sqrt(abs) * Math.cos(arg / 2);
this.img = Math.sqrt(abs) * Math.sin(arg / 2);
}
}, Sub: function (comp) {
this.real -= comp.real;
this.img -= comp.img;
}, Sum: function (comp) {
this.real += comp.real;
this.img += comp.img;
}, isImagUnit: function (c) {
return c == 'i' || c == 'j';
}, parseComplexStr: function (s) {
var match = XRegExp.exec(s, rg_complex_number), r, i, suf;
if (match) {
r = match["real"];
i = match["img"];
if (!(r || i)) {
return new cError(cErrorType.not_numeric);
}
if (i) {
suf = i[i.length - 1];
i = i.substr(0, i.length - 1);
if (i.length == 1 && (i[0] == "-" || i[0] == "+")) {
i = parseFloat(i + "1");
} else {
i = parseFloat(i);
}
} else {
i = 0;
}
if (r) {
r = parseFloat(r);
} else {
r = 0;
}
return new Complex(r, i, suf ? suf : "i");
} else {
return new cError(cErrorType.not_numeric);
}
}, ParseString: function (rStr) {
// todo in future versions, get rid of the use of the "i" string and set the object to a one global variant with type: "i"
let pStr = {pStr: rStr}, f = {f: undefined};
if (rStr.length == 0) {
this.real = 0;
this.img = 0;
// this.suffix = "i";
this.suffix = {pStr: "i"};
return this;
}
if (this.isImagUnit(pStr.pStr[0]) && rStr.length == 1) {
this.real = 0;
this.img = 1;
this.suffix = pStr;
return this;
}
if (!this.ParseDouble(pStr, f)) {
return new cError(cErrorType.not_numeric);
}
switch (pStr.pStr[0] + "") {
case '-': // imag part follows
case '+': {
var r = f.f;
if (this.isImagUnit(pStr.pStr[1])) {
this.c = pStr.pStr[1];
if (pStr.pStr[2] === undefined) {
this.real = f.f;
this.img = (pStr.pStr[0] == '+') ? 1.0 : -1.0;
return this;
}
} else if (this.ParseDouble(pStr, f) && this.isImagUnit(pStr.pStr[0])) {
this.c = pStr.pStr;
if (pStr.pStr[2] === undefined) {
this.real = r;
this.img = f.f;
return this;
}
}
break;
}
case 'j':
case 'i':
this.c = pStr;
if (pStr.pStr[1] === undefined) {
this.img = f.f;
this.real = 0.0;
return this;
}
break;
case "undefined": // only real-part
this.real = f.f;
this.img = 0.0;
return this;
}
return new cError(cErrorType.not_numeric);
}, ParseDouble: function (rp, rRet) {
function isnum(c) {
return c >= '0' && c <= '9';
}
function iscomma(c) {
return c == '.' || c == ',';
}
function isexpstart(c) {
return c == 'e' || c == 'E';
}
function isimagunit(c) {
return c == 'i' || c == 'j';
}
var fInt = 0.0, fFrac = 0.0, fMult = 0.1, // multiplier to multiply digits with, when adding fractional ones
nExp = 0, nMaxExp = 307, nDigCnt = 18, // max. number of digits to read in, rest doesn't matter
State = {
end: 0,
sign: 1,
intstart: 2,
int: 3,
ignoreintdigs: 4,
frac: 5,
ignorefracdigs: 6,
expsign: 7,
exp: 8
}, eS = State.sign, bNegNum = false, bNegExp = false, p = rp.pStr, c, i = 0;
while (eS) {
c = p[i];
switch (eS) {
case State.sign:
if (isnum(c)) {
fInt = parseFloat(c);
nDigCnt--;
eS = State.int;
} else if (c == '-') {
bNegNum = true;
eS = State.intstart;
} else if (c == '+') {
eS = State.intstart;
} else if (iscomma(c)) {
eS = State.frac;
} else {
return false;
}
break;
case State.intstart:
if (isnum(c)) {
fInt = parseFloat(c);
nDigCnt--;
eS = State.int;
} else if (iscomma(c)) {
eS = State.frac;
} else if (isimagunit(c)) {
rRet.f = 0.0;
return true;
} else {
return false;
}
break;
case State.int:
if (isnum(c)) {
fInt *= 10.0;
fInt += parseFloat(c);
nDigCnt--;
if (!nDigCnt) {
eS = State.ignoreintdigs;
}
} else if (iscomma(c)) {
eS = State.frac;
} else if (isexpstart(c)) {
eS = State.expsign;
} else {
eS = State.end;
}
break;
case State.ignoreintdigs:
if (isnum(c)) {
nExp++;
} // just multiply num with 10... ;-)
else if (iscomma(c)) {
eS = State.frac;
} else if (isexpstart(c)) {
eS = State.expsign;
} else {
eS = State.end;
}
break;
case State.frac:
if (isnum(c)) {
fFrac += parseFloat(c) * fMult;
nDigCnt--;
if (nDigCnt) {
fMult *= 0.1;
} else {
eS = State.ignorefracdigs;
}
} else if (isexpstart(c)) {
eS = State.expsign;
} else {
eS = State.end;
}
break;
case State.ignorefracdigs:
if (isexpstart(c)) {
eS = State.expsign;
} else if (!isnum(c)) {
eS = State.end;
}
break;
case State.expsign:
if (isnum(c)) {
nExp = parseFloat(c);
eS = State.exp;
} else if (c == '-') {
bNegExp = true;
eS = State.exp;
} else if (c != '+') {
eS = State.end;
}
break;
case State.exp:
if (isnum(c)) {
nExp *= 10;
nExp += parseFloat(c);
if (nExp > nMaxExp) {
return false;
}
} else {
eS = State.end;
}
break;
case State.end: // to avoid compiler warning
break; // loop exits anyway
}
i++;
}
i--; // set pointer back to last
rp.pStr = p.substr(i);
fInt += fFrac;
var nLog10 = Math.log10(fInt);
if (bNegExp) {
nExp = -nExp;
}
if (nLog10 + nExp > nMaxExp) {
return false;
}
fInt = fInt * Math.pow(10.0, nExp);
if (bNegNum) {
fInt = -fInt;
}
rRet.f = fInt;
return true;
}
};
var unitConverterArr = null;
var availablePrefixMap = null;
var prefixValueMap = null;
function getUnitConverter() {
if (null === unitConverterArr) {
unitConverterArr = {};
var generateWeightAndMass = function () {
//Вес и масса
unitConverterArr["g"] = {};//грамм
unitConverterArr["g"]["sg"] = 0.0000685220500053478;
unitConverterArr["g"]["lbm"] = 0.0022046226218487763;
unitConverterArr["g"]["u"] = 6.022137E+023;
unitConverterArr["g"]["ozm"] = 0.0352739718003627;
unitConverterArr["g"]["grain"] = 15.43236;
unitConverterArr["g"]["cwt"] = 0.0000220462262184878;
unitConverterArr["g"]["shweight"] = 0.00002204623;
unitConverterArr["g"]["uk_cwt"] = 0.0000196841305522212;
unitConverterArr["g"]["lcwt"] = 0.0000196841305522212;
unitConverterArr["g"]["hweight"] = 0.00001968413;
unitConverterArr["g"]["stone"] = 0.000157473;
unitConverterArr["g"]["ton"] = 0.000001102311;
unitConverterArr["g"]["uk_ton"] = 0.000000984206527611061;
unitConverterArr["g"]["LTON"] = 0.000000984206527611061;
unitConverterArr["g"]["brton"] = 0.0000009842065;
unitConverterArr["sg"] = {};//Слэг
unitConverterArr["sg"]["lbm"] = 32.1739194101648;
unitConverterArr["sg"]["u"] = 8.78861184032002E+027;
unitConverterArr["sg"]["ozm"] = 514.782785944229;
unitConverterArr["sg"]["grain"] = 225217.429992179;
unitConverterArr["sg"]["cwt"] = 0.321739151364665;
unitConverterArr["sg"]["shweight"] = 0.321739206551459;
unitConverterArr["sg"]["uk_cwt"] = 0.287267099432737;
unitConverterArr["sg"]["lcwt"] = 0.287267099432737;
unitConverterArr["sg"]["hweight"] = 0.287267091373707;
unitConverterArr["sg"]["stone"] = 2.29813614723596;
unitConverterArr["sg"]["ton"] = 0.0160869530306517;
unitConverterArr["sg"]["uk_ton"] = 0.0143633549716368;
unitConverterArr["sg"]["LTON"] = 0.0143633549716368;
unitConverterArr["sg"]["brton"] = 0.0143633545686854;
unitConverterArr["lbm"] = {};//Фунт массы (эвердьюпойс)
unitConverterArr["lbm"]["u"] = 2.73159503145377E+026;
unitConverterArr["lbm"]["ozm"] = 16.0000023429409;
unitConverterArr["lbm"]["grain"] = 6999.99981727516;
unitConverterArr["lbm"]["cwt"] = 0.00999999867168865;
unitConverterArr["lbm"]["shweight"] = 0.0100000003869535;
unitConverterArr["lbm"]["uk_cwt"] = 0.00892857024257915;
unitConverterArr["lbm"]["lcwt"] = 0.00892857024257915;
unitConverterArr["lbm"]["hweight"] = 0.00892856999209586;
unitConverterArr["lbm"]["stone"] = 0.0714285417930745;
unitConverterArr["lbm"]["ton"] = 0.000499999792551521;
unitConverterArr["lbm"]["uk_ton"] = 0.000446428512128958;
unitConverterArr["lbm"]["LTON"] = 0.000446428512128958;
unitConverterArr["lbm"]["brton"] = 0.000446428499604793;
unitConverterArr["u"] = {};//атомная единица массы
unitConverterArr["u"]["ozm"] = 5.85738448002141E-026;
unitConverterArr["u"]["grain"] = 2.56260526786422E-023;
unitConverterArr["u"]["cwt"] = 3.66086427766219E-029;
unitConverterArr["u"]["shweight"] = 3.66086490559747E-029;
unitConverterArr["u"]["uk_cwt"] = 3.26862881934124E-029;
unitConverterArr["u"]["lcwt"] = 3.26862881934124E-029;
unitConverterArr["u"]["hweight"] = 3.2686287276427E-029;
unitConverterArr["u"]["stone"] = 2.61490231789811E-028;
unitConverterArr["u"]["ton"] = 1.83043162252868E-030;
unitConverterArr["u"]["uk_ton"] = 1.63431440967062E-030;
unitConverterArr["u"]["LTON"] = 1.63431440967062E-030;
unitConverterArr["u"]["brton"] = 1.63431436382135E-030;
unitConverterArr["ozm"] = {};//Унция
unitConverterArr["ozm"]["grain"] = 437.499924514917;
unitConverterArr["ozm"]["cwt"] = 0.000624999825459436;
unitConverterArr["ozm"]["shweight"] = 0.000624999932663475;
unitConverterArr["ozm"]["uk_cwt"] = 0.000558035558445925;
unitConverterArr["ozm"]["lcwt"] = 0.000558035558445925;
unitConverterArr["ozm"]["hweight"] = 0.000558035542790721;
unitConverterArr["ozm"]["stone"] = 0.00446428320834516;
unitConverterArr["ozm"]["ton"] = 0.0000312499824584161;
unitConverterArr["ozm"]["uk_ton"] = 0.0000279017779222963;
unitConverterArr["ozm"]["LTON"] = 0.0000279017779222963;
unitConverterArr["ozm"]["brton"] = 0.0000279017771395361;
unitConverterArr["grain"] = {};//Гран
unitConverterArr["grain"]["cwt"] = 0.00000142857127610345;
unitConverterArr["grain"]["shweight"] = 0.00000142857152114129;
unitConverterArr["grain"]["uk_cwt"] = 0.0000012755100679495;
unitConverterArr["grain"]["lcwt"] = 0.0000012755100679495;
unitConverterArr["grain"]["hweight"] = 0.00000127551003216618;
unitConverterArr["grain"]["stone"] = 0.0000102040776653733;
unitConverterArr["grain"]["ton"] = 0.000000071428543657613;
unitConverterArr["grain"]["uk_ton"] = 0.0000000637755033974752;
unitConverterArr["grain"]["LTON"] = 0.0000000637755033974752;
unitConverterArr["grain"]["brton"] = 0.0000000637755016083088;
unitConverterArr["cwt"] = {};//Американский (короткий) центнер
unitConverterArr["cwt"]["shweight"] = 1.00000017152651;
unitConverterArr["cwt"]["uk_cwt"] = 0.892857142857143;
unitConverterArr["cwt"]["lcwt"] = 0.892857142857143;
unitConverterArr["cwt"]["hweight"] = 0.89285711780881;
unitConverterArr["cwt"]["stone"] = 7.142855128101;
unitConverterArr["cwt"]["ton"] = 0.049999985896707;
unitConverterArr["cwt"]["uk_ton"] = 0.0446428571428571;
unitConverterArr["cwt"]["LTON"] = 0.0446428571428571;
unitConverterArr["cwt"]["brton"] = 0.0446428558904405;
unitConverterArr["shweight"] = {};//Американский (короткий) центнер
unitConverterArr["shweight"]["uk_cwt"] = 0.892856989708499;
unitConverterArr["shweight"]["lcwt"] = 0.892856989708499;
unitConverterArr["shweight"]["hweight"] = 0.892856964660171;
unitConverterArr["shweight"]["stone"] = 7.1428539029122;
unitConverterArr["shweight"]["ton"] = 0.0499999773203854;
unitConverterArr["shweight"]["uk_ton"] = 0.044642849485425;
unitConverterArr["shweight"]["LTON"] = 0.044642849485425;
unitConverterArr["shweight"]["brton"] = 0.0446428482330085;
unitConverterArr["uk_cwt"] = {};//Английский (длинный) центнер
unitConverterArr["uk_cwt"]["lcwt"] = 1;
unitConverterArr["uk_cwt"]["hweight"] = 0.999999971945867;
unitConverterArr["uk_cwt"]["stone"] = 7.99999774347312;
unitConverterArr["uk_cwt"]["ton"] = 0.0559999842043118;
unitConverterArr["uk_cwt"]["uk_ton"] = 0.05;
unitConverterArr["uk_cwt"]["LTON"] = 0.05;
unitConverterArr["uk_cwt"]["brton"] = 0.0499999985972934;
unitConverterArr["lcwt"] = {};//Английский (длинный) центнер
unitConverterArr["lcwt"]["hweight"] = 0.999999971945867;
unitConverterArr["lcwt"]["stone"] = 7.99999774347312;
unitConverterArr["lcwt"]["ton"] = 0.0559999842043118;
unitConverterArr["lcwt"]["uk_ton"] = 0.05;
unitConverterArr["lcwt"]["LTON"] = 0.05;
unitConverterArr["lcwt"]["brton"] = 0.0499999985972934;
unitConverterArr["lcwt"] = {};//Английский (длинный) центнер
unitConverterArr["lcwt"]["hweight"] = 0.999999971945867;
unitConverterArr["lcwt"]["stone"] = 7.99999774347312;
unitConverterArr["lcwt"]["ton"] = 0.0559999842043118;
unitConverterArr["lcwt"]["uk_ton"] = 0.05;
unitConverterArr["lcwt"]["LTON"] = 0.05;
unitConverterArr["lcwt"]["brton"] = 0.0499999985972934;
unitConverterArr["hweight"] = {};//Английский (длинный) центнер
unitConverterArr["hweight"]["stone"] = 7.99999796790613;
unitConverterArr["hweight"]["ton"] = 0.0559999857753429;
unitConverterArr["hweight"]["uk_ton"] = 0.0500000014027067;
unitConverterArr["hweight"]["LTON"] = 0.0500000014027067;
unitConverterArr["hweight"]["brton"] = 0.05;
unitConverterArr["stone"] = {};//Стоун
unitConverterArr["stone"]["ton"] = 0.007;
unitConverterArr["stone"]["uk_ton"] = 0.00625000176291212;
unitConverterArr["stone"]["LTON"] = 0.00625000176291212;
unitConverterArr["stone"]["brton"] = 0.00625000158757374;
unitConverterArr["ton"] = {};//Тонна
unitConverterArr["ton"]["uk_ton"] = 0.892857394701732;
unitConverterArr["ton"]["LTON"] = 0.892857394701732;
unitConverterArr["ton"]["brton"] = 0.892857369653392;
unitConverterArr["uk_ton"] = {};//Стандартная тонна
unitConverterArr["uk_ton"]["LTON"] = 1;
unitConverterArr["uk_ton"]["brton"] = 0.999999971945867;
unitConverterArr["LTON"] = {};//Стандартная тонна
unitConverterArr["LTON"]["brton"] = 0.999999971945867;
};
var generateDistance = function () {
//Picapt parameter do not support by LO
unitConverterArr["m"] = {};
unitConverterArr["m"]["mi"] = 0.000621371192237334;
unitConverterArr["m"]["Nmi"] = 0.000539956803455724;
unitConverterArr["m"]["in"] = 39.3700787401575;
unitConverterArr["m"]["ft"] = 3.28083989501312;
unitConverterArr["m"]["yd"] = 1.09361329833771;
unitConverterArr["m"]["ang"] = 10000000000;
unitConverterArr["m"]["ell"] = 0.8748906;
unitConverterArr["m"]["ly"] = 1.05702345577329E-016;
unitConverterArr["m"]["parsec"] = 3.240779E-017;
unitConverterArr["m"]["pc"] = 3.240779E-017;
//unitConverterArr["m"]["Picapt"] = ;
unitConverterArr["m"]["Pica"] = 2834.64566929134;
unitConverterArr["m"]["pica"] = 236.220472441;
unitConverterArr["m"]["survey_mi"] = 0.000621369949494949;
unitConverterArr["mi"] = {};
unitConverterArr["mi"]["Nmi"] = 0.868976241900648;
unitConverterArr["mi"]["in"] = 63360;
unitConverterArr["mi"]["ft"] = 5280;
unitConverterArr["mi"]["yd"] = 1760;
unitConverterArr["mi"]["ang"] = 16093440000000;
unitConverterArr["mi"]["ell"] = 1407.9999377664;
unitConverterArr["mi"]["ly"] = 0.000000000000170111435640801;
unitConverterArr["mi"]["parsec"] = 0.00000000000005215528238976;
unitConverterArr["mi"]["pc"] = 0.00000000000005215528238976;
unitConverterArr["mi"]["Pica"] = 4561920;
unitConverterArr["mi"]["pica"] = 380160.000000089;
unitConverterArr["mi"]["survey_mi"] = 0.999998;
unitConverterArr["Nmi"] = {};
unitConverterArr["Nmi"]["in"] = 72913.3858267717;
unitConverterArr["Nmi"]["ft"] = 6076.1154855643;
unitConverterArr["Nmi"]["yd"] = 2025.37182852143;
unitConverterArr["Nmi"]["ang"] = 18520000000000;
unitConverterArr["Nmi"]["ell"] = 1620.2973912;
unitConverterArr["Nmi"]["ly"] = 0.000000000000195760744009214;
unitConverterArr["Nmi"]["parsec"] = 0.00000000000006001922708;
unitConverterArr["Nmi"]["pc"] = 0.00000000000006001922708;
unitConverterArr["Nmi"]["Pica"] = 5249763.77952756;
unitConverterArr["Nmi"]["pica"] = 437480.314960732;
unitConverterArr["Nmi"]["survey_mi"] = 1.15077714646465;
unitConverterArr["in"] = {};
unitConverterArr["in"]["ft"] = 0.0833333333333333;
unitConverterArr["in"]["yd"] = 0.0277777777777778;
unitConverterArr["in"]["ang"] = 254000000;
unitConverterArr["in"]["ell"] = 0.02222222124;
unitConverterArr["in"]["ly"] = 2.68483957766416E-018;
unitConverterArr["in"]["parsec"] = 8.23157866E-019;
unitConverterArr["in"]["pc"] = 8.23157866E-019;
unitConverterArr["in"]["Pica"] = 72;
unitConverterArr["in"]["pica"] = 6.0000000000014;
unitConverterArr["in"]["survey_mi"] = 0.0000157827967171717;
unitConverterArr["ft"] = {};
unitConverterArr["ft"]["yd"] = 0.333333333333333;
unitConverterArr["ft"]["ang"] = 3048000000;
unitConverterArr["ft"]["ell"] = 0.26666665488;
unitConverterArr["ft"]["ly"] = 3.221807493197E-017;
unitConverterArr["ft"]["parsec"] = 9.877894392E-018;
unitConverterArr["ft"]["pc"] = 9.877894392E-018;
unitConverterArr["ft"]["Pica"] = 864;
unitConverterArr["ft"]["pica"] = 72.0000000000168;
unitConverterArr["ft"]["survey_mi"] = 0.000189393560606061;
unitConverterArr["yd"] = {};
unitConverterArr["yd"]["ang"] = 9144000000;
unitConverterArr["yd"]["ell"] = 0.79999996464;
unitConverterArr["yd"]["ly"] = 9.66542247959099E-017;
unitConverterArr["yd"]["parsec"] = 2.9633683176E-017;
unitConverterArr["yd"]["pc"] = 2.9633683176E-017;
unitConverterArr["yd"]["Pica"] = 2592;
unitConverterArr["yd"]["pica"] = 216.00000000005;
unitConverterArr["yd"]["survey_mi"] = 0.000568180681818182;
unitConverterArr["ang"] = {};
unitConverterArr["ang"]["ell"] = 0.00000000008748906;
unitConverterArr["ang"]["ly"] = 1.05702345577329E-026;
unitConverterArr["ang"]["parsec"] = 3.240779E-027;
unitConverterArr["ang"]["pc"] = 3.240779E-027;
unitConverterArr["ang"]["Pica"] = 0.000000283464566929134;
unitConverterArr["ang"]["pica"] = 0.0000000236220472441;
unitConverterArr["ang"]["survey_mi"] = 0.000000000000062136994949495;
unitConverterArr["ell"] = {};
unitConverterArr["ell"]["ly"] = 1.20817786335034E-016;
unitConverterArr["ell"]["parsec"] = 3.70421056072611E-017;
unitConverterArr["ell"]["pc"] = 3.70421056072611E-017;
unitConverterArr["ell"]["Pica"] = 3240.00014320801;
unitConverterArr["ell"]["pica"] = 270.000011934064;
unitConverterArr["ell"]["survey_mi"] = 0.000710225883664711;
unitConverterArr["ly"] = {};
unitConverterArr["ly"]["parsec"] = 0.30659480471312;
unitConverterArr["ly"]["pc"] = 0.30659480471312;
unitConverterArr["ly"]["Pica"] = 2.68172447244094E+019;
unitConverterArr["ly"]["pica"] = 2.23477039370131E+018;
unitConverterArr["ly"]["survey_mi"] = 5878487805555.55;
unitConverterArr["parsec"] = {};
unitConverterArr["parsec"]["pc"] = 1;
unitConverterArr["parsec"]["Pica"] = 8.74680337440886E+019;
unitConverterArr["parsec"]["pica"] = 7.28900281200909E+018;
unitConverterArr["parsec"]["survey_mi"] = 19173474942134.3;
unitConverterArr["pc"] = {};
unitConverterArr["pc"]["Pica"] = 8.74680337440886E+019;
unitConverterArr["pc"]["pica"] = 7.28900281200909E+018;
unitConverterArr["pc"]["survey_mi"] = 19173474942134.3;
unitConverterArr["Pica"] = {};
unitConverterArr["Pica"]["pica"] = 0.0833333333333528;
unitConverterArr["Pica"]["survey_mi"] = 0.000000219205509960718;
unitConverterArr["pica"] = {};
unitConverterArr["pica"]["survey_mi"] = 0.00000263046611952801;
};
var generateTime = function () {
unitConverterArr["yr"] = {};//Год
unitConverterArr["yr"]["day"] = 365.25;
unitConverterArr["yr"]["d"] = 365.25;
unitConverterArr["yr"]["hr"] = 8766;
unitConverterArr["yr"]["mn"] = 525960;
unitConverterArr["yr"]["min"] = 525960;
unitConverterArr["yr"]["sec"] = 31557600;
unitConverterArr["yr"]["s"] = 31557600;
unitConverterArr["day"] = {};//День
unitConverterArr["day"]["d"] = 1;
unitConverterArr["day"]["hr"] = 24;
unitConverterArr["day"]["mn"] = 1440;
unitConverterArr["day"]["min"] = 1440;
unitConverterArr["day"]["sec"] = 86400;
unitConverterArr["day"]["s"] = 86400;
unitConverterArr["d"] = {};//День
unitConverterArr["d"]["hr"] = 24;
unitConverterArr["d"]["mn"] = 1440;
unitConverterArr["d"]["min"] = 1440;
unitConverterArr["d"]["sec"] = 86400;
unitConverterArr["d"]["s"] = 86400;
unitConverterArr["hr"] = {};//Час
unitConverterArr["hr"]["mn"] = 60;
unitConverterArr["hr"]["min"] = 60;
unitConverterArr["hr"]["sec"] = 3600;
unitConverterArr["hr"]["s"] = 3600;
unitConverterArr["mn"] = {};//Минуты
unitConverterArr["mn"]["min"] = 1;
unitConverterArr["mn"]["sec"] = 60;
unitConverterArr["mn"]["s"] = 60;
unitConverterArr["min"] = {};//Минуты
unitConverterArr["min"]["sec"] = 60;
unitConverterArr["min"]["s"] = 60;
unitConverterArr["sec"] = {};//Секунды
unitConverterArr["sec"]["s"] = 1;
};
var generatePressure = function () {
//p parameter do not support by LO(p === Pa in MS DOC)
unitConverterArr["Pa"] = {};//Паскаль
//unitConverterArr["Pa"]["p"] = ;
unitConverterArr["Pa"]["atm"] = 0.00000986923299998193;
unitConverterArr["Pa"]["at"] = 0.00000986923299998193;
unitConverterArr["Pa"]["mmHg"] = 0.00750061707998627;
unitConverterArr["Pa"]["psi"] = 0.0001450377;
unitConverterArr["Pa"]["Torr"] = 0.007500638;
unitConverterArr["atm"] = {};//Атмосфера
unitConverterArr["atm"]["at"] = 1;
unitConverterArr["atm"]["mmHg"] = 760;
unitConverterArr["atm"]["psi"] = 14.6959444569062;
unitConverterArr["atm"]["Torr"] = 760.00211972032;
unitConverterArr["at"] = {};//Атмосфера
unitConverterArr["at"]["mmHg"] = 760;
unitConverterArr["at"]["psi"] = 14.6959444569062;
unitConverterArr["at"]["Torr"] = 760.00211972032;
unitConverterArr["mmHg"] = {};//Миллиметр ртутного столба
unitConverterArr["mmHg"]["psi"] = 0.019336769022245;
unitConverterArr["mmHg"]["Torr"] = 1.00000278910568;
unitConverterArr["psi"] = {};//Фунт на квадратный дюйм
unitConverterArr["psi"]["Torr"] = 51.7150920071126;
};
var generateForceAndEnergy = function () {
//Force
unitConverterArr["N"] = {};//Newton
unitConverterArr["N"]["dyn"] = 100000;
unitConverterArr["N"]["dy"] = 100000;
unitConverterArr["N"]["lbf"] = 0.224808923655339;
unitConverterArr["N"]["pond"] = 101.9716;
unitConverterArr["dyn"] = {};//Dyne
unitConverterArr["dyn"]["dy"] = 1;
unitConverterArr["dyn"]["lbf"] = 0.00000224808923655339;
unitConverterArr["dyn"]["pond"] = 0.001019716;
unitConverterArr["dy"] = {};//Dyne
unitConverterArr["dy"]["lbf"] = 0.00000224808923655339;
unitConverterArr["dy"]["pond"] = 0.001019716;
unitConverterArr["lbf"] = {};//Pound force
unitConverterArr["lbf"]["pond"] = 453.5923144952;
//Energy
unitConverterArr["J"] = {};//Joule
unitConverterArr["J"]["e"] = 10000000;
unitConverterArr["J"]["c"] = 0.239006249473467;
unitConverterArr["J"]["cal"] = 0.238846190642017;
unitConverterArr["J"]["eV"] = 6.241457E+018;
unitConverterArr["J"]["ev"] = 6.241457E+018;
unitConverterArr["J"]["HPh"] = 0.000000372506111111111;
unitConverterArr["J"]["hh"] = 0.000000372506111111111;
unitConverterArr["J"]["Wh"] = 0.000277777777777778;
unitConverterArr["J"]["wh"] = 0.000277777777777778;
unitConverterArr["J"]["flb"] = 23.7304222192651;
unitConverterArr["J"]["BTU"] = 0.000947815067349015;
unitConverterArr["J"]["btu"] = 0.000947815067349015;
unitConverterArr["e"] = {};//Erg
unitConverterArr["e"]["c"] = 0.0000000239006249473467;
unitConverterArr["e"]["cal"] = 0.0000000238846190642017;
unitConverterArr["e"]["eV"] = 624145700000;
unitConverterArr["e"]["ev"] = 624145700000;
unitConverterArr["e"]["HPh"] = 0.0000000000000372506111111111;
unitConverterArr["e"]["hh"] = 0.0000000000000372506111111111;
unitConverterArr["e"]["Wh"] = 0.0000000000277777777777778;
unitConverterArr["e"]["wh"] = 0.0000000000277777777777778;
unitConverterArr["e"]["flb"] = 0.00000237304222192651;
unitConverterArr["e"]["BTU"] = 0.0000000000947815067349015;
unitConverterArr["e"]["btu"] = 0.0000000000947815067349015;
unitConverterArr["c"] = {};//Thermodynamic calorie
unitConverterArr["c"]["cal"] = 0.99933031528756;
unitConverterArr["c"]["eV"] = 2.61141999999999E+019;
unitConverterArr["c"]["ev"] = 2.61141999999999E+019;
unitConverterArr["c"]["HPh"] = 0.00000155856222141365;
unitConverterArr["c"]["hh"] = 0.00000155856222141365;
unitConverterArr["c"]["Wh"] = 0.0011622197260102;
unitConverterArr["c"]["wh"] = 0.0011622197260102;
unitConverterArr["c"]["flb"] = 99.2878733152101;
unitConverterArr["c"]["BTU"] = 0.00396564972437775;
unitConverterArr["c"]["btu"] = 0.00396564972437775;
unitConverterArr["cal"] = {};//IT calorie
unitConverterArr["cal"]["eV"] = 2.61317E+019;
unitConverterArr["cal"]["ev"] = 2.61317E+019;
unitConverterArr["cal"]["HPh"] = 0.00000155960666615539;
unitConverterArr["cal"]["hh"] = 0.00000155960666615539;
unitConverterArr["cal"]["Wh"] = 0.00116299856837203;
unitConverterArr["cal"]["wh"] = 0.00116299856837203;
unitConverterArr["cal"]["flb"] = 99.3544094443285;
unitConverterArr["cal"]["BTU"] = 0.00396830723907002;
unitConverterArr["cal"]["btu"] = 0.00396830723907002;
unitConverterArr["eV"] = {};//Electron volt
unitConverterArr["eV"]["ev"] = 1;
unitConverterArr["eV"]["HPh"] = 5.968255667084E-026;
unitConverterArr["eV"]["hh"] = 5.968255667084E-026;
unitConverterArr["eV"]["Wh"] = 4.45052778185891E-023;
unitConverterArr["eV"]["wh"] = 4.45052778185891E-023;
unitConverterArr["eV"]["flb"] = 3.80206452103493E-018;
unitConverterArr["eV"]["BTU"] = 1.51857982414846E-022;
unitConverterArr["eV"]["btu"] = 1.51857982414846E-022;
unitConverterArr["ev"] = {};//Electron volt
unitConverterArr["ev"]["HPh"] = 5.968255667084E-026;
unitConverterArr["ev"]["hh"] = 5.968255667084E-026;
unitConverterArr["ev"]["Wh"] = 4.45052778185891E-023;
unitConverterArr["ev"]["wh"] = 4.45052778185891E-023;
unitConverterArr["ev"]["flb"] = 3.80206452103493E-018;
unitConverterArr["ev"]["BTU"] = 1.51857982414846E-022;
unitConverterArr["ev"]["btu"] = 1.51857982414846E-022;
unitConverterArr["HPh"] = {};//Horsepower-hour
unitConverterArr["HPh"]["hh"] = 1;
unitConverterArr["HPh"]["Wh"] = 745.699921403228;
unitConverterArr["HPh"]["wh"] = 745.699921403228;
unitConverterArr["HPh"]["flb"] = 63704786.3415771;
unitConverterArr["HPh"]["BTU"] = 2544.42823641704;
unitConverterArr["HPh"]["btu"] = 2544.42823641704;
unitConverterArr["hh"] = {};//Horsepower-hour
unitConverterArr["hh"]["Wh"] = 745.699921403228;
unitConverterArr["hh"]["wh"] = 745.699921403228;
unitConverterArr["hh"]["flb"] = 63704786.3415771;
unitConverterArr["hh"]["BTU"] = 2544.42823641704;
unitConverterArr["hh"]["btu"] = 2544.42823641704;
unitConverterArr["Wh"] = {};//Watt-hour
unitConverterArr["Wh"]["wh"] = 1;
unitConverterArr["Wh"]["flb"] = 85429.5199893544;
unitConverterArr["Wh"]["BTU"] = 3.41213424245645;
unitConverterArr["Wh"]["btu"] = 3.41213424245645;
unitConverterArr["wh"] = {};//Watt-hour
unitConverterArr["wh"]["flb"] = 85429.5199893544;
unitConverterArr["wh"]["BTU"] = 3.41213424245645;
unitConverterArr["wh"]["btu"] = 3.41213424245645;
unitConverterArr["flb"] = {};//Foot-pound
unitConverterArr["flb"]["BTU"] = 0.0000399409272448405;
unitConverterArr["flb"]["btu"] = 0.0000399409272448405;
unitConverterArr["BTU"] = {};//BTU
unitConverterArr["BTU"]["btu"] = 1;
};
var generatePowerMagnetismTemperature = function () {
//Power
unitConverterArr["HP"] = {};//Horsepower
unitConverterArr["HP"]["h"] = 1;
unitConverterArr["HP"]["PS"] = 1.0138700185381;
unitConverterArr["HP"]["W"] = 745.699921403228;
unitConverterArr["HP"]["w"] = 745.699921403228;
unitConverterArr["h"] = {};//Horsepower
unitConverterArr["h"]["PS"] = 1.0138700185381;
unitConverterArr["h"]["W"] = 745.699921403228;
unitConverterArr["h"]["w"] = 745.699921403228;
unitConverterArr["PS"] = {};//Pferdestärke
unitConverterArr["PS"]["W"] = 735.498542977386;
unitConverterArr["PS"]["w"] = 735.498542977386;
unitConverterArr["W"] = {};//Watt ;
unitConverterArr["W"]["w"] = 1;
//Magnetism
unitConverterArr["T"] = {};//Tesla
unitConverterArr["T"]["ga"] = 10000;
//***TODO пересмотреть коэфиициэнты у температуры!!!!!***
//Temperature
//type 0 - умножение, 1 - сложение
unitConverterArr["C"] = {};//Degree Celsius
unitConverterArr["C"]["cel"] = 1;
unitConverterArr["C"]["F"] = [{type: 0, val: 1.8}, {type: 1, val: 32}];
unitConverterArr["C"]["fah"] = [{type: 0, val: 1.8}, {type: 1, val: 32}];
unitConverterArr["C"]["K"] = [{type: 1, val: 273.15}];
unitConverterArr["C"]["kel"] = [{type: 1, val: 273.15}];
unitConverterArr["C"]["Rank"] = [{type: 1, val: 273.15}, {type: 0, val: 1.8}];
unitConverterArr["C"]["Reau"] = 0.8;
unitConverterArr["cel"] = {};//Degree Celsius
unitConverterArr["cel"]["F"] = [{type: 0, val: 1.8}, {type: 1, val: 32}];
unitConverterArr["cel"]["fah"] = [{type: 0, val: 1.8}, {type: 1, val: 32}];
unitConverterArr["cel"]["K"] = [{type: 1, val: 273.15}];
unitConverterArr["cel"]["kel"] = [{type: 1, val: 273.15}];
unitConverterArr["cel"]["Rank"] = [{type: 1, val: 273.15}, {type: 0, val: 1.8}];
unitConverterArr["cel"]["Reau"] = 0.8;
unitConverterArr["F"] = {};//Degree Fahrenheit
unitConverterArr["F"]["fah"] = 1;
unitConverterArr["F"]["K"] = [{type: 1, val: -32}, {type: 0, val: 5 / 9}, {type: 1, val: 273.15}];
unitConverterArr["F"]["kel"] = [{type: 1, val: -32}, {type: 0, val: 5 / 9}, {type: 1, val: 273.15}];
unitConverterArr["F"]["Rank"] = [{type: 1, val: 459.67}];
unitConverterArr["F"]["Reau"] = [{type: 1, val: -32}, {type: 0, val: 0.444444}];
unitConverterArr["fah"] = {};//Degree Fahrenheit
unitConverterArr["fah"]["K"] = [{type: 1, val: -32}, {type: 0, val: 5 / 9}, {type: 1, val: 273.15}];
unitConverterArr["fah"]["kel"] = [{type: 1, val: -32}, {type: 0, val: 5 / 9}, {type: 1, val: 273.15}];
unitConverterArr["fah"]["Rank"] = [{type: 1, val: 459.67}];
unitConverterArr["fah"]["Reau"] = [{type: 1, val: -32}, {type: 0, val: 0.444444}];
unitConverterArr["K"] = {};//Kelvin
unitConverterArr["K"]["kel"] = 1;
unitConverterArr["K"]["Rank"] = 1.8;
unitConverterArr["K"]["Reau"] = [{type: 1, val: -273.15}, {type: 0, val: 0.8}];
unitConverterArr["kel"] = {};//Kelvin
unitConverterArr["kel"]["Rank"] = 1.8;
unitConverterArr["kel"]["Reau"] = [{type: 1, val: -273.15}, {type: 0, val: 0.8}];
unitConverterArr["Rank"] = {};//Degrees Rankine
unitConverterArr["Rank"]["Reau"] = [{type: 0, val: 0.4444444}, {type: 1, val: -218.52}];
};
var generateVolume = function () {
//Picapt3/Picapt^3 do not support by LO
unitConverterArr["tsp"] = {};//Teaspoon
unitConverterArr["tsp"]["tspm"] = 0.98578431875;
unitConverterArr["tsp"]["tbs"] = 0.333333333333333;
unitConverterArr["tsp"]["oz"] = 0.166666666666667;
unitConverterArr["tsp"]["cup"] = 0.0208333333333333;
unitConverterArr["tsp"]["pt"] = 0.0104166666666667;
unitConverterArr["tsp"]["us_pt"] = 0.0104166666666667;
unitConverterArr["tsp"]["uk_pt"] = 0.00867368942321863;
unitConverterArr["tsp"]["qt"] = 0.00520833333333333;
unitConverterArr["tsp"]["uk_qt"] = 0.00433684471160932;
unitConverterArr["tsp"]["gal"] = 0.00130208333333333;
unitConverterArr["tsp"]["uk_gal"] = 0.00108421117790233;
unitConverterArr["tsp"]["l"] = 0.00492892159375;
unitConverterArr["tsp"]["L"] = 0.00492892159375;
unitConverterArr["tsp"]["lt"] = 0.00492892159375;
unitConverterArr["tsp"]["ang3"] = 4.92892159375E+024;
unitConverterArr["tsp"]["ang^3"] = 4.92892159375E+024;
unitConverterArr["tsp"]["barrel"] = 0.0000310019841269841;
unitConverterArr["tsp"]["bushel"] = 0.000139870916129584;
unitConverterArr["tsp"]["ft3"] = 0.00017406322337963;
unitConverterArr["tsp"]["ft^3"] = 0.00017406322337963;
unitConverterArr["tsp"]["in3"] = 0.30078125;
unitConverterArr["tsp"]["in^3"] = 0.30078125;
unitConverterArr["tsp"]["ly3"] = 5.82110969649095E-054;
unitConverterArr["tsp"]["ly^3"] = 5.82110969649095E-054;
unitConverterArr["tsp"]["ang^3"] = 4.92892159375E+024;
unitConverterArr["tsp"]["m3"] = 0.00000492892159375;
unitConverterArr["tsp"]["m^3"] = 0.00000492892159375;
unitConverterArr["tsp"]["mi3"] = 1.18251117637581E-015;
unitConverterArr["tsp"]["mi^3"] = 1.18251117637581E-015;
unitConverterArr["tsp"]["yd3"] = 0.0000064467860510974;
unitConverterArr["tsp"]["yd^3"] = 0.0000064467860510974;
unitConverterArr["tsp"]["Nmi3"] = 7.7594146898722E-016;
unitConverterArr["tsp"]["Nmi^3"] = 7.7594146898722E-016;
//unitConverterArr["tsp"]["Picapt3"] = ;
//unitConverterArr["tsp"]["Picapt^3"] = ;
unitConverterArr["tsp"]["Pica3"] = 112266;
unitConverterArr["tsp"]["Pica^3"] = 112266;
unitConverterArr["tsp"]["GRT"] = 0.00000174063239539155;
unitConverterArr["tsp"]["regton"] = 0.00000174063239539155;
unitConverterArr["tsp"]["MTON"] = 0.00696252893518519;
unitConverterArr["tspm"] = {};//Modern teaspoon
unitConverterArr["tspm"]["tbs"] = 0.33814022701843;
unitConverterArr["tspm"]["oz"] = 0.169070113509215;
unitConverterArr["tspm"]["cup"] = 0.0211337641886519;
unitConverterArr["tspm"]["pt"] = 0.0105668820943259;
unitConverterArr["tspm"]["us_pt"] = 0.0105668820943259;
unitConverterArr["tspm"]["uk_pt"] = 0.00879876993196351;
unitConverterArr["tspm"]["qt"] = 0.00528344104716297;
unitConverterArr["tspm"]["uk_qt"] = 0.00439938496598176;
unitConverterArr["tspm"]["gal"] = 0.00132086026179074;
unitConverterArr["tspm"]["uk_gal"] = 0.00109984624149544;
unitConverterArr["tspm"]["l"] = 0.005;
unitConverterArr["tspm"]["L"] = 0.005;
unitConverterArr["tspm"]["lt"] = 0.005;
unitConverterArr["tspm"]["ang3"] = 5E+024;
unitConverterArr["tspm"]["ang^3"] = 5E+024;
unitConverterArr["tspm"]["barrel"] = 0.0000314490538521605;
unitConverterArr["tspm"]["bushel"] = 0.00014188795;
unitConverterArr["tspm"]["ft3"] = 0.000176573333607443;
unitConverterArr["tspm"]["ft^3"] = 0.000176573333607443;
unitConverterArr["tspm"]["in3"] = 0.305118720473661;
unitConverterArr["tspm"]["in^3"] = 0.305118720473661;
unitConverterArr["tspm"]["ly3"] = 5.9050540628119E-054;
unitConverterArr["tspm"]["ly^3"] = 5.9050540628119E-054;
unitConverterArr["tspm"]["ang^3"] = 5E+024;
unitConverterArr["tspm"]["m3"] = 0.000005;
unitConverterArr["tspm"]["m^3"] = 0.000005;
unitConverterArr["tspm"]["mi3"] = 1.19956379289464E-015;
unitConverterArr["tspm"]["mi^3"] = 1.19956379289464E-015;
unitConverterArr["tspm"]["yd3"] = 0.00000653975309657196;
unitConverterArr["tspm"]["yd^3"] = 0.00000653975309657196;
unitConverterArr["tspm"]["Nmi3"] = 7.87131073429058E-016;
unitConverterArr["tspm"]["Nmi^3"] = 7.87131073429058E-016;
//unitConverterArr["tspm"]["Picapt3"] = ;
//unitConverterArr["tspm"]["Picapt^3"] = ;
unitConverterArr["tspm"]["Pica3"] = 113884.952179353;
unitConverterArr["tspm"]["Pica^3"] = 113884.952179353;
unitConverterArr["tspm"]["GRT"] = 0.0000017657335;
unitConverterArr["tspm"]["regton"] = 0.0000017657335;
unitConverterArr["tspm"]["MTON"] = 0.00706293334429772;
unitConverterArr["tbs"] = {};
unitConverterArr["tbs"]["oz"] = 0.5;
unitConverterArr["tbs"]["cup"] = 0.0625;
unitConverterArr["tbs"]["pt"] = 0.03125;
unitConverterArr["tbs"]["us_pt"] = 0.03125;
unitConverterArr["tbs"]["uk_pt"] = 0.0260210682696559;
unitConverterArr["tbs"]["qt"] = 0.015625;
unitConverterArr["tbs"]["uk_qt"] = 0.013010534134828;
unitConverterArr["tbs"]["gal"] = 0.00390625;
unitConverterArr["tbs"]["uk_gal"] = 0.00325263353370699;
unitConverterArr["tbs"]["l"] = 0.01478676478125;
unitConverterArr["tbs"]["L"] = 0.01478676478125;
unitConverterArr["tbs"]["lt"] = 0.01478676478125;
unitConverterArr["tbs"]["ang3"] = 1.478676478125E+025;
unitConverterArr["tbs"]["ang^3"] = 1.478676478125E+025;
unitConverterArr["tbs"]["barrel"] = 0.0000930059523809524;
unitConverterArr["tbs"]["bushel"] = 0.000419612748388752;
unitConverterArr["tbs"]["ft3"] = 0.000522189670138889;
unitConverterArr["tbs"]["ft^3"] = 0.000522189670138889;
unitConverterArr["tbs"]["in3"] = 0.90234375;
unitConverterArr["tbs"]["in^3"] = 0.90234375;
unitConverterArr["tbs"]["ly3"] = 1.74633290894728E-053;
unitConverterArr["tbs"]["ly^3"] = 1.74633290894728E-053;
unitConverterArr["tbs"]["ang^3"] = 1.478676478125E+025;
unitConverterArr["tbs"]["m3"] = 0.00001478676478125;
unitConverterArr["tbs"]["m^3"] = 0.00001478676478125;
unitConverterArr["tbs"]["mi3"] = 3.54753352912742E-015;
unitConverterArr["tbs"]["mi^3"] = 3.54753352912742E-015;
unitConverterArr["tbs"]["yd3"] = 0.0000193403581532922;
unitConverterArr["tbs"]["yd^3"] = 0.0000193403581532922;
unitConverterArr["tbs"]["Nmi3"] = 2.32782440696166E-015;
unitConverterArr["tbs"]["Nmi^3"] = 2.32782440696166E-015;
//unitConverterArr["tbs"]["Picapt3"] = ;
//unitConverterArr["tbs"]["Picapt^3"] = ;
unitConverterArr["tbs"]["Pica3"] = 336798;
unitConverterArr["tbs"]["Pica^3"] = 336798;
unitConverterArr["tbs"]["GRT"] = 0.00000522189718617466;
unitConverterArr["tbs"]["regton"] = 0.00000522189718617466;
unitConverterArr["tbs"]["MTON"] = 0.0208875868055556;
unitConverterArr["oz"] = {};
unitConverterArr["oz"]["cup"] = 0.125;
unitConverterArr["oz"]["pt"] = 0.0625;
unitConverterArr["oz"]["us_pt"] = 0.0625;
unitConverterArr["oz"]["uk_pt"] = 0.0520421365393118;
unitConverterArr["oz"]["qt"] = 0.03125;
unitConverterArr["oz"]["uk_qt"] = 0.0260210682696559;
unitConverterArr["oz"]["gal"] = 0.0078125;
unitConverterArr["oz"]["uk_gal"] = 0.00650526706741398;
unitConverterArr["oz"]["l"] = 0.0295735295625;
unitConverterArr["oz"]["L"] = 0.0295735295625;
unitConverterArr["oz"]["lt"] = 0.0295735295625;
unitConverterArr["oz"]["ang3"] = 2.95735295625E+025;
unitConverterArr["oz"]["ang^3"] = 2.95735295625E+025;
unitConverterArr["oz"]["barrel"] = 0.000186011904761905;
unitConverterArr["oz"]["bushel"] = 0.000839225496777505;
unitConverterArr["oz"]["ft3"] = 0.00104437934027778;
unitConverterArr["oz"]["ft^3"] = 0.00104437934027778;
unitConverterArr["oz"]["in3"] = 1.8046875;
unitConverterArr["oz"]["in^3"] = 1.8046875;
unitConverterArr["oz"]["ly3"] = 3.49266581789457E-053;
unitConverterArr["oz"]["ly^3"] = 3.49266581789457E-053;
unitConverterArr["oz"]["ang^3"] = 2.95735295625E+025;
unitConverterArr["oz"]["m3"] = 0.0000295735295625;
unitConverterArr["oz"]["m^3"] = 0.0000295735295625;
unitConverterArr["oz"]["mi3"] = 7.09506705825485E-015;
unitConverterArr["oz"]["mi^3"] = 7.09506705825485E-015;
unitConverterArr["oz"]["yd3"] = 0.0000386807163065844;
unitConverterArr["oz"]["yd^3"] = 0.0000386807163065844;
unitConverterArr["oz"]["Nmi3"] = 4.65564881392332E-015;
unitConverterArr["oz"]["Nmi^3"] = 4.65564881392332E-015;
//unitConverterArr["oz"]["Picapt3"] = ;
//unitConverterArr["oz"]["Picapt^3"] = ;
unitConverterArr["oz"]["Pica3"] = 673596;
unitConverterArr["oz"]["Pica^3"] = 673596;
unitConverterArr["oz"]["GRT"] = 0.0000104437943723493;
unitConverterArr["oz"]["regton"] = 0.0000104437943723493;
unitConverterArr["oz"]["MTON"] = 0.0417751736111111;
unitConverterArr["cup"] = {};
unitConverterArr["cup"]["pt"] = 0.5;
unitConverterArr["cup"]["us_pt"] = 0.5;
unitConverterArr["cup"]["uk_pt"] = 0.416337092314494;
unitConverterArr["cup"]["qt"] = 0.25;
unitConverterArr["cup"]["uk_qt"] = 0.208168546157247;
unitConverterArr["cup"]["gal"] = 0.0625;
unitConverterArr["cup"]["uk_gal"] = 0.0520421365393118;
unitConverterArr["cup"]["l"] = 0.2365882365;
unitConverterArr["cup"]["L"] = 0.2365882365;
unitConverterArr["cup"]["lt"] = 0.2365882365;
unitConverterArr["cup"]["ang3"] = 2.365882365E+026;
unitConverterArr["cup"]["ang^3"] = 2.365882365E+026;
unitConverterArr["cup"]["barrel"] = 0.00148809523809524;
unitConverterArr["cup"]["bushel"] = 0.00671380397422004;
unitConverterArr["cup"]["ft3"] = 0.00835503472222222;
unitConverterArr["cup"]["ft^3"] = 0.00835503472222222;
unitConverterArr["cup"]["in3"] = 14.4375;
unitConverterArr["cup"]["in^3"] = 14.4375;
unitConverterArr["cup"]["ly3"] = 2.79413265431566E-052;
unitConverterArr["cup"]["ly^3"] = 2.79413265431566E-052;
unitConverterArr["cup"]["ang^3"] = 2.365882365E+026;
unitConverterArr["cup"]["m3"] = 0.0002365882365;
unitConverterArr["cup"]["m^3"] = 0.0002365882365;
unitConverterArr["cup"]["mi3"] = 0.0000000000000567605364660388;
unitConverterArr["cup"]["mi^3"] = 0.0000000000000567605364660388;
unitConverterArr["cup"]["yd3"] = 0.000309445730452675;
unitConverterArr["cup"]["yd^3"] = 0.000309445730452675;
unitConverterArr["cup"]["Nmi3"] = 0.0000000000000372451905113865;
unitConverterArr["cup"]["Nmi^3"] = 0.0000000000000372451905113865;
//unitConverterArr["cup"]["Picapt3"] = ;
//unitConverterArr["cup"]["Picapt^3"] = ;
unitConverterArr["cup"]["Pica3"] = 5388768;
unitConverterArr["cup"]["Pica^3"] = 5388768;
unitConverterArr["cup"]["GRT"] = 0.0000835503549787945;
unitConverterArr["cup"]["regton"] = 0.0000835503549787945;
unitConverterArr["cup"]["MTON"] = 0.334201388888889;
unitConverterArr["pt"] = {};
unitConverterArr["pt"]["us_pt"] = 1;
unitConverterArr["pt"]["uk_pt"] = 0.832674184628989;
unitConverterArr["pt"]["qt"] = 0.5;
unitConverterArr["pt"]["uk_qt"] = 0.416337092314494;
unitConverterArr["pt"]["gal"] = 0.125;
unitConverterArr["pt"]["uk_gal"] = 0.104084273078624;
unitConverterArr["pt"]["l"] = 0.473176473;
unitConverterArr["pt"]["L"] = 0.473176473;
unitConverterArr["pt"]["lt"] = 0.473176473;
unitConverterArr["pt"]["ang3"] = 4.73176473E+026;
unitConverterArr["pt"]["ang^3"] = 4.73176473E+026;
unitConverterArr["pt"]["barrel"] = 0.00297619047619048;
unitConverterArr["pt"]["bushel"] = 0.0134276079484401;
unitConverterArr["pt"]["ft3"] = 0.0167100694444444;
unitConverterArr["pt"]["ft^3"] = 0.0167100694444444;
unitConverterArr["pt"]["in3"] = 28.875;
unitConverterArr["pt"]["in^3"] = 28.875;
unitConverterArr["pt"]["ly3"] = 5.58826530863131E-052;
unitConverterArr["pt"]["ly^3"] = 5.58826530863131E-052;
unitConverterArr["pt"]["ang^3"] = 4.73176473E+026;
unitConverterArr["pt"]["m3"] = 0.000473176473;
unitConverterArr["pt"]["m^3"] = 0.000473176473;
unitConverterArr["pt"]["mi3"] = 0.000000000000113521072932078;
unitConverterArr["pt"]["mi^3"] = 0.000000000000113521072932078;
unitConverterArr["pt"]["yd3"] = 0.00061889146090535;
unitConverterArr["pt"]["yd^3"] = 0.00061889146090535;
unitConverterArr["pt"]["Nmi3"] = 0.0000000000000744903810227731;
unitConverterArr["pt"]["Nmi^3"] = 0.0000000000000744903810227731;
//unitConverterArr["pt"]["Picapt3"] = ;
//unitConverterArr["pt"]["Picapt^3"] = ;
unitConverterArr["pt"]["Pica3"] = 10777536;
unitConverterArr["pt"]["Pica^3"] = 10777536;
unitConverterArr["pt"]["GRT"] = 0.000167100709957589;
unitConverterArr["pt"]["regton"] = 0.000167100709957589;
unitConverterArr["pt"]["MTON"] = 0.668402777777778;
unitConverterArr["us_pt"] = {};
unitConverterArr["us_pt"]["uk_pt"] = 0.832674184628989;
unitConverterArr["us_pt"]["qt"] = 0.5;
unitConverterArr["us_pt"]["uk_qt"] = 0.416337092314494;
unitConverterArr["us_pt"]["gal"] = 0.125;
unitConverterArr["us_pt"]["uk_gal"] = 0.104084273078624;
unitConverterArr["us_pt"]["l"] = 0.473176473;
unitConverterArr["us_pt"]["L"] = 0.473176473;
unitConverterArr["us_pt"]["lt"] = 0.473176473;
unitConverterArr["us_pt"]["ang3"] = 4.73176473E+026;
unitConverterArr["us_pt"]["ang^3"] = 4.73176473E+026;
unitConverterArr["us_pt"]["barrel"] = 0.00297619047619048;
unitConverterArr["us_pt"]["bushel"] = 0.0134276079484401;
unitConverterArr["us_pt"]["ft3"] = 0.0167100694444444;
unitConverterArr["us_pt"]["ft^3"] = 0.0167100694444444;
unitConverterArr["us_pt"]["in3"] = 28.875;
unitConverterArr["us_pt"]["in^3"] = 28.875;
unitConverterArr["us_pt"]["ly3"] = 5.58826530863131E-052;
unitConverterArr["us_pt"]["ly^3"] = 5.58826530863131E-052;
unitConverterArr["us_pt"]["ang^3"] = 4.73176473E+026;
unitConverterArr["us_pt"]["m3"] = 0.000473176473;
unitConverterArr["us_pt"]["m^3"] = 0.000473176473;
unitConverterArr["us_pt"]["mi3"] = 0.000000000000113521072932078;
unitConverterArr["us_pt"]["mi^3"] = 0.000000000000113521072932078;
unitConverterArr["us_pt"]["yd3"] = 0.00061889146090535;
unitConverterArr["us_pt"]["yd^3"] = 0.00061889146090535;
unitConverterArr["us_pt"]["Nmi3"] = 0.0000000000000744903810227731;
unitConverterArr["us_pt"]["Nmi^3"] = 0.0000000000000744903810227731;
//unitConverterArr["us_pt"]["Picapt3"] = ;
//unitConverterArr["us_pt"]["Picapt^3"] = ;
unitConverterArr["us_pt"]["Pica3"] = 10777536;
unitConverterArr["us_pt"]["Pica^3"] = 10777536;
unitConverterArr["us_pt"]["GRT"] = 0.000167100709957589;
unitConverterArr["us_pt"]["regton"] = 0.000167100709957589;
unitConverterArr["us_pt"]["MTON"] = 0.668402777777778;
unitConverterArr["uk_pt"] = {};
unitConverterArr["uk_pt"]["qt"] = 0.600474962752427;
unitConverterArr["uk_pt"]["uk_qt"] = 0.5;
unitConverterArr["uk_pt"]["gal"] = 0.150118740688107;
unitConverterArr["uk_pt"]["uk_gal"] = 0.125;
unitConverterArr["uk_pt"]["l"] = 0.56826125;
unitConverterArr["uk_pt"]["L"] = 0.56826125;
unitConverterArr["uk_pt"]["lt"] = 0.56826125;
unitConverterArr["uk_pt"]["ang3"] = 5.6826125E+026;
unitConverterArr["uk_pt"]["ang^3"] = 5.6826125E+026;
unitConverterArr["uk_pt"]["barrel"] = 0.00357425573066921;
unitConverterArr["uk_pt"]["bushel"] = 0.0161258847653875;
unitConverterArr["uk_pt"]["ft3"] = 0.0200679566544865;
unitConverterArr["uk_pt"]["ft^3"] = 0.0200679566544865;
unitConverterArr["uk_pt"]["in3"] = 34.6774290989527;
unitConverterArr["uk_pt"]["in^3"] = 34.6774290989527;
unitConverterArr["uk_pt"]["ly3"] = 6.71122680610214E-052;
unitConverterArr["uk_pt"]["ly^3"] = 6.71122680610214E-052;
unitConverterArr["uk_pt"]["ang^3"] = 5.6826125E+026;
unitConverterArr["uk_pt"]["m3"] = 0.00056826125;
unitConverterArr["uk_pt"]["m^3"] = 0.00056826125;
unitConverterArr["uk_pt"]["mi3"] = 0.00000000000013633312408101;
unitConverterArr["uk_pt"]["mi^3"] = 0.00000000000013633312408101;
unitConverterArr["uk_pt"]["yd3"] = 0.000743257653869871;
unitConverterArr["uk_pt"]["yd^3"] = 0.000743257653869871;
unitConverterArr["uk_pt"]["Nmi3"] = 0.0000000000000894592175401276;
unitConverterArr["uk_pt"]["Nmi^3"] = 0.0000000000000894592175401276;
//unitConverterArr["uk_pt"]["Picapt3"] = ;
//unitConverterArr["uk_pt"]["Picapt^3"] = ;
unitConverterArr["uk_pt"]["Pica3"] = 12943281.0563259;
unitConverterArr["uk_pt"]["Pica^3"] = 12943281.0563259;
unitConverterArr["uk_pt"]["GRT"] = 0.000200679585175375;
unitConverterArr["uk_pt"]["regton"] = 0.000200679585175375;
unitConverterArr["uk_pt"]["MTON"] = 0.80271826617946;
unitConverterArr["qt"] = {};
unitConverterArr["qt"]["uk_qt"] = 0.832674184628989;
unitConverterArr["qt"]["gal"] = 0.25;
unitConverterArr["qt"]["uk_gal"] = 0.208168546157247;
unitConverterArr["qt"]["l"] = 0.946352946;
unitConverterArr["qt"]["L"] = 0.946352946;
unitConverterArr["qt"]["lt"] = 0.946352946;
unitConverterArr["qt"]["ang3"] = 9.46352946E+026;
unitConverterArr["qt"]["ang^3"] = 9.46352946E+026;
unitConverterArr["qt"]["barrel"] = 0.00595238095238095;
unitConverterArr["qt"]["bushel"] = 0.0268552158968801;
unitConverterArr["qt"]["ft3"] = 0.0334201388888889;
unitConverterArr["qt"]["ft^3"] = 0.0334201388888889;
unitConverterArr["qt"]["in3"] = 57.75;
unitConverterArr["qt"]["in^3"] = 57.75;
unitConverterArr["qt"]["ly3"] = 1.11765306172626E-051;
unitConverterArr["qt"]["ly^3"] = 1.11765306172626E-051;
unitConverterArr["qt"]["ang^3"] = 9.46352946E+026;
unitConverterArr["qt"]["m3"] = 0.000946352946;
unitConverterArr["qt"]["m^3"] = 0.000946352946;
unitConverterArr["qt"]["mi3"] = 0.000000000000227042145864155;
unitConverterArr["qt"]["mi^3"] = 0.000000000000227042145864155;
unitConverterArr["qt"]["yd3"] = 0.0012377829218107;
unitConverterArr["qt"]["yd^3"] = 0.0012377829218107;
unitConverterArr["qt"]["Nmi3"] = 0.000000000000148980762045546;
unitConverterArr["qt"]["Nmi^3"] = 0.000000000000148980762045546;
//unitConverterArr["qt"]["Picapt3"] = ;
//unitConverterArr["qt"]["Picapt^3"] = ;
unitConverterArr["qt"]["Pica3"] = 21555072;
unitConverterArr["qt"]["Pica^3"] = 21555072;
unitConverterArr["qt"]["GRT"] = 0.000334201419915178;
unitConverterArr["qt"]["regton"] = 0.000334201419915178;
unitConverterArr["qt"]["MTON"] = 1.33680555555556;
unitConverterArr["uk_qt"] = {};
unitConverterArr["uk_qt"]["gal"] = 0.300237481376214;
unitConverterArr["uk_qt"]["uk_gal"] = 0.25;
unitConverterArr["uk_qt"]["l"] = 1.1365225;
unitConverterArr["uk_qt"]["L"] = 1.1365225;
unitConverterArr["uk_qt"]["lt"] = 1.1365225;
unitConverterArr["uk_qt"]["ang3"] = 1.1365225E+027;
unitConverterArr["uk_qt"]["ang^3"] = 1.1365225E+027;
unitConverterArr["uk_qt"]["barrel"] = 0.00714851146133842;
unitConverterArr["uk_qt"]["bushel"] = 0.032251769530775;
unitConverterArr["uk_qt"]["ft3"] = 0.040135913308973;
unitConverterArr["uk_qt"]["ft^3"] = 0.040135913308973;
unitConverterArr["uk_qt"]["in3"] = 69.3548581979054;
unitConverterArr["uk_qt"]["in^3"] = 69.3548581979054;
unitConverterArr["uk_qt"]["ly3"] = 1.34224536122043E-051;
unitConverterArr["uk_qt"]["ly^3"] = 1.34224536122043E-051;
unitConverterArr["uk_qt"]["ang^3"] = 1.1365225E+027;
unitConverterArr["uk_qt"]["m3"] = 0.0011365225;
unitConverterArr["uk_qt"]["m^3"] = 0.0011365225;
unitConverterArr["uk_qt"]["mi3"] = 0.000000000000272666248162019;
unitConverterArr["uk_qt"]["mi^3"] = 0.000000000000272666248162019;
unitConverterArr["uk_qt"]["yd3"] = 0.00148651530773974;
unitConverterArr["uk_qt"]["yd^3"] = 0.00148651530773974;
unitConverterArr["uk_qt"]["Nmi3"] = 0.000000000000178918435080255;
unitConverterArr["uk_qt"]["Nmi^3"] = 0.000000000000178918435080255;
//unitConverterArr["uk_qt"]["Picapt3"] = ;
//unitConverterArr["uk_qt"]["Picapt^3"] = ;
unitConverterArr["uk_qt"]["Pica3"] = 25886562.1126518;
unitConverterArr["uk_qt"]["Pica^3"] = 25886562.1126518;
unitConverterArr["uk_qt"]["GRT"] = 0.00040135917035075;
unitConverterArr["uk_qt"]["regton"] = 0.00040135917035075;
unitConverterArr["uk_qt"]["MTON"] = 1.60543653235892;
unitConverterArr["gal"] = {};
unitConverterArr["gal"]["uk_gal"] = 0.832674184628989;
unitConverterArr["gal"]["l"] = 3.785411784;
unitConverterArr["gal"]["L"] = 3.785411784;
unitConverterArr["gal"]["lt"] = 3.785411784;
unitConverterArr["gal"]["ang3"] = 3.785411784E+027;
unitConverterArr["gal"]["ang^3"] = 3.785411784E+027;
unitConverterArr["gal"]["barrel"] = 0.0238095238095238;
unitConverterArr["gal"]["bushel"] = 0.107420863587521;
unitConverterArr["gal"]["ft3"] = 0.133680555555556;
unitConverterArr["gal"]["ft^3"] = 0.133680555555556;
unitConverterArr["gal"]["in3"] = 231;
unitConverterArr["gal"]["in^3"] = 231;
unitConverterArr["gal"]["ly3"] = 4.47061224690505E-051;
unitConverterArr["gal"]["ly^3"] = 4.47061224690505E-051;
unitConverterArr["gal"]["ang^3"] = 3.785411784E+027;
unitConverterArr["gal"]["m3"] = 0.003785411784;
unitConverterArr["gal"]["m^3"] = 0.003785411784;
unitConverterArr["gal"]["mi3"] = 0.00000000000090816858345662;
unitConverterArr["gal"]["mi^3"] = 0.00000000000090816858345662;
unitConverterArr["gal"]["yd3"] = 0.0049511316872428;
unitConverterArr["gal"]["yd^3"] = 0.0049511316872428;
unitConverterArr["gal"]["Nmi3"] = 0.000000000000595923048182185;
unitConverterArr["gal"]["Nmi^3"] = 0.000000000000595923048182185;
//unitConverterArr["gal"]["Picapt3"] = ;
//unitConverterArr["gal"]["Picapt^3"] = ;
unitConverterArr["gal"]["Pica3"] = 86220288;
unitConverterArr["gal"]["Pica^3"] = 86220288;
unitConverterArr["gal"]["GRT"] = 0.00133680567966071;
unitConverterArr["gal"]["regton"] = 0.00133680567966071;
unitConverterArr["gal"]["MTON"] = 5.34722222222222;
unitConverterArr["uk_gal"] = {};
unitConverterArr["uk_gal"]["l"] = 4.54609;
unitConverterArr["uk_gal"]["L"] = 4.54609;
unitConverterArr["uk_gal"]["lt"] = 4.54609;
unitConverterArr["uk_gal"]["ang3"] = 4.54609E+027;
unitConverterArr["uk_gal"]["ang^3"] = 4.54609E+027;
unitConverterArr["uk_gal"]["barrel"] = 0.0285940458453537;
unitConverterArr["uk_gal"]["bushel"] = 0.1290070781231;
unitConverterArr["uk_gal"]["ft3"] = 0.160543653235892;
unitConverterArr["uk_gal"]["ft^3"] = 0.160543653235892;
unitConverterArr["uk_gal"]["in3"] = 277.419432791621;
unitConverterArr["uk_gal"]["in^3"] = 277.419432791621;
unitConverterArr["uk_gal"]["ly3"] = 5.36898144488171E-051;
unitConverterArr["uk_gal"]["ly^3"] = 5.36898144488171E-051;
unitConverterArr["uk_gal"]["ang^3"] = 4.54609E+027;
unitConverterArr["uk_gal"]["m3"] = 0.00454609;
unitConverterArr["uk_gal"]["m^3"] = 0.00454609;
unitConverterArr["uk_gal"]["mi3"] = 0.00000000000109066499264808;
unitConverterArr["uk_gal"]["mi^3"] = 0.00000000000109066499264808;
unitConverterArr["uk_gal"]["yd3"] = 0.00594606123095897;
unitConverterArr["uk_gal"]["yd^3"] = 0.00594606123095897;
unitConverterArr["uk_gal"]["Nmi3"] = 0.000000000000715673740321021;
unitConverterArr["uk_gal"]["Nmi^3"] = 0.000000000000715673740321021;
//unitConverterArr["uk_gal"]["Picapt3"] = ;
//unitConverterArr["uk_gal"]["Picapt^3"] = ;
unitConverterArr["uk_gal"]["Pica3"] = 103546248.450607;
unitConverterArr["uk_gal"]["Pica^3"] = 103546248.450607;
unitConverterArr["uk_gal"]["GRT"] = 0.001605436681403;
unitConverterArr["uk_gal"]["regton"] = 0.001605436681403;
unitConverterArr["uk_gal"]["MTON"] = 6.42174612943568;
unitConverterArr["l"] = {};
unitConverterArr["l"]["L"] = 1;
unitConverterArr["l"]["lt"] = 1;
unitConverterArr["l"]["ang3"] = 1E+027;
unitConverterArr["l"]["ang^3"] = 1E+027;
unitConverterArr["l"]["barrel"] = 0.00628981077043211;
unitConverterArr["l"]["bushel"] = 0.02837759;
unitConverterArr["l"]["ft3"] = 0.0353146667214886;
unitConverterArr["l"]["ft^3"] = 0.0353146667214886;
unitConverterArr["l"]["in3"] = 61.0237440947323;
unitConverterArr["l"]["in^3"] = 61.0237440947323;
unitConverterArr["l"]["ly3"] = 1.18101081256238E-051;
unitConverterArr["l"]["ly^3"] = 1.18101081256238E-051;
unitConverterArr["l"]["ang^3"] = 1E+027;
unitConverterArr["l"]["m3"] = 0.001;
unitConverterArr["l"]["m^3"] = 0.001;
unitConverterArr["l"]["mi3"] = 0.000000000000239912758578928;
unitConverterArr["l"]["mi^3"] = 0.000000000000239912758578928;
unitConverterArr["l"]["yd3"] = 0.00130795061931439;
unitConverterArr["l"]["yd^3"] = 0.00130795061931439;
unitConverterArr["l"]["Nmi3"] = 0.000000000000157426214685811;
unitConverterArr["l"]["Nmi^3"] = 0.000000000000157426214685811;
//unitConverterArr["l"]["Picapt3"] = ;
//unitConverterArr["l"]["Picapt^3"] = ;
unitConverterArr["l"]["Pica3"] = 22776990.4358706;
unitConverterArr["l"]["Pica^3"] = 22776990.4358706;
unitConverterArr["l"]["GRT"] = 0.0003531467;
unitConverterArr["l"]["regton"] = 0.0003531467;
unitConverterArr["l"]["MTON"] = 1.41258666885954;
unitConverterArr["L"] = {};
unitConverterArr["L"]["lt"] = 1;
unitConverterArr["L"]["ang3"] = 1E+027;
unitConverterArr["L"]["ang^3"] = 1E+027;
unitConverterArr["L"]["barrel"] = 0.00628981077043211;
unitConverterArr["L"]["bushel"] = 0.02837759;
unitConverterArr["L"]["ft3"] = 0.0353146667214886;
unitConverterArr["L"]["ft^3"] = 0.0353146667214886;
unitConverterArr["L"]["in3"] = 61.0237440947323;
unitConverterArr["L"]["in^3"] = 61.0237440947323;
unitConverterArr["L"]["ly3"] = 1.18101081256238E-051;
unitConverterArr["L"]["ly^3"] = 1.18101081256238E-051;
unitConverterArr["L"]["ang^3"] = 1E+027;
unitConverterArr["L"]["m3"] = 0.001;
unitConverterArr["L"]["m^3"] = 0.001;
unitConverterArr["L"]["mi3"] = 0.000000000000239912758578928;
unitConverterArr["L"]["mi^3"] = 0.000000000000239912758578928;
unitConverterArr["L"]["yd3"] = 0.00130795061931439;
unitConverterArr["L"]["yd^3"] = 0.00130795061931439;
unitConverterArr["L"]["Nmi3"] = 0.000000000000157426214685811;
unitConverterArr["L"]["Nmi^3"] = 0.000000000000157426214685811;
//unitConverterArr["L"]["Picapt3"] = ;
//unitConverterArr["L"]["Picapt^3"] = ;
unitConverterArr["L"]["Pica3"] = 22776990.4358706;
unitConverterArr["L"]["Pica^3"] = 22776990.4358706;
unitConverterArr["L"]["GRT"] = 0.0003531467;
unitConverterArr["L"]["regton"] = 0.0003531467;
unitConverterArr["L"]["MTON"] = 1.41258666885954;
unitConverterArr["lt"] = {};
unitConverterArr["lt"]["ang3"] = 1E+027;
unitConverterArr["lt"]["ang^3"] = 1E+027;
unitConverterArr["lt"]["barrel"] = 0.00628981077043211;
unitConverterArr["lt"]["bushel"] = 0.02837759;
unitConverterArr["lt"]["ft3"] = 0.0353146667214886;
unitConverterArr["lt"]["ft^3"] = 0.0353146667214886;
unitConverterArr["lt"]["in3"] = 61.0237440947323;
unitConverterArr["lt"]["in^3"] = 61.0237440947323;
unitConverterArr["lt"]["ly3"] = 1.18101081256238E-051;
unitConverterArr["lt"]["ly^3"] = 1.18101081256238E-051;
unitConverterArr["lt"]["ang^3"] = 1E+027;
unitConverterArr["lt"]["m3"] = 0.001;
unitConverterArr["lt"]["m^3"] = 0.001;
unitConverterArr["lt"]["mi3"] = 0.000000000000239912758578928;
unitConverterArr["lt"]["mi^3"] = 0.000000000000239912758578928;
unitConverterArr["lt"]["yd3"] = 0.00130795061931439;
unitConverterArr["lt"]["yd^3"] = 0.00130795061931439;
unitConverterArr["lt"]["Nmi3"] = 0.000000000000157426214685811;
unitConverterArr["lt"]["Nmi^3"] = 0.000000000000157426214685811;
//unitConverterArr["lt"]["Picapt3"] = ;
//unitConverterArr["lt"]["Picapt^3"] = ;
unitConverterArr["lt"]["Pica3"] = 22776990.4358706;
unitConverterArr["lt"]["Pica^3"] = 22776990.4358706;
unitConverterArr["lt"]["GRT"] = 0.0003531467;
unitConverterArr["lt"]["regton"] = 0.0003531467;
unitConverterArr["lt"]["MTON"] = 1.41258666885954;
unitConverterArr["ang3"] = {};
unitConverterArr["ang3"]["ang^3"] = 1;
unitConverterArr["ang3"]["barrel"] = 6.28981077043211E-030;
unitConverterArr["ang3"]["bushel"] = 2.837759E-029;
unitConverterArr["ang3"]["ft3"] = 3.53146667214886E-029;
unitConverterArr["ang3"]["ft^3"] = 3.53146667214886E-029;
unitConverterArr["ang3"]["in3"] = 6.10237440947323E-026;
unitConverterArr["ang3"]["in^3"] = 6.10237440947323E-026;
unitConverterArr["ang3"]["ly3"] = 1.18101081256238E-078;
unitConverterArr["ang3"]["ly^3"] = 1.18101081256238E-078;
unitConverterArr["ang3"]["ang^3"] = 1;
unitConverterArr["ang3"]["m3"] = 1E-030;
unitConverterArr["ang3"]["m^3"] = 1E-030;
unitConverterArr["ang3"]["mi3"] = 2.39912758578928E-040;
unitConverterArr["ang3"]["mi^3"] = 2.39912758578928E-040;
unitConverterArr["ang3"]["yd3"] = 1.30795061931439E-030;
unitConverterArr["ang3"]["yd^3"] = 1.30795061931439E-030;
unitConverterArr["ang3"]["Nmi3"] = 1.57426214685812E-040;
unitConverterArr["ang3"]["Nmi^3"] = 1.57426214685812E-040;
//unitConverterArr["ang3"]["Picapt3"] = ;
//unitConverterArr["ang3"]["Picapt^3"] = ;
unitConverterArr["ang3"]["Pica3"] = 2.27769904358706E-020;
unitConverterArr["ang3"]["Pica^3"] = 2.27769904358706E-020;
unitConverterArr["ang3"]["GRT"] = 3.531467E-031;
unitConverterArr["ang3"]["regton"] = 3.531467E-031;
unitConverterArr["ang3"]["MTON"] = 1.41258666885954E-027;
unitConverterArr["ang^3"] = {};
unitConverterArr["ang^3"]["barrel"] = 6.28981077043211E-030;
unitConverterArr["ang^3"]["bushel"] = 2.837759E-029;
unitConverterArr["ang^3"]["ft3"] = 3.53146667214886E-029;
unitConverterArr["ang^3"]["ft^3"] = 3.53146667214886E-029;
unitConverterArr["ang^3"]["in3"] = 6.10237440947323E-026;
unitConverterArr["ang^3"]["in^3"] = 6.10237440947323E-026;
unitConverterArr["ang^3"]["ly3"] = 1.18101081256238E-078;
unitConverterArr["ang^3"]["ly^3"] = 1.18101081256238E-078;
unitConverterArr["ang^3"]["ang^3"] = 1;
unitConverterArr["ang^3"]["m3"] = 1E-030;
unitConverterArr["ang^3"]["m^3"] = 1E-030;
unitConverterArr["ang^3"]["mi3"] = 2.39912758578928E-040;
unitConverterArr["ang^3"]["mi^3"] = 2.39912758578928E-040;
unitConverterArr["ang^3"]["yd3"] = 1.30795061931439E-030;
unitConverterArr["ang^3"]["yd^3"] = 1.30795061931439E-030;
unitConverterArr["ang^3"]["Nmi3"] = 1.57426214685812E-040;
unitConverterArr["ang^3"]["Nmi^3"] = 1.57426214685812E-040;
//unitConverterArr["ang^3"]["Picapt3"] = ;
//unitConverterArr["ang^3"]["Picapt^3"] = ;
unitConverterArr["ang^3"]["Pica3"] = 2.27769904358706E-020;
unitConverterArr["ang^3"]["Pica^3"] = 2.27769904358706E-020;
unitConverterArr["ang^3"]["GRT"] = 3.531467E-031;
unitConverterArr["ang^3"]["regton"] = 3.531467E-031;
unitConverterArr["ang^3"]["MTON"] = 1.41258666885954E-027;
unitConverterArr["ang^3"] = {};
unitConverterArr["ang^3"]["barrel"] = 6.28981077043211E-030;
unitConverterArr["ang^3"]["bushel"] = 2.837759E-029;
unitConverterArr["ang^3"]["ft3"] = 3.53146667214886E-029;
unitConverterArr["ang^3"]["ft^3"] = 3.53146667214886E-029;
unitConverterArr["ang^3"]["in3"] = 6.10237440947323E-026;
unitConverterArr["ang^3"]["in^3"] = 6.10237440947323E-026;
unitConverterArr["ang^3"]["ly3"] = 1.18101081256238E-078;
unitConverterArr["ang^3"]["ly^3"] = 1.18101081256238E-078;
unitConverterArr["ang^3"]["ang^3"] = 1;
unitConverterArr["ang^3"]["m3"] = 1E-030;
unitConverterArr["ang^3"]["m^3"] = 1E-030;
unitConverterArr["ang^3"]["mi3"] = 2.39912758578928E-040;
unitConverterArr["ang^3"]["mi^3"] = 2.39912758578928E-040;
unitConverterArr["ang^3"]["yd3"] = 1.30795061931439E-030;
unitConverterArr["ang^3"]["yd^3"] = 1.30795061931439E-030;
unitConverterArr["ang^3"]["Nmi3"] = 1.57426214685812E-040;
unitConverterArr["ang^3"]["Nmi^3"] = 1.57426214685812E-040;
//unitConverterArr["ang^3"]["Picapt3"] = ;
//unitConverterArr["ang^3"]["Picapt^3"] = ;
unitConverterArr["ang^3"]["Pica3"] = 2.27769904358706E-020;
unitConverterArr["ang^3"]["Pica^3"] = 2.27769904358706E-020;
unitConverterArr["ang^3"]["GRT"] = 3.531467E-031;
unitConverterArr["ang^3"]["regton"] = 3.531467E-031;
unitConverterArr["ang^3"]["MTON"] = 1.41258666885954E-027;
unitConverterArr["barrel"] = {};
unitConverterArr["barrel"]["bushel"] = 4.51167627067586;
unitConverterArr["barrel"]["ft3"] = 5.61458333333333;
unitConverterArr["barrel"]["ft^3"] = 5.61458333333333;
unitConverterArr["barrel"]["in3"] = 9702;
unitConverterArr["barrel"]["in^3"] = 9702;
unitConverterArr["barrel"]["ly3"] = 1.87765714370012E-049;
unitConverterArr["barrel"]["ly^3"] = 1.87765714370012E-049;
unitConverterArr["barrel"]["barrel"] = 1;
unitConverterArr["barrel"]["m3"] = 0.158987294928;
unitConverterArr["barrel"]["m^3"] = 0.158987294928;
unitConverterArr["barrel"]["mi3"] = 0.000000000038143080505178;
unitConverterArr["barrel"]["mi^3"] = 0.000000000038143080505178;
unitConverterArr["barrel"]["yd3"] = 0.207947530864197;
unitConverterArr["barrel"]["yd^3"] = 0.207947530864197;
unitConverterArr["barrel"]["Nmi3"] = 0.0000000000250287680236518;
unitConverterArr["barrel"]["Nmi^3"] = 0.0000000000250287680236518;
//unitConverterArr["barrel"]["Picapt3"] = ;
//unitConverterArr["barrel"]["Picapt^3"] = ;
unitConverterArr["barrel"]["Pica3"] = 3621252096;
unitConverterArr["barrel"]["Pica^3"] = 3621252096;
unitConverterArr["barrel"]["GRT"] = 0.0561458385457499;
unitConverterArr["barrel"]["regton"] = 0.0561458385457499;
unitConverterArr["barrel"]["MTON"] = 224.583333333333;
unitConverterArr["bushel"] = {};
unitConverterArr["bushel"]["ft3"] = 1.24445616141077;
unitConverterArr["bushel"]["ft^3"] = 1.24445616141077;
unitConverterArr["bushel"]["in3"] = 2150.42024691781;
unitConverterArr["bushel"]["in^3"] = 2150.42024691781;
unitConverterArr["bushel"]["ly3"] = 4.1617727670404E-050;
unitConverterArr["bushel"]["ly^3"] = 4.1617727670404E-050;
unitConverterArr["bushel"]["bushel"] = 1;
unitConverterArr["bushel"]["m3"] = 0.0352390742131379;
unitConverterArr["bushel"]["m^3"] = 0.0352390742131379;
unitConverterArr["bushel"]["mi3"] = 0.00000000000845430350424147;
unitConverterArr["bushel"]["mi^3"] = 0.00000000000845430350424147;
unitConverterArr["bushel"]["yd3"] = 0.0460909689411396;
unitConverterArr["bushel"]["yd^3"] = 0.0460909689411396;
unitConverterArr["bushel"]["Nmi3"] = 0.00000000000554755406240669;
unitConverterArr["bushel"]["Nmi^3"] = 0.00000000000554755406240669;
//unitConverterArr["bushel"]["Picapt3"] = ;
//unitConverterArr["bushel"]["Picapt^3"] = ;
unitConverterArr["bushel"]["Pica3"] = 802640056.321578;
unitConverterArr["bushel"]["Pica^3"] = 802640056.321578;
unitConverterArr["bushel"]["GRT"] = 0.0124445627694247;
unitConverterArr["bushel"]["regton"] = 0.0124445627694247;
unitConverterArr["bushel"]["MTON"] = 49.7782464564307;
unitConverterArr["ft3"] = {};
unitConverterArr["ft3"]["ft^3"] = 1;
unitConverterArr["ft3"]["in3"] = 1728;
unitConverterArr["ft3"]["in^3"] = 1728;
unitConverterArr["ft3"]["ly3"] = 3.34425020028222E-050;
unitConverterArr["ft3"]["ly^3"] = 3.34425020028222E-050;
unitConverterArr["ft3"]["ft3"] = 1;
unitConverterArr["ft3"]["m3"] = 0.028316846592;
unitConverterArr["ft3"]["m^3"] = 0.028316846592;
unitConverterArr["ft3"]["mi3"] = 0.00000000000679357278014303;
unitConverterArr["ft3"]["mi^3"] = 0.00000000000679357278014303;
unitConverterArr["ft3"]["yd3"] = 0.037037037037037;
unitConverterArr["ft3"]["yd^3"] = 0.037037037037037;
unitConverterArr["ft3"]["Nmi3"] = 0.00000000000445781397081738;
unitConverterArr["ft3"]["Nmi^3"] = 0.00000000000445781397081738;
//unitConverterArr["ft3"]["Picapt3"] = ;
//unitConverterArr["ft3"]["Picapt^3"] = ;
unitConverterArr["ft3"]["Pica3"] = 644972544;
unitConverterArr["ft3"]["Pica^3"] = 644972544;
unitConverterArr["ft3"]["GRT"] = 0.010000000928371;
unitConverterArr["ft3"]["regton"] = 0.010000000928371;
unitConverterArr["ft3"]["MTON"] = 40;
unitConverterArr["ft^3"] = {};
unitConverterArr["ft^3"]["in3"] = 1728;
unitConverterArr["ft^3"]["in^3"] = 1728;
unitConverterArr["ft^3"]["ly3"] = 3.34425020028222E-050;
unitConverterArr["ft^3"]["ly^3"] = 3.34425020028222E-050;
unitConverterArr["ft^3"]["ft^3"] = 1;
unitConverterArr["ft^3"]["m3"] = 0.028316846592;
unitConverterArr["ft^3"]["m^3"] = 0.028316846592;
unitConverterArr["ft^3"]["mi3"] = 0.00000000000679357278014303;
unitConverterArr["ft^3"]["mi^3"] = 0.00000000000679357278014303;
unitConverterArr["ft^3"]["yd3"] = 0.037037037037037;
unitConverterArr["ft^3"]["yd^3"] = 0.037037037037037;
unitConverterArr["ft^3"]["Nmi3"] = 0.00000000000445781397081738;
unitConverterArr["ft^3"]["Nmi^3"] = 0.00000000000445781397081738;
//unitConverterArr["ft^3"]["Picapt3"] = ;
//unitConverterArr["ft^3"]["Picapt^3"] = ;
unitConverterArr["ft^3"]["Pica3"] = 644972544;
unitConverterArr["ft^3"]["Pica^3"] = 644972544;
unitConverterArr["ft^3"]["GRT"] = 0.010000000928371;
unitConverterArr["ft^3"]["regton"] = 0.010000000928371;
unitConverterArr["ft^3"]["MTON"] = 40;
unitConverterArr["in3"] = {};
unitConverterArr["in3"]["in^3"] = 1;
unitConverterArr["in3"]["ly3"] = 1.93532997701517E-053;
unitConverterArr["in3"]["ly^3"] = 1.93532997701517E-053;
unitConverterArr["in3"]["in3"] = 1;
unitConverterArr["in3"]["m3"] = 0.000016387064;
unitConverterArr["in3"]["m^3"] = 0.000016387064;
unitConverterArr["in3"]["mi3"] = 3.93146572924944E-015;
unitConverterArr["in3"]["mi^3"] = 3.93146572924944E-015;
unitConverterArr["in3"]["yd3"] = 0.0000214334705075446;
unitConverterArr["in3"]["yd^3"] = 0.0000214334705075446;
unitConverterArr["in3"]["Nmi3"] = 2.57975345533413E-015;
unitConverterArr["in3"]["Nmi^3"] = 2.57975345533413E-015;
//unitConverterArr["in3"]["Picapt3"] = ;
//unitConverterArr["in3"]["Picapt^3"] = ;
unitConverterArr["in3"]["Pica3"] = 373248;
unitConverterArr["in3"]["Pica^3"] = 373248;
unitConverterArr["in3"]["GRT"] = 0.0000057870375742888;
unitConverterArr["in3"]["regton"] = 0.0000057870375742888;
unitConverterArr["in3"]["MTON"] = 0.0231481481481481;
unitConverterArr["in^3"] = {};
unitConverterArr["in^3"]["ly3"] = 1.93532997701517E-053;
unitConverterArr["in^3"]["ly^3"] = 1.93532997701517E-053;
unitConverterArr["in^3"]["in^3"] = 1;
unitConverterArr["in^3"]["m3"] = 0.000016387064;
unitConverterArr["in^3"]["m^3"] = 0.000016387064;
unitConverterArr["in^3"]["mi3"] = 3.93146572924944E-015;
unitConverterArr["in^3"]["mi^3"] = 3.93146572924944E-015;
//picapt
unitConverterArr["in^3"]["yd3"] = 0.0000214334705075446;
unitConverterArr["in^3"]["yd^3"] = 0.0000214334705075446;
unitConverterArr["in^3"]["Nmi3"] = 2.57975345533413E-015;
unitConverterArr["in^3"]["Nmi^3"] = 2.57975345533413E-015;
unitConverterArr["in^3"]["Pica3"] = 373248;
unitConverterArr["in^3"]["Pica^3"] = 373248;
unitConverterArr["in^3"]["GRT"] = 0.0000057870375742888;
unitConverterArr["in^3"]["regton"] = 0.0000057870375742888;
unitConverterArr["in^3"]["MTON"] = 0.0231481481481481;
unitConverterArr["ly3"] = {};
unitConverterArr["ly3"]["ly^3"] = 1;
unitConverterArr["ly3"]["ly3"] = 1;
unitConverterArr["ly3"]["m3"] = 8.46732298606437E+047;
unitConverterArr["ly3"]["m^3"] = 8.46732298606437E+047;
unitConverterArr["ly3"]["mi3"] = 2.03141881536547E+038;
unitConverterArr["ly3"]["mi^3"] = 2.03141881536547E+038;
unitConverterArr["ly3"]["yd3"] = 1.10748403435579E+048;
unitConverterArr["ly3"]["yd^3"] = 1.10748403435579E+048;
unitConverterArr["ly3"]["Nmi3"] = 1.33297860621828E+038;
unitConverterArr["ly3"]["Nmi^3"] = 1.33297860621828E+038;
//unitConverterArr["ly3"]["Picapt3"] = ;
//unitConverterArr["ly3"]["Picapt^3"] = ;
unitConverterArr["ly3"]["Pica3"] = 1.92860134671016E+058;
unitConverterArr["ly3"]["Pica^3"] = 1.92860134671016E+058;
unitConverterArr["ly3"]["GRT"] = 2.99020717036278E+047;
unitConverterArr["ly3"]["regton"] = 2.99020717036278E+047;
unitConverterArr["ly3"]["MTON"] = 1.19608275710425E+051;
unitConverterArr["ly^3"] = {};
unitConverterArr["ly^3"]["m3"] = 8.46732298606437E+047;
unitConverterArr["ly^3"]["m^3"] = 8.46732298606437E+047;
unitConverterArr["ly^3"]["mi3"] = 2.03141881536547E+038;
unitConverterArr["ly^3"]["mi^3"] = 2.03141881536547E+038;
unitConverterArr["ly^3"]["yd3"] = 1.10748403435579E+048;
unitConverterArr["ly^3"]["yd^3"] = 1.10748403435579E+048;
unitConverterArr["ly^3"]["Nmi3"] = 1.33297860621828E+038;
unitConverterArr["ly^3"]["Nmi^3"] = 1.33297860621828E+038;
//unitConverterArr["ly^3"]["Picapt3"] = ;
//unitConverterArr["ly^3"]["Picapt^3"] = ;
unitConverterArr["ly^3"]["Pica3"] = 1.92860134671016E+058;
unitConverterArr["ly^3"]["Pica^3"] = 1.92860134671016E+058;
unitConverterArr["ly^3"]["GRT"] = 2.99020717036278E+047;
unitConverterArr["ly^3"]["regton"] = 2.99020717036278E+047;
unitConverterArr["ly^3"]["MTON"] = 1.19608275710425E+051;
unitConverterArr["m3"] = {};
unitConverterArr["m3"]["m^3"] = 1;
unitConverterArr["m3"]["mi3"] = 0.000000000239912758578928;
unitConverterArr["m3"]["mi^3"] = 0.000000000239912758578928;
unitConverterArr["m3"]["yd3"] = 1.30795061931439;
unitConverterArr["m3"]["yd^3"] = 1.30795061931439;
unitConverterArr["m3"]["Nmi3"] = 0.000000000157426214685811;
unitConverterArr["m3"]["Nmi^3"] = 0.000000000157426214685811;
//unitConverterArr["m3"]["Picapt3"] = ;
//unitConverterArr["m3"]["Picapt^3"] = ;
unitConverterArr["m3"]["Pica3"] = 22776990435.8706;
unitConverterArr["m3"]["Pica^3"] = 22776990435.8706;
unitConverterArr["m3"]["GRT"] = 0.3531467;
unitConverterArr["m3"]["regton"] = 0.3531467;
unitConverterArr["m3"]["MTON"] = 1412.58666885954;
unitConverterArr["m^3"] = {};
unitConverterArr["m^3"]["mi3"] = 0.000000000239912758578928;
unitConverterArr["m^3"]["mi^3"] = 0.000000000239912758578928;
unitConverterArr["m^3"]["yd3"] = 1.30795061931439;
unitConverterArr["m^3"]["yd^3"] = 1.30795061931439;
unitConverterArr["m^3"]["Nmi3"] = 0.000000000157426214685811;
unitConverterArr["m^3"]["Nmi^3"] = 0.000000000157426214685811;
//unitConverterArr["m^3"]["Picapt3"] = ;
//unitConverterArr["m^3"]["Picapt^3"] = ;
unitConverterArr["m^3"]["Pica3"] = 22776990435.8706;
unitConverterArr["m^3"]["Pica^3"] = 22776990435.8706;
unitConverterArr["m^3"]["GRT"] = 0.3531467;
unitConverterArr["m^3"]["regton"] = 0.3531467;
unitConverterArr["m^3"]["MTON"] = 1412.58666885954;
unitConverterArr["mi3"] = {};
unitConverterArr["mi3"]["mi^3"] = 1;
unitConverterArr["mi3"]["yd3"] = 5451776000;
unitConverterArr["mi3"]["yd^3"] = 5451776000;
unitConverterArr["mi3"]["Nmi3"] = 0.656181086901306;
unitConverterArr["mi3"]["Nmi^3"] = 0.656181086901306;
//unitConverterArr["mi3"]["Picapt3"] = ;
//unitConverterArr["mi3"]["Picapt^3"] = ;
unitConverterArr["mi3"]["Pica3"] = 9.49386375730299E+019;
unitConverterArr["mi3"]["Pica^3"] = 9.49386375730299E+019;
unitConverterArr["mi3"]["GRT"] = 1471979656.65432;
unitConverterArr["mi3"]["regton"] = 1471979656.65432;
unitConverterArr["mi3"]["MTON"] = 5887918080000;
unitConverterArr["mi^3"] = {};
unitConverterArr["mi3"]["yd3"] = 5451776000;
unitConverterArr["mi3"]["yd^3"] = 5451776000;
unitConverterArr["mi3"]["Nmi3"] = 0.656181086901306;
unitConverterArr["mi3"]["Nmi^3"] = 0.656181086901306;
//unitConverterArr["mi3"]["Picapt3"] = ;
//unitConverterArr["mi3"]["Picapt^3"] = ;
unitConverterArr["mi3"]["Pica3"] = 9.49386375730299E+019;
unitConverterArr["mi3"]["Pica^3"] = 9.49386375730299E+019;
unitConverterArr["mi3"]["GRT"] = 1471979656.65432;
unitConverterArr["mi3"]["regton"] = 1471979656.65432;
unitConverterArr["mi3"]["MTON"] = 5887918080000;
unitConverterArr["yd3"] = {};
unitConverterArr["yd3"]["yd^3"] = 1;
unitConverterArr["yd3"]["Nmi3"] = 0.000000000120360977212069;
unitConverterArr["yd3"]["Nmi^3"] = 0.000000000120360977212069;
//unitConverterArr["yd3"]["Picapt3"] = ;
//unitConverterArr["yd3"]["Picapt^3"] = ;
unitConverterArr["yd3"]["Pica3"] = 17414258688;
unitConverterArr["yd3"]["Pica^3"] = 17414258688;
unitConverterArr["yd3"]["GRT"] = 0.270000025066018;
unitConverterArr["yd3"]["regton"] = 0.270000025066018;
unitConverterArr["yd3"]["MTON"] = 1080;
unitConverterArr["yd^3"] = {};
unitConverterArr["yd^3"]["Nmi3"] = 0.000000000120360977212069;
unitConverterArr["yd^3"]["Nmi^3"] = 0.000000000120360977212069;
//unitConverterArr["yd^3"]["Picapt3"] = ;
//unitConverterArr["yd^3"]["Picapt^3"] = ;
unitConverterArr["yd^3"]["Pica3"] = 17414258688;
unitConverterArr["yd^3"]["Pica^3"] = 17414258688;
unitConverterArr["yd^3"]["GRT"] = 0.270000025066018;
unitConverterArr["yd^3"]["regton"] = 0.270000025066018;
unitConverterArr["yd^3"]["MTON"] = 1080;
unitConverterArr["Nmi3"] = {};
unitConverterArr["Nmi3"]["Nmi^3"] = 1;
//unitConverterArr["Nmi3"]["Picapt3"] = ;
//unitConverterArr["Nmi3"]["Picapt^3"] = ;
unitConverterArr["Nmi3"]["Pica3"] = 1.44683593398524E+020;
unitConverterArr["Nmi3"]["Pica^3"] = 1.44683593398524E+020;
unitConverterArr["Nmi3"]["GRT"] = 2243252184.55391;
unitConverterArr["Nmi3"]["regton"] = 2243252184.55391;
unitConverterArr["Nmi3"]["MTON"] = 8973007905187.58;
unitConverterArr["Nmi^3"] = {};
//unitConverterArr["Nmi^3"]["Picapt3"] = ;
//unitConverterArr["Nmi^3"]["Picapt^3"] = ;
unitConverterArr["Nmi^3"]["Pica3"] = 1.44683593398524E+020;
unitConverterArr["Nmi^3"]["Pica^3"] = 1.44683593398524E+020;
unitConverterArr["Nmi^3"]["GRT"] = 2243252184.55391;
unitConverterArr["Nmi^3"]["regton"] = 2243252184.55391;
unitConverterArr["Nmi^3"]["MTON"] = 8973007905187.58;
/*unitConverterArr["Picapt3"] = {};
unitConverterArr["Picapt3"]["Picapt^3"] = ;
unitConverterArr["Picapt3"]["Pica3"] = ;
unitConverterArr["Picapt3"]["Pica^3"] = ;
unitConverterArr["Picapt3"]["GRT"] = ;
unitConverterArr["Picapt3"]["regton"] = ;
unitConverterArr["Picapt3"]["MTON"] = ;
unitConverterArr["Picapt^3"] = {}; ;
unitConverterArr["Picapt^3"]["Pica3"] = ;
unitConverterArr["Picapt^3"]["Pica^3"] = ;
unitConverterArr["Picapt^3"]["GRT"] = ;
unitConverterArr["Picapt^3"]["regton"] = ;
unitConverterArr["Picapt^3"]["MTON"] = ;*/
unitConverterArr["Pica3"] = {};
unitConverterArr["Pica3"]["Pica^3"] = 1;
unitConverterArr["Pica3"]["GRT"] = 0.0000000000155045373968214;
unitConverterArr["Pica3"]["regton"] = 0.0000000000155045373968214;
unitConverterArr["Pica3"]["MTON"] = 0.0000000620181438297008;
unitConverterArr["Pica^3"] = {};
unitConverterArr["Pica^3"]["GRT"] = 0.0000000000155045373968214;
unitConverterArr["Pica^3"]["regton"] = 0.0000000000155045373968214;
unitConverterArr["Pica^3"]["MTON"] = 0.0000000620181438297008;
unitConverterArr["GRT"] = {};
unitConverterArr["GRT"]["regton"] = 1;
unitConverterArr["GRT"]["MTON"] = 3999.99962865162;
unitConverterArr["regton"] = {};
unitConverterArr["regton"]["MTON"] = 3999.99962865162;
};
var generateArea = function () {
unitConverterArr["uk_acre"] = {};//International acre
//do not support Picapt2 & Picapt^2 by LO
unitConverterArr["uk_acre"]["us_acre"] = 0.999996000004;
unitConverterArr["uk_acre"]["ang2"] = 4.0468564224E+023;
unitConverterArr["uk_acre"]["ang^2"] = 4.0468564224E+023;
unitConverterArr["uk_acre"]["ar"] = 40.468564224;
unitConverterArr["uk_acre"]["ft2"] = 43560;
unitConverterArr["uk_acre"]["ft^2"] = 43560;
unitConverterArr["uk_acre"]["ha"] = 0.40468564224;
unitConverterArr["uk_acre"]["in2"] = 6272640;
unitConverterArr["uk_acre"]["in^2"] = 6272640;
unitConverterArr["uk_acre"]["ly2"] = 4.52154695871477E-029;
unitConverterArr["uk_acre"]["ly^2"] = 4.52154695871477E-029;
unitConverterArr["uk_acre"]["m2"] = 4046.8564224;
unitConverterArr["uk_acre"]["m^2"] = 4046.8564224;
unitConverterArr["uk_acre"]["Morgen"] = 1.61874256896;
unitConverterArr["uk_acre"]["mi2"] = 0.0015625;
unitConverterArr["uk_acre"]["mi^2"] = 0.0015625;
unitConverterArr["uk_acre"]["Nmi2"] = 0.0011798745452934;
unitConverterArr["uk_acre"]["Nmi^2"] = 0.0011798745452934;
//unitConverterArr["uk_acre"]["Picapt2"] = ;
unitConverterArr["uk_acre"]["Pica2"] = 32517365760;
unitConverterArr["uk_acre"]["Pica^2"] = 32517365760;
//unitConverterArr["uk_acre"]["Picapt^2"] = ;
unitConverterArr["uk_acre"]["yd2"] = 4840;
unitConverterArr["uk_acre"]["yd^2"] = 4840;
unitConverterArr["us_acre"] = {};
unitConverterArr["us_acre"]["ang2"] = 4.04687260987425E+023;
unitConverterArr["us_acre"]["ang^2"] = 4.04687260987425E+023;
unitConverterArr["us_acre"]["ar"] = 40.4687260987425;
unitConverterArr["us_acre"]["ft2"] = 43560.1742405227;
unitConverterArr["us_acre"]["ft^2"] = 43560.1742405227;
unitConverterArr["us_acre"]["ha"] = 0.404687260987425;
unitConverterArr["us_acre"]["in2"] = 6272665.09063527;
unitConverterArr["us_acre"]["in^2"] = 6272665.09063527;
unitConverterArr["us_acre"]["ly2"] = 4.52156504495687E-029;
unitConverterArr["us_acre"]["ly^2"] = 4.52156504495687E-029;
unitConverterArr["us_acre"]["m2"] = 4046.87260987425;
unitConverterArr["us_acre"]["m^2"] = 4046.87260987425;
unitConverterArr["us_acre"]["Morgen"] = 1.6187490439497;
unitConverterArr["us_acre"]["mi2"] = 0.00156250625001875;
unitConverterArr["us_acre"]["mi^2"] = 0.00156250625001875;
unitConverterArr["us_acre"]["Nmi2"] = 0.00117987926480574;
unitConverterArr["us_acre"]["Nmi^2"] = 0.00117987926480574;
//unitConverterArr["us_acre"]["Picapt2"] = ;
unitConverterArr["us_acre"]["Pica2"] = 32517495829.8532;
unitConverterArr["us_acre"]["Pica^2"] = 32517495829.8532;
//unitConverterArr["us_acre"]["Picapt^2"] = ;
unitConverterArr["us_acre"]["yd2"] = 4840.01936005808;
unitConverterArr["us_acre"]["yd^2"] = 4840.01936005808;
unitConverterArr["ang2"] = {};
unitConverterArr["ang2"]["ang^2"] = 1;
unitConverterArr["ang2"]["ar"] = 1E-022;
unitConverterArr["ang2"]["ft2"] = 1.07639104167097E-019;
unitConverterArr["ang2"]["ft^2"] = 1.07639104167097E-019;
unitConverterArr["ang2"]["ha"] = 1E-024;
unitConverterArr["ang2"]["in2"] = 1.5500031000062E-017;
unitConverterArr["ang2"]["in^2"] = 1.5500031000062E-017;
unitConverterArr["ang2"]["ly2"] = 1.11729858605491E-052;
unitConverterArr["ang2"]["ly^2"] = 1.11729858605491E-052;
unitConverterArr["ang2"]["m2"] = 1E-020;
unitConverterArr["ang2"]["m^2"] = 1E-020;
unitConverterArr["ang2"]["Morgen"] = 4E-024;
unitConverterArr["ang2"]["mi2"] = 3.86102158542446E-027;
unitConverterArr["ang2"]["mi^2"] = 3.86102158542446E-027;
unitConverterArr["ang2"]["Nmi2"] = 2.91553349598123E-027;
unitConverterArr["ang2"]["Nmi^2"] = 2.91553349598123E-027;
//unitConverterArr["ang2"]["Picapt2"] = ;
unitConverterArr["ang2"]["Pica2"] = 0.0000000000000803521607043214;
unitConverterArr["ang2"]["Pica^2"] = 0.0000000000000803521607043214;
//unitConverterArr["ang2"]["Picapt^2"] = ;
unitConverterArr["ang2"]["yd2"] = 1.19599004630108E-020;
unitConverterArr["ang2"]["yd^2"] = 1.19599004630108E-020;
unitConverterArr["ang^2"] = {};
unitConverterArr["ang^2"]["ar"] = 1E-022;
unitConverterArr["ang^2"]["ft2"] = 1.07639104167097E-019;
unitConverterArr["ang^2"]["ft^2"] = 1.07639104167097E-019;
unitConverterArr["ang^2"]["ha"] = 1E-024;
unitConverterArr["ang^2"]["in2"] = 1.5500031000062E-017;
unitConverterArr["ang^2"]["in^2"] = 1.5500031000062E-017;
unitConverterArr["ang^2"]["ly2"] = 1.11729858605491E-052;
unitConverterArr["ang^2"]["ly^2"] = 1.11729858605491E-052;
unitConverterArr["ang^2"]["m2"] = 1E-020;
unitConverterArr["ang^2"]["m^2"] = 1E-020;
unitConverterArr["ang^2"]["Morgen"] = 4E-024;
unitConverterArr["ang^2"]["mi2"] = 3.86102158542446E-027;
unitConverterArr["ang^2"]["mi^2"] = 3.86102158542446E-027;
unitConverterArr["ang^2"]["Nmi2"] = 2.91553349598123E-027;
unitConverterArr["ang^2"]["Nmi^2"] = 2.91553349598123E-027;
//unitConverterArr["ang^2"]["Picapt2"] = ;
unitConverterArr["ang^2"]["Pica2"] = 0.0000000000000803521607043214;
unitConverterArr["ang^2"]["Pica^2"] = 0.0000000000000803521607043214;
//unitConverterArr["ang^2"]["Picapt^2"] = ;
unitConverterArr["ang^2"]["yd2"] = 1.19599004630108E-020;
unitConverterArr["ang^2"]["yd^2"] = 1.19599004630108E-020;
unitConverterArr["ar"] = {};
unitConverterArr["ar"]["ft2"] = 1076.39104167097;
unitConverterArr["ar"]["ft^2"] = 1076.39104167097;
unitConverterArr["ar"]["ha"] = 0.01;
unitConverterArr["ar"]["in2"] = 155000.31000062;
unitConverterArr["ar"]["in^2"] = 155000.31000062;
unitConverterArr["ar"]["ly2"] = 1.11729858605491E-030;
unitConverterArr["ar"]["ly^2"] = 1.11729858605491E-030;
unitConverterArr["ar"]["m2"] = 100;
unitConverterArr["ar"]["m^2"] = 100;
unitConverterArr["ar"]["Morgen"] = 0.04;
unitConverterArr["ar"]["mi2"] = 0.0000386102158542446;
unitConverterArr["ar"]["mi^2"] = 0.0000386102158542446;
unitConverterArr["ar"]["Nmi2"] = 0.0000291553349598123;
unitConverterArr["ar"]["Nmi^2"] = 0.0000291553349598123;
//unitConverterArr["ar"]["Picapt2"] = ;
unitConverterArr["ar"]["Pica2"] = 803521607.043214;
unitConverterArr["ar"]["Pica^2"] = 803521607.043214;
//unitConverterArr["ar"]["Picapt^2"] = ;
unitConverterArr["ar"]["yd2"] = 119.599004630108;
unitConverterArr["ar"]["yd^2"] = 119.599004630108;
unitConverterArr["ft2"] = {};
unitConverterArr["ft2"]["ft^2"] = 1;
unitConverterArr["ft2"]["ha"] = 0.000009290304;
unitConverterArr["ft2"]["in2"] = 144;
unitConverterArr["ft2"]["in^2"] = 144;
unitConverterArr["ft2"]["ly2"] = 1.03800435232203E-033;
unitConverterArr["ft2"]["ly^2"] = 1.03800435232203E-033;
unitConverterArr["ft2"]["m2"] = 0.09290304;
unitConverterArr["ft2"]["m^2"] = 0.09290304;
unitConverterArr["ft2"]["Morgen"] = 0.000037161216;
unitConverterArr["ft2"]["mi2"] = 0.0000000358700642791552;
unitConverterArr["ft2"]["mi^2"] = 0.0000000358700642791552;
unitConverterArr["ft2"]["Nmi2"] = 0.0000000270861924998484;
unitConverterArr["ft2"]["Nmi^2"] = 0.0000000270861924998484;
//unitConverterArr["ft2"]["Picapt2"] = ;
unitConverterArr["ft2"]["Pica2"] = 746496;
unitConverterArr["ft2"]["Pica^2"] = 746496;
//unitConverterArr["ft2"]["Picapt^2"] = ;
unitConverterArr["ft2"]["yd2"] = 0.111111111111111;
unitConverterArr["ft2"]["yd^2"] = 0.111111111111111;
unitConverterArr["ft^2"] = {};
unitConverterArr["ft^2"]["ha"] = 0.000009290304;
unitConverterArr["ft^2"]["in2"] = 144;
unitConverterArr["ft^2"]["in^2"] = 144;
unitConverterArr["ft^2"]["ly2"] = 1.03800435232203E-033;
unitConverterArr["ft^2"]["ly^2"] = 1.03800435232203E-033;
unitConverterArr["ft^2"]["m2"] = 0.09290304;
unitConverterArr["ft^2"]["m^2"] = 0.09290304;
unitConverterArr["ft^2"]["Morgen"] = 0.000037161216;
unitConverterArr["ft^2"]["mi2"] = 0.0000000358700642791552;
unitConverterArr["ft^2"]["mi^2"] = 0.0000000358700642791552;
unitConverterArr["ft^2"]["Nmi2"] = 0.0000000270861924998484;
unitConverterArr["ft^2"]["Nmi^2"] = 0.0000000270861924998484;
//unitConverterArr["ft^2"]["Picapt2"] = ;
unitConverterArr["ft^2"]["Pica2"] = 746496;
unitConverterArr["ft^2"]["Pica^2"] = 746496;
//unitConverterArr["ft^2"]["Picapt^2"] = ;
unitConverterArr["ft^2"]["yd2"] = 0.111111111111111;
unitConverterArr["ft^2"]["yd^2"] = 0.111111111111111;
unitConverterArr["ha"] = {};
unitConverterArr["ha"]["in2"] = 15500031.000062;
unitConverterArr["ha"]["in^2"] = 15500031.000062;
unitConverterArr["ha"]["ly2"] = 1.11729858605491E-028;
unitConverterArr["ha"]["ly^2"] = 1.11729858605491E-028;
unitConverterArr["ha"]["m2"] = 10000;
unitConverterArr["ha"]["m^2"] = 10000;
unitConverterArr["ha"]["Morgen"] = 4;
unitConverterArr["ha"]["mi2"] = 0.00386102158542446;
unitConverterArr["ha"]["mi^2"] = 0.00386102158542446;
unitConverterArr["ha"]["Nmi2"] = 0.00291553349598123;
unitConverterArr["ha"]["Nmi^2"] = 0.00291553349598123;
//unitConverterArr["ha"]["Picapt2"] = ;
unitConverterArr["ha"]["Pica2"] = 80352160704.3214;
unitConverterArr["ha"]["Pica^2"] = 80352160704.3214;
//unitConverterArr["ha"]["Picapt^2"] = ;
unitConverterArr["ha"]["yd2"] = 11959.9004630108;
unitConverterArr["ha"]["yd^2"] = 11959.9004630108;
unitConverterArr["in2"] = {};
unitConverterArr["in2"]["in^2"] = 1;
unitConverterArr["in2"]["ly2"] = 7.20836355779189E-036;
unitConverterArr["in2"]["ly^2"] = 7.20836355779189E-036;
unitConverterArr["in2"]["m2"] = 0.00064516;
unitConverterArr["in2"]["m^2"] = 0.00064516;
unitConverterArr["in2"]["Morgen"] = 0.000000258064;
unitConverterArr["in2"]["mi2"] = 0.000000000249097668605244;
unitConverterArr["in2"]["mi^2"] = 0.000000000249097668605244;
unitConverterArr["in2"]["Nmi2"] = 0.000000000188098559026725;
unitConverterArr["in2"]["Nmi^2"] = 0.000000000188098559026725;
//unitConverterArr["in2"]["Picapt2"] = ;
unitConverterArr["in2"]["Pica2"] = 5184;
unitConverterArr["in2"]["Pica^2"] = 5184;
//unitConverterArr["in2"]["Picapt^2"] = ;
unitConverterArr["in2"]["yd2"] = 0.000771604938271605;
unitConverterArr["in2"]["yd^2"] = 0.000771604938271605;
unitConverterArr["in^2"] = {};
unitConverterArr["in^2"]["ly2"] = 7.20836355779189E-036;
unitConverterArr["in^2"]["ly^2"] = 7.20836355779189E-036;
unitConverterArr["in^2"]["m2"] = 0.00064516;
unitConverterArr["in^2"]["m^2"] = 0.00064516;
unitConverterArr["in^2"]["Morgen"] = 0.000000258064;
unitConverterArr["in^2"]["mi2"] = 0.000000000249097668605244;
unitConverterArr["in^2"]["mi^2"] = 0.000000000249097668605244;
unitConverterArr["in^2"]["Nmi2"] = 0.000000000188098559026725;
unitConverterArr["in^2"]["Nmi^2"] = 0.000000000188098559026725;
//unitConverterArr["in^2"]["Picapt2"] = ;
unitConverterArr["in^2"]["Pica2"] = 5184;
unitConverterArr["in^2"]["Pica^2"] = 5184;
//unitConverterArr["in^2"]["Picapt^2"] = ;
unitConverterArr["in^2"]["yd2"] = 0.000771604938271605;
unitConverterArr["in^2"]["yd^2"] = 0.000771604938271605;
unitConverterArr["ly2"] = {};
unitConverterArr["ly2"]["ly^2"] = 1;
unitConverterArr["ly2"]["m2"] = 8.9501590038784E+031;
unitConverterArr["ly2"]["m^2"] = 8.9501590038784E+031;
unitConverterArr["ly2"]["Morgen"] = 3.58006360155136E+028;
unitConverterArr["ly2"]["mi2"] = 3.45567571069556E+025;
unitConverterArr["ly2"]["mi^2"] = 3.45567571069556E+025;
unitConverterArr["ly2"]["Nmi2"] = 2.60944883701655E+025;
unitConverterArr["ly2"]["Nmi^2"] = 2.60944883701655E+025;
//unitConverterArr["ly2"]["Picapt2"] = ;
unitConverterArr["ly2"]["Pica2"] = 7.19164614608866E+038;
unitConverterArr["ly2"]["Pica^2"] = 7.19164614608866E+038;
//unitConverterArr["ly2"]["Picapt^2"] = ;
unitConverterArr["ly2"]["yd2"] = 1.07043010814506E+032;
unitConverterArr["ly2"]["yd^2"] = 1.07043010814506E+032;
unitConverterArr["ly^2"] = {};
unitConverterArr["ly^2"]["m2"] = 8.9501590038784E+031;
unitConverterArr["ly^2"]["m^2"] = 8.9501590038784E+031;
unitConverterArr["ly^2"]["Morgen"] = 3.58006360155136E+028;
unitConverterArr["ly^2"]["mi2"] = 3.45567571069556E+025;
unitConverterArr["ly^2"]["mi^2"] = 3.45567571069556E+025;
unitConverterArr["ly^2"]["Nmi2"] = 2.60944883701655E+025;
unitConverterArr["ly^2"]["Nmi^2"] = 2.60944883701655E+025;
//unitConverterArr["ly^2"]["Picapt2"] = ;
unitConverterArr["ly^2"]["Pica2"] = 7.19164614608866E+038;
unitConverterArr["ly^2"]["Pica^2"] = 7.19164614608866E+038;
//unitConverterArr["ly^2"]["Picapt^2"] = ;
unitConverterArr["ly^2"]["yd2"] = 1.07043010814506E+032;
unitConverterArr["ly^2"]["yd^2"] = 1.07043010814506E+032;
unitConverterArr["m2"] = {};
unitConverterArr["m2"]["m^2"] = 1;
unitConverterArr["m2"]["Morgen"] = 0.0004;
unitConverterArr["m2"]["mi2"] = 0.000000386102158542446;
unitConverterArr["m2"]["mi^2"] = 0.000000386102158542446;
unitConverterArr["m2"]["Nmi2"] = 0.000000291553349598123;
unitConverterArr["m2"]["Nmi^2"] = 0.000000291553349598123;
//unitConverterArr["m2"]["Picapt2"] = ;
unitConverterArr["m2"]["Pica2"] = 8035216.07043214;
unitConverterArr["m2"]["Pica^2"] = 8035216.07043214;
//unitConverterArr["m2"]["Picapt^2"] = ;
unitConverterArr["m2"]["yd2"] = 1.19599004630108;
unitConverterArr["m2"]["yd^2"] = 1.19599004630108;
unitConverterArr["m^2"] = {};
unitConverterArr["m^2"]["Morgen"] = 0.0004;
unitConverterArr["m^2"]["mi2"] = 0.000000386102158542446;
unitConverterArr["m^2"]["mi^2"] = 0.000000386102158542446;
unitConverterArr["m^2"]["Nmi2"] = 0.000000291553349598123;
unitConverterArr["m^2"]["Nmi^2"] = 0.000000291553349598123;
//unitConverterArr["m^2"]["Picapt2"] = ;
unitConverterArr["m^2"]["Pica2"] = 8035216.07043214;
unitConverterArr["m^2"]["Pica^2"] = 8035216.07043214;
//unitConverterArr["m^2"]["Picapt^2"] = ;
unitConverterArr["m^2"]["yd2"] = 1.19599004630108;
unitConverterArr["m^2"]["yd^2"] = 1.19599004630108;
unitConverterArr["Morgen"] = {};
unitConverterArr["Morgen"]["mi2"] = 0.000965255396356115;
unitConverterArr["Morgen"]["mi^2"] = 0.000965255396356115;
unitConverterArr["Morgen"]["Nmi2"] = 0.000728883373995307;
unitConverterArr["Morgen"]["Nmi^2"] = 0.000728883373995307;
//unitConverterArr["Morgen"]["Picapt2"] = ;
unitConverterArr["Morgen"]["Pica2"] = 20088040176.0803;
unitConverterArr["Morgen"]["Pica^2"] = 20088040176.0803;
//unitConverterArr["Morgen"]["Picapt^2"] = ;
unitConverterArr["Morgen"]["yd2"] = 2989.9751157527;
unitConverterArr["Morgen"]["yd^2"] = 2989.9751157527;
unitConverterArr["mi2"] = {};
unitConverterArr["mi2"]["mi^2"] = 1;
unitConverterArr["mi2"]["Nmi2"] = 0.755119708987773;
unitConverterArr["mi2"]["Nmi^2"] = 0.755119708987773;
//unitConverterArr["mi2"]["Picapt2"] = ;
unitConverterArr["mi2"]["Pica2"] = 20811114086400;
unitConverterArr["mi2"]["Pica^2"] = 20811114086400;
//unitConverterArr["mi2"]["Picapt^2"] = ;
unitConverterArr["mi2"]["yd2"] = 3097600;
unitConverterArr["mi2"]["yd^2"] = 3097600;
unitConverterArr["mi^2"] = {};
unitConverterArr["mi^2"]["Nmi2"] = 0.755119708987773;
unitConverterArr["mi^2"]["Nmi^2"] = 0.755119708987773;
//unitConverterArr["mi^2"]["Picapt2"] = ;
unitConverterArr["mi^2"]["Pica2"] = 20811114086400;
unitConverterArr["mi^2"]["Pica^2"] = 20811114086400;
//unitConverterArr["mi^2"]["Picapt^2"] = ;
unitConverterArr["mi^2"]["yd2"] = 3097600;
unitConverterArr["mi^2"]["yd^2"] = 3097600;
unitConverterArr["Nmi2"] = {};
unitConverterArr["Nmi2"]["Nmi^2"] = 1;
//unitConverterArr["Nmi2"]["Picapt2"] = ;
unitConverterArr["Nmi2"]["Pica2"] = 27560019740839.5;
unitConverterArr["Nmi2"]["Pica^2"] = 27560019740839.5;
//unitConverterArr["Nmi2"]["Picapt^2"] = ;
unitConverterArr["Nmi2"]["yd2"] = 4102131.04376826;
unitConverterArr["Nmi2"]["yd^2"] = 4102131.04376826;
unitConverterArr["Nmi^2"] = {};
//unitConverterArr["Nmi^2"]["Picapt2"] = ;
unitConverterArr["Nmi^2"]["Pica2"] = 27560019740839.5;
unitConverterArr["Nmi^2"]["Pica^2"] = 27560019740839.5;
//unitConverterArr["Nmi^2"]["Picapt^2"] = ;
unitConverterArr["Nmi^2"]["yd2"] = 4102131.04376826;
unitConverterArr["Nmi^2"]["yd^2"] = 4102131.04376826;
/*unitConverterArr["Picapt2"] = {};
unitConverterArr["Picapt2"]["Pica2"] = ;
unitConverterArr["Picapt2"]["Pica^2"] = ;
unitConverterArr["Picapt2"]["Picapt^2"] = ;
unitConverterArr["Picapt2"]["yd2"] = ;
unitConverterArr["Picapt2"]["yd^2"] = ;*/
unitConverterArr["Pica2"] = {};
unitConverterArr["Pica2"]["Pica^2"] = 1;
//unitConverterArr["Pica2"]["Picapt^2"] = ;
unitConverterArr["Pica2"]["yd2"] = 0.000000148843545191282;
unitConverterArr["Pica2"]["yd^2"] = 0.000000148843545191282;
unitConverterArr["Pica^2"] = {};
//unitConverterArr["Pica^2"]["Picapt^2"] = ;
unitConverterArr["Pica^2"]["yd2"] = 0.000000148843545191282;
unitConverterArr["Pica^2"]["yd^2"] = 0.000000148843545191282;
/*unitConverterArr["Picapt^2"] = {};
unitConverterArr["Picapt^2"]["yd2"] = ;
unitConverterArr["Picapt^2"]["yd^2"] = ;*/
unitConverterArr["yd2"] = {};
unitConverterArr["yd2"]["yd^2"] = 1;
};
var generateInformationAndSpeed = function () {
unitConverterArr["bit"] = {};
unitConverterArr["bit"]["byte"] = 0.125;
//Speed
unitConverterArr["admkn"] = {};
unitConverterArr["admkn"]["kn"] = 0.999999913606911;
unitConverterArr["admkn"]["m/h"] = 1851.99984;
unitConverterArr["admkn"]["m/hr"] = 1851.99984;
unitConverterArr["admkn"]["m/s"] = 0.5144444;
unitConverterArr["admkn"]["m/sec"] = 0.5144444;
unitConverterArr["admkn"]["mph"] = 1.15077934860415;
unitConverterArr["kn"] = {};
unitConverterArr["kn"]["m/h"] = 1852;
unitConverterArr["kn"]["m/hr"] = 1852;
unitConverterArr["kn"]["m/s"] = 0.514444444444444;
unitConverterArr["kn"]["m/sec"] = 0.514444444444444;
unitConverterArr["kn"]["mph"] = 1.15077944802354;
unitConverterArr["m/h"] = {};
unitConverterArr["m/h"]["m/hr"] = 1;
unitConverterArr["m/h"]["m/s"] = 0.000277777777777778;
unitConverterArr["m/h"]["m/sec"] = 0.000277777777777778;
unitConverterArr["m/h"]["mph"] = 0.000621371192237334;
unitConverterArr["m/hr"] = {};
unitConverterArr["m/hr"]["m/s"] = 0.000277777777777778;
unitConverterArr["m/hr"]["m/sec"] = 0.000277777777777778;
unitConverterArr["m/hr"]["mph"] = 0.000621371192237334;
unitConverterArr["m/s"] = {};
unitConverterArr["m/s"]["m/sec"] = 1;
unitConverterArr["m/s"]["mph"] = 2.2369362920544;
unitConverterArr["m/sec"] = {};
unitConverterArr["m/sec"]["mph"] = 2.2369362920544;
};
generateWeightAndMass();
generateDistance();
generateTime();
generatePressure();
generateForceAndEnergy();
generatePowerMagnetismTemperature();
generateVolume();
generateArea();
generateInformationAndSpeed();
}
return unitConverterArr;
}
function generatePrefixAvailableMap() {
if (!availablePrefixMap) {
availablePrefixMap = {};
availablePrefixMap['Y'] = {};
availablePrefixMap['Z'] = {};
availablePrefixMap['E'] = {};
availablePrefixMap['P'] = {};
availablePrefixMap['T'] = {};
availablePrefixMap['G'] = {};
availablePrefixMap['M'] = {};
availablePrefixMap['k'] = {};
availablePrefixMap['h'] = {};
availablePrefixMap['da'] = {};
availablePrefixMap['e'] = {};
availablePrefixMap['d'] = {};
availablePrefixMap['c'] = {};
availablePrefixMap['m'] = {};
availablePrefixMap['u'] = {};
availablePrefixMap['n'] = {};
availablePrefixMap['p'] = {};
availablePrefixMap['f'] = {};
availablePrefixMap['a'] = {};
availablePrefixMap['z'] = {};
availablePrefixMap['y'] = {};
availablePrefixMap["Yi"] = {};
availablePrefixMap["Zi"] = {};
availablePrefixMap["Ei"] = {};
availablePrefixMap["Pi"] = {};
availablePrefixMap["Ti"] = {};
availablePrefixMap["Gi"] = {};
availablePrefixMap["Mi"] = {};
availablePrefixMap["ki"] = {};
availablePrefixMap['Y']['g'] = 1;
availablePrefixMap['Z']['g'] = 1;
availablePrefixMap['E']['g'] = 1;
availablePrefixMap['P']['g'] = 1;
availablePrefixMap['T']['g'] = 1;
availablePrefixMap['G']['g'] = 1;
availablePrefixMap['M']['g'] = 1;
availablePrefixMap['k']['g'] = 1;
availablePrefixMap['h']['g'] = 1;
availablePrefixMap['da']['g'] = 1;
availablePrefixMap['e']['g'] = 1;
availablePrefixMap['d']['g'] = 1;
availablePrefixMap['c']['g'] = 1;
availablePrefixMap['m']['g'] = 1;
availablePrefixMap['u']['g'] = 1;
availablePrefixMap['n']['g'] = 1;
availablePrefixMap['p']['g'] = 1;
availablePrefixMap['f']['g'] = 1;
availablePrefixMap['a']['g'] = 1;
availablePrefixMap['z']['g'] = 1;
availablePrefixMap['y']['g'] = 1;
availablePrefixMap['Y']['u'] = 1;
availablePrefixMap['Z']['u'] = 1;
availablePrefixMap['E']['u'] = 1;
availablePrefixMap['P']['u'] = 1;
availablePrefixMap['T']['u'] = 1;
availablePrefixMap['G']['u'] = 1;
availablePrefixMap['M']['u'] = 1;
availablePrefixMap['k']['u'] = 1;
availablePrefixMap['h']['u'] = 1;
availablePrefixMap['da']['u'] = 1;
availablePrefixMap['e']['u'] = 1;
availablePrefixMap['d']['u'] = 1;
availablePrefixMap['c']['u'] = 1;
availablePrefixMap['m']['u'] = 1;
availablePrefixMap['u']['u'] = 1;
availablePrefixMap['n']['u'] = 1;
availablePrefixMap['p']['u'] = 1;
availablePrefixMap['f']['u'] = 1;
availablePrefixMap['a']['u'] = 1;
availablePrefixMap['z']['u'] = 1;
availablePrefixMap['y']['u'] = 1;
availablePrefixMap['Y']['m'] = 1;
availablePrefixMap['Z']['m'] = 1;
availablePrefixMap['E']['m'] = 1;
availablePrefixMap['P']['m'] = 1;
availablePrefixMap['T']['m'] = 1;
availablePrefixMap['G']['m'] = 1;
availablePrefixMap['M']['m'] = 1;
availablePrefixMap['k']['m'] = 1;
availablePrefixMap['h']['m'] = 1;
availablePrefixMap['da']['m'] = 1;
availablePrefixMap['e']['m'] = 1;
availablePrefixMap['d']['m'] = 1;
availablePrefixMap['c']['m'] = 1;
availablePrefixMap['m']['m'] = 1;
availablePrefixMap['u']['m'] = 1;
availablePrefixMap['n']['m'] = 1;
availablePrefixMap['p']['m'] = 1;
availablePrefixMap['f']['m'] = 1;
availablePrefixMap['a']['m'] = 1;
availablePrefixMap['z']['m'] = 1;
availablePrefixMap['y']['m'] = 1;
availablePrefixMap['Y']['ang'] = 1;
availablePrefixMap['Z']['ang'] = 1;
availablePrefixMap['E']['ang'] = 1;
availablePrefixMap['P']['ang'] = 1;
availablePrefixMap['T']['ang'] = 1;
availablePrefixMap['G']['ang'] = 1;
availablePrefixMap['M']['ang'] = 1;
availablePrefixMap['k']['ang'] = 1;
availablePrefixMap['h']['ang'] = 1;
availablePrefixMap['da']['ang'] = 1;
availablePrefixMap['e']['ang'] = 1;
availablePrefixMap['d']['ang'] = 1;
availablePrefixMap['c']['ang'] = 1;
availablePrefixMap['m']['ang'] = 1;
availablePrefixMap['u']['ang'] = 1;
availablePrefixMap['n']['ang'] = 1;
availablePrefixMap['p']['ang'] = 1;
availablePrefixMap['f']['ang'] = 1;
availablePrefixMap['a']['ang'] = 1;
availablePrefixMap['z']['ang'] = 1;
availablePrefixMap['y']['ang'] = 1;
availablePrefixMap['Y']['ly'] = 1;
availablePrefixMap['Z']['ly'] = 1;
availablePrefixMap['E']['ly'] = 1;
availablePrefixMap['P']['ly'] = 1;
availablePrefixMap['T']['ly'] = 1;
availablePrefixMap['G']['ly'] = 1;
availablePrefixMap['M']['ly'] = 1;
availablePrefixMap['k']['ly'] = 1;
availablePrefixMap['h']['ly'] = 1;
availablePrefixMap['da']['ly'] = 1;
availablePrefixMap['e']['ly'] = 1;
availablePrefixMap['d']['ly'] = 1;
availablePrefixMap['c']['ly'] = 1;
availablePrefixMap['m']['ly'] = 1;
availablePrefixMap['u']['ly'] = 1;
availablePrefixMap['n']['ly'] = 1;
availablePrefixMap['p']['ly'] = 1;
availablePrefixMap['f']['ly'] = 1;
availablePrefixMap['a']['ly'] = 1;
availablePrefixMap['z']['ly'] = 1;
availablePrefixMap['y']['ly'] = 1;
availablePrefixMap['Y']['parsec'] = 1;
availablePrefixMap['Z']['parsec'] = 1;
availablePrefixMap['E']['parsec'] = 1;
availablePrefixMap['P']['parsec'] = 1;
availablePrefixMap['T']['parsec'] = 1;
availablePrefixMap['G']['parsec'] = 1;
availablePrefixMap['M']['parsec'] = 1;
availablePrefixMap['k']['parsec'] = 1;
availablePrefixMap['h']['parsec'] = 1;
availablePrefixMap['da']['parsec'] = 1;
availablePrefixMap['e']['parsec'] = 1;
availablePrefixMap['d']['parsec'] = 1;
availablePrefixMap['c']['parsec'] = 1;
availablePrefixMap['m']['parsec'] = 1;
availablePrefixMap['u']['parsec'] = 1;
availablePrefixMap['n']['parsec'] = 1;
availablePrefixMap['p']['parsec'] = 1;
availablePrefixMap['f']['parsec'] = 1;
availablePrefixMap['a']['parsec'] = 1;
availablePrefixMap['z']['parsec'] = 1;
availablePrefixMap['y']['parsec'] = 1;
availablePrefixMap['Y']['pc'] = 1;
availablePrefixMap['Z']['pc'] = 1;
availablePrefixMap['E']['pc'] = 1;
availablePrefixMap['P']['pc'] = 1;
availablePrefixMap['T']['pc'] = 1;
availablePrefixMap['G']['pc'] = 1;
availablePrefixMap['M']['pc'] = 1;
availablePrefixMap['k']['pc'] = 1;
availablePrefixMap['h']['pc'] = 1;
availablePrefixMap['da']['pc'] = 1;
availablePrefixMap['e']['pc'] = 1;
availablePrefixMap['d']['pc'] = 1;
availablePrefixMap['c']['pc'] = 1;
availablePrefixMap['m']['pc'] = 1;
availablePrefixMap['u']['pc'] = 1;
availablePrefixMap['n']['pc'] = 1;
availablePrefixMap['p']['pc'] = 1;
availablePrefixMap['f']['pc'] = 1;
availablePrefixMap['a']['pc'] = 1;
availablePrefixMap['z']['pc'] = 1;
availablePrefixMap['y']['pc'] = 1;
availablePrefixMap['Y']['sec'] = 1;
availablePrefixMap['Z']['sec'] = 1;
availablePrefixMap['E']['sec'] = 1;
availablePrefixMap['P']['sec'] = 1;
availablePrefixMap['T']['sec'] = 1;
availablePrefixMap['G']['sec'] = 1;
availablePrefixMap['M']['sec'] = 1;
availablePrefixMap['k']['sec'] = 1;
availablePrefixMap['h']['sec'] = 1;
availablePrefixMap['da']['sec'] = 1;
availablePrefixMap['e']['sec'] = 1;
availablePrefixMap['d']['sec'] = 1;
availablePrefixMap['c']['sec'] = 1;
availablePrefixMap['m']['sec'] = 1;
availablePrefixMap['u']['sec'] = 1;
availablePrefixMap['n']['sec'] = 1;
availablePrefixMap['p']['sec'] = 1;
availablePrefixMap['f']['sec'] = 1;
availablePrefixMap['a']['sec'] = 1;
availablePrefixMap['z']['sec'] = 1;
availablePrefixMap['y']['sec'] = 1;
availablePrefixMap['Y']['s'] = 1;
availablePrefixMap['Z']['s'] = 1;
availablePrefixMap['E']['s'] = 1;
availablePrefixMap['P']['s'] = 1;
availablePrefixMap['T']['s'] = 1;
availablePrefixMap['G']['s'] = 1;
availablePrefixMap['M']['s'] = 1;
availablePrefixMap['k']['s'] = 1;
availablePrefixMap['h']['s'] = 1;
availablePrefixMap['da']['s'] = 1;
availablePrefixMap['e']['s'] = 1;
availablePrefixMap['d']['s'] = 1;
availablePrefixMap['c']['s'] = 1;
availablePrefixMap['m']['s'] = 1;
availablePrefixMap['u']['s'] = 1;
availablePrefixMap['n']['s'] = 1;
availablePrefixMap['p']['s'] = 1;
availablePrefixMap['f']['s'] = 1;
availablePrefixMap['a']['s'] = 1;
availablePrefixMap['z']['s'] = 1;
availablePrefixMap['y']['s'] = 1;
availablePrefixMap['Y']['Pa'] = 1;
availablePrefixMap['Z']['Pa'] = 1;
availablePrefixMap['E']['Pa'] = 1;
availablePrefixMap['P']['Pa'] = 1;
availablePrefixMap['T']['Pa'] = 1;
availablePrefixMap['G']['Pa'] = 1;
availablePrefixMap['M']['Pa'] = 1;
availablePrefixMap['k']['Pa'] = 1;
availablePrefixMap['h']['Pa'] = 1;
availablePrefixMap['da']['Pa'] = 1;
availablePrefixMap['e']['Pa'] = 1;
availablePrefixMap['d']['Pa'] = 1;
availablePrefixMap['c']['Pa'] = 1;
availablePrefixMap['m']['Pa'] = 1;
availablePrefixMap['u']['Pa'] = 1;
availablePrefixMap['n']['Pa'] = 1;
availablePrefixMap['p']['Pa'] = 1;
availablePrefixMap['f']['Pa'] = 1;
availablePrefixMap['a']['Pa'] = 1;
availablePrefixMap['z']['Pa'] = 1;
availablePrefixMap['y']['Pa'] = 1;
availablePrefixMap['Y']['atm'] = 1;
availablePrefixMap['Z']['atm'] = 1;
availablePrefixMap['E']['atm'] = 1;
availablePrefixMap['P']['atm'] = 1;
availablePrefixMap['T']['atm'] = 1;
availablePrefixMap['G']['atm'] = 1;
availablePrefixMap['M']['atm'] = 1;
availablePrefixMap['k']['atm'] = 1;
availablePrefixMap['h']['atm'] = 1;
availablePrefixMap['da']['atm'] = 1;
availablePrefixMap['e']['atm'] = 1;
availablePrefixMap['d']['atm'] = 1;
availablePrefixMap['c']['atm'] = 1;
availablePrefixMap['m']['atm'] = 1;
availablePrefixMap['u']['atm'] = 1;
availablePrefixMap['n']['atm'] = 1;
availablePrefixMap['p']['atm'] = 1;
availablePrefixMap['f']['atm'] = 1;
availablePrefixMap['a']['atm'] = 1;
availablePrefixMap['z']['atm'] = 1;
availablePrefixMap['y']['atm'] = 1;
availablePrefixMap['Y']['at'] = 1;
availablePrefixMap['Z']['at'] = 1;
availablePrefixMap['E']['at'] = 1;
availablePrefixMap['P']['at'] = 1;
availablePrefixMap['T']['at'] = 1;
availablePrefixMap['G']['at'] = 1;
availablePrefixMap['M']['at'] = 1;
availablePrefixMap['k']['at'] = 1;
availablePrefixMap['h']['at'] = 1;
availablePrefixMap['da']['at'] = 1;
availablePrefixMap['e']['at'] = 1;
availablePrefixMap['d']['at'] = 1;
availablePrefixMap['c']['at'] = 1;
availablePrefixMap['m']['at'] = 1;
availablePrefixMap['u']['at'] = 1;
availablePrefixMap['n']['at'] = 1;
availablePrefixMap['p']['at'] = 1;
availablePrefixMap['f']['at'] = 1;
availablePrefixMap['a']['at'] = 1;
availablePrefixMap['z']['at'] = 1;
availablePrefixMap['y']['at'] = 1;
availablePrefixMap['Y']['mmHg'] = 1;
availablePrefixMap['Z']['mmHg'] = 1;
availablePrefixMap['E']['mmHg'] = 1;
availablePrefixMap['P']['mmHg'] = 1;
availablePrefixMap['T']['mmHg'] = 1;
availablePrefixMap['G']['mmHg'] = 1;
availablePrefixMap['M']['mmHg'] = 1;
availablePrefixMap['k']['mmHg'] = 1;
availablePrefixMap['h']['mmHg'] = 1;
availablePrefixMap['da']['mmHg'] = 1;
availablePrefixMap['e']['mmHg'] = 1;
availablePrefixMap['d']['mmHg'] = 1;
availablePrefixMap['c']['mmHg'] = 1;
availablePrefixMap['m']['mmHg'] = 1;
availablePrefixMap['u']['mmHg'] = 1;
availablePrefixMap['n']['mmHg'] = 1;
availablePrefixMap['p']['mmHg'] = 1;
availablePrefixMap['f']['mmHg'] = 1;
availablePrefixMap['a']['mmHg'] = 1;
availablePrefixMap['z']['mmHg'] = 1;
availablePrefixMap['y']['mmHg'] = 1;
availablePrefixMap['Y']['N'] = 1;
availablePrefixMap['Z']['N'] = 1;
availablePrefixMap['E']['N'] = 1;
availablePrefixMap['P']['N'] = 1;
availablePrefixMap['T']['N'] = 1;
availablePrefixMap['G']['N'] = 1;
availablePrefixMap['M']['N'] = 1;
availablePrefixMap['k']['N'] = 1;
availablePrefixMap['h']['N'] = 1;
availablePrefixMap['da']['N'] = 1;
availablePrefixMap['e']['N'] = 1;
availablePrefixMap['d']['N'] = 1;
availablePrefixMap['c']['N'] = 1;
availablePrefixMap['m']['N'] = 1;
availablePrefixMap['u']['N'] = 1;
availablePrefixMap['n']['N'] = 1;
availablePrefixMap['p']['N'] = 1;
availablePrefixMap['f']['N'] = 1;
availablePrefixMap['a']['N'] = 1;
availablePrefixMap['z']['N'] = 1;
availablePrefixMap['y']['N'] = 1;
availablePrefixMap['Y']['dyn'] = 1;
availablePrefixMap['Z']['dyn'] = 1;
availablePrefixMap['E']['dyn'] = 1;
availablePrefixMap['P']['dyn'] = 1;
availablePrefixMap['T']['dyn'] = 1;
availablePrefixMap['G']['dyn'] = 1;
availablePrefixMap['M']['dyn'] = 1;
availablePrefixMap['k']['dyn'] = 1;
availablePrefixMap['h']['dyn'] = 1;
availablePrefixMap['da']['dyn'] = 1;
availablePrefixMap['e']['dyn'] = 1;
availablePrefixMap['d']['dyn'] = 1;
availablePrefixMap['c']['dyn'] = 1;
availablePrefixMap['m']['dyn'] = 1;
availablePrefixMap['u']['dyn'] = 1;
availablePrefixMap['n']['dyn'] = 1;
availablePrefixMap['p']['dyn'] = 1;
availablePrefixMap['f']['dyn'] = 1;
availablePrefixMap['a']['dyn'] = 1;
availablePrefixMap['z']['dyn'] = 1;
availablePrefixMap['y']['dyn'] = 1;
availablePrefixMap['Y']['dy'] = 1;
availablePrefixMap['Z']['dy'] = 1;
availablePrefixMap['E']['dy'] = 1;
availablePrefixMap['P']['dy'] = 1;
availablePrefixMap['T']['dy'] = 1;
availablePrefixMap['G']['dy'] = 1;
availablePrefixMap['M']['dy'] = 1;
availablePrefixMap['k']['dy'] = 1;
availablePrefixMap['h']['dy'] = 1;
availablePrefixMap['da']['dy'] = 1;
availablePrefixMap['e']['dy'] = 1;
availablePrefixMap['d']['dy'] = 1;
availablePrefixMap['c']['dy'] = 1;
availablePrefixMap['m']['dy'] = 1;
availablePrefixMap['u']['dy'] = 1;
availablePrefixMap['n']['dy'] = 1;
availablePrefixMap['p']['dy'] = 1;
availablePrefixMap['f']['dy'] = 1;
availablePrefixMap['a']['dy'] = 1;
availablePrefixMap['z']['dy'] = 1;
availablePrefixMap['y']['dy'] = 1;
availablePrefixMap['Y']['pond'] = 1;
availablePrefixMap['Z']['pond'] = 1;
availablePrefixMap['E']['pond'] = 1;
availablePrefixMap['P']['pond'] = 1;
availablePrefixMap['T']['pond'] = 1;
availablePrefixMap['G']['pond'] = 1;
availablePrefixMap['M']['pond'] = 1;
availablePrefixMap['k']['pond'] = 1;
availablePrefixMap['h']['pond'] = 1;
availablePrefixMap['da']['pond'] = 1;
availablePrefixMap['e']['pond'] = 1;
availablePrefixMap['d']['pond'] = 1;
availablePrefixMap['c']['pond'] = 1;
availablePrefixMap['m']['pond'] = 1;
availablePrefixMap['u']['pond'] = 1;
availablePrefixMap['n']['pond'] = 1;
availablePrefixMap['p']['pond'] = 1;
availablePrefixMap['f']['pond'] = 1;
availablePrefixMap['a']['pond'] = 1;
availablePrefixMap['z']['pond'] = 1;
availablePrefixMap['y']['pond'] = 1;
availablePrefixMap['Y']['J'] = 1;
availablePrefixMap['Z']['J'] = 1;
availablePrefixMap['E']['J'] = 1;
availablePrefixMap['P']['J'] = 1;
availablePrefixMap['T']['J'] = 1;
availablePrefixMap['G']['J'] = 1;
availablePrefixMap['M']['J'] = 1;
availablePrefixMap['k']['J'] = 1;
availablePrefixMap['h']['J'] = 1;
availablePrefixMap['da']['J'] = 1;
availablePrefixMap['e']['J'] = 1;
availablePrefixMap['d']['J'] = 1;
availablePrefixMap['c']['J'] = 1;
availablePrefixMap['m']['J'] = 1;
availablePrefixMap['u']['J'] = 1;
availablePrefixMap['n']['J'] = 1;
availablePrefixMap['p']['J'] = 1;
availablePrefixMap['f']['J'] = 1;
availablePrefixMap['a']['J'] = 1;
availablePrefixMap['z']['J'] = 1;
availablePrefixMap['y']['J'] = 1;
availablePrefixMap['Y']['e'] = 1;
availablePrefixMap['Z']['e'] = 1;
availablePrefixMap['E']['e'] = 1;
availablePrefixMap['P']['e'] = 1;
availablePrefixMap['T']['e'] = 1;
availablePrefixMap['G']['e'] = 1;
availablePrefixMap['M']['e'] = 1;
availablePrefixMap['k']['e'] = 1;
availablePrefixMap['h']['e'] = 1;
availablePrefixMap['da']['e'] = 1;
availablePrefixMap['e']['e'] = 1;
availablePrefixMap['d']['e'] = 1;
availablePrefixMap['c']['e'] = 1;
availablePrefixMap['m']['e'] = 1;
availablePrefixMap['u']['e'] = 1;
availablePrefixMap['n']['e'] = 1;
availablePrefixMap['p']['e'] = 1;
availablePrefixMap['f']['e'] = 1;
availablePrefixMap['a']['e'] = 1;
availablePrefixMap['z']['e'] = 1;
availablePrefixMap['y']['e'] = 1;
availablePrefixMap['Y']['c'] = 1;
availablePrefixMap['Z']['c'] = 1;
availablePrefixMap['E']['c'] = 1;
availablePrefixMap['P']['c'] = 1;
availablePrefixMap['T']['c'] = 1;
availablePrefixMap['G']['c'] = 1;
availablePrefixMap['M']['c'] = 1;
availablePrefixMap['k']['c'] = 1;
availablePrefixMap['h']['c'] = 1;
availablePrefixMap['da']['c'] = 1;
availablePrefixMap['e']['c'] = 1;
availablePrefixMap['d']['c'] = 1;
availablePrefixMap['c']['c'] = 1;
availablePrefixMap['m']['c'] = 1;
availablePrefixMap['u']['c'] = 1;
availablePrefixMap['n']['c'] = 1;
availablePrefixMap['f']['c'] = 1;
availablePrefixMap['a']['c'] = 1;
availablePrefixMap['z']['c'] = 1;
availablePrefixMap['y']['c'] = 1;
availablePrefixMap['Y']['cal'] = 1;
availablePrefixMap['Z']['cal'] = 1;
availablePrefixMap['E']['cal'] = 1;
availablePrefixMap['P']['cal'] = 1;
availablePrefixMap['T']['cal'] = 1;
availablePrefixMap['G']['cal'] = 1;
availablePrefixMap['M']['cal'] = 1;
availablePrefixMap['k']['cal'] = 1;
availablePrefixMap['h']['cal'] = 1;
availablePrefixMap['da']['cal'] = 1;
availablePrefixMap['e']['cal'] = 1;
availablePrefixMap['d']['cal'] = 1;
availablePrefixMap['c']['cal'] = 1;
availablePrefixMap['m']['cal'] = 1;
availablePrefixMap['u']['cal'] = 1;
availablePrefixMap['n']['cal'] = 1;
availablePrefixMap['p']['cal'] = 1;
availablePrefixMap['f']['cal'] = 1;
availablePrefixMap['a']['cal'] = 1;
availablePrefixMap['z']['cal'] = 1;
availablePrefixMap['y']['cal'] = 1;
availablePrefixMap['Y']['eV'] = 1;
availablePrefixMap['Z']['eV'] = 1;
availablePrefixMap['E']['eV'] = 1;
availablePrefixMap['P']['eV'] = 1;
availablePrefixMap['T']['eV'] = 1;
availablePrefixMap['G']['eV'] = 1;
availablePrefixMap['M']['eV'] = 1;
availablePrefixMap['k']['eV'] = 1;
availablePrefixMap['h']['eV'] = 1;
availablePrefixMap['da']['eV'] = 1;
availablePrefixMap['e']['eV'] = 1;
availablePrefixMap['d']['eV'] = 1;
availablePrefixMap['c']['eV'] = 1;
availablePrefixMap['m']['eV'] = 1;
availablePrefixMap['u']['eV'] = 1;
availablePrefixMap['n']['eV'] = 1;
availablePrefixMap['p']['eV'] = 1;
availablePrefixMap['f']['eV'] = 1;
availablePrefixMap['a']['eV'] = 1;
availablePrefixMap['z']['eV'] = 1;
availablePrefixMap['y']['eV'] = 1;
availablePrefixMap['Y']['ev'] = 1;
availablePrefixMap['Z']['ev'] = 1;
availablePrefixMap['E']['ev'] = 1;
availablePrefixMap['P']['ev'] = 1;
availablePrefixMap['T']['ev'] = 1;
availablePrefixMap['G']['ev'] = 1;
availablePrefixMap['M']['ev'] = 1;
availablePrefixMap['k']['ev'] = 1;
availablePrefixMap['h']['ev'] = 1;
availablePrefixMap['da']['ev'] = 1;
availablePrefixMap['e']['ev'] = 1;
availablePrefixMap['d']['ev'] = 1;
availablePrefixMap['c']['ev'] = 1;
availablePrefixMap['m']['ev'] = 1;
availablePrefixMap['u']['ev'] = 1;
availablePrefixMap['n']['ev'] = 1;
availablePrefixMap['p']['ev'] = 1;
availablePrefixMap['f']['ev'] = 1;
availablePrefixMap['a']['ev'] = 1;
availablePrefixMap['z']['ev'] = 1;
availablePrefixMap['y']['ev'] = 1;
availablePrefixMap['y']['cal'] = 1;
availablePrefixMap['Y']['Wh'] = 1;
availablePrefixMap['Z']['Wh'] = 1;
availablePrefixMap['E']['Wh'] = 1;
availablePrefixMap['P']['Wh'] = 1;
availablePrefixMap['T']['Wh'] = 1;
availablePrefixMap['G']['Wh'] = 1;
availablePrefixMap['M']['Wh'] = 1;
availablePrefixMap['k']['Wh'] = 1;
availablePrefixMap['h']['Wh'] = 1;
availablePrefixMap['da']['Wh'] = 1;
availablePrefixMap['e']['Wh'] = 1;
availablePrefixMap['d']['Wh'] = 1;
availablePrefixMap['c']['Wh'] = 1;
availablePrefixMap['m']['Wh'] = 1;
availablePrefixMap['u']['Wh'] = 1;
availablePrefixMap['n']['Wh'] = 1;
availablePrefixMap['p']['Wh'] = 1;
availablePrefixMap['f']['Wh'] = 1;
availablePrefixMap['a']['Wh'] = 1;
availablePrefixMap['z']['Wh'] = 1;
availablePrefixMap['y']['Wh'] = 1;
availablePrefixMap['Y']['W'] = 1;
availablePrefixMap['Z']['W'] = 1;
availablePrefixMap['E']['W'] = 1;
availablePrefixMap['P']['W'] = 1;
availablePrefixMap['T']['W'] = 1;
availablePrefixMap['G']['W'] = 1;
availablePrefixMap['M']['W'] = 1;
availablePrefixMap['k']['W'] = 1;
availablePrefixMap['h']['W'] = 1;
availablePrefixMap['da']['W'] = 1;
availablePrefixMap['e']['W'] = 1;
availablePrefixMap['d']['W'] = 1;
availablePrefixMap['c']['W'] = 1;
availablePrefixMap['m']['W'] = 1;
availablePrefixMap['u']['W'] = 1;
availablePrefixMap['n']['W'] = 1;
availablePrefixMap['p']['W'] = 1;
availablePrefixMap['f']['W'] = 1;
availablePrefixMap['a']['W'] = 1;
availablePrefixMap['z']['W'] = 1;
availablePrefixMap['y']['W'] = 1;
availablePrefixMap['Y']['w'] = 1;
availablePrefixMap['Z']['w'] = 1;
availablePrefixMap['E']['w'] = 1;
availablePrefixMap['P']['w'] = 1;
availablePrefixMap['T']['w'] = 1;
availablePrefixMap['G']['w'] = 1;
availablePrefixMap['M']['w'] = 1;
availablePrefixMap['k']['w'] = 1;
availablePrefixMap['h']['w'] = 1;
availablePrefixMap['da']['w'] = 1;
availablePrefixMap['e']['w'] = 1;
availablePrefixMap['d']['w'] = 1;
availablePrefixMap['c']['w'] = 1;
availablePrefixMap['m']['w'] = 1;
availablePrefixMap['u']['w'] = 1;
availablePrefixMap['n']['w'] = 1;
availablePrefixMap['p']['w'] = 1;
availablePrefixMap['f']['w'] = 1;
availablePrefixMap['a']['w'] = 1;
availablePrefixMap['z']['w'] = 1;
availablePrefixMap['y']['w'] = 1;
availablePrefixMap['Y']['T'] = 1;
availablePrefixMap['Z']['T'] = 1;
availablePrefixMap['E']['T'] = 1;
availablePrefixMap['P']['T'] = 1;
availablePrefixMap['T']['T'] = 1;
availablePrefixMap['G']['T'] = 1;
availablePrefixMap['M']['T'] = 1;
availablePrefixMap['k']['T'] = 1;
availablePrefixMap['h']['T'] = 1;
availablePrefixMap['da']['T'] = 1;
availablePrefixMap['e']['T'] = 1;
availablePrefixMap['d']['T'] = 1;
availablePrefixMap['c']['T'] = 1;
availablePrefixMap['m']['T'] = 1;
availablePrefixMap['u']['T'] = 1;
availablePrefixMap['n']['T'] = 1;
availablePrefixMap['p']['T'] = 1;
availablePrefixMap['f']['T'] = 1;
availablePrefixMap['a']['T'] = 1;
availablePrefixMap['z']['T'] = 1;
availablePrefixMap['y']['T'] = 1;
availablePrefixMap['Y']['ga'] = 1;
availablePrefixMap['Z']['ga'] = 1;
availablePrefixMap['E']['ga'] = 1;
availablePrefixMap['P']['ga'] = 1;
availablePrefixMap['T']['ga'] = 1;
availablePrefixMap['G']['ga'] = 1;
availablePrefixMap['M']['ga'] = 1;
availablePrefixMap['k']['ga'] = 1;
availablePrefixMap['h']['ga'] = 1;
availablePrefixMap['da']['ga'] = 1;
availablePrefixMap['e']['ga'] = 1;
availablePrefixMap['d']['ga'] = 1;
availablePrefixMap['c']['ga'] = 1;
availablePrefixMap['m']['ga'] = 1;
availablePrefixMap['u']['ga'] = 1;
availablePrefixMap['n']['ga'] = 1;
availablePrefixMap['p']['ga'] = 1;
availablePrefixMap['f']['ga'] = 1;
availablePrefixMap['a']['ga'] = 1;
availablePrefixMap['z']['ga'] = 1;
availablePrefixMap['y']['ga'] = 1;
availablePrefixMap['Y']['K'] = 1;
availablePrefixMap['Z']['K'] = 1;
availablePrefixMap['E']['K'] = 1;
availablePrefixMap['P']['K'] = 1;
availablePrefixMap['T']['K'] = 1;
availablePrefixMap['G']['K'] = 1;
availablePrefixMap['M']['K'] = 1;
availablePrefixMap['k']['K'] = 1;
availablePrefixMap['h']['K'] = 1;
availablePrefixMap['da']['K'] = 1;
availablePrefixMap['e']['K'] = 1;
availablePrefixMap['d']['K'] = 1;
availablePrefixMap['c']['K'] = 1;
availablePrefixMap['m']['K'] = 1;
availablePrefixMap['u']['K'] = 1;
availablePrefixMap['n']['K'] = 1;
availablePrefixMap['p']['K'] = 1;
availablePrefixMap['f']['K'] = 1;
availablePrefixMap['a']['K'] = 1;
availablePrefixMap['z']['K'] = 1;
availablePrefixMap['y']['K'] = 1;
availablePrefixMap['Y']['kel'] = 1;
availablePrefixMap['Z']['kel'] = 1;
availablePrefixMap['E']['kel'] = 1;
availablePrefixMap['P']['kel'] = 1;
availablePrefixMap['T']['kel'] = 1;
availablePrefixMap['G']['kel'] = 1;
availablePrefixMap['M']['kel'] = 1;
availablePrefixMap['k']['kel'] = 1;
availablePrefixMap['h']['kel'] = 1;
availablePrefixMap['da']['kel'] = 1;
availablePrefixMap['e']['kel'] = 1;
availablePrefixMap['d']['kel'] = 1;
availablePrefixMap['c']['kel'] = 1;
availablePrefixMap['m']['kel'] = 1;
availablePrefixMap['u']['kel'] = 1;
availablePrefixMap['n']['kel'] = 1;
availablePrefixMap['p']['kel'] = 1;
availablePrefixMap['f']['kel'] = 1;
availablePrefixMap['a']['kel'] = 1;
availablePrefixMap['z']['kel'] = 1;
availablePrefixMap['y']['kel'] = 1;
availablePrefixMap['Y']['l'] = 1;
availablePrefixMap['Z']['l'] = 1;
availablePrefixMap['E']['l'] = 1;
availablePrefixMap['P']['l'] = 1;
availablePrefixMap['T']['l'] = 1;
availablePrefixMap['G']['l'] = 1;
availablePrefixMap['M']['l'] = 1;
availablePrefixMap['k']['l'] = 1;
availablePrefixMap['h']['l'] = 1;
availablePrefixMap['da']['l'] = 1;
availablePrefixMap['e']['l'] = 1;
availablePrefixMap['d']['l'] = 1;
availablePrefixMap['c']['l'] = 1;
availablePrefixMap['m']['l'] = 1;
availablePrefixMap['u']['l'] = 1;
availablePrefixMap['n']['l'] = 1;
availablePrefixMap['p']['l'] = 1;
availablePrefixMap['f']['l'] = 1;
availablePrefixMap['a']['l'] = 1;
availablePrefixMap['z']['l'] = 1;
availablePrefixMap['y']['l'] = 1;
availablePrefixMap['Y']['L'] = 1;
availablePrefixMap['Z']['L'] = 1;
availablePrefixMap['E']['L'] = 1;
availablePrefixMap['P']['L'] = 1;
availablePrefixMap['T']['L'] = 1;
availablePrefixMap['G']['L'] = 1;
availablePrefixMap['M']['L'] = 1;
availablePrefixMap['k']['L'] = 1;
availablePrefixMap['h']['L'] = 1;
availablePrefixMap['da']['L'] = 1;
availablePrefixMap['e']['L'] = 1;
availablePrefixMap['d']['L'] = 1;
availablePrefixMap['c']['L'] = 1;
availablePrefixMap['m']['L'] = 1;
availablePrefixMap['u']['L'] = 1;
availablePrefixMap['n']['L'] = 1;
availablePrefixMap['p']['L'] = 1;
availablePrefixMap['f']['L'] = 1;
availablePrefixMap['a']['L'] = 1;
availablePrefixMap['z']['L'] = 1;
availablePrefixMap['y']['L'] = 1;
availablePrefixMap['Y']['lt'] = 1;
availablePrefixMap['Z']['lt'] = 1;
availablePrefixMap['E']['lt'] = 1;
availablePrefixMap['P']['lt'] = 1;
availablePrefixMap['T']['lt'] = 1;
availablePrefixMap['G']['lt'] = 1;
availablePrefixMap['M']['lt'] = 1;
availablePrefixMap['k']['lt'] = 1;
availablePrefixMap['h']['lt'] = 1;
availablePrefixMap['da']['lt'] = 1;
availablePrefixMap['e']['lt'] = 1;
availablePrefixMap['d']['lt'] = 1;
availablePrefixMap['c']['lt'] = 1;
availablePrefixMap['m']['lt'] = 1;
availablePrefixMap['u']['lt'] = 1;
availablePrefixMap['n']['lt'] = 1;
availablePrefixMap['p']['lt'] = 1;
availablePrefixMap['f']['lt'] = 1;
availablePrefixMap['a']['lt'] = 1;
availablePrefixMap['z']['lt'] = 1;
availablePrefixMap['y']['lt'] = 1;
availablePrefixMap['Y']['ang3'] = 1;
availablePrefixMap['Z']['ang3'] = 1;
availablePrefixMap['E']['ang3'] = 1;
availablePrefixMap['P']['ang3'] = 1;
availablePrefixMap['T']['ang3'] = 1;
availablePrefixMap['G']['ang3'] = 1;
availablePrefixMap['M']['ang3'] = 1;
availablePrefixMap['k']['ang3'] = 1;
availablePrefixMap['h']['ang3'] = 1;
availablePrefixMap['da']['ang3'] = 1;
availablePrefixMap['e']['ang3'] = 1;
availablePrefixMap['d']['ang3'] = 1;
availablePrefixMap['c']['ang3'] = 1;
availablePrefixMap['m']['ang3'] = 1;
availablePrefixMap['u']['ang3'] = 1;
availablePrefixMap['n']['ang3'] = 1;
availablePrefixMap['p']['ang3'] = 1;
availablePrefixMap['f']['ang3'] = 1;
availablePrefixMap['a']['ang3'] = 1;
availablePrefixMap['z']['ang3'] = 1;
availablePrefixMap['y']['ang3'] = 1;
availablePrefixMap['Y']['ang^3'] = 1;
availablePrefixMap['Z']['ang^3'] = 1;
availablePrefixMap['E']['ang^3'] = 1;
availablePrefixMap['P']['ang^3'] = 1;
availablePrefixMap['T']['ang^3'] = 1;
availablePrefixMap['G']['ang^3'] = 1;
availablePrefixMap['M']['ang^3'] = 1;
availablePrefixMap['k']['ang^3'] = 1;
availablePrefixMap['h']['ang^3'] = 1;
availablePrefixMap['da']['ang^3'] = 1;
availablePrefixMap['e']['ang^3'] = 1;
availablePrefixMap['d']['ang^3'] = 1;
availablePrefixMap['c']['ang^3'] = 1;
availablePrefixMap['m']['ang^3'] = 1;
availablePrefixMap['u']['ang^3'] = 1;
availablePrefixMap['n']['ang^3'] = 1;
availablePrefixMap['p']['ang^3'] = 1;
availablePrefixMap['f']['ang^3'] = 1;
availablePrefixMap['a']['ang^3'] = 1;
availablePrefixMap['z']['ang^3'] = 1;
availablePrefixMap['y']['ang^3'] = 1;
availablePrefixMap['Y']['m3'] = 1;
availablePrefixMap['Z']['m3'] = 1;
availablePrefixMap['E']['m3'] = 1;
availablePrefixMap['P']['m3'] = 1;
availablePrefixMap['T']['m3'] = 1;
availablePrefixMap['G']['m3'] = 1;
availablePrefixMap['M']['m3'] = 1;
availablePrefixMap['k']['m3'] = 1;
availablePrefixMap['h']['m3'] = 1;
availablePrefixMap['da']['m3'] = 1;
availablePrefixMap['e']['m3'] = 1;
availablePrefixMap['d']['m3'] = 1;
availablePrefixMap['c']['m3'] = 1;
availablePrefixMap['m']['m3'] = 1;
availablePrefixMap['u']['m3'] = 1;
availablePrefixMap['n']['m3'] = 1;
availablePrefixMap['p']['m3'] = 1;
availablePrefixMap['f']['m3'] = 1;
availablePrefixMap['a']['m3'] = 1;
availablePrefixMap['z']['m3'] = 1;
availablePrefixMap['y']['m3'] = 1;
availablePrefixMap['Y']['m^3'] = 1;
availablePrefixMap['Z']['m^3'] = 1;
availablePrefixMap['E']['m^3'] = 1;
availablePrefixMap['P']['m^3'] = 1;
availablePrefixMap['T']['m^3'] = 1;
availablePrefixMap['G']['m^3'] = 1;
availablePrefixMap['M']['m^3'] = 1;
availablePrefixMap['k']['m^3'] = 1;
availablePrefixMap['h']['m^3'] = 1;
availablePrefixMap['da']['m^3'] = 1;
availablePrefixMap['e']['m^3'] = 1;
availablePrefixMap['d']['m^3'] = 1;
availablePrefixMap['c']['m^3'] = 1;
availablePrefixMap['m']['m^3'] = 1;
availablePrefixMap['u']['m^3'] = 1;
availablePrefixMap['n']['m^3'] = 1;
availablePrefixMap['p']['m^3'] = 1;
availablePrefixMap['f']['m^3'] = 1;
availablePrefixMap['a']['m^3'] = 1;
availablePrefixMap['z']['m^3'] = 1;
availablePrefixMap['y']['m^3'] = 1;
availablePrefixMap['Y']['ang2'] = 1;
availablePrefixMap['Z']['ang2'] = 1;
availablePrefixMap['E']['ang2'] = 1;
availablePrefixMap['P']['ang2'] = 1;
availablePrefixMap['T']['ang2'] = 1;
availablePrefixMap['G']['ang2'] = 1;
availablePrefixMap['M']['ang2'] = 1;
availablePrefixMap['k']['ang2'] = 1;
availablePrefixMap['h']['ang2'] = 1;
availablePrefixMap['da']['ang2'] = 1;
availablePrefixMap['e']['ang2'] = 1;
availablePrefixMap['d']['ang2'] = 1;
availablePrefixMap['c']['ang2'] = 1;
availablePrefixMap['m']['ang2'] = 1;
availablePrefixMap['u']['ang2'] = 1;
availablePrefixMap['n']['ang2'] = 1;
availablePrefixMap['p']['ang2'] = 1;
availablePrefixMap['f']['ang2'] = 1;
availablePrefixMap['a']['ang2'] = 1;
availablePrefixMap['z']['ang2'] = 1;
availablePrefixMap['y']['ang2'] = 1;
availablePrefixMap['Y']['ar'] = 1;
availablePrefixMap['Z']['ar'] = 1;
availablePrefixMap['E']['ar'] = 1;
availablePrefixMap['P']['ar'] = 1;
availablePrefixMap['T']['ar'] = 1;
availablePrefixMap['G']['ar'] = 1;
availablePrefixMap['M']['ar'] = 1;
availablePrefixMap['k']['ar'] = 1;
availablePrefixMap['h']['ar'] = 1;
availablePrefixMap['da']['ar'] = 1;
availablePrefixMap['e']['ar'] = 1;
availablePrefixMap['d']['ar'] = 1;
availablePrefixMap['c']['ar'] = 1;
availablePrefixMap['m']['ar'] = 1;
availablePrefixMap['u']['ar'] = 1;
availablePrefixMap['n']['ar'] = 1;
availablePrefixMap['p']['ar'] = 1;
availablePrefixMap['f']['ar'] = 1;
availablePrefixMap['a']['ar'] = 1;
availablePrefixMap['z']['ar'] = 1;
availablePrefixMap['y']['ar'] = 1;
availablePrefixMap['Y']['m2'] = 1;
availablePrefixMap['Z']['m2'] = 1;
availablePrefixMap['E']['m2'] = 1;
availablePrefixMap['P']['m2'] = 1;
availablePrefixMap['T']['m2'] = 1;
availablePrefixMap['G']['m2'] = 1;
availablePrefixMap['M']['m2'] = 1;
availablePrefixMap['k']['m2'] = 1;
availablePrefixMap['h']['m2'] = 1;
availablePrefixMap['da']['m2'] = 1;
availablePrefixMap['e']['m2'] = 1;
availablePrefixMap['d']['m2'] = 1;
availablePrefixMap['c']['m2'] = 1;
availablePrefixMap['m']['m2'] = 1;
availablePrefixMap['u']['m2'] = 1;
availablePrefixMap['n']['m2'] = 1;
availablePrefixMap['p']['m2'] = 1;
availablePrefixMap['f']['m2'] = 1;
availablePrefixMap['a']['m2'] = 1;
availablePrefixMap['z']['m2'] = 1;
availablePrefixMap['y']['m2'] = 1;
availablePrefixMap['Y']['m^2'] = 1;
availablePrefixMap['Z']['m^2'] = 1;
availablePrefixMap['E']['m^2'] = 1;
availablePrefixMap['P']['m^2'] = 1;
availablePrefixMap['T']['m^2'] = 1;
availablePrefixMap['G']['m^2'] = 1;
availablePrefixMap['M']['m^2'] = 1;
availablePrefixMap['k']['m^2'] = 1;
availablePrefixMap['h']['m^2'] = 1;
availablePrefixMap['da']['m^2'] = 1;
availablePrefixMap['e']['m^2'] = 1;
availablePrefixMap['d']['m^2'] = 1;
availablePrefixMap['c']['m^2'] = 1;
availablePrefixMap['m']['m^2'] = 1;
availablePrefixMap['u']['m^2'] = 1;
availablePrefixMap['n']['m^2'] = 1;
availablePrefixMap['p']['m^2'] = 1;
availablePrefixMap['f']['m^2'] = 1;
availablePrefixMap['a']['m^2'] = 1;
availablePrefixMap['z']['m^2'] = 1;
availablePrefixMap['y']['m^2'] = 1;
availablePrefixMap['Y']['bit'] = 1;
availablePrefixMap['Z']['bit'] = 1;
availablePrefixMap['E']['bit'] = 1;
availablePrefixMap['P']['bit'] = 1;
availablePrefixMap['T']['bit'] = 1;
availablePrefixMap['G']['bit'] = 1;
availablePrefixMap['M']['bit'] = 1;
availablePrefixMap['k']['bit'] = 1;
availablePrefixMap['h']['bit'] = 1;
availablePrefixMap['da']['bit'] = 1;
availablePrefixMap['e']['bit'] = 1;
availablePrefixMap['d']['bit'] = 1;
availablePrefixMap['c']['bit'] = 1;
availablePrefixMap['m']['bit'] = 1;
availablePrefixMap['u']['bit'] = 1;
availablePrefixMap['n']['bit'] = 1;
availablePrefixMap['p']['bit'] = 1;
availablePrefixMap['f']['bit'] = 1;
availablePrefixMap['a']['bit'] = 1;
availablePrefixMap['z']['bit'] = 1;
availablePrefixMap['y']['bit'] = 1;
availablePrefixMap['Y']['byte'] = 1;
availablePrefixMap['Z']['byte'] = 1;
availablePrefixMap['E']['byte'] = 1;
availablePrefixMap['P']['byte'] = 1;
availablePrefixMap['T']['byte'] = 1;
availablePrefixMap['G']['byte'] = 1;
availablePrefixMap['M']['byte'] = 1;
availablePrefixMap['k']['byte'] = 1;
availablePrefixMap['h']['byte'] = 1;
availablePrefixMap['da']['byte'] = 1;
availablePrefixMap['e']['byte'] = 1;
availablePrefixMap['d']['byte'] = 1;
availablePrefixMap['c']['byte'] = 1;
availablePrefixMap['m']['byte'] = 1;
availablePrefixMap['u']['byte'] = 1;
availablePrefixMap['n']['byte'] = 1;
availablePrefixMap['p']['byte'] = 1;
availablePrefixMap['f']['byte'] = 1;
availablePrefixMap['a']['byte'] = 1;
availablePrefixMap['z']['byte'] = 1;
availablePrefixMap['y']['byte'] = 1;
availablePrefixMap['Y']['m/h'] = 1;
availablePrefixMap['Z']['m/h'] = 1;
availablePrefixMap['E']['m/h'] = 1;
availablePrefixMap['P']['m/h'] = 1;
availablePrefixMap['T']['m/h'] = 1;
availablePrefixMap['G']['m/h'] = 1;
availablePrefixMap['M']['m/h'] = 1;
availablePrefixMap['k']['m/h'] = 1;
availablePrefixMap['h']['m/h'] = 1;
availablePrefixMap['da']['m/h'] = 1;
availablePrefixMap['e']['m/h'] = 1;
availablePrefixMap['d']['m/h'] = 1;
availablePrefixMap['c']['m/h'] = 1;
availablePrefixMap['m']['m/h'] = 1;
availablePrefixMap['u']['m/h'] = 1;
availablePrefixMap['n']['m/h'] = 1;
availablePrefixMap['p']['m/h'] = 1;
availablePrefixMap['f']['m/h'] = 1;
availablePrefixMap['a']['m/h'] = 1;
availablePrefixMap['z']['m/h'] = 1;
availablePrefixMap['y']['m/h'] = 1;
availablePrefixMap['Y']['m/hr'] = 1;
availablePrefixMap['Z']['m/hr'] = 1;
availablePrefixMap['E']['m/hr'] = 1;
availablePrefixMap['P']['m/hr'] = 1;
availablePrefixMap['T']['m/hr'] = 1;
availablePrefixMap['G']['m/hr'] = 1;
availablePrefixMap['M']['m/hr'] = 1;
availablePrefixMap['k']['m/hr'] = 1;
availablePrefixMap['h']['m/hr'] = 1;
availablePrefixMap['da']['m/hr'] = 1;
availablePrefixMap['e']['m/hr'] = 1;
availablePrefixMap['d']['m/hr'] = 1;
availablePrefixMap['c']['m/hr'] = 1;
availablePrefixMap['m']['m/hr'] = 1;
availablePrefixMap['u']['m/hr'] = 1;
availablePrefixMap['n']['m/hr'] = 1;
availablePrefixMap['p']['m/hr'] = 1;
availablePrefixMap['f']['m/hr'] = 1;
availablePrefixMap['a']['m/hr'] = 1;
availablePrefixMap['z']['m/hr'] = 1;
availablePrefixMap['y']['m/hr'] = 1;
availablePrefixMap['Y']['m/s'] = 1;
availablePrefixMap['Z']['m/s'] = 1;
availablePrefixMap['E']['m/s'] = 1;
availablePrefixMap['P']['m/s'] = 1;
availablePrefixMap['T']['m/s'] = 1;
availablePrefixMap['G']['m/s'] = 1;
availablePrefixMap['M']['m/s'] = 1;
availablePrefixMap['k']['m/s'] = 1;
availablePrefixMap['h']['m/s'] = 1;
availablePrefixMap['da']['m/s'] = 1;
availablePrefixMap['e']['m/s'] = 1;
availablePrefixMap['d']['m/s'] = 1;
availablePrefixMap['c']['m/s'] = 1;
availablePrefixMap['m']['m/s'] = 1;
availablePrefixMap['u']['m/s'] = 1;
availablePrefixMap['n']['m/s'] = 1;
availablePrefixMap['p']['m/s'] = 1;
availablePrefixMap['f']['m/s'] = 1;
availablePrefixMap['a']['m/s'] = 1;
availablePrefixMap['z']['m/s'] = 1;
availablePrefixMap['y']['m/s'] = 1;
availablePrefixMap['Y']['m/sec'] = 1;
availablePrefixMap['Z']['m/sec'] = 1;
availablePrefixMap['E']['m/sec'] = 1;
availablePrefixMap['P']['m/sec'] = 1;
availablePrefixMap['T']['m/sec'] = 1;
availablePrefixMap['G']['m/sec'] = 1;
availablePrefixMap['M']['m/sec'] = 1;
availablePrefixMap['k']['m/sec'] = 1;
availablePrefixMap['h']['m/sec'] = 1;
availablePrefixMap['da']['m/sec'] = 1;
availablePrefixMap['e']['m/sec'] = 1;
availablePrefixMap['d']['m/sec'] = 1;
availablePrefixMap['c']['m/sec'] = 1;
availablePrefixMap['m']['m/sec'] = 1;
availablePrefixMap['u']['m/sec'] = 1;
availablePrefixMap['n']['m/sec'] = 1;
availablePrefixMap['p']['m/sec'] = 1;
availablePrefixMap['f']['m/sec'] = 1;
availablePrefixMap['a']['m/sec'] = 1;
availablePrefixMap['z']['m/sec'] = 1;
availablePrefixMap['y']['m/sec'] = 1;
availablePrefixMap["Yi"]["bit"] = 1;
availablePrefixMap["Zi"]["bit"] = 1;
availablePrefixMap["Ei"]["bit"] = 1;
availablePrefixMap["Pi"]["bit"] = 1;
availablePrefixMap["Ti"]["bit"] = 1;
availablePrefixMap["Gi"]["bit"] = 1;
availablePrefixMap["Mi"]["bit"] = 1;
availablePrefixMap["ki"]["bit"] = 1;
availablePrefixMap["Yi"]["byte"] = 1;
availablePrefixMap["Zi"]["byte"] = 1;
availablePrefixMap["Ei"]["byte"] = 1;
availablePrefixMap["Pi"]["byte"] = 1;
availablePrefixMap["Ti"]["byte"] = 1;
availablePrefixMap["Gi"]["byte"] = 1;
availablePrefixMap["Mi"]["byte"] = 1;
availablePrefixMap["ki"]["byte"] = 1;
prefixValueMap = {};
prefixValueMap["Y"] = 1.00E+24;
prefixValueMap["Z"] = 1.00E+21;
prefixValueMap["E"] = 1.00E+18;
prefixValueMap["P"] = 1.00E+15;
prefixValueMap["T"] = 1.00E+12;
prefixValueMap["G"] = 1.00E+09;
prefixValueMap["M"] = 1.00E+06;
prefixValueMap["k"] = 1.00E+03;
prefixValueMap["h"] = 1.00E+02;
prefixValueMap["da"] = 1.00E+01;
prefixValueMap["e"] = 1.00E+01;
prefixValueMap["d"] = 1.00E-01;
prefixValueMap["c"] = 1.00E-02;
prefixValueMap["m"] = 1.00E-03;
prefixValueMap["u"] = 1.00E-06;
prefixValueMap["n"] = 1.00E-09;
prefixValueMap["p"] = 1.00E-12;
prefixValueMap["f"] = 1.00E-15;
prefixValueMap["a"] = 1.00E-18;
prefixValueMap["z"] = 1.00E-21;
prefixValueMap["y"] = 1.00E-24;
prefixValueMap["Yi"] = 1.20892581961463E+024;
prefixValueMap["Zi"] = 1.18059162071741E+021;
prefixValueMap["Ei"] = 1.15292150460685E+018;
prefixValueMap["Pi"] = 1125899906842624;
prefixValueMap["Ti"] = 1099511627776;
prefixValueMap["Gi"] = 1073741824;
prefixValueMap["Mi"] = 1048576;
prefixValueMap["ki"] = 1024;
}
return availablePrefixMap;
}
function getUnitConverterCoeff(from, to) {
var uniteArr = getUnitConverter();
var res = null;
if (uniteArr[from] && undefined !== uniteArr[from][to]) {
res = uniteArr[from][to];
}
return res;
}
cFormulaFunctionGroup['Engineering'] = cFormulaFunctionGroup['Engineering'] || [];
cFormulaFunctionGroup['Engineering'].push(cBESSELI, cBESSELJ, cBESSELK, cBESSELY, cBIN2DEC, cBIN2HEX, cBIN2OCT,
cBITAND, cBITLSHIFT, cBITOR, cBITRSHIFT, cBITXOR, cCOMPLEX, cCONVERT, cDEC2BIN, cDEC2HEX, cDEC2OCT, cDELTA,
cERF, cERF_PRECISE, cERFC, cERFC_PRECISE, cGESTEP, cHEX2BIN, cHEX2DEC, cHEX2OCT, cIMABS, cIMAGINARY,
cIMARGUMENT, cIMCONJUGATE, cIMCOS, cIMCOSH, cIMCOT, cIMCSC, cIMCSCH, cIMDIV, cIMEXP, cIMLN, cIMLOG10, cIMLOG2,
cIMPOWER, cIMPRODUCT, cIMREAL, cIMSEC, cIMSECH, cIMSIN, cIMSINH, cIMSQRT, cIMSUB, cIMSUM, cIMTAN, cOCT2BIN,
cOCT2DEC, cOCT2HEX);
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBESSELI() {
}
//***array-formula***
cBESSELI.prototype = Object.create(cBaseFunction.prototype);
cBESSELI.prototype.constructor = cBESSELI;
cBESSELI.prototype.name = 'BESSELI';
cBESSELI.prototype.argumentsMin = 2;
cBESSELI.prototype.argumentsMax = 2;
cBESSELI.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cBESSELI.prototype.argumentsType = [argType.any, argType.any];
cBESSELI.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var x = argArray[0];
var n = argArray[1];
if (n < 0) {
return new cError(cErrorType.not_numeric);
}
if (x < 0) {
x = Math.abs(x);
}
n = Math.floor(n);
return BesselI(x, n);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBESSELJ() {
}
//***array-formula***
cBESSELJ.prototype = Object.create(cBaseFunction.prototype);
cBESSELJ.prototype.constructor = cBESSELJ;
cBESSELJ.prototype.name = 'BESSELJ';
cBESSELJ.prototype.argumentsMin = 2;
cBESSELJ.prototype.argumentsMax = 2;
cBESSELJ.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cBESSELJ.prototype.argumentsType = [argType.any, argType.any];
cBESSELJ.prototype.Calculate = function (arg) {
//результаты вычислений как в LO
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var x = argArray[0];
var n = argArray[1];
if (n < 0) {
return new cError(cErrorType.not_numeric);
}
if (x < 0) {
x = Math.abs(x);
}
n = Math.floor(n);
return BesselJ(x, n);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBESSELK() {
}
//***array-formula***
cBESSELK.prototype = Object.create(cBaseFunction.prototype);
cBESSELK.prototype.constructor = cBESSELK;
cBESSELK.prototype.name = 'BESSELK';
cBESSELK.prototype.argumentsMin = 2;
cBESSELK.prototype.argumentsMax = 2;
cBESSELK.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cBESSELK.prototype.argumentsType = [argType.any, argType.any];
cBESSELK.prototype.Calculate = function (arg) {
//результаты вычислений как в LO
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var x = argArray[0];
var n = argArray[1];
if (n < 0 || x < 0) {
return new cError(cErrorType.not_numeric);
}
n = Math.floor(n);
return BesselK(x, n);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBESSELY() {
}
//***array-formula***
cBESSELY.prototype = Object.create(cBaseFunction.prototype);
cBESSELY.prototype.constructor = cBESSELY;
cBESSELY.prototype.name = 'BESSELY';
cBESSELY.prototype.argumentsMin = 2;
cBESSELY.prototype.argumentsMax = 2;
cBESSELY.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cBESSELY.prototype.argumentsType = [argType.any, argType.any];
cBESSELY.prototype.Calculate = function (arg) {
//результаты вычислений как в LO
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var x = argArray[0];
var n = argArray[1];
if (n < 0 || x < 0) {
return new cError(cErrorType.not_numeric);
}
n = Math.floor(n);
return BesselY(x, n);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBIN2DEC() {
}
//***array-formula***
cBIN2DEC.prototype = Object.create(cBaseFunction.prototype);
cBIN2DEC.prototype.constructor = cBIN2DEC;
cBIN2DEC.prototype.name = 'BIN2DEC';
cBIN2DEC.prototype.argumentsMin = 1;
cBIN2DEC.prototype.argumentsMax = 1;
cBIN2DEC.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cBIN2DEC.prototype.argumentsType = [argType.any];
cBIN2DEC.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
var res;
if (validBINNumber(arg0)) {
var substr = arg0.toString();
if (substr.length == 10 && substr.substring(0, 1) == "1") {
res = new cNumber(parseInt(substr.substring(1), NumberBase.BIN) - 512);
} else {
res = new cNumber(parseInt(arg0, NumberBase.BIN));
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBIN2HEX() {
}
//***array-formula***
cBIN2HEX.prototype = Object.create(cBaseFunction.prototype);
cBIN2HEX.prototype.constructor = cBIN2HEX;
cBIN2HEX.prototype.name = 'BIN2HEX';
cBIN2HEX.prototype.argumentsMin = 1;
cBIN2HEX.prototype.argumentsMax = 2;
cBIN2HEX.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cBIN2HEX.prototype.argumentsType = [argType.any, argType.any];
cBIN2HEX.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.not_numeric);
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validBINNumber(arg0) && (arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
var substr = arg0.toString();
if (substr.length === 10 && substr.substring(0, 1) === '1') {
res =
new cString((1099511627264 + parseInt(substr.substring(1), NumberBase.BIN)).toString(NumberBase.HEX)
.toUpperCase());
} else {
res = convertFromTo(arg0, NumberBase.BIN, NumberBase.HEX, arg1);
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBIN2OCT() {
}
//***array-formula***
cBIN2OCT.prototype = Object.create(cBaseFunction.prototype);
cBIN2OCT.prototype.constructor = cBIN2OCT;
cBIN2OCT.prototype.name = 'BIN2OCT';
cBIN2OCT.prototype.argumentsMin = 1;
cBIN2OCT.prototype.argumentsMax = 2;
cBIN2OCT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cBIN2OCT.prototype.argumentsType = [argType.any, argType.any];
cBIN2OCT.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.not_numeric);
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validBINNumber(arg0) && (arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
var substr = arg0.toString();
if (substr.length === 10 && substr.substring(0, 1) === '1') {
res =
new cString((1073741312 + parseInt(substr.substring(1), NumberBase.BIN)).toString(NumberBase.OCT)
.toUpperCase());
} else {
res = convertFromTo(arg0, NumberBase.BIN, NumberBase.OCT, arg1);
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBITAND() {
}
//***array-formula***
cBITAND.prototype = Object.create(cBaseFunction.prototype);
cBITAND.prototype.constructor = cBITAND;
cBITAND.prototype.name = 'BITAND';
cBITAND.prototype.argumentsMin = 2;
cBITAND.prototype.argumentsMax = 2;
cBITAND.prototype.isXLFN = true;
cBITAND.prototype.argumentsType = [argType.number, argType.number];
cBITAND.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var arg0 = Math.floor(argArray[0]);
var arg1 = Math.floor(argArray[1]);
if (arg0 < 0 || arg1 < 0 /*|| arg0 > 2^48 || arg1 > 2^48*/) {
return new cError(cErrorType.not_numeric);
}
var res = arg0 & arg1;
return null !== res && !isNaN(res) ? new cNumber(res) : new cError(cErrorType.wrong_value_type);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBITLSHIFT() {
}
//***array-formula***
cBITLSHIFT.prototype = Object.create(cBaseFunction.prototype);
cBITLSHIFT.prototype.constructor = cBITLSHIFT;
cBITLSHIFT.prototype.name = 'BITLSHIFT';
cBITLSHIFT.prototype.argumentsMin = 2;
cBITLSHIFT.prototype.argumentsMax = 2;
cBITLSHIFT.prototype.isXLFN = true;
cBITLSHIFT.prototype.argumentsType = [argType.number, argType.number];
cBITLSHIFT.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var arg0 = Math.floor(argArray[0]);
var arg1 = Math.floor(argArray[1]);
if (arg0 < 0 /*|| arg0 >= 2^48*/) {
return new cError(cErrorType.not_numeric);
}
var res;
if (arg1 < 0) {
res = Math.floor(arg0 / Math.pow(2.0, -arg1));
} else if (arg1 === 0) {
res = arg0;
} else {
res = arg0 * Math.pow(2.0, arg1);
}
return null !== res && !isNaN(res) ? new cNumber(res) : new cError(cErrorType.wrong_value_type);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBITOR() {
}
//***array-formula***
cBITOR.prototype = Object.create(cBaseFunction.prototype);
cBITOR.prototype.constructor = cBITOR;
cBITOR.prototype.name = 'BITOR';
cBITOR.prototype.argumentsMin = 2;
cBITOR.prototype.argumentsMax = 2;
cBITOR.prototype.isXLFN = true;
cBITOR.prototype.argumentsType = [argType.number, argType.number];
cBITOR.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var arg0 = Math.floor(argArray[0]);
var arg1 = Math.floor(argArray[1]);
if (arg0 < 0 || arg1 < 0 /*|| arg0 > 2^48 || arg1 > 2^48*/) {
return new cError(cErrorType.not_numeric);
}
var res = arg0 | arg1;
return null !== res && !isNaN(res) ? new cNumber(res) : new cError(cErrorType.wrong_value_type);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBITRSHIFT() {
}
//***array-formula***
cBITRSHIFT.prototype = Object.create(cBaseFunction.prototype);
cBITRSHIFT.prototype.constructor = cBITRSHIFT;
cBITRSHIFT.prototype.name = 'BITRSHIFT';
cBITRSHIFT.prototype.argumentsMin = 2;
cBITRSHIFT.prototype.argumentsMax = 2;
cBITRSHIFT.prototype.isXLFN = true;
cBITRSHIFT.prototype.argumentsType = [argType.number, argType.number];
cBITRSHIFT.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var arg0 = Math.floor(argArray[0]);
var arg1 = Math.floor(argArray[1]);
if (arg0 < 0 /*|| arg0 >= 2^48*/) {
return new cError(cErrorType.not_numeric);
}
var res;
if (arg1 < 0) {
res = Math.floor(arg0 * Math.pow(2.0, -arg1));
} else if (arg1 === 0) {
res = arg0;
} else {
res = Math.floor(arg0 / Math.pow(2.0, arg1));
}
return null !== res && !isNaN(res) ? new cNumber(res) : new cError(cErrorType.wrong_value_type);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cBITXOR() {
}
//***array-formula***
cBITXOR.prototype = Object.create(cBaseFunction.prototype);
cBITXOR.prototype.constructor = cBITXOR;
cBITXOR.prototype.name = 'BITXOR';
cBITXOR.prototype.argumentsMin = 2;
cBITXOR.prototype.argumentsMax = 2;
cBITXOR.prototype.isXLFN = true;
cBITXOR.prototype.argumentsType = [argType.number, argType.number];
cBITXOR.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcFunc = function (argArray) {
var arg0 = Math.floor(argArray[0]);
var arg1 = Math.floor(argArray[1]);
if (arg0 < 0 || arg1 < 0 /*|| arg0 > 2^48 || arg1 > 2^48*/) {
return new cError(cErrorType.not_numeric);
}
var res = arg0 ^ arg1;
return null !== res && !isNaN(res) ? new cNumber(res) : new cError(cErrorType.wrong_value_type);
};
return this._findArrayInNumberArguments(oArguments, calcFunc);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cCOMPLEX() {
}
//***array-formula***
cCOMPLEX.prototype = Object.create(cBaseFunction.prototype);
cCOMPLEX.prototype.constructor = cCOMPLEX;
cCOMPLEX.prototype.name = 'COMPLEX';
cCOMPLEX.prototype.argumentsMin = 2;
cCOMPLEX.prototype.argumentsMax = 3;
cCOMPLEX.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cCOMPLEX.prototype.argumentsType = [argType.any, argType.any, argType.any];
cCOMPLEX.prototype.Calculate = function (arg) {
var real = arg[0], img = arg[1],
suf = !arg[2] || arg[2] instanceof AscCommonExcel.cEmpty ? new cString("i") : arg[2];
if (real instanceof cArea || img instanceof cArea3D) {
real = real.cross(arguments[1]);
} else if (real instanceof cArray) {
real = real.getElement(0);
}
if (img instanceof cArea || img instanceof cArea3D) {
img = img.cross(arguments[1]);
} else if (img instanceof cArray) {
img = img.getElement(0);
}
if (suf instanceof cArea || suf instanceof cArea3D) {
suf = suf.cross(arguments[1]);
} else if (suf instanceof cArray) {
suf = suf.getElement(0);
}
real = real.tocNumber();
img = img.tocNumber();
suf = suf.tocString();
if (real instanceof cError) {
return real;
}
if (img instanceof cError) {
return img;
}
if (suf instanceof cError) {
return suf;
}
real = real.getValue();
img = img.getValue();
suf = suf.getValue();
if (suf != "i" && suf != "j") {
return new cError(cErrorType.wrong_value_type);
}
var c = new Complex(real, img, suf);
return new cString(c.toString());
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cCONVERT() {
}
//***array-formula***
cCONVERT.prototype = Object.create(cBaseFunction.prototype);
cCONVERT.prototype.constructor = cCONVERT;
cCONVERT.prototype.name = 'CONVERT';
cCONVERT.prototype.argumentsMin = 3;
cCONVERT.prototype.argumentsMax = 3;
cCONVERT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cCONVERT.prototype.argumentsType = [argType.any, argType.any, argType.any];
cCONVERT.prototype.Calculate = function (arg) {
let oArguments = this._prepareArguments(arg, arguments[1], true);
let argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1].tocString();
argClone[2] = argClone[2].tocString();
let argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
const calcFunc = function (argArray) {
let num = argArray[0],
from = argArray[1],
to = argArray[2],
prefixFrom = null,
prefixTo = null;
const parseFrefix = function (val) {
var isPrefix = val.substr(0, 1);
var isOperator;
if (availablePrefixMap[isPrefix]) {
isOperator = val.substring(1, val.length);
if (availablePrefixMap[isPrefix][isOperator]) {
return {prefix: isPrefix, operator: isOperator};
}
}
isPrefix = val.substr(0, 2);
if (availablePrefixMap[isPrefix]) {
isOperator = val.substring(2, val.length);
if (availablePrefixMap[isPrefix][isOperator]) {
return {prefix: isPrefix, operator: isOperator};
}
}
};
generatePrefixAvailableMap();
let getPrefixFrom = parseFrefix(from);
let prefixValueFrom = null;
if (getPrefixFrom) {
prefixFrom = getPrefixFrom.prefix;
from = getPrefixFrom.operator;
prefixValueFrom = prefixValueMap[prefixFrom];
// if num in the operator, do mult operation to get right prefixValue
let checkNum = getPrefixFrom.operator.search(/[0-9]/gi);
if (checkNum !== -1) {
prefixValueFrom = Math.pow(prefixValueFrom, getPrefixFrom.operator[checkNum]);
}
}
let getPrefixTo = parseFrefix(to);
let prefixValueTo = null;
if (getPrefixTo) {
prefixTo = getPrefixTo.prefix;
to = getPrefixTo.operator;
prefixValueTo = prefixValueMap[prefixTo];
// if num in the operator, do mult operation to get right prefixValue
let checkNum = getPrefixTo.operator.search(/[0-9]/gi);
if (checkNum !== -1) {
prefixValueTo = Math.pow(prefixValueTo, getPrefixTo.operator[checkNum]);
}
}
let coeff, res;
if (from === to) {
res = num;
} else if (null !== (coeff = getUnitConverterCoeff(from, to))) {
if (coeff.length) {
res = num;
for (let i = 0; i < coeff.length; i++) {
if (0 === coeff[i].type) {
res *= coeff[i].val;
} else {
res += coeff[i].val;
}
}
} else {
res = num * coeff;
}
} else if (null !== (coeff = getUnitConverterCoeff(to, from))) {
if (coeff.length) {
res = num;
for (let i = coeff.length - 1; i >= 0; i--) {
if (0 === coeff[i].type) {
res /= coeff[i].val;
} else {
res -= coeff[i].val;
}
}
} else {
res = num / coeff;
}
} else {
return new cError(cErrorType.not_available);
}
if (null !== prefixValueFrom) {
res = res * prefixValueFrom;
}
if (null !== prefixValueTo) {
res = res / prefixValueTo;
}
return new cNumber(res);
};
return this._findArrayInNumberArguments(oArguments, calcFunc, true);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cDEC2BIN() {
}
//***array-formula***
cDEC2BIN.prototype = Object.create(cBaseFunction.prototype);
cDEC2BIN.prototype.constructor = cDEC2BIN;
cDEC2BIN.prototype.name = 'DEC2BIN';
cDEC2BIN.prototype.argumentsMin = 1;
cDEC2BIN.prototype.argumentsMax = 2;
cDEC2BIN.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cDEC2BIN.prototype.argumentsType = [argType.any, argType.any];
cDEC2BIN.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocNumber();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = Math.floor(arg0.getValue());
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validDEC2BINNumber(arg0) && arg0 >= -512 && arg0 <= 511 &&
(arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
if (arg0 < 0) {
res = new cString('1' + '0'.repeat(9 - (512 + arg0).toString(NumberBase.BIN).length) +
(512 + arg0).toString(NumberBase.BIN).toUpperCase());
} else {
res = convertFromTo(arg0, NumberBase.DEC, NumberBase.BIN, arg1);
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cDEC2HEX() {
}
//***array-formula***
cDEC2HEX.prototype = Object.create(cBaseFunction.prototype);
cDEC2HEX.prototype.constructor = cDEC2HEX;
cDEC2HEX.prototype.name = 'DEC2HEX';
cDEC2HEX.prototype.argumentsMin = 1;
cDEC2HEX.prototype.argumentsMax = 2;
cDEC2HEX.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cDEC2HEX.prototype.argumentsType = [argType.any, argType.any];
cDEC2HEX.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocNumber();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = Math.floor(arg0.getValue());
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validDEC2HEXNumber(arg0) && arg0 >= -549755813888 && arg0 <= 549755813887 &&
(arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
if (arg0 < 0) {
res = new cString((1099511627776 + arg0).toString(NumberBase.HEX).toUpperCase());
} else {
res = convertFromTo(arg0, NumberBase.DEC, NumberBase.HEX, arg1);
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cDEC2OCT() {
}
//***array-formula***
cDEC2OCT.prototype = Object.create(cBaseFunction.prototype);
cDEC2OCT.prototype.constructor = cDEC2OCT;
cDEC2OCT.prototype.name = 'DEC2OCT';
cDEC2OCT.prototype.argumentsMin = 1;
cDEC2OCT.prototype.argumentsMax = 2;
cDEC2OCT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cDEC2OCT.prototype.argumentsType = [argType.any, argType.any];
cDEC2OCT.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocNumber();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = Math.floor(arg0.getValue());
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validDEC2OCTNumber(arg0) && arg0 >= -536870912 && arg0 <= 536870911 &&
(arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
if (arg0 < 0) {
res = new cString((1073741824 + arg0).toString(NumberBase.OCT).toUpperCase());
} else {
res = convertFromTo(arg0, NumberBase.DEC, NumberBase.OCT, arg1);
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cDELTA() {
}
//***array-formula***
cDELTA.prototype = Object.create(cBaseFunction.prototype);
cDELTA.prototype.constructor = cDELTA;
cDELTA.prototype.name = 'DELTA';
cDELTA.prototype.argumentsMin = 1;
cDELTA.prototype.argumentsMax = 2;
cDELTA.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cDELTA.prototype.argumentsType = [argType.any, argType.any];
cDELTA.prototype.Calculate = function (arg) {
var number1 = arg[0], number2 = !arg[1] ? new cNumber(0) : arg[1];
if (number1 instanceof cArea || number2 instanceof cArea3D) {
number1 = number1.cross(arguments[1]);
} else if (number1 instanceof cArray) {
number1 = number1.getElement(0);
}
if (number2 instanceof cArea || number2 instanceof cArea3D) {
number2 = number2.cross(arguments[1]);
} else if (number2 instanceof cArray) {
number2 = number2.getElement(0);
}
number1 = number1.tocNumber();
number2 = number2.tocNumber();
if (number1 instanceof cError) {
return number1;
}
if (number2 instanceof cError) {
return number2;
}
number1 = number1.getValue();
number2 = number2.getValue();
return new cNumber(number1 == number2 ? 1 : 0);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cERF() {
}
//***array-formula***
cERF.prototype = Object.create(cBaseFunction.prototype);
cERF.prototype.constructor = cERF;
cERF.prototype.name = 'ERF';
cERF.prototype.argumentsMin = 1;
cERF.prototype.argumentsMax = 2;
cERF.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cERF.prototype.argumentsType = [argType.any, argType.any];
cERF.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
argClone[1] = argClone[1] ? argClone[1].tocNumber() : new cUndefined();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcErf = function (argArray) {
var a = argArray[0];
var b = argArray[1];
var res;
if (undefined !== b) {
res = new cNumber(rtl_math_erf(b) - rtl_math_erf(a));
} else {
res = new cNumber(rtl_math_erf(a));
}
return res;
};
return this._findArrayInNumberArguments(oArguments, calcErf);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cERF_PRECISE() {
}
//***array-formula***
cERF_PRECISE.prototype = Object.create(cBaseFunction.prototype);
cERF_PRECISE.prototype.constructor = cERF_PRECISE;
cERF_PRECISE.prototype.name = 'ERF.PRECISE';
cERF_PRECISE.prototype.argumentsMin = 1;
cERF_PRECISE.prototype.argumentsMax = 1;
cERF_PRECISE.prototype.isXLFN = true;
cERF_PRECISE.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cERF_PRECISE.prototype.argumentsType = [argType.any];
cERF_PRECISE.prototype.Calculate = function (arg) {
var oArguments = this._prepareArguments(arg, arguments[1], true);
var argClone = oArguments.args;
argClone[0] = argClone[0].tocNumber();
var argError;
if (argError = this._checkErrorArg(argClone)) {
return argError;
}
var calcErf = function (argArray) {
var a = argArray[0];
return new cNumber(rtl_math_erf(a));
};
return this._findArrayInNumberArguments(oArguments, calcErf);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cERFC() {
}
//***array-formula***
cERFC.prototype = Object.create(cBaseFunction.prototype);
cERFC.prototype.constructor = cERFC;
cERFC.prototype.name = 'ERFC';
cERFC.prototype.argumentsMin = 1;
cERFC.prototype.argumentsMax = 1;
cERFC.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cERFC.prototype.argumentsType = [argType.any];
cERFC.prototype.Calculate = function (arg) {
var a = arg[0];
if (a instanceof cArea || a instanceof cArea3D) {
a = a.cross(arguments[1]);
} else if (a instanceof cArray) {
a = a.getElement(0);
}
a = a.tocNumber();
if (a instanceof cError) {
return a;
}
a = a.getValue();
return new cNumber(AscCommonExcel.rtl_math_erfc(a));
};
/**
* @constructor
* @extends {cERFC}
*/
function cERFC_PRECISE() {
}
//***array-formula***
cERFC_PRECISE.prototype = Object.create(cERFC.prototype);
cERFC_PRECISE.prototype.constructor = cERFC_PRECISE;
cERFC_PRECISE.prototype.name = 'ERFC.PRECISE';
cERFC_PRECISE.prototype.isXLFN = true;
cERFC_PRECISE.prototype.argumentsType = [argType.any];
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cGESTEP() {
}
//***array-formula***
cGESTEP.prototype = Object.create(cBaseFunction.prototype);
cGESTEP.prototype.constructor = cGESTEP;
cGESTEP.prototype.name = 'GESTEP';
cGESTEP.prototype.argumentsMin = 1;
cGESTEP.prototype.argumentsMax = 2;
cGESTEP.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cGESTEP.prototype.argumentsType = [argType.any, argType.any];
cGESTEP.prototype.Calculate = function (arg) {
var number1 = arg[0], number2 = !arg[1] ? new cNumber(0) : arg[1];
if (number1 instanceof cArea || number2 instanceof cArea3D) {
number1 = number1.cross(arguments[1]);
} else if (number1 instanceof cArray) {
number1 = number1.getElement(0);
}
if (number2 instanceof cArea || number2 instanceof cArea3D) {
number2 = number2.cross(arguments[1]);
} else if (number2 instanceof cArray) {
number2 = number2.getElement(0);
}
number1 = number1.tocNumber();
number2 = number2.tocNumber();
if (number1 instanceof cError) {
return number1;
}
if (number2 instanceof cError) {
return number2;
}
number1 = number1.getValue();
number2 = number2.getValue();
return new cNumber(number1 >= number2 ? 1 : 0);
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cHEX2BIN() {
}
//***array-formula***
cHEX2BIN.prototype = Object.create(cBaseFunction.prototype);
cHEX2BIN.prototype.constructor = cHEX2BIN;
cHEX2BIN.prototype.name = 'HEX2BIN';
cHEX2BIN.prototype.argumentsMin = 1;
cHEX2BIN.prototype.argumentsMax = 2;
cHEX2BIN.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cHEX2BIN.prototype.argumentsType = [argType.any, argType.any];
cHEX2BIN.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validHEXNumber(arg0) && (arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
var negative = (arg0.length === 10 && arg0.substring(0, 1).toUpperCase() === 'F'),
arg0DEC = (negative) ? parseInt(arg0, NumberBase.HEX) - 1099511627776 : parseInt(arg0, NumberBase.HEX);
if (arg0DEC < -512 || arg0DEC > 511) {
res = new cError(cErrorType.not_numeric)
} else {
if (negative) {
var str = (512 + arg0DEC).toString(NumberBase.BIN);
res = new cString('1' + '0'.repeat(9 - str.length) + str);
} else {
res = convertFromTo(arg0DEC, NumberBase.DEC, NumberBase.BIN, arg1);
}
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cHEX2DEC() {
}
//***array-formula***
cHEX2DEC.prototype = Object.create(cBaseFunction.prototype);
cHEX2DEC.prototype.constructor = cHEX2DEC;
cHEX2DEC.prototype.name = 'HEX2DEC';
cHEX2DEC.prototype.argumentsMin = 1;
cHEX2DEC.prototype.argumentsMax = 1;
cHEX2DEC.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cHEX2DEC.prototype.argumentsType = [argType.any];
cHEX2DEC.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
var res;
if (validHEXNumber(arg0)) {
arg0 = parseInt(arg0, NumberBase.HEX);
res = new cNumber((arg0 >= 549755813888) ? arg0 - 1099511627776 : arg0);
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cHEX2OCT() {
}
//***array-formula***
cHEX2OCT.prototype = Object.create(cBaseFunction.prototype);
cHEX2OCT.prototype.constructor = cHEX2OCT;
cHEX2OCT.prototype.name = 'HEX2OCT';
cHEX2OCT.prototype.argumentsMin = 1;
cHEX2OCT.prototype.argumentsMax = 2;
cHEX2OCT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cHEX2OCT.prototype.argumentsType = [argType.any, argType.any];
cHEX2OCT.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validHEXNumber(arg0) && (arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
arg0 = parseInt(arg0, NumberBase.HEX);
if (arg0 > 536870911 && arg0 < 1098974756864) {
res = new cError(cErrorType.not_numeric);
} else {
if (arg0 >= 1098974756864) {
res = new cString((arg0 - 1098437885952).toString(NumberBase.OCT).toUpperCase());
} else {
res = convertFromTo(arg0, NumberBase.DEC, NumberBase.OCT, arg1);
}
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMABS() {
}
//***array-formula***
cIMABS.prototype = Object.create(cBaseFunction.prototype);
cIMABS.prototype.constructor = cIMABS;
cIMABS.prototype.name = 'IMABS';
cIMABS.prototype.argumentsMin = 1;
cIMABS.prototype.argumentsMax = 1;
cIMABS.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMABS.prototype.argumentsType = [argType.any];
cIMABS.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
var res = new cNumber(c.Abs());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMAGINARY() {
}
//***array-formula***
cIMAGINARY.prototype = Object.create(cBaseFunction.prototype);
cIMAGINARY.prototype.constructor = cIMAGINARY;
cIMAGINARY.prototype.name = 'IMAGINARY';
cIMAGINARY.prototype.argumentsMin = 1;
cIMAGINARY.prototype.argumentsMax = 1;
cIMAGINARY.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMAGINARY.prototype.argumentsType = [argType.any];
cIMAGINARY.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
var res = new cNumber(c.Imag());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMARGUMENT() {
}
//***array-formula***
cIMARGUMENT.prototype = Object.create(cBaseFunction.prototype);
cIMARGUMENT.prototype.constructor = cIMARGUMENT;
cIMARGUMENT.prototype.name = 'IMARGUMENT';
cIMARGUMENT.prototype.argumentsMin = 1;
cIMARGUMENT.prototype.argumentsMax = 1;
cIMARGUMENT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMARGUMENT.prototype.argumentsType = [argType.any];
cIMARGUMENT.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
var res = new cNumber(c.Arg());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMCONJUGATE() {
}
//***array-formula***
cIMCONJUGATE.prototype = Object.create(cBaseFunction.prototype);
cIMCONJUGATE.prototype.constructor = cIMCONJUGATE;
cIMCONJUGATE.prototype.name = 'IMCONJUGATE';
cIMCONJUGATE.prototype.argumentsMin = 1;
cIMCONJUGATE.prototype.argumentsMax = 1;
cIMCONJUGATE.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMCONJUGATE.prototype.argumentsType = [argType.any];
cIMCONJUGATE.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
var res = new cString(c.Conj());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMCOS() {
}
//***array-formula***
cIMCOS.prototype = Object.create(cBaseFunction.prototype);
cIMCOS.prototype.constructor = cIMCOS;
cIMCOS.prototype.name = 'IMCOS';
cIMCOS.prototype.argumentsMin = 1;
cIMCOS.prototype.argumentsMax = 1;
cIMCOS.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMCOS.prototype.argumentsType = [argType.any];
cIMCOS.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Cos();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMCOSH() {
}
//***array-formula***
cIMCOSH.prototype = Object.create(cBaseFunction.prototype);
cIMCOSH.prototype.constructor = cIMCOSH;
cIMCOSH.prototype.name = 'IMCOSH';
cIMCOSH.prototype.argumentsMin = 1;
cIMCOSH.prototype.argumentsMax = 1;
cIMCOSH.prototype.isXLFN = true;
cIMCOSH.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMCOSH.prototype.argumentsType = [argType.any];
cIMCOSH.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Cosh();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMCOT() {
}
//***array-formula***
cIMCOT.prototype = Object.create(cBaseFunction.prototype);
cIMCOT.prototype.constructor = cIMCOT;
cIMCOT.prototype.name = 'IMCOT';
cIMCOT.prototype.argumentsMin = 1;
cIMCOT.prototype.argumentsMax = 1;
cIMCOT.prototype.isXLFN = true;
cIMCOT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMCOT.prototype.argumentsType = [argType.any];
cIMCOT.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
if (0 == arg0.value) {
return new cError(cErrorType.not_numeric);
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Cot();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMCSC() {
}
//***array-formula***
//TODO проверить!!!
cIMCSC.prototype = Object.create(cBaseFunction.prototype);
cIMCSC.prototype.constructor = cIMCSC;
cIMCSC.prototype.name = 'IMCSC';
cIMCSC.prototype.argumentsMin = 1;
cIMCSC.prototype.argumentsMax = 1;
cIMCSC.prototype.isXLFN = true;
cIMCSC.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMCSC.prototype.argumentsType = [argType.any];
cIMCSC.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
if (0 == arg0.value) {
return new cError(cErrorType.not_numeric);
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Csc();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMCSCH() {
}
//***array-formula***
//TODO проверить!!!
cIMCSCH.prototype = Object.create(cBaseFunction.prototype);
cIMCSCH.prototype.constructor = cIMCSCH;
cIMCSCH.prototype.name = 'IMCSCH';
cIMCSCH.prototype.argumentsMin = 1;
cIMCSCH.prototype.argumentsMax = 1;
cIMCSCH.prototype.isXLFN = true;
cIMCSCH.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMCSCH.prototype.argumentsType = [argType.any];
cIMCSCH.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
if (0 == arg0.value) {
return new cError(cErrorType.not_numeric);
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Csch();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMDIV() {
}
//***array-formula***
cIMDIV.prototype = Object.create(cBaseFunction.prototype);
cIMDIV.prototype.constructor = cIMDIV;
cIMDIV.prototype.name = 'IMDIV';
cIMDIV.prototype.argumentsMin = 2;
cIMDIV.prototype.argumentsMax = 2;
cIMDIV.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMDIV.prototype.argumentsType = [argType.any, argType.any];
cIMDIV.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
arg1 = arg1.tocString();
if (arg0 instanceof cError) {
return arg0;
}
if (arg1 instanceof cError) {
return arg1;
}
var c1 = new Complex(arg0.toString()), c2 = new Complex(arg1.toString()), c3;
if (c1 instanceof cError || c2 instanceof cError) {
return new cError(cErrorType.not_numeric);
}
c3 = c1.Div(c2);
var res = new cString(c3.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMEXP() {
}
//***array-formula***
cIMEXP.prototype = Object.create(cBaseFunction.prototype);
cIMEXP.prototype.constructor = cIMEXP;
cIMEXP.prototype.name = 'IMEXP';
cIMEXP.prototype.argumentsMin = 1;
cIMEXP.prototype.argumentsMax = 1;
cIMEXP.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMEXP.prototype.argumentsType = [argType.any];
cIMEXP.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Exp();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMLN() {
}
//***array-formula***
cIMLN.prototype = Object.create(cBaseFunction.prototype);
cIMLN.prototype.constructor = cIMLN;
cIMLN.prototype.name = 'IMLN';
cIMLN.prototype.argumentsMin = 1;
cIMLN.prototype.argumentsMax = 1;
cIMLN.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMLN.prototype.argumentsType = [argType.any];
cIMLN.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
var r = c.Ln();
if (r instanceof cError) {
return r;
}
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMLOG10() {
}
//***array-formula***
cIMLOG10.prototype = Object.create(cBaseFunction.prototype);
cIMLOG10.prototype.constructor = cIMLOG10;
cIMLOG10.prototype.name = 'IMLOG10';
cIMLOG10.prototype.argumentsMin = 1;
cIMLOG10.prototype.argumentsMax = 1;
cIMLOG10.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMLOG10.prototype.argumentsType = [argType.any];
cIMLOG10.prototype.Calculate = function (arg) {
let arg0 = arg[0];
if (arg0.type === cElementType.cellsRange || arg0.type === cElementType.cellsRange3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0.type === cElementType.array) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0.type === cElementType.error) {
return arg0;
}
let c = new Complex(arg0.toString());
if (c.type === cElementType.error) {
return c;
}
let r = c.Log10();
if (r && r.type === cElementType.error) {
return r;
}
let res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMLOG2() {
}
//***array-formula***
cIMLOG2.prototype = Object.create(cBaseFunction.prototype);
cIMLOG2.prototype.constructor = cIMLOG2;
cIMLOG2.prototype.name = 'IMLOG2';
cIMLOG2.prototype.argumentsMin = 1;
cIMLOG2.prototype.argumentsMax = 1;
cIMLOG2.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMLOG2.prototype.argumentsType = [argType.any];
cIMLOG2.prototype.Calculate = function (arg) {
let arg0 = arg[0];
if (arg0.type === cElementType.cellsRange || arg0.type === cElementType.cellsRange3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0.type === cElementType.array) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0.type === cElementType.error) {
return arg0;
}
let c = new Complex(arg0.toString());
if (c.type === cElementType.error) {
return c;
}
let r = c.Log2();
if (r && r.type === cElementType.error) {
return r;
}
let res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMPOWER() {
}
cIMPOWER.prototype = Object.create(cBaseFunction.prototype);
cIMPOWER.prototype.constructor = cIMPOWER;
cIMPOWER.prototype.name = 'IMPOWER';
cIMPOWER.prototype.argumentsMin = 2;
cIMPOWER.prototype.argumentsMax = 2;
cIMPOWER.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMPOWER.prototype.argumentsType = [argType.any, argType.any];
cIMPOWER.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
arg1 = arg1.tocNumber();
if (arg0 instanceof cError) {
return arg0;
}
if (arg1 instanceof cError) {
return arg1;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
var res;
if (c.Power(arg1.getValue())) {
res = new cString(c.toString());
} else {
res = new cError(cErrorType.not_numeric);
}
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMPRODUCT() {
}
//***array-formula***
cIMPRODUCT.prototype = Object.create(cBaseFunction.prototype);
cIMPRODUCT.prototype.constructor = cIMPRODUCT;
cIMPRODUCT.prototype.name = 'IMPRODUCT';
cIMPRODUCT.prototype.argumentsMin = 1;
cIMPRODUCT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.array;
cIMPRODUCT.prototype.argumentsType = [[argType.any]];
cIMPRODUCT.prototype.Calculate = function (arg) {
var arg0 = arg[0], t = this;
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString()), c1;
if (c instanceof cError) {
return c;
}
for (var i = 1; i < arg.length; i++) {
var argI = arg[i];
if (argI instanceof cArea || argI instanceof cArea3D) {
var argIArr = argI.getValue(), _arg;
for (var j = 0; j < argIArr.length; j++) {
_arg = argIArr[i].tocString();
if (_arg instanceof cError) {
return _arg;
}
c1 = new Complex(_arg.toString());
if (c1 instanceof cError) {
return c1;
}
c.Product(c1);
}
continue;
} else if (argI instanceof cArray) {
argI.foreach(function (elem) {
var e = elem.tocString();
if (e instanceof cError) {
return e;
}
c1 = new Complex(e.toString());
if (c1 instanceof cError) {
return c1;
}
c.Product(c1);
});
continue;
}
argI = argI.tocString();
if (argI instanceof cError) {
return argI;
}
c1 = new Complex(argI.toString());
c.Product(c1);
}
var res;
if (c instanceof cError) {
res = c;
} else {
res = new cString(c.toString());
}
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMREAL() {
}
//***array-formula***
cIMREAL.prototype = Object.create(cBaseFunction.prototype);
cIMREAL.prototype.constructor = cIMREAL;
cIMREAL.prototype.name = 'IMREAL';
cIMREAL.prototype.argumentsMin = 1;
cIMREAL.prototype.argumentsMax = 1;
cIMREAL.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMREAL.prototype.argumentsType = [argType.any];
cIMREAL.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
var res = new cNumber(c.real);
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMSEC() {
}
//***array-formula***
cIMSEC.prototype = Object.create(cBaseFunction.prototype);
cIMSEC.prototype.constructor = cIMSEC;
cIMSEC.prototype.name = 'IMSEC';
cIMSEC.prototype.argumentsMin = 1;
cIMSEC.prototype.argumentsMax = 1;
cIMSEC.prototype.isXLFN = true;
cIMSEC.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMSEC.prototype.argumentsType = [argType.any];
cIMSEC.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Sec();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMSECH() {
}
//***array-formula***
cIMSECH.prototype = Object.create(cBaseFunction.prototype);
cIMSECH.prototype.constructor = cIMSECH;
cIMSECH.prototype.name = 'IMSECH';
cIMSECH.prototype.argumentsMin = 1;
cIMSECH.prototype.argumentsMax = 1;
cIMSECH.prototype.isXLFN = true;
cIMSECH.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMSECH.prototype.argumentsType = [argType.any];
cIMSECH.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Sech();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMSIN() {
}
//***array-formula***
cIMSIN.prototype = Object.create(cBaseFunction.prototype);
cIMSIN.prototype.constructor = cIMSIN;
cIMSIN.prototype.name = 'IMSIN';
cIMSIN.prototype.argumentsMin = 1;
cIMSIN.prototype.argumentsMax = 1;
cIMSIN.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMSIN.prototype.argumentsType = [argType.any];
cIMSIN.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Sin();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMSINH() {
}
//***array-formula***
cIMSINH.prototype = Object.create(cBaseFunction.prototype);
cIMSINH.prototype.constructor = cIMSINH;
cIMSINH.prototype.name = 'IMSINH';
cIMSINH.prototype.argumentsMin = 1;
cIMSINH.prototype.argumentsMax = 1;
cIMSINH.prototype.isXLFN = true;
cIMSINH.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMSINH.prototype.argumentsType = [argType.any];
cIMSINH.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Sinh();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMSQRT() {
}
//***array-formula***
cIMSQRT.prototype = Object.create(cBaseFunction.prototype);
cIMSQRT.prototype.constructor = cIMSQRT;
cIMSQRT.prototype.name = 'IMSQRT';
cIMSQRT.prototype.argumentsMin = 1;
cIMSQRT.prototype.argumentsMax = 1;
cIMSQRT.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMSQRT.prototype.argumentsType = [argType.any];
cIMSQRT.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.SQRT();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMSUB() {
}
//***array-formula***
cIMSUB.prototype = Object.create(cBaseFunction.prototype);
cIMSUB.prototype.constructor = cIMSUB;
cIMSUB.prototype.name = 'IMSUB';
cIMSUB.prototype.argumentsMin = 2;
cIMSUB.prototype.argumentsMax = 2;
cIMSUB.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMSUB.prototype.argumentsType = [argType.any, argType.any];
cIMSUB.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
arg1 = arg1.tocString();
if (arg0 instanceof cError) {
return arg0;
}
if (arg1 instanceof cError) {
return arg1;
}
var c1 = new Complex(arg0.toString()), c2 = new Complex(arg1.toString());
if (c1 instanceof cError || c2 instanceof cError) {
return new cError(cErrorType.not_numeric);
}
c1.Sub(c2);
var res = new cString(c1.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMSUM() {
}
//***array-formula***
cIMSUM.prototype = Object.create(cBaseFunction.prototype);
cIMSUM.prototype.constructor = cIMSUM;
cIMSUM.prototype.name = 'IMSUM';
cIMSUM.prototype.argumentsMin = 1;
cIMSUM.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.array;
cIMSUM.prototype.argumentsType = [[argType.any]];
cIMSUM.prototype.Calculate = function (arg) {
var arg0 = arg[0], t = this;
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
var c = new Complex(arg0.toString()), c1;
if (c instanceof cError) {
return c;
}
for (var i = 1; i < arg.length; i++) {
var argI = arg[i];
if (argI instanceof cArea || argI instanceof cArea3D) {
var argIArr = argI.getValue(), _arg;
for (var j = 0; j < argIArr.length; j++) {
_arg = argIArr[i].tocString();
if (_arg instanceof cError) {
return _arg;
}
c1 = new Complex(_arg.toString());
if (c1 instanceof cError) {
return c1;
}
c.Sum(c1);
}
continue;
} else if (argI instanceof cArray) {
argI.foreach(function (elem) {
var e = elem.tocString();
if (e instanceof cError) {
return e;
}
c1 = new Complex(e.toString());
if (c1 instanceof cError) {
return c1;
}
c.Sum(c1);
});
continue;
}
argI = argI.tocString();
if (argI instanceof cError) {
return argI;
}
c1 = new Complex(argI.toString());
c.Sum(c1);
}
var res;
if (c instanceof cError) {
res = c;
} else {
res = new cString(c.toString());
}
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cIMTAN() {
}
//***array-formula***
//TODO проверить!!!
cIMTAN.prototype = Object.create(cBaseFunction.prototype);
cIMTAN.prototype.constructor = cIMTAN;
cIMTAN.prototype.name = 'IMTAN';
cIMTAN.prototype.argumentsMin = 1;
cIMTAN.prototype.argumentsMax = 1;
cIMTAN.prototype.isXLFN = true;
cIMTAN.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cIMTAN.prototype.argumentsType = [argType.any];
cIMTAN.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
if (arg0.value === true || arg0.value === false) {
return new cError(cErrorType.wrong_value_type);
}
var c = new Complex(arg0.toString());
if (c instanceof cError) {
return c;
}
c.Tan();
var res = new cString(c.toString());
res.numFormat = 0;
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cOCT2BIN() {
}
//***array-formula***
cOCT2BIN.prototype = Object.create(cBaseFunction.prototype);
cOCT2BIN.prototype.constructor = cOCT2BIN;
cOCT2BIN.prototype.name = 'OCT2BIN';
cOCT2BIN.prototype.argumentsMin = 1;
cOCT2BIN.prototype.argumentsMax = 2;
cOCT2BIN.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cOCT2BIN.prototype.argumentsType = [argType.any, argType.any];
cOCT2BIN.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validOCTNumber(arg0) && (arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
var negative = (arg0.length === 10 && arg0.substring(0, 1).toUpperCase() === '7'),
arg0DEC = (negative) ? parseInt(arg0, NumberBase.OCT) - 1073741824 : parseInt(arg0, NumberBase.OCT);
if (arg0DEC < -512 || arg0DEC > 511) {
res = new cError(cErrorType.not_numeric)
} else {
if (negative) {
var str = (512 + arg0DEC).toString(NumberBase.BIN);
res = new cString(('1' + '0'.repeat(9 - str.length) + str).toUpperCase());
} else {
res = convertFromTo(arg0DEC, NumberBase.DEC, NumberBase.BIN, arg1);
}
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cOCT2DEC() {
}
//***array-formula***
cOCT2DEC.prototype = Object.create(cBaseFunction.prototype);
cOCT2DEC.prototype.constructor = cOCT2DEC;
cOCT2DEC.prototype.name = 'OCT2DEC';
cOCT2DEC.prototype.argumentsMin = 1;
cOCT2DEC.prototype.argumentsMax = 1;
cOCT2DEC.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cOCT2DEC.prototype.argumentsType = [argType.any];
cOCT2DEC.prototype.Calculate = function (arg) {
var arg0 = arg[0];
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return arg0;
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
var res;
if (validOCTNumber(arg0)) {
arg0 = parseInt(arg0, NumberBase.OCT);
res = new cNumber((arg0 >= 536870912) ? arg0 - 1073741824 : arg0);
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
/**
* @constructor
* @extends {AscCommonExcel.cBaseFunction}
*/
function cOCT2HEX() {
}
//***array-formula***
cOCT2HEX.prototype = Object.create(cBaseFunction.prototype);
cOCT2HEX.prototype.constructor = cOCT2HEX;
cOCT2HEX.prototype.name = 'OCT2HEX';
cOCT2HEX.prototype.argumentsMin = 1;
cOCT2HEX.prototype.argumentsMax = 2;
cOCT2HEX.prototype.returnValueType = AscCommonExcel.cReturnFormulaType.value_replace_area;
cOCT2HEX.prototype.argumentsType = [argType.any, argType.any];
cOCT2HEX.prototype.Calculate = function (arg) {
var arg0 = arg[0], arg1 = arg[1] ? arg[1] : new cUndefined();
if (arg0 instanceof cArea || arg0 instanceof cArea3D) {
arg0 = arg0.cross(arguments[1]);
} else if (arg0 instanceof cArray) {
arg0 = arg0.getElementRowCol(0, 0);
}
if (arg1 instanceof cArea || arg1 instanceof cArea3D) {
arg1 = arg1.cross(arguments[1]);
} else if (arg1 instanceof cArray) {
arg1 = arg1.getElementRowCol(0, 0);
}
arg0 = arg0.tocString();
if (arg0 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
arg0 = arg0.getValue();
if (arg0.length == 0) {
arg0 = 0;
}
if (!(arg1 instanceof cUndefined)) {
arg1 = arg1.tocNumber();
if (arg1 instanceof cError) {
return new cError(cErrorType.wrong_value_type);
}
}
arg1 = arg1.getValue();
var res;
if (validHEXNumber(arg0) && (arg1 > 0 && arg1 <= 10 || arg1 == undefined)) {
arg0 = parseInt(arg0, NumberBase.OCT);
if (arg0 >= 536870912) {
res = new cString(('ff' + (arg0 + 3221225472).toString(NumberBase.HEX)).toUpperCase());
} else {
res = convertFromTo(arg0, NumberBase.DEC, NumberBase.HEX, arg1);
}
} else {
res = new cError(cErrorType.not_numeric);
}
return res;
};
//----------------------------------------------------------export----------------------------------------------------
window['AscCommonExcel'] = window['AscCommonExcel'] || {};
window['AscCommonExcel'].Complex = Complex;
})(window);