var BitMath = {

		/**
		 * 絶対値 * 2520%
		 * @param	x
		 * @return
		 */
		abs : function (x/*:Number*/)/*:Number*/{
			return (x ^ (x >> 31)) - (x >> 31);
		}
		
		/**
		 * 偶数ならfalseを返します
		 * @param	x
		 * @return
		 */
		,isEven : function (x/*:Number*/)/*:Boolean*/{
			return (x % 2) == 0 ? true:false;
		}
		
		/**
		 * 引数を黄金比分解した配列[1,1.1618...]を返します。
		 * @param	x 黄金比分解する元の値
		 */
		,splitGoldenRatio : function (x/*:Number*/)/*:Array*/ {
			var g = this.getGoldenRatio();
			var a/*:Number*/ = x / (1 + g);
			var b/*:Number*/ = (g * x) / (1 + g);
			return [a, b];
		}
		/**
		 * 引数を白銀比分解した配列[1,1.414...]を返します。
		 * @param	x 白銀比分解する元の値
		 */
		,splitSilverRatio : function (x/*:Number*/)/*:Array*/{
			var h = Math.sqrt(2)
			var a/*:Number*/ = x / (1 + h);
			var b/*:Number*/ = (h* x) / (1 + h);
			return [a, b];
		}
		
		/**
		 * 黄金比の1.1618のほうを返す
		 */
		,getGoldenRatio : function ()/*:Number*/ {
			var a = (1 + Math.sqrt(5))
			return a / 2;
		}
	}
