function a_ps = param_tau_2sigmoids_v(param_init_vals, id, props)
  
% param_tau_2sigmoids_v - V-dep time constant product of two sigmoids, y = (a + b/(1+exp((x+c)/d)))*(e + f/(1+exp((x+g)/h))).
%
% Usage:
%   a_ps = param_tau_2sigmoids_v(param_init_vals, id, props)
%
% Parameters:
%   param_init_vals: Initial values of function parameters, p = [a b c d e f g h].
%   id: A string identifying this function.
%   props: A structure with any optional properties.
% 	   (Rest passed to param_func)
%		
% Returns:
%	a_ps: param_func.
%
% Description:
%
% See also: param_func, param_tau_spline_v
%
% $Id: param_tau_2sigmoids_v.m 128 2010-06-07 21:36:08Z cengiz $
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2010/09/29

  var_names = {'voltage [mV]', 'time constant [ms]'};
  param_names = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
  func_handle = @(p,x) (p.a + p.b./(1 + exp((x+p.c) ./ p.d))) .* (p.e + p.f./(1 + exp((x+p.g) ./ p.h)));

  if ~ exist('props', 'var')
    props = struct;
  end

  sig_param_ranges = ...
      [0 100; -100 100; -100 100; -100 100]';
  props = mergeStructs(props, ...
                       struct('xMin', -100, 'xMax', 100, ...
                              'paramRanges', [sig_param_ranges, sig_param_ranges]));
  
  a_ps = ...
      param_func(var_names, param_init_vals, param_names, ...
                 func_handle, id, props);