double dr = p1->pr - (p0->pr + r);
double jdr = p1->jpr - (p0->jpr + jr);
- for ( ; j < path->pins->size; j++) {
+ p1->pr -= dr;
+ p1->jpr -= jdr;
+
+ scf_logw("j: %d, c%ldp%ld, p->pr: %lg + j%lg, p->sr: %lg + j%lg\n", j, p1->cid, p1->id, p1->pr, p1->jpr, p1->sr, p1->jsr);
+
+ for (++j; j < path->pins->size; j++) {
p = path->pins->data[j];
p->pr -= dr;
p->jpr -= jdr;
- scf_logw("j: %d, c%ldp%ld, p->pr: %lg + j%lg\n", j, p->cid, p->id, p->pr, p->jpr);
+ p->sr -= dr;
+ p->jsr -= jdr;
+
+ scf_logw("j: %d, c%ldp%ld, p->pr: %lg + j%lg, p->sr: %lg + j%lg\n", j, p->cid, p->id, p->pr, p->jpr, p->sr, p->jsr);
}
scf_loge("child: %d, r: %lg, jr: %lg, r0: %lg, jr0: %lg, _r: %lg, _jr: %lg, dr: %lg, jdr: %lg\n\n",
double r;
double jr;
- for (i = 0; i < path->pins->size; i++) {
+ for (i = 1; i < path->pins->size - 1; i++) {
p = path->pins->data[i];
el = f->elines [p->lid];
v = p0->v - p->v;
jv = p0->jv - p->jv;
- r = p1->pr - p->pr;
- jr = p1->jpr - p->jpr;
+ r = p->pr - p0->pr;
+ jr = p->jpr - p0->jpr;
- ses_ur_i(&a, &ja, v, jv, p->pr, p->jpr);
+ ses_ur_i(&a, &ja, v, jv, r, jr);
el->a = a;
el->ja = ja;
v, jv, p->v, p->jv, r, jr, p->a, p->ja);
} else {
+ v = p->v - p1->v;
+ jv = p->jv - p1->jv;
+
+ r = p1->pr - p->pr;
+ jr = p1->jpr - p->jpr;
+
+ double sr = p1->sr - p->sr;
+ double jsr = p1->jsr - p->jsr;
+
+ ses_ur_i(&a, &ja, v, jv, r, jr);
+
+ el->a = a;
+ el->ja = ja;
+ el->aconst = 1;
+
+ if (path->childs)
+ __ses_path_split_i(f, path, p0, p, &a, &ja);
+
+ p->a = a;
+ p->ja = ja;
+
+ scf_loge("i: %d, c%ldp%ld, v: %lg + j%lg, p->v: %lg + j%lg, r: %lg + j%lg, p->a: %lg + j%lg, sr: %lg + j%lg\n", i, p->cid, p->id,
+ v, jv, p->v, p->jv, r, jr, p->a, p->ja, sr, jsr);
}
}
printf("\n");