remove memory leak in noise selection for behavioral r
This commit is contained in:
parent
6335c271b2
commit
ee843a4c2c
|
|
@ -4983,41 +4983,52 @@ inp_compat(struct card *card)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 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)) {
|
||||
xline = tprintf("b%s %s %s i = v(%s, %s)/(%s)", title_tok, node1, node2,
|
||||
node1, node2, equation);
|
||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||
title_tok, node1, node2,
|
||||
title_tok,
|
||||
equation);
|
||||
x3line = tprintf("r%s_2 %s_3 0 1.0",
|
||||
title_tok, title_tok);
|
||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||
title_tok, title_tok);
|
||||
if(rnoise){
|
||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||
title_tok, node1, node2,
|
||||
title_tok,
|
||||
equation);
|
||||
x3line = tprintf("r%s_2 %s_3 0 1.0",
|
||||
title_tok, title_tok);
|
||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||
title_tok, title_tok);
|
||||
}
|
||||
} 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,
|
||||
node1, node2, equation, tc1);
|
||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||
title_tok, node1, node2,
|
||||
title_tok,
|
||||
equation);
|
||||
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e",
|
||||
title_tok, title_tok, tc1);
|
||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||
title_tok, title_tok);
|
||||
if(rnoise) {
|
||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||
title_tok, node1, node2,
|
||||
title_tok,
|
||||
equation);
|
||||
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e",
|
||||
title_tok, title_tok, tc1);
|
||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||
title_tok, title_tok);
|
||||
}
|
||||
} else {
|
||||
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);
|
||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||
title_tok, node1, node2,
|
||||
title_tok,
|
||||
equation);
|
||||
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e tc2=%15.8e",
|
||||
title_tok, title_tok, tc1, tc2);
|
||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||
title_tok, title_tok);
|
||||
if(rnoise) {
|
||||
x2line = tprintf("b%s_1 %s %s i = i(v%s_3)/sqrt(%s)",
|
||||
title_tok, node1, node2,
|
||||
title_tok,
|
||||
equation);
|
||||
x3line = tprintf("r%s_2 %s_3 0 1.0 tc1=%15.8e tc2=%15.8e",
|
||||
title_tok, title_tok, tc1, tc2);
|
||||
x4line = tprintf("v%s_3 %s_3 0 0",
|
||||
title_tok, title_tok);
|
||||
}
|
||||
}
|
||||
tc1_ptr = NULL;
|
||||
tc2_ptr = NULL;
|
||||
|
|
@ -5026,7 +5037,7 @@ inp_compat(struct card *card)
|
|||
*(card->line) = '*';
|
||||
// insert new B source line immediately after current line
|
||||
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, x3line, 0, 0);
|
||||
card = insert_new_line(card, x4line, 0, 0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue