#include "header.h" double alpha_n(double V) { return -0.01*(V+34.0)/(exp(-0.1*(V+34.0))-1.0); } double beta_n(double V) { return 0.125*exp(-(V+44.0)/25.0); } double n_inf(double V) { return alpha_n(V)/(alpha_n(V)+beta_n(V)); } double alpha_m(double V) { return -0.1*(V+33.0)/(exp(-0.1*(V+33.0)) - 1.0); } double beta_m(double V) { return 4.0*exp(-(V+58.0)/12.0); } double m_inf(double V) { return alpha_m(V)/(alpha_m(V)+beta_m(V)); } double alpha_h(double V) { return 0.07*exp(-(V+50.0)/10.0); } double beta_h(double V) { return 1.0/(exp(-0.1*(V+20.0))+1.0); } double h_inf(double V) { return alpha_h(V)/(alpha_h(V)+beta_h(V)); } double power_2(double x) { return x*x; } double power_3(double x) { return x*x*x; } double power_4(double x) { return x*x*x*x; } double m_Ca_inf(double V) { return 1.0/(1.0+exp(-(V+20.0)/9.0)); } double m_KNa_inf(double x) { return m_inf_max/(1.0+pow(EC_50/x,Hill_order)); } double phi_Na(double x) { return(x*x*x/(x*x*x+Kp*Kp*Kp)); } int within_proxy(double x,double target,double tolerance) { while(x>500.0) x-=500.0; if(x>=(target-tolerance) && x<=(target+tolerance)) return 1; else return 0; }