_base.js 1.7 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.math._base"]){dojo._hasResource["dojox.math._base"]=true;dojo.provide("dojox.math._base");(function(){var m=dojox.math;dojo.mixin(dojox.math,{toRadians:function(n){return (n*Math.PI)/180;},toDegrees:function(n){return (n*180)/Math.PI;},degreesToRadians:function(n){return m.toRadians(n);},radiansToDegrees:function(n){return m.toDegrees(n);},factorial:function(n){if(n===0){return 1;}else{if(n<0||Math.floor(n)!=n){return NaN;}}var _1=1;for(var i=1;i<=n;i++){_1*=i;}return _1;},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);},range:function(a,b,_2){if(arguments.length<2){b=a,a=0;}var _3=[],s=_2||1,i;if(s>0){for(i=a;i<b;i+=s){_3.push(i);}}else{if(s<0){for(i=a;i>b;i+=s){_3.push(i);}}else{throw new Error("dojox.math.range: step must not be zero.");}}return _3;},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;}});})();}