/*
	Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


if(!dojo._hasResource["dojox.math._base"]){dojo._hasResource["dojox.math._base"]=true;dojo.provide("dojox.math._base");dojo.mixin(dojox.math,{degreesToRadians:function(n){return (n*Math.PI)/180;},radiansToDegrees:function(n){return (n*180)/Math.PI;},factorial:function(n){if(n===0){return 1;}else{if(n<0||Math.floor(n)!=n){return NaN;}}var _4=1;for(var i=1;i<=n;i++){_4*=i;}return _4;},permutations:function(n,k){if(n==0||k==0){return 1;}return this.factorial(n)/this.factorial(n-k);},combinations:function(n,r){if(n==0||r==0){return 1;}return this.factorial(n)/(this.factorial(n-r)*this.factorial(r));},bernstein:function(t,n,i){return this.combinations(n,i)*Math.pow(t,i)*Math.pow(1-t,n-i);},gaussian:function(){var k=2;do{var i=2*Math.random()-1;var j=2*Math.random()-1;k=i*i+j*j;}while(k>=1);return i*Math.sqrt((-2*Math.log(k))/k);},sd:function(a){return Math.sqrt(this.variance(a));},variance:function(a){var _12=0,_13=0;dojo.forEach(a,function(_14){_12+=_14;_13+=Math.pow(_14,2);});return (_13/a.length)-Math.pow(_12/a.length,2);},range:function(a,b,_17){if(arguments.length<2){b=a,a=0;}var _18=[],s=_17||1,i;if(s>0){for(i=a;i<b;i+=s){_18.push(i);}}else{if(s<0){for(i=a;i>b;i+=s){_18.push(i);}}else{throw new Error("dojox.math.range: step must not be zero.");}}return _18;},distance:function(a,b){return Math.sqrt(Math.pow(b[0]-a[0],2)+Math.pow(b[1]-a[1],2));},midpoint:function(a,b){if(a.length!=b.length){console.error("dojox.math.midpoint: Points A and B are not the same dimensionally.",a,b);}var m=[];for(var i=0;i<a.length;i++){m[i]=(a[i]+b[i])/2;}return m;}});}