diff -N -r -c HLib-1.3/Library/curvebem.c HLib-1.3a/Library/curvebem.c *** HLib-1.3/Library/curvebem.c 2004-12-12 17:42:31.000000000 +0100 --- HLib-1.3a/Library/curvebem.c 2005-01-10 20:25:29.000000000 +0100 *************** *** 266,275 **** xleft = cij; xright = cij + dnorm; ! vleft = xleft*log(aij2 + xleft*xleft) - 2.0*xleft; ! vright = xright*log(aij2 + xright*xright) - 2.0*xright; if(fabs(aij) > CURVEBEM_EPS*fabs(xleft)) vleft += 2.0*aij*atan(xleft/aij); if(fabs(aij) > CURVEBEM_EPS*fabs(xright)) vright += 2.0*aij*atan(xright/aij); --- 266,280 ---- xleft = cij; xright = cij + dnorm; ! vleft = -2.0*xleft; ! if(fabs(aij2 + xleft*xleft) > CURVEBEM_EPS*fabs(xleft)) ! vleft += xleft*log(aij2 + xleft*xleft); if(fabs(aij) > CURVEBEM_EPS*fabs(xleft)) vleft += 2.0*aij*atan(xleft/aij); + + vright = -2.0*xright; + if(fabs(aij2 + xright*xright) > CURVEBEM_EPS*fabs(xright)) + vright += xright*log(aij2 + xright*xright); if(fabs(aij) > CURVEBEM_EPS*fabs(xright)) vright += 2.0*aij*atan(xright/aij); *************** *** 298,305 **** xleft = cij; xright = cij + dnorm; ! vleft = atan(xleft / aij) / aij; ! vright = atan(xright / aij) / aij; return -prod * (vright - vleft) / (2.0 * M_PI); } --- 303,315 ---- xleft = cij; xright = cij + dnorm; ! vleft = 0.0; ! if(fabs(aij) > CURVEBEM_EPS*fabs(xleft)) ! vleft = atan(xleft / aij) / aij; ! ! vright = 0.0; ! if(fabs(aij) > CURVEBEM_EPS*fabs(xright)) ! vright = atan(xright / aij) / aij; return -prod * (vright - vleft) / (2.0 * M_PI); }