function varargout = humps (x)
  
  if (nargin > 1)
    error("humps: Too many input arguments")
    print_usage ();
  
  elseif isempty(nargin)
    x = [0:0.05:1];
  
  endif

  y = - ( 1200*x.^4 - 2880*x.^3 + 2036*x.^2 - 348*x - 88) ./ ...
    (200*x.^4 - 480*x.^3 + 406*x.^2 - 138*x + 17);
  
    
  switch nargout
    
    case {0,1}
      varargout{1} = y;
    
    case 2
      varargout{1} = x;
      varargout{2} = y;
      
    otherwise
      error("humps: Too many output arguments requested")
      print_usage ();
    
  endswitch
   
endfunction
