remove memory leak in noise selection for behavioral r
This commit is contained in:
parent
6335c271b2
commit
ee843a4c2c
|
|
@ -4983,11 +4983,17 @@ inp_compat(struct card *card)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* white noise model by x2line, x3line, x4line
|
/* white noise model by x2line, x3line, x4line
|
||||||
if instance parameter noisy=0 is set, noise calculation is skipped */
|
if instance parameter noisy=1 is set */
|
||||||
|
bool rnoise = FALSE;
|
||||||
|
if(strstr(cut_line, "noisy=1"))
|
||||||
|
rnoise = TRUE;
|
||||||
|
|
||||||
if ((tc1_ptr == NULL) && (tc2_ptr == NULL)) {
|
if ((tc1_ptr == NULL) && (tc2_ptr == NULL)) {
|
||||||
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s)", title_tok, node1, node2,
|
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s)", title_tok, node1, node2,
|
||||||
node1, node2, equation);
|
node1, node2, equation);
|
||||||
|
if(rnoise){
|
||||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||||
title_tok, node1, node2,
|
title_tok, node1, node2,
|
||||||
title_tok,
|
title_tok,
|
||||||
|
|
@ -4996,9 +5002,11 @@ inp_compat(struct card *card)
|
||||||
title_tok, title_tok);
|
title_tok, title_tok);
|
||||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||||
title_tok, title_tok);
|
title_tok, title_tok);
|
||||||
|
}
|
||||||
} else if (tc2_ptr == NULL) {
|
} else if (tc2_ptr == NULL) {
|
||||||
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s) tc1=%15.8e reciproctc=1", title_tok, node1, node2,
|
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s) tc1=%15.8e reciproctc=1", title_tok, node1, node2,
|
||||||
node1, node2, equation, tc1);
|
node1, node2, equation, tc1);
|
||||||
|
if(rnoise) {
|
||||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||||
title_tok, node1, node2,
|
title_tok, node1, node2,
|
||||||
title_tok,
|
title_tok,
|
||||||
|
|
@ -5007,9 +5015,11 @@ inp_compat(struct card *card)
|
||||||
title_tok, title_tok, tc1);
|
title_tok, title_tok, tc1);
|
||||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||||
title_tok, title_tok);
|
title_tok, title_tok);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s) tc1=%15.8e tc2=%15.8e reciproctc=1", title_tok, node1, node2,
|
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s) tc1=%15.8e tc2=%15.8e reciproctc=1", title_tok, node1, node2,
|
||||||
node1, node2, equation, tc1, tc2);
|
node1, node2, equation, tc1, tc2);
|
||||||
|
if(rnoise) {
|
||||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||||
title_tok, node1, node2,
|
title_tok, node1, node2,
|
||||||
title_tok,
|
title_tok,
|
||||||
|
|
@ -5019,6 +5029,7 @@ inp_compat(struct card *card)
|
||||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||||
title_tok, title_tok);
|
title_tok, title_tok);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
tc1_ptr = NULL;
|
tc1_ptr = NULL;
|
||||||
tc2_ptr = NULL;
|
tc2_ptr = NULL;
|
||||||
|
|
||||||
|
|
@ -5026,7 +5037,7 @@ inp_compat(struct card *card)
|
||||||
*(card->line) = '*';
|
*(card->line) = '*';
|
||||||
// insert new B source line immediately after current line
|
// insert new B source line immediately after current line
|
||||||
card = insert_new_line(card, xline, 0, 0);
|
card = insert_new_line(card, xline, 0, 0);
|
||||||
if (x2line && strstr(cut_line, "noisy=1")) {
|
if (rnoise) {
|
||||||
card = insert_new_line(card, x2line, 0, 0);
|
card = insert_new_line(card, x2line, 0, 0);
|
||||||
card = insert_new_line(card, x3line, 0, 0);
|
card = insert_new_line(card, x3line, 0, 0);
|
||||||
card = insert_new_line(card, x4line, 0, 0);
|
card = insert_new_line(card, x4line, 0, 0);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue