UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

62 lines 2.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.YAXB = void 0; const internal_modules_1 = require("../internal_modules"); const internal_modules_2 = require("../internal_modules"); const internal_modules_3 = require("../internal_modules"); const internal_modules_4 = require("../internal_modules"); const internal_modules_5 = require("../internal_modules"); /** * Y = A.X + B */ class YAXB extends internal_modules_2.Nub { constructor(prms, dbg = false) { super(prms, dbg); this.setCalculatorType(internal_modules_1.CalculatorType.YAXB); this._defaultCalculatedParam = prms.Y; this.resetDefaultCalculatedParam(); } /** paramètres castés au bon type */ get prms() { return this._prms; } Equation(sVarCalc) { let v; switch (sVarCalc) { case "Y": v = this.prms.A.v * this.prms.X.v + this.prms.B.v; break; case "A": if (this.prms.X.v === 0) { const m = new internal_modules_4.Message(internal_modules_4.MessageCode.ERROR_DIVISION_BY_ZERO); m.extraVar.symbol = "X"; return new internal_modules_5.Result(m); } v = (this.prms.Y.v - this.prms.B.v) / this.prms.X.v; break; case "X": if (this.prms.A.v === 0) { const m = new internal_modules_4.Message(internal_modules_4.MessageCode.ERROR_DIVISION_BY_ZERO); m.extraVar.symbol = "A"; return new internal_modules_5.Result(m); } v = (this.prms.Y.v - this.prms.B.v) / this.prms.A.v; break; case "B": v = this.prms.Y.v - (this.prms.A.v * this.prms.X.v); break; default: throw new Error("YAXB.Equation() : invalid variable name " + sVarCalc); } return new internal_modules_5.Result(v, this); } /** paramétrage de la calculabilité des paramètres */ setParametersCalculability() { this.prms.Y.calculability = internal_modules_3.ParamCalculability.EQUATION; this.prms.A.calculability = internal_modules_3.ParamCalculability.EQUATION; this.prms.X.calculability = internal_modules_3.ParamCalculability.EQUATION; this.prms.B.calculability = internal_modules_3.ParamCalculability.EQUATION; } } exports.YAXB = YAXB; //# sourceMappingURL=yaxb.js.map