
MathContext.prototype.getDigits=getDigits;MathContext.prototype.getForm=getForm;MathContext.prototype.getLostDigits=getLostDigits;MathContext.prototype.getRoundingMode=getRoundingMode;MathContext.prototype.toString=toString;MathContext.prototype.isValidRound=isValidRound;MathContext.prototype.PLAIN=0;MathContext.prototype.SCIENTIFIC=1;MathContext.prototype.ENGINEERING=2;MathContext.prototype.ROUND_CEILING=2;MathContext.prototype.ROUND_DOWN=1;MathContext.prototype.ROUND_FLOOR=3;MathContext.prototype.ROUND_HALF_DOWN=5;MathContext.prototype.ROUND_HALF_EVEN=6;MathContext.prototype.ROUND_HALF_UP=4;MathContext.prototype.ROUND_UNNECESSARY=7;MathContext.prototype.ROUND_UP=0;MathContext.prototype.DEFAULT_FORM=MathContext.prototype.SCIENTIFIC;MathContext.prototype.DEFAULT_DIGITS=9;MathContext.prototype.DEFAULT_LOSTDIGITS=false;MathContext.prototype.DEFAULT_ROUNDINGMODE=MathContext.prototype.ROUND_HALF_UP;MathContext.prototype.MIN_DIGITS=0;MathContext.prototype.MAX_DIGITS=999999999;MathContext.prototype.ROUNDS=new Array(MathContext.prototype.ROUND_HALF_UP,MathContext.prototype.ROUND_UNNECESSARY,MathContext.prototype.ROUND_CEILING,MathContext.prototype.ROUND_DOWN,MathContext.prototype.ROUND_FLOOR,MathContext.prototype.ROUND_HALF_DOWN,MathContext.prototype.ROUND_HALF_EVEN,MathContext.prototype.ROUND_UP);MathContext.prototype.ROUNDWORDS=new Array("ROUND_HALF_UP","ROUND_UNNECESSARY","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_UP");MathContext.prototype.DEFAULT=new MathContext(MathContext.prototype.DEFAULT_DIGITS,MathContext.prototype.DEFAULT_FORM,MathContext.prototype.DEFAULT_LOSTDIGITS,MathContext.prototype.DEFAULT_ROUNDINGMODE);function MathContext(){this.digits=0;this.form=0;this.lostDigits=false;this.roundingMode=0;var setform=this.DEFAULT_FORM;var setlostdigits=this.DEFAULT_LOSTDIGITS;var setroundingmode=this.DEFAULT_ROUNDINGMODE;if(MathContext.arguments.length==4)
{setform=MathContext.arguments[1];setlostdigits=MathContext.arguments[2];setroundingmode=MathContext.arguments[3];}
else if(MathContext.arguments.length==3)
{setform=MathContext.arguments[1];setlostdigits=MathContext.arguments[2];}
else if(MathContext.arguments.length==2)
{setform=MathContext.arguments[1];}
else if(MathContext.arguments.length!=1)
{throw"MathContext(): "+MathContext.arguments.length+" arguments given; expected 1 to 4"}
var setdigits=MathContext.arguments[0];if(setdigits!=this.DEFAULT_DIGITS)
{if(setdigits<this.MIN_DIGITS)
throw"MathContext(): Digits too small: "+setdigits;if(setdigits>this.MAX_DIGITS)
throw"MathContext(): Digits too large: "+setdigits;}
{if(setform==this.SCIENTIFIC);else if(setform==this.ENGINEERING);else if(setform==this.PLAIN);else{throw"MathContext() Bad form value: "+setform;}}
if((!(this.isValidRound(setroundingmode))))
throw"MathContext(): Bad roundingMode value: "+setroundingmode;this.digits=setdigits;this.form=setform;this.lostDigits=setlostdigits;this.roundingMode=setroundingmode;return;}
function getDigits(){return this.digits;}
function getForm(){return this.form;}
function getLostDigits(){return this.lostDigits;}
function getRoundingMode(){return this.roundingMode;}
function toString(){var formstr=null;var r=0;var roundword=null;{if(this.form==this.SCIENTIFIC)
formstr="SCIENTIFIC";else if(this.form==this.ENGINEERING)
formstr="ENGINEERING";else{formstr="PLAIN";}}
{var $1=this.ROUNDS.length;r=0;r:for(;$1>0;$1--,r++){if(this.roundingMode==this.ROUNDS[r])
{roundword=this.ROUNDWORDS[r];break r;}}}
return"digits="+this.digits+" "+"form="+formstr+" "+"lostDigits="+(this.lostDigits?"1":"0")+" "+"roundingMode="+roundword;}
function isValidRound(testround){var r=0;{var $2=this.ROUNDS.length;r=0;r:for(;$2>0;$2--,r++){if(testround==this.ROUNDS[r])
return true;}}
return false;}