1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
{load_file("nrngui.hoc")}
begintemplate VConstRate
public A, f, inv, Asol, ksol, form, parms, restore, save_data, type
public kstset, parm2vec, vec2parm, chk
proc init() {
parms(.1)
}
proc kstset() {
parms(.1)
$o1.set_f($2, type(), new Vector(1))
parm2vec($o1.parm($2))
}
proc chk() {
if ($o3.x[0] < 0) { $o3.x[0] = 0 }
if ($1 == 1) if ($2 == 0) if ($o3.x[0] > 1) $o3.x[0] = 1
}
proc parm2vec() {
$o1.resize(0)
$o1.append(A)
}
proc vec2parm() {
A = $o1.x[0]
}
func type() { return 1 }
proc parms() {
A = $1
}
proc save_data() {
sprint($s2, "%g", A)
$o1.save($s2)
}
proc restore() {
parms(fscan())
}
proc form() {
if ($2 == 1) {
sprint($s1, "A%s", $s3)
}else{
sprint($s1, "%.4g", A)
}
}
func f() {
return A
}
func inv() {
return 1e6
}
func Asol() { return $2 }
func ksol() {
return 0
}
endtemplate VConstRate
|