Viewing contents of file '../idllib/contrib/harris/ellipsoid.pro'
	function ellipsoid,s,aspect=aspect,steps=steps
;+
; NAME:			ELLIPSOID
;
; PURPOSE:		create an ellipsoidal gaussian volume density function
;
; CATEGORY:		Signal Processing.
;
; CALLING SEQUENCE:	
;			result = ELLIPSOID(n)
;			result = ELLIPSOID(n,aspect=aspect)
;
; INPUTS:
;			
;		n 	= size of result. (default = 50)
;	KEYWORDS:
		ASPECT	= aspect ratio of the ellipse  (default = 0.75)
;		STEPS	= number of steps to create (default = 0)
; OUTPUTS:
;	Result = (N,N,N) floating array in which each 2-d layer is created 
;		 by the ellipse generating function DIST4
;
; COMMON BLOCKS:
;	none.
; SIDE EFFECTS:
;	none.
; MODIFICATION HISTORY:
;	Written by: Trevor Harris, Physics Dept., University of Adelaide,
;		July, 1990.
;
;-

	;create an ellipsoidal gaussian volume density function

	if (n_elements(s) le 0) then dim = 50. else dim = float(s(0)) 
	if (not keyword_set(aspect)) then aspect = 0.75

	volume = fltarr(dim,dim,dim)

	;use dist4 with different major and minor axes and "steps" steps

	area = dist4(dim,1,aspect,steps=steps)
	;;;;dont want cosine wiggles !!
	;;;;area = cos(area*2.*!pi/max(area))

	;for i=0,dim-1 do volume(0,0,i) = (max(area)-area)*i*(dim-i)/dim
         
	;for i=0,dim-1 do volume(0,0,i) = (max(area)-area) $
	;					*exp(-((i-(dim-1)*0.5)/dim)^2)
        
	for i=0,dim-1 do volume(0,0,i) = (max(area)-area) $
				*sqrt(1-(2.*(i-(dim-1)*0.5)/(dim-1))^2)
       
	return,volume
	end