# creates curves for common voltage dependent functions

from sys import argv
from math import exp

mini = -100
maxi = 0

power = 1

minval = 0
maxval = 1

dv = 0.1

for a in argv:
	if a.startswith('mini='):
		mini = float(a.split('=')[1])
	if a.startswith('maxi='):
		maxi = float(a.split('=')[1])
	if a.startswith('power='):
		power = float(a.split('=')[1])
	if a.startswith('minval='):
		minval= float(a.split('=')[1])
	if a.startswith('maxval='):
		maxval = float(a.split('=')[1])
	if a.startswith('dv='):
		dv = float(a.split('=')[1])


#print dv, mini, maxi

half = float(argv[1])
slope = float(argv[2])

def boltz(v,a,b):
	arg = -(v-a)/b
	if arg < -50:
		out = 1
	elif arg > 50:
		out = 0
	else:
		out = 1.0/(1.0+exp(arg))
	return out


	
v = mini
while v <= maxi:
	act = boltz(v,half,slope)
	if power != 1:
	   act = act**power
	   
	act*=(maxval-minval)
	act+=minval
	print( v, act)
	v += dv